
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
input[type=number]{-moz-appearance:textfield;}
select option{background-color:#2C2C2A;color:#E8E8E4;}
.table-wrap::-webkit-scrollbar{height:6px}.table-wrap::-webkit-scrollbar-track{background:transparent}.table-wrap::-webkit-scrollbar-thumb{background:rgba(232,232,228,.12);border-radius:3px}.table-wrap::-webkit-scrollbar-thumb:hover{background:rgba(232,232,228,.25)}.table-wrap::-webkit-scrollbar-corner{background:var(--surface)}#catalogSearch .filter-row::-webkit-scrollbar{height:0}@keyframes pulse-once{0%{opacity:1}50%{opacity:.5}100%{opacity:1}}
:root{--bg:#1A1A18;--surface:#242422;--surface2:#2C2C2A;--text:#E8E8E4;--text2:#A0A098;--text3:#6E6E68;--text4:rgba(232,232,228,.3);--border:rgba(255,255,255,.10);--border2:rgba(255,255,255,.15);--radius:8px;--rlg:12px;--t-xs:11px;--t-sm:12px;--t-base:13px;--t-md:14px;--t-lg:15px;--t-xl:20px;--sp-xs:4px;--sp-sm:8px;--sp-md:12px;--sp-lg:16px;--sp-xl:24px;--positive:#63C132;--negative:#C75B82;--accent:#358600;--accent-brand:#8F2D56;--tap-min:32px;--warning:#FFBC42;--accent2:#4DB8E0;--sim-primary:28px;--sim-secondary:20px;--sim-label:15px;--sim-sublabel:14px;--sim-tertiary:14px;--label-high:rgba(255,255,255,.82);--label-mid:rgba(255,255,255,.65);--label-low:rgba(255,255,255,.50);--lime-moss:#8ABC40;--amber-glow:#FF9D00;--gold:#FFD400;--sage-green:#749E35;--cinnabar:#D4513B;--cinnabar-tint-bg:rgba(212,81,59,0.08);--amber:#FBAF00;--lemon:#FFD639;--moss:#BFC540;--olive:#7FB446;--forest:#3FA34D;--mint:#9EE37D;--mint-tint-bg:rgba(158,227,125,0.12);--mint-tint-border:rgba(158,227,125,0.24);--sand-parchment:#EDEDE9;--sand-bone:#D6CCC2;--sand-almond-cream:#E3D5CA;--sand-almond-silk:#D5BDAF;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;}

/* Auth gate styles */
#auth-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;flex-direction:column;gap:16px;}
#auth-gate .loading{font-size:14px;color:var(--text2);}
#app-root{display:none;opacity:0;transition:opacity .4s ease;}
#app-root.loaded{opacity:1;}

.wrap{max-width:760px;margin:0 auto;padding:2.5rem 1.5rem 3rem;}
.badge{display:inline-block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--negative);border:1px solid rgba(199,91,130,.25);background:rgba(199,91,130,.08);padding:4px 10px;border-radius:4px;margin-bottom:16px;}
h1{font-size:24px;font-weight:600;letter-spacing:-0.01em;color:var(--text);margin:0 0 20px 0;}
.sub{font-size:14px;color:var(--text2);margin-bottom:2rem;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:0;position:relative;}
.tabs button{background:none;border:none;border-bottom:2px solid transparent;color:var(--text3);font-size:15px;font-weight:500;padding:12px 20px;cursor:pointer;transition:color .2s ease,border-color .2s ease;white-space:nowrap;font-family:inherit;}
.tabs button:hover{color:var(--text2);}
.tabs button.on{color:var(--text);border-bottom-color:transparent;}
.tab-pane{opacity:0;transform:translateY(6px);transition:opacity .25s ease,transform .25s ease;padding-top:24px;}
.tab-pane.active{opacity:1;transform:translateY(0);}
input[type="range"]{height:4px;-webkit-appearance:none;appearance:none;background:var(--surface2);border-radius:2px;outline:none;}
input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--text);cursor:pointer;}
.sg{font-size:11px;padding:5px 12px;border-radius:6px;cursor:pointer;font-family:inherit;border:.5px solid var(--border2);background:none;}
.sg.on{color:#fff;border-color:transparent;}
textarea{resize:vertical;overflow:auto;min-height:40px;}
.dn{width:100%;padding:12px 16px;font-size:14px;font-family:inherit;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text);outline:none;min-height:120px;max-height:300px;overflow-y:auto;line-height:1.6;resize:none;transition:border-color .15s ease;box-sizing:border-box;}
.dn:focus{border-color:var(--border2);box-shadow:0 0 0 2px rgba(143,45,86,.15);}
.dn::placeholder{color:var(--text3);}
button{min-height:32px;}
.kpi{background:var(--surface2);border-radius:var(--radius);padding:1rem;text-align:center;}
.kpi-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text2);margin-bottom:2px;}
.kpi-value{font-size:20px;font-weight:500;font-variant-numeric:tabular-nums;}
.section-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin-bottom:8px;margin-top:16px;}
.th{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text2);border-bottom:.5px solid var(--border);}
.btn-sm{font-size:11px;padding:4px 10px;border-radius:4px;cursor:pointer;background:none;border:.5px solid var(--border);color:var(--text2);font-family:inherit;min-height:32px;display:inline-flex;align-items:center;}
@media(max-width:600px){.kpi-grid{grid-template-columns:1fr !important;}}
.comp-row:hover td{background:rgba(255,255,255,.04) !important;}
.comp-row:hover td:first-child{background:rgba(44,44,42,1) !important;}
.cat-row:hover{background:var(--surface2) !important;}
.cat-row.cat-selected{background:rgba(255,255,255,0.10) !important;}
.cat-row.cat-selected:hover{background:var(--surface2) !important;}
.cat-drag-ghost{opacity:0.3;background:var(--surface2) !important;}
.cat-drag-chosen{background:rgba(255,255,255,0.10) !important;box-shadow:0 2px 8px rgba(0,0,0,0.3);}
.drag-handle:hover{color:var(--text2) !important;}
.drag-handle:active{cursor:grabbing;}
.kpi-scroll::-webkit-scrollbar{width:4px;height:4px;background:transparent}
.kpi-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
.kpi-scroll::-webkit-scrollbar-corner{background:transparent}
.cm-scroll{scrollbar-width:thin;scrollbar-color:rgba(232,232,228,.12) transparent}
.cm-scroll::-webkit-scrollbar{width:6px;height:6px}
.cm-scroll::-webkit-scrollbar-track{background:transparent}
.cm-scroll::-webkit-scrollbar-thumb{background:rgba(232,232,228,.12);border-radius:3px}
.cm-scroll::-webkit-scrollbar-thumb:hover{background:rgba(232,232,228,.25)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes guideSlideIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes importPulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(99,193,50,.4)}50%{opacity:.85;box-shadow:0 0 0 6px rgba(99,193,50,0)}}
@keyframes dotBounce{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-3px)}}
input[style*="border-bottom:1px dashed"]:hover{border-bottom-color:rgba(255,255,255,.4) !important;}
input[style*="border-bottom:1px dashed"]:focus{border-bottom-style:solid !important;border-bottom-color:rgba(99,193,50,.5) !important;box-shadow:none !important;}
/* α.7.2.2 Ship A: gold-standard hover system — Tier 1 text / Tier 2 ledger / Tier 3 interactive. Pure CSS :hover, instant reveal, token-compliant. Legacy .kpi-info/.kpi-tooltip + data-hover-delay deleted in α.7.2.2.A.1. */
.hov-trigger{position:relative}
.hov-pop{display:none;position:fixed;z-index:9999;background:var(--surface);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:14px 16px;font-size:13px;line-height:1.55;color:rgba(255,255,255,.78);box-shadow:0 8px 24px rgba(0,0,0,.4);text-transform:none;letter-spacing:0;font-weight:400;text-align:left;max-width:calc(100vw - 32px);scrollbar-width:thin;scrollbar-color:rgba(232,232,228,.12) transparent}
.hov-pop::before{content:'';position:absolute;inset:-12px;background:transparent;z-index:-1;pointer-events:auto}
.hov-pop::-webkit-scrollbar{width:6px;height:6px}
.hov-pop::-webkit-scrollbar-track{background:transparent}
.hov-pop::-webkit-scrollbar-thumb{background:rgba(232,232,228,.12);border-radius:3px}
.hov-pop::-webkit-scrollbar-thumb:hover{background:rgba(232,232,228,.25)}
.hov-pop.hov-text{width:340px;white-space:normal;pointer-events:auto;max-height:70vh;overflow-y:auto}
.hov-pop.hov-ledger{width:420px;pointer-events:auto;max-height:80vh;overflow-y:auto}
.hov-pop.hov-interactive{width:480px;pointer-events:auto}
.hov-pop.hov-below{top:calc(100% + 6px);left:50%;transform:translateX(-50%)}
.hov-pop.hov-above{bottom:calc(100% + 6px);left:50%;transform:translateX(-50%)}
.hov-pop.hov-right{left:calc(100% + 6px);top:0}
.hov-pop.hov-anchor-right{right:0;left:auto;transform:none}
.hov-trigger:hover > .hov-pop,.hov-pop:hover{display:block}
.hov-pop .hov-row{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}
.hov-pop .hov-row-credit{color:var(--lime-moss)}
.hov-pop .hov-row-debit{color:var(--cinnabar)}
.hov-pop .hov-divider{border-top:.5px solid rgba(255,255,255,.12);margin:6px 0}
.hov-pop .hov-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--label-mid);margin-bottom:6px;margin-top:8px}
.hov-pop .hov-net{font-size:15px;font-weight:600;color:var(--label-high);margin-top:4px}
.hov-pop .hov-tip-label{display:block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--label-mid);margin-top:10px;margin-bottom:4px}
.hov-pop .hov-tip-label:first-child{margin-top:0}
.hov-pop .hov-tip-formula{display:block;white-space:pre-wrap;overflow-wrap:break-word;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;background:rgba(255,255,255,.04);padding:2px 6px;border-radius:3px;color:rgba(255,255,255,.85)}
.hov-pop .hov-tip-legend{margin-top:8px;display:flex;flex-direction:column;gap:3px}
.hov-pop .hov-tip-legend .lr{display:flex;gap:10px;align-items:baseline}
.hov-pop .hov-tip-legend .sym{flex:0 0 auto;min-width:52px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;color:var(--label-high);white-space:nowrap}
.hov-pop .hov-tip-legend .def{flex:1;min-width:0;font-size:12px;color:var(--label-mid);overflow-wrap:break-word}
.hov-pop .hov-ledger-what{display:block;font-size:13px;font-weight:500;color:var(--label-high);line-height:1.5;margin-bottom:12px;padding-bottom:10px;border-bottom:.5px solid rgba(255,255,255,.12)}
.hov-explainer-group{display:inline-block}
.hov-explainer-trigger{display:inline-block;font-size:11px;color:rgba(255,255,255,.30);cursor:default;margin-left:6px;vertical-align:middle;transition:color .15s}
.hov-explainer-group:hover .hov-explainer-trigger{color:rgba(255,255,255,.65)}
.hov-explainer-content{display:none;margin-top:8px;padding-top:8px;border-top:.5px solid rgba(255,255,255,.08)}
.hov-explainer-group:hover .hov-explainer-content{display:block}
@media(max-width:720px){.capsim-grid{grid-template-columns:1fr !important}.capsim-hero-type{flex-direction:column !important;align-items:flex-start !important;gap:16px !important}.capsim-hero-cards{grid-template-columns:1fr !important}[style*="grid-template-columns:repeat(4,minmax(0,1fr))"]{grid-template-columns:1fr !important}}@media(max-width:1100px){.capsim-hero-cards{grid-template-columns:1fr !important}.capsim-hero-cards [style*="white-space:nowrap"]{white-space:normal !important}[style*="grid-template-columns:repeat(4,minmax(0,1fr))"]{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}.capsim-hero-type{overflow-x:hidden}
