:root{--bg: #ffffff;--fg: #1a1a1a;--muted: #6b7280;--border: #d4d4d8;--accent: #e8620c;--accent-hover: #c9520a;--panel: #fafafa;--error-bg: #fef2f2;--error-fg: #991b1b;--error-border: #fecaca;--ok: #15803d;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-size:15px;line-height:1.5}.shell{max-width:720px;margin:0 auto;padding:32px 20px 64px}header.app-header{border-bottom:3px solid var(--accent);padding-bottom:12px;margin-bottom:28px}header.app-header h1{font-size:22px;margin:0;font-weight:600}header.app-header p{margin:4px 0 0;color:var(--muted);font-size:13px}button{font:inherit;cursor:pointer;border-radius:6px;border:1px solid transparent;padding:10px 20px;transition:background-color .12s ease}button:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--accent);color:#fff;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:transparent;color:var(--fg);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--panel)}input[type=password]{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:6px;width:100%}input[type=password]:focus{outline:2px solid var(--accent);outline-offset:-1px}.dropzone{border:2px dashed var(--border);border-radius:10px;padding:44px 20px;text-align:center;background:var(--panel);transition:border-color .15s ease,background-color .15s ease;cursor:pointer}.dropzone.dragging{border-color:var(--accent);background:#fff7ed}.dropzone strong{display:block;font-size:16px;margin-bottom:6px}.dropzone span{color:var(--muted);font-size:13px}ul.file-list{list-style:none;padding:0;margin:20px 0 0}ul.file-list li{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;margin-bottom:8px}ul.file-list .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ul.file-list .size{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.remove-btn{background:none;border:none;color:var(--muted);font-size:18px;line-height:1;padding:2px 8px}.remove-btn:hover{color:var(--error-fg)}.progress-track{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin:20px 0 10px}.progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .4s ease}.progress-meta{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.summary{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px;margin:24px 0}.summary dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14px}.summary dt{color:var(--muted)}.summary dd{margin:0;font-variant-numeric:tabular-nums}.error-panel{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-fg);border-radius:8px;padding:14px 16px;margin:20px 0;font-size:14px}.error-panel strong{display:block;margin-bottom:4px}.notice{font-size:13px;color:var(--muted);margin:12px 0 0}.per-file{margin:20px 0 0;font-size:13px}.per-file table{width:100%;border-collapse:collapse}.per-file th,.per-file td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}.per-file th{color:var(--muted);font-weight:500}.per-file .status-ok{color:var(--ok)}.per-file .status-fail{color:var(--error-fg)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.login-card{max-width:360px}.login-card label{display:block;font-size:14px;margin-bottom:6px}.login-card button{margin-top:14px;width:100%}@media (max-width: 480px){.shell{padding:20px 14px 48px}.dropzone{padding:32px 16px}.actions button{flex:1}}
