:root{--surface-1:#f4f8fa;--surface-2:#fff;--border:#dbe7ec;--border-strong:#b6cad4;--text-primary:#123543;--text-secondary:#56717d;--text-muted:#7b919a;--sans:"Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif;--heading:"Avenir Next", "Segoe UI", sans-serif;font:16px/145% var(--sans);letter-spacing:.08px;color:var(--text-primary);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#edf5f8}#root{text-align:center;box-sizing:border-box;width:100%;max-width:none;min-height:100svh;margin:0}body{background:linear-gradient(#edf5f8 0%,#e8f1f5 100%);min-height:100svh;margin:0}h1,h2{font-family:var(--heading);color:var(--text-primary)}h1{letter-spacing:-.02em}h2{letter-spacing:-.01em;margin:0;font-size:1.22rem;line-height:122%}p{margin:0}@media (width<=900px){:root{font-size:16px}}.mock-shell{min-height:100svh;padding:0}.mock-card{background:var(--surface-2);border:1px solid var(--border);box-shadow:none;border-left:none;border-right:none;border-radius:0;min-height:100svh;overflow:hidden}.top-bar{border-bottom:1px solid var(--border);grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:14px 20px;display:grid}.brand-block{align-items:center;display:flex}.brand-logo-image{width:auto;height:30px;display:block}.title-block{align-items:center;gap:10px;display:flex}.title-logo-image{object-fit:contain;width:34px;height:30px}.title-block h1{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:600}.user-pill{border:1px solid var(--border);border-radius:999px;justify-self:end;align-items:center;gap:8px;padding:5px 8px 5px 6px;display:flex}.user-pill-loggedout{padding:7px 12px}.user-initials{color:#047dba;background:#e6f4f9;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-flex}.user-email{color:var(--text-secondary);font-size:13px}.user-logout{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;background:#fff;border-radius:999px;padding:4px 8px;font-size:11px}.user-logout:hover{background:var(--surface-1)}.session-note{border-bottom:1px solid var(--border);background:var(--surface-1);align-items:center;gap:12px;padding:10px 20px;display:flex}.text-button{color:#047dba;cursor:pointer;background:0 0;border:none;padding:0}.tabs-wrap{justify-content:center;padding:20px 20px 0;display:flex}.tabs{background:var(--surface-1);border-radius:10px;gap:4px;padding:4px;display:inline-flex}.tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:600}.tab.active{background:var(--surface-2);box-shadow:0 0 0 1px var(--border);color:#004656}.tab-panel{padding:24px 28px 28px}.upload-grid{grid-template-columns:1fr 1.1fr;align-items:stretch;gap:20px;display:grid}.upload-column{flex-direction:column;display:flex}.section-label{color:var(--text-secondary);margin:0 0 8px;font-size:13px;font-weight:600}.uploaded-list{border:1px solid var(--border);border-radius:10px;flex:1;margin:0;padding:0;list-style:none;overflow:hidden}.uploaded-item{border-top:1px solid var(--border);align-items:center;gap:10px;padding:10px 12px;display:flex}.uploaded-item:first-child{border-top:none}.uploaded-item.empty{color:var(--text-muted);font-size:13px}.zip-icon{background:var(--surface-1);width:28px;height:28px;color:var(--text-muted);border-radius:8px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.uploaded-meta{flex:1;min-width:0}.uploaded-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}.uploaded-subline{color:var(--text-muted);margin:0;font-size:12px}.check-state{border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.check-state.done{color:#0d5c33;background:#d6ffe6}.check-state.pending{color:#5c5500;background:#fbffb8}.dropzone{border:2px dashed var(--border-strong);text-align:center;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:32px 20px;transition:border-color .15s,background .15s;display:flex}.dropzone.dragging{background:#e6f4f9;border-color:#047dba}.dropzone input[type=file]{display:none}.upload-icon{color:#047dba;background:#e6f4f9;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-weight:700;display:inline-flex}.drop-title{color:var(--text-primary);margin:0;font-size:14px;font-weight:600}.drop-subtitle{color:var(--text-muted);margin:0;font-size:12px}.action-button{color:#fff;cursor:pointer;background:#047dba;border:1px solid #047dba;border-radius:8px;margin-top:4px;padding:7px 14px;font-size:13px}.action-button:disabled{opacity:.6;cursor:not-allowed}.hint-line{color:var(--text-muted);margin:10px 2px 0;font-size:12px}.error-text{color:#9f1f12;margin:8px 0 0;font-size:13px;font-weight:600}.error-text.inline{margin-top:10px}.results-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.results-table-wrap{border:1px solid var(--border);border-radius:10px;overflow:hidden}.results-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:13px}.results-table thead tr{background:var(--surface-1)}.results-table th,.results-table td{text-align:left;padding:9px 12px}.results-table th{color:var(--text-secondary);font-weight:600}.results-table tbody tr{border-top:1px solid var(--border)}.results-table td:first-child{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.results-table td:nth-child(2){color:var(--text-secondary)}.result-chip{border-radius:999px;padding:2px 8px;font-size:12px}.result-chip.ok{color:#0d5c33;background:#d6ffe6}.result-chip.warning{color:#5c5500;background:#fbffb8}.result-chip.progress{color:#035f8d;background:#e6f4f9}.action-column{width:130px;text-align:right!important}.download-mini{border:1px solid var(--border);color:var(--text-primary);background:#fff;border-radius:6px;padding:5px 8px;font-size:12px;text-decoration:none}.muted-action{color:var(--text-muted);font-size:12px}.auth-panel{padding:24px 28px}.auth-form{margin-top:12px}@media (width<=960px){.top-bar{text-align:center;grid-template-columns:1fr;justify-items:center;gap:12px}.brand-block,.title-block,.user-pill{justify-self:center}.upload-grid{grid-template-columns:1fr}.results-header{flex-direction:column;align-items:flex-start;gap:10px}.tab-panel{padding:20px 16px 22px}.mock-card{border-left:none;border-right:none}}
