*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0b0f1a;--bg2: #0f1420;--bg3: #141b2d;--bg4: #1a2340;--border: #1c2535;--border2: #243048;--gold: #c9a84c;--gold2: #e8c46a;--text: #c8d4e8;--muted: #8a9ab5;--dim: #4a5a70;--green: #4caf7d;--red: #e05c5c;--amber: #e09a3c;--blue: #4a9eff;--font-ui: "JetBrains Mono", monospace;--font-body: "DM Sans", sans-serif}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:11px;font-feature-settings:"zero" 0,"tnum" 1}.app{display:flex;flex-direction:column;height:100vh}.topbar{background:#060a12;border-bottom:1px solid var(--border);flex-shrink:0}.topbar-row1{padding:0 20px;display:flex;align-items:center;height:42px;gap:16px}.logo{display:flex;flex-direction:column;gap:1px}.logo-main{color:var(--gold);font-weight:600;font-size:11px;letter-spacing:3px;text-transform:uppercase}.logo-sub{color:var(--dim);font-size:9px;letter-spacing:1.5px;text-transform:uppercase}.topbar-divider{width:1px;height:24px;background:var(--border2)}.studio-name{color:var(--muted);font-size:10px;letter-spacing:1px}.topbar-row2{overflow:hidden}.tabs{display:flex;align-items:stretch;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 0 0 16px;height:40px;min-width:0}.tabs::-webkit-scrollbar{display:none}.tab-section-label{display:flex;align-items:center;padding:0 10px 0 4px;font-size:9px;font-family:var(--font-ui);letter-spacing:2px;text-transform:uppercase;color:var(--dim);white-space:nowrap;-webkit-user-select:none;user-select:none}.tab-section-divider{width:1px;height:24px;background:var(--border2);align-self:center;margin:0 8px;flex-shrink:0}.tab-btn{display:flex;align-items:center;gap:6px;padding:0 16px;height:40px;cursor:pointer;font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:1px;border:none;background:none;border-bottom:2px solid transparent;white-space:nowrap;transition:color .15s,border-color .15s,opacity .15s;margin-bottom:-1px}.tab-num{font-size:9px;font-weight:400;letter-spacing:.5px;opacity:.6}.tab-label{font-weight:600}.tab-btn-output{color:var(--dim)}.tab-btn-output:hover{color:#4a9eff;opacity:.8}.tab-btn-output.active{color:#4a9eff;border-bottom-color:#4a9eff}.tab-btn-output.active .tab-num{color:#4a9eff;opacity:.7}.tab-btn-input{color:var(--dim)}.tab-btn-input:hover{color:#e07c3c;opacity:.8}.tab-btn-input.active{color:#e07c3c;border-bottom-color:#e07c3c}.tab-btn-input.active .tab-num{color:#e07c3c;opacity:.7}.tab-btn-utility{color:var(--dim);font-style:italic;font-size:10px;font-weight:400;letter-spacing:.5px}.tab-btn-utility:hover{color:var(--muted)}.tab-btn-utility.active{color:var(--muted);border-bottom-color:var(--border2)}.tab-badge{background:var(--red);color:#fff;font-size:8px;font-weight:600;padding:1px 4px;border-radius:8px;min-width:14px;text-align:center}.content{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 24px;min-height:0}.content::-webkit-scrollbar{width:6px}.content::-webkit-scrollbar-track{background:var(--bg2)}.content::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.subtabs{display:flex;gap:2px;margin-bottom:20px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:3px;width:fit-content}.subtab-btn{padding:5px 14px;font-size:10px;font-family:var(--font-ui);letter-spacing:.8px;text-transform:uppercase;color:var(--muted);background:none;border:none;border-radius:4px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:5px}.subtab-btn:hover{color:var(--text);background:var(--bg3)}.subtab-btn.active{color:var(--gold);background:var(--bg4)}.section-title{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.section-desc{font-size:10px;color:var(--muted);margin-bottom:16px;line-height:1.6;font-family:var(--font-body)}.card{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:16px;margin-bottom:16px}.card-title{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:6px}table{width:100%;border-collapse:collapse;font-size:11px}thead th{background:var(--bg3);padding:8px 12px;text-align:left;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap}thead th.num{text-align:right}tbody tr{border-bottom:1px solid var(--border)}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--bg2)}tbody td{padding:7px 12px;color:var(--text);font-size:11px}tbody td.num{text-align:right;font-family:var(--font-ui)}tbody td.muted{color:var(--muted);font-size:10px}tbody td.unmapped{color:var(--amber)}tbody tr.total-row td{background:var(--bg3);font-weight:600;color:var(--gold);border-top:1px solid var(--border2)}.field-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.field-label{font-size:10px;color:var(--muted);width:180px;flex-shrink:0;letter-spacing:.5px}input[type=text],select{background:var(--bg3);border:1px solid var(--border2);border-radius:4px;color:var(--text);font-family:var(--font-ui);font-size:11px;padding:5px 10px;outline:none;transition:border-color .15s}input[type=text]:focus,select:focus{border-color:var(--gold)}input[type=text]{min-width:200px}select{min-width:220px;cursor:pointer}select option{background:var(--bg3)}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-family:var(--font-ui);font-size:10px;letter-spacing:.8px;text-transform:uppercase;border-radius:4px;border:none;cursor:pointer;transition:all .15s}.btn-primary{background:var(--gold);color:#0b0f1a;font-weight:600}.btn-primary:hover{background:var(--gold2)}.btn-primary:disabled{background:var(--dim);color:var(--muted);cursor:not-allowed}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border2)}.btn-ghost:hover{color:var(--text);border-color:var(--muted)}.btn-danger{background:transparent;color:var(--red);border:1px solid var(--red)}.btn-danger:hover{background:var(--red);color:#fff}.upload-zone{border:1px dashed var(--border2);border-radius:6px;padding:32px;text-align:center;cursor:pointer;transition:all .15s;position:relative}.upload-zone:hover,.upload-zone.dragover{border-color:var(--gold);background:var(--bg3)}.upload-zone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.upload-icon{font-size:24px;margin-bottom:8px;color:var(--dim)}.upload-label{font-size:11px;color:var(--muted)}.upload-sub{font-size:9px;color:var(--dim);margin-top:4px;letter-spacing:.5px}.alert{padding:10px 14px;border-radius:4px;font-size:10px;margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;line-height:1.5}.alert-info{background:#4a9eff14;border:1px solid rgba(74,158,255,.2);color:var(--blue)}.alert-success{background:#4caf7d14;border:1px solid rgba(76,175,125,.2);color:var(--green)}.alert-warn{background:#e09a3c14;border:1px solid rgba(224,154,60,.2);color:var(--amber)}.alert-error{background:#e05c5c14;border:1px solid rgba(224,92,92,.2);color:var(--red)}.pill{display:inline-block;padding:2px 7px;border-radius:10px;font-size:9px;letter-spacing:.5px;font-weight:500}.pill-green{background:#4caf7d1f;color:var(--green);border:1px solid rgba(76,175,125,.25)}.pill-amber{background:#e09a3c1f;color:var(--amber);border:1px solid rgba(224,154,60,.25)}.pill-red{background:#e05c5c1f;color:var(--red);border:1px solid rgba(224,92,92,.25)}.pill-dim{background:#4a5a7026;color:var(--muted);border:1px solid var(--border2)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.spinner{width:16px;height:16px;border:2px solid var(--border2);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-row{display:flex;align-items:center;gap:10px;padding:24px;color:var(--muted);font-size:10px}.empty-state{padding:48px 24px;text-align:center;color:var(--dim)}.empty-state-icon{font-size:28px;margin-bottom:10px}.empty-state-text{font-size:11px;color:var(--muted);margin-bottom:4px}.empty-state-sub{font-size:10px;color:var(--dim)}.dash-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:24px}.dash-tab-btn{display:flex;align-items:center;gap:8px;padding:0 20px;height:44px;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:var(--font-ui);font-size:10px;letter-spacing:1px;color:var(--dim);white-space:nowrap;transition:color .15s,border-color .15s;margin-bottom:-1px}.dash-tab-btn:hover{color:var(--muted)}.dash-tab-btn.active{color:var(--text);border-bottom-color:#4a9eff}.dash-tab-num{font-size:9px;color:var(--dim);letter-spacing:.5px}.dash-tab-btn.active .dash-tab-num{color:#4a9eff}.dash-tab-label{font-weight:600;text-transform:uppercase;letter-spacing:1.5px}.dash-subtabs{display:flex;gap:4px;margin-bottom:20px;position:sticky;top:0;z-index:10;background:var(--bg);padding:8px 0;border-bottom:1px solid var(--border)}.dash-subtab-btn{padding:6px 16px;border-radius:20px;border:1px solid var(--border2);background:transparent;color:var(--muted);font-family:var(--font-body);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.dash-subtab-btn:hover{color:var(--text);border-color:var(--muted)}.dash-subtab-btn.active{background:var(--green);border-color:var(--green);color:#0b0f1a;font-weight:600}
