*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333}.container{max-width:800px;margin:0 auto;padding:2rem}h1{font-size:2rem;margin-bottom:.5rem;color:#222}.subtitle{color:#666;margin-bottom:2rem}.card{background:white;border-radius:8px;padding:2rem;box-shadow:0 2px 4px rgba(0,0,0,.1)}.card,.input-group{margin-bottom:1.5rem}label{display:block;margin-bottom:.5rem;font-weight:500;color:#444}input[type=file],input[type=text]{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s}input[type=file]:focus,input[type=text]:focus{outline:none;border-color:#4CAF50}button{background-color:#4CAF50;color:white;padding:.75rem 2rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s;width:100%}button:hover:not(:disabled){background-color:#45a049}button:disabled{background-color:#ccc;cursor:not-allowed}.preview{margin-top:1.5rem}.preview-box{background:#f9f9f9;border:1px solid #ddd;border-radius:4px;padding:1rem;max-height:400px;overflow:auto;font-family:Courier New,monospace;font-size:.9rem;white-space:pre-wrap;word-break:break-all}.download-btn{margin-top:1rem;background-color:#2196F3}.download-btn:hover:not(:disabled){background-color:#0b7dda}.error{background-color:#ffebee;color:#c62828;padding:1rem;border-radius:4px;margin-bottom:1rem;border-left:4px solid #c62828}.loading{display:flex;align-items:center;justify-content:center;gap:.5rem}.spinner{border:3px solid #f3f3f3;border-top-color:#4caf50;border-radius:50%;width:20px;height:20px;animation:spin 1s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.info{background-color:#e3f2fd;color:#1565c0;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.divider{text-align:center;margin:1.5rem 0;color:#999;position:relative}.divider:after,.divider:before{content:"";position:absolute;top:50%;width:45%;height:1px;background-color:#ddd}.divider:before{left:0}.divider:after{right:0}