:root{--bg-color: #0f172a;--card-bg: #1e293b;--card-bg-light: #334155;--text-main: #f8fafc;--text-muted: #94a3b8;--text-dim: #64748b;--accent: #38bdf8;--accent-hover: #0ea5e9;--accent-soft: rgba(56, 189, 248, .12);--accent-border: rgba(56, 189, 248, .3);--danger: #f87171;--danger-hover: #ef4444;--danger-soft: rgba(248, 113, 113, .12);--danger-border: rgba(248, 113, 113, .3);--success: #4ade80;--success-soft: rgba(74, 222, 128, .12);--success-border: rgba(74, 222, 128, .3);--border: #334155;--border-light: #475569;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color);color:var(--text-main);font-family:var(--font-family);line-height:1.5;padding:1.5rem 1rem}.container{width:100%;max-width:580px}.card{background-color:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:2.25rem;box-shadow:0 20px 25px -5px #00000059,0 8px 10px -6px #00000059}.header{margin-bottom:1.5rem}.brand-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.35rem}.brand{font-size:2rem;font-weight:700;letter-spacing:-.03em;color:var(--text-main)}.badge{background-color:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border);padding:.2rem .65rem;border-radius:9999px;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.tagline{color:var(--text-muted);font-size:.95rem}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--border-light);border-radius:12px;padding:2rem 1.5rem;text-align:center;cursor:pointer;background-color:#0f172a66;transition:border-color .15s ease,background-color .15s ease;outline:none}.dropzone:hover,.dropzone:focus-visible{border-color:var(--accent);background-color:var(--accent-soft)}.dropzone.drag-active{border-color:var(--accent);background-color:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-border)}.upload-icon{width:44px;height:44px;color:var(--accent);margin-bottom:.75rem}.dropzone-text{font-size:1rem;color:var(--text-main);margin-bottom:.25rem}.dropzone-text strong{color:var(--accent)}.dropzone-subtext{font-size:.8125rem;color:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.alert{padding:.875rem 1rem;border-radius:8px;font-size:.875rem;margin-top:1rem;word-break:break-word}.alert-error{background-color:var(--danger-soft);border:1px solid var(--danger-border);color:#fca5a5}.alert-success{background-color:var(--success-soft);border:1px solid var(--success-border);color:#86efac}.file-section{margin-top:1.5rem}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.section-title{font-size:.9375rem;font-weight:600;color:var(--text-main)}.header-actions{display:flex;align-items:center;gap:.75rem}.btn-text{background:none;border:none;color:var(--accent);font-size:.8125rem;font-weight:500;cursor:pointer;padding:.2rem .4rem;border-radius:4px;transition:opacity .15s ease}.btn-text:hover{opacity:.8;text-decoration:underline}.btn-text.danger-text{color:var(--danger)}.hint{font-size:.8125rem;color:var(--text-dim);margin-bottom:.75rem}.file-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;max-height:280px;overflow-y:auto;padding-right:.25rem}.file-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;background-color:#0f172a80;border:1px solid var(--border);border-radius:8px;transition:background-color .15s ease}.file-item:hover{background-color:#0f172acc}.file-index{display:flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:50%;background-color:var(--card-bg-light);color:var(--text-muted);font-size:.75rem;font-weight:600}.file-details{flex:1;min-width:0;display:flex;flex-direction:column}.file-name{font-size:.875rem;font-weight:500;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:.75rem;color:var(--text-muted)}.file-controls{display:flex;align-items:center;gap:.25rem}.btn-icon{background-color:transparent;border:1px solid transparent;color:var(--text-muted);width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.875rem;transition:all .15s ease}.btn-icon:hover:not(:disabled){background-color:var(--card-bg-light);color:var(--text-main)}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.btn-icon.btn-delete:hover{color:var(--danger);background-color:var(--danger-soft)}.actions{margin-top:1.5rem}.btn-primary{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;background-color:var(--accent);color:#04121e;font-size:1rem;font-weight:600;padding:.85rem 1.25rem;border:none;border-radius:10px;cursor:pointer;transition:background-color .15s ease,opacity .15s ease,transform .05s ease}.btn-primary:hover:not(:disabled){background-color:var(--accent-hover)}.btn-primary:active:not(:disabled){transform:scale(.99)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.spinner{width:18px;height:18px;border:2px solid rgba(4,18,30,.3);border-top-color:#04121e;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.note{margin-top:1.5rem;color:var(--text-muted);font-size:.8125rem;border-top:1px solid var(--border);padding-top:1.25rem;text-align:center}.note strong{color:var(--text-main)}
