body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;align-items:flex-start;background:linear-gradient(120deg,#f4f7fa,#e9eef6);display:flex;font-family:Poppins,Inter,Segoe UI,Roboto,Arial,sans-serif;justify-content:center;line-height:1.6;margin:0;min-height:100vh;padding:0;transition:background-color .3s ease,color .3s ease}body.dark-mode{background:linear-gradient(120deg,#2c2c2c,#3a3a3a);color:#e0e0e0}.App{box-sizing:border-box;justify-content:flex-start;max-width:2000px!important;min-height:100vh;padding-top:32px}.App,.stacked-layout{align-items:center;display:flex;flex-direction:column;width:100%!important}.stacked-layout{gap:32px;max-width:100%!important}.card{align-items:center;background:#fff;border:1.5px solid #e3eefd;border-radius:28px;box-shadow:0 8px 36px #2c3e5021;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;margin-bottom:0;max-width:1400px!important;padding:32px 32px 28px;position:relative;width:1000px!important}.dark-mode .card{background:#3a3a3a;border-color:#4a4a4a;box-shadow:0 8px 36px #0006}@media (max-width:600px){.card{max-width:98%!important;padding:18px 2vw;width:98%!important}}h1{color:#2563eb;font-family:Poppins,Inter,sans-serif;font-size:2.1rem;font-weight:700;letter-spacing:1px;margin-bottom:12px;text-align:center}.dark-mode h1{color:#6a9aff}.history-btn{background:#f4f7fa;border:1.5px solid #e3eefd;border-radius:22px;box-shadow:0 2px 8px #2c3e500f;color:#2563eb;cursor:pointer;display:block;font-size:1rem;font-weight:600;margin:0 auto 18px;padding:8px 28px;transition:background .18s,color .18s,border-color .18s}.history-btn:hover{background:#e3eefd;border-color:#c7d9f7;color:#174ea6}.dark-mode .history-btn{background:#4a4a4a;border-color:#5a5a5a;color:#a0c0ff}.dark-mode .history-btn:hover{background:#5a5a5a;border-color:#6a6a6a;color:#c0d0ff}label{color:#2563eb;display:block;font-family:Inter,Poppins,sans-serif;font-size:1.08rem;font-weight:600;margin-bottom:6px;position:relative}.dark-mode label{color:#a0c0ff}input[type=file]{color:#333;display:block;margin-bottom:18px}.dark-mode input[type=file]{color:#e0e0e0}input[type=text],textarea{background:#f7faff;border:1.5px solid #b6c6e3;border-radius:14px;box-shadow:0 1px 6px #1877c00a;box-sizing:border-box;color:#111;font-family:Inter,Poppins,sans-serif;font-size:1.08rem;margin-bottom:18px;padding:14px 18px;transition:border .2s,box-shadow .2s,background .2s,color .2s;width:100%!important}input[type=text]:focus,textarea:focus{border:1.5px solid #2563eb;box-shadow:0 2px 12px #2563eb21;outline:none}.dark-mode input[type=text],.dark-mode textarea{background:#4a4a4a;border-color:#6a6a6a;box-shadow:0 1px 6px #0000001a;color:#f0f0f0}.dark-mode input[type=text]:focus,.dark-mode textarea:focus{border-color:#6a9aff;box-shadow:0 2px 12px #6a9aff33}.preview-actions button,button[type=submit]{border-radius:22px;box-shadow:0 4px 18px #2563eb1a,0 2px 8px #2563eb14;cursor:pointer;font-family:Poppins,Inter,sans-serif;font-size:1.13rem;font-weight:700;letter-spacing:.5px;margin-right:0;margin-top:12px;min-width:150px;padding:15px 32px;position:relative;transition:background .2s,box-shadow .2s,transform .1s}.preview-actions button,button[type=submit]{background:linear-gradient(90deg,#2563eb,#60a5fa);border:none;color:#fff}.preview-actions button{box-shadow:0 2px 8px #2563eb14;font-size:1rem;font-weight:600;margin-top:0;min-width:120px;padding:12px 22px}.preview-actions .write-btn{background:linear-gradient(90deg,#059669,#34d399);color:#fff;font-weight:700}.preview-actions .write-btn:hover{background:linear-gradient(90deg,#34d399,#059669)}.preview-actions button:hover,button[type=submit]:hover:not(:disabled){background:linear-gradient(90deg,#60a5fa,#2563eb);box-shadow:0 8px 32px #2563eb21;transform:translateY(-2px) scale(1.04)}.preview-actions button:active,button[type=submit]:active{transform:scale(.98)}.preview-actions button:disabled,button[type=submit]:disabled{background:#b6c6e3;box-shadow:none;color:#fff;cursor:not-allowed}.dark-mode .preview-actions button:not(.write-btn),.dark-mode button[type=submit]{background:linear-gradient(90deg,#6a9aff,#a0c0ff);box-shadow:0 4px 18px #6a9aff26,0 2px 8px #6a9aff1a}.dark-mode .preview-actions button:not(.write-btn):hover,.dark-mode button[type=submit]:hover:not(:disabled){background:linear-gradient(90deg,#a0c0ff,#6a9aff);box-shadow:0 8px 32px #6a9aff33}.dark-mode .preview-actions .write-btn{background:linear-gradient(90deg,#06b678,#6ee7b7);box-shadow:0 4px 18px #06b67826,0 2px 8px #06b6781a}.dark-mode .preview-actions .write-btn:hover{background:linear-gradient(90deg,#6ee7b7,#06b678);box-shadow:0 8px 32px #06b67833}.dark-mode .preview-actions button:disabled,.dark-mode button[type=submit]:disabled{background:#5a5a5a}.preview-area{align-items:stretch;background:#fff;border-radius:18px;box-shadow:0 8px 36px #2c3e501a;box-sizing:border-box;color:#111;display:flex;flex-direction:column;justify-content:flex-start;margin-bottom:30px;margin-top:0;max-width:1400px!important;min-width:0;padding:32px 24px 24px;position:relative;width:90%!important}.dark-mode .preview-area{background:#3a3a3a;border:1.5px solid #4a4a4a;box-shadow:0 8px 36px #0006;color:#e0e0e0}@media (max-width:900px){.preview-area{margin-bottom:18px;max-width:98%!important;padding:18px 4vw;width:98%!important}}.preview-actions{display:flex;flex-wrap:wrap;gap:18px;justify-content:flex-end;margin-bottom:24px;width:100%}@media (max-width:768px){.preview-actions{justify-content:center}}.table-container{border-radius:16px;box-shadow:0 4px 18px #2563eb1a,0 2px 8px #2563eb14;margin-bottom:18px;margin-top:0;overflow-x:auto;width:100%!important}.dark-mode .table-container{box-shadow:0 4px 18px #6a9aff26,0 2px 8px #6a9aff1a}table{background:#f7faff;border-collapse:initial;border-spacing:0;color:#111;font-size:1.08rem;margin-bottom:10px;min-width:1800px!important;overflow:hidden;width:100%}.dark-mode table{background:#2a2a2a;color:#f0f0f0}thead tr{background:linear-gradient(90deg,#2563eb,#60a5fa);position:sticky;top:0;z-index:2}.dark-mode thead tr{background:linear-gradient(90deg,#6a9aff,#a0c0ff)}td,th{border-bottom:1.5px solid #e3eefd;font-family:Inter,Poppins,sans-serif;overflow:hidden;padding:18px 13px;text-align:left;text-overflow:ellipsis;white-space:nowrap}th{background:inherit;color:#fff;font-size:1.13rem;font-weight:700;letter-spacing:.5px;position:sticky;top:0;z-index:2}.dark-mode td,.dark-mode th{border-color:#4a4a4a;color:#e0e0e0}.dark-mode th{color:#f0f0f0}tr:nth-child(2n) td{background:#e9eef6}.dark-mode tr:nth-child(2n) td{background:#333}tr{animation:row-fadein .5s;transition:background .18s}tr:hover td{background:#e3eefd}.dark-mode tr:hover td{background:#444}@keyframes row-fadein{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}tr:last-child td{border-bottom:none}.status-success{background:#e6ffe6;border-radius:8px;color:#1a7f37;font-family:Inter,Poppins,sans-serif;font-weight:500;margin-top:28px;padding:18px}.dark-mode .status-success{background:#1a4a2a;color:#6ee7b7}.status-error{background:#ffe6e6;border-radius:8px;color:#d32f2f;font-family:Inter,Poppins,sans-serif;font-weight:500;margin-top:28px;padding:18px}.dark-mode .status-error{background:#4a1a1a;color:#ef9a9a}.footer{background:#0000;color:#2563eb;font-family:Poppins,Inter,sans-serif;font-size:1rem;font-weight:600;letter-spacing:.5px;margin-top:30px;padding:18px 0 10px;text-align:center;text-shadow:0 1px 4px #1877c021;width:100%}.dark-mode .footer{color:#a0c0ff;text-shadow:none}.modal{align-items:stretch;background:#fff;border-radius:22px;box-shadow:0 8px 36px #2c3e502e;box-sizing:border-box;color:#111;display:flex;flex-direction:column;gap:22px;max-width:98vw;min-width:340px;padding:36px 44px;position:relative;width:500px}.dark-mode .modal{background:#3a3a3a;border:1.5px solid #4a4a4a;box-shadow:0 8px 36px #0006;color:#e0e0e0}.modal label{color:#2563eb;font-size:1.08rem;margin-bottom:4px}.dark-mode .modal label{color:#a0c0ff}.modal input[type=text]{background:#f7faff;border:1.5px solid #b6c6e3;border-radius:12px;box-shadow:0 1px 6px #1877c00a;box-sizing:border-box;color:#111;font-family:Inter,Poppins,sans-serif;font-size:1.08rem;margin-bottom:16px;margin-top:6px;padding:14px 18px;width:100%}.modal input[type=text]:focus{border:1.5px solid #2563eb;box-shadow:0 2px 12px #2563eb21;outline:none}.dark-mode .modal input[type=text]{background:#4a4a4a;border-color:#6a6a6a;box-shadow:0 1px 6px #0000001a;color:#f0f0f0}.dark-mode .modal input[type=text]:focus{border-color:#6a9aff;box-shadow:0 2px 12px #6a9aff33}.modal input[type=file]{background:none;border:none;color:#333;display:block;font-size:1rem;margin-bottom:18px;margin-top:8px;width:100%}.dark-mode .modal input[type=file]{color:#e0e0e0}.modal input[type=file]::file-selector-button{background:linear-gradient(90deg,#2563eb,#60a5fa);border:none;border-radius:18px;color:#fff;cursor:pointer;font-family:Poppins,Inter,sans-serif;font-size:1rem;font-weight:600;margin-right:10px;padding:8px 18px;transition:background .18s}.modal input[type=file]::-webkit-file-upload-button:hover,.modal input[type=file]::file-selector-button:hover{background:linear-gradient(90deg,#60a5fa,#2563eb)}.dark-mode .modal input[type=file]::-webkit-file-upload-button:hover,.dark-mode .modal input[type=file]::file-selector-button:hover{background:linear-gradient(90deg,#a0c0ff,#6a9aff)}.modal .write-btn{background:linear-gradient(90deg,#059669,#34d399);border:none;border-radius:22px;box-shadow:0 4px 18px #0596691a,0 2px 8px #34d39914;color:#fff;cursor:pointer;font-size:1.13rem;font-weight:700;margin-top:18px;min-width:220px;padding:16px 0;transition:background .2s,box-shadow .2s,transform .1s;width:100%}.modal .write-btn:hover{background:linear-gradient(90deg,#34d399,#059669);box-shadow:0 8px 32px #05966921;transform:translateY(-2px) scale(1.04)}.dark-mode .modal .write-btn{background:linear-gradient(90deg,#06b678,#6ee7b7);box-shadow:0 4px 18px #06b67826,0 2px 8px #06b6781a}.dark-mode .modal .write-btn:hover{background:linear-gradient(90deg,#6ee7b7,#06b678);box-shadow:0 8px 32px #06b67833}.modal-close{align-items:center;background:#f4f7fa;border:none;border-radius:50%;box-shadow:0 1px 4px #2c3e5014;color:#888;cursor:pointer;display:flex;font-size:1.3rem;height:32px;justify-content:center;position:absolute;right:18px;top:16px;transition:background .18s,color .18s,box-shadow .18s;width:32px;z-index:10}.modal-close:hover{background:#e3eefd;box-shadow:0 2px 8px #2c3e501a;color:#2563eb}.dark-mode .modal-close{background:#4a4a4a;box-shadow:0 1px 4px #0003;color:#a0a0a0}.dark-mode .modal-close:hover{background:#5a5a5a;box-shadow:0 2px 8px #0000004d;color:silver}.modal-overlay{align-items:center;animation:fadeIn .3s ease-out forwards;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2c3e502e;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.dark-mode .modal-overlay{background:#00000080}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.info-tooltip .info{align-items:center;border:1px solid #60a5fa;border-radius:50%;color:#60a5fa;cursor:help;display:inline-flex;font-size:.9em;font-weight:700;height:20px;justify-content:center;line-height:1;margin-left:5px;width:20px}.dark-mode .info-tooltip .info{border-color:#a0c0ff;color:#a0c0ff}.info-tooltip{display:inline-block;position:relative}.info-tooltip .tooltip-text{background:#fff;border:1px solid #e3eefd;border-radius:6px;box-shadow:0 2px 8px #1877c021;color:#2563eb;font-family:Inter,Poppins,sans-serif;font-size:13px;font-weight:500;left:28px;max-width:320px;opacity:0;padding:8px 14px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .18s,visibility .18s,background .18s,color .18s,border-color .18s;visibility:hidden;width:max-content;z-index:10}.info-tooltip:focus-within .tooltip-text,.info-tooltip:hover .tooltip-text{opacity:1;pointer-events:auto;visibility:visible}.dark-mode .info-tooltip .tooltip-text{background:#4a4a4a;border-color:#6a6a6a;box-shadow:0 2px 8px #0000004d;color:#a0c0ff}.spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:20px;margin-right:8px;vertical-align:middle;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.4671e2c9.css.map*/