:root{color-scheme:dark;--bg:#08101f;--surface:#111c2f;--surface2:#17243a;--text:#f1f5f9;--muted:#a8b5c7;--border:#2c3d58;--primary:#8b7cf6;--primary2:#a99df8;--pending:#fbbf24;--done:#34d399;--danger:#fb7185;--shadow:0 18px 50px rgba(0,0,0,.35)}
body.light{color-scheme:light;--bg:#eef3f8;--surface:#fff;--surface2:#f7f9fc;--text:#172033;--muted:#5b687b;--border:#d8e0eb;--primary:#6958df;--primary2:#5846ce;--pending:#b56b00;--done:#087f5b;--danger:#c92a2a;--shadow:0 16px 40px rgba(40,55,80,.12)}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 12% 0,rgba(139,124,246,.16),transparent 30%),var(--bg);color:var(--text);font-family:Inter,"Segoe UI",system-ui,sans-serif;transition:background .25s,color .25s}.page-shell{width:min(1500px,100%);margin:auto;padding:clamp(14px,3vw,38px)}
.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.page-header h1{margin:3px 0 8px;font-size:clamp(1.8rem,4vw,2.7rem)}.page-header p{margin:0;color:var(--muted)}.eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.16em;color:var(--primary2)!important}.header-actions,.toolbar,.results-head,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.card{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:clamp(18px,3vw,28px);box-shadow:var(--shadow);margin-bottom:22px}.card h2{margin:0 0 6px}.card p{margin:0;color:var(--muted);line-height:1.5}.badge{padding:8px 12px;border-radius:999px;background:rgba(52,211,153,.12);color:var(--done);font-size:.82rem;font-weight:750}
textarea,select{width:100%;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:12px;font:inherit}textarea{margin:18px 0 12px;padding:15px;min-height:130px;resize:vertical;font-family:Consolas,monospace;line-height:1.45}textarea:focus,select:focus{outline:3px solid rgba(139,124,246,.22);border-color:var(--primary)}button,a.secondary{min-height:42px;border-radius:11px;padding:10px 16px;font-weight:750;font-size:.9rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary{border:0;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff}.secondary{border:1px solid var(--border);background:var(--surface2);color:var(--text)}button:disabled{opacity:.45;cursor:not-allowed}.toolbar{justify-content:flex-start}.sheet-total{margin-left:auto;color:var(--done);font-size:.9rem}
.sheet-wrap,.result-table-wrap{overflow:auto;max-height:390px;margin-top:16px;border:1px solid var(--border);border-radius:14px}.sheet,.result-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.sheet th,.sheet td,.result-table th,.result-table td{width:180px;min-width:180px;max-width:180px;padding:10px 12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet th,.result-table th{position:sticky;top:0;background:var(--surface2);color:var(--text);z-index:2}.sheet td[contenteditable=true]:focus{outline:3px solid var(--primary);outline-offset:-3px;background:rgba(139,124,246,.12);white-space:normal}.row-number{min-width:58px!important;width:58px!important;max-width:58px!important;color:var(--muted);text-align:center!important;position:sticky;left:0;background:var(--surface2)}.empty{width:100%;color:var(--muted);text-align:center!important;padding:30px!important}
.mapping-card{display:grid;gap:18px}.mapping-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mapping-grid label{display:grid;gap:8px;font-weight:750}.mapping-grid label span{color:var(--danger)}.mapping-grid small{color:var(--muted);font-weight:500}.mapping-grid select{padding:13px}.compare{justify-self:start}.message{min-height:22px!important;color:var(--danger);font-weight:700}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.stats article{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.stats span{display:block;color:var(--muted);margin-bottom:8px}.stats strong{font-size:2rem}.stats .pending strong{color:var(--pending)}.stats .done strong{color:var(--done)}
.tabs{display:flex;gap:8px;margin-top:18px}.tab{border:1px solid var(--border);background:var(--surface2);color:var(--muted)}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.status{padding:4px 9px;border-radius:999px;font-weight:800;font-size:.78rem}.status.pending{color:var(--pending);background:rgba(251,191,36,.12)}.status.done{color:var(--done);background:rgba(52,211,153,.12)}
.loading{position:fixed;inset:0;z-index:99;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--bg);color:var(--text)}.loading.hidden{display:none}.spinner{width:50px;height:50px;border:5px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.page-header{flex-direction:column}.header-actions{width:100%}.header-actions>*{flex:1}.mapping-grid,.stats{grid-template-columns:1fr}.compare{width:100%}.results-head{align-items:flex-start;flex-direction:column}.results-head button{width:100%}}
