:root{--canvas:#fbfbfa;--surface:#fff;--ink:#2f3437;--muted:#686762;--line:#eaeaea;--wash:#f4f3f0;--green:#346538;--green-wash:#edf3ec;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI','Helvetica Neue',sans-serif;--mono:Consolas,'SF Mono',monospace}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--canvas);font:14px/1.6 var(--sans)}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button,summary,select{cursor:pointer}button:disabled{cursor:wait;opacity:.5}a{color:inherit;text-decoration:none}button{transition:background .15s,transform .15s}button:active:not(:disabled){transform:scale(.98)}:focus-visible{outline:2px solid var(--green);outline-offset:4px}button:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px}[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:225px;background:#f6f5f2;border-right:1px solid var(--line);padding:34px 22px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;font-size:23px;font-weight:650;letter-spacing:-1px}.brand-mark{background:var(--ink);color:white;width:31px;height:34px;display:grid;place-items:center;font:italic bold 31px var(--serif);border-radius:6px;padding-bottom:5px}.sidebar-label{margin:48px 12px 12px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}nav{display:grid;gap:6px}.nav-item{display:flex;justify-content:space-between;border:0;background:transparent;border-radius:6px;padding:11px 12px;text-align:left;color:var(--muted)}.nav-item span{font:10px var(--mono);align-self:center;color:#85847e}.nav-item.active{background:#e8e7e2;color:var(--ink);font-weight:600}.nav-item:hover{background:#eeede8}.sidebar-note{margin-top:auto;padding:24px 10px 0;border-top:1px solid #e3e2dd}.sidebar-note p{font-size:13px;color:var(--muted);line-height:1.65}.sidebar-note small{display:block;font-size:11px;color:var(--muted);max-width:160px}.status{font-size:11px;color:var(--green)}.status:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:7px}.shell{margin-left:225px}.topbar{height:76px;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.topbar strong{font-weight:500;color:var(--ink);margin-left:5px}.period{font-family:var(--mono);font-size:11px}main{max-width:1520px;margin:auto;padding:40px 48px 28px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:35px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-weight:600;margin:0 0 10px}h1{font:normal clamp(30px,2.8vw,43px)/1.15 var(--serif);letter-spacing:-1.4px;margin:0 0 13px}h2,h3,h4,p{margin-top:0}.page-heading p:not(.eyebrow){margin-bottom:0;color:var(--muted);font-size:13px}.mode-badge,.tag{white-space:nowrap;display:inline-block;color:var(--green);background:var(--green-wash);padding:5px 9px;font-size:10px;border-radius:4px}.mode-badge{margin-bottom:4px}.neutral{background:var(--wash);color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0 28px;margin-bottom:30px;gap:20px}.metrics>div{padding-right:16px;border-right:1px solid var(--line)}.metrics>div:last-child{border-right:0}.metrics span{font-size:11px;color:var(--muted)}.metrics strong{display:block;font-size:30px;letter-spacing:-1.1px;font-weight:500;line-height:1.35;margin:6px 0}.metrics small{font-size:10px;color:var(--muted)}.charts{display:grid;grid-template-columns:1.9fr 1fr;gap:20px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:23px 25px 16px;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.panel-heading h2,.panel-heading h3{font-size:13px;font-weight:600;margin-bottom:3px}.panel-heading p{font-size:10px;color:var(--muted);margin-bottom:0}.chart{height:193px}.chart svg{width:100%;height:100%;overflow:visible}.chart text{font-family:var(--sans);font-size:10px;fill:var(--muted)}.chart .gridline{stroke:#efefec;stroke-width:1}.chart .line{fill:none;stroke:#607d63;stroke-width:2.4}.chart .area{fill:#edf3ec}.chart .point{fill:#607d63}.channel-chart{display:grid;gap:18px;margin-top:25px}.channel-row>div{display:flex;justify-content:space-between;font-size:11px;margin-bottom:7px}.channel-row strong{font:11px var(--mono);font-weight:400}.bar-track{height:5px;background:var(--wash)}.bar{height:5px;background:#8eaa91}.chart-caption{font-size:10px;color:var(--muted);margin:24px 0 0}.query-section{margin-top:42px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 18px}.section-heading h2{font:normal 28px/1.2 var(--serif);letter-spacing:-.6px;margin-bottom:0}.section-heading .eyebrow{margin-bottom:6px}.section-heading>span{font-size:10px;margin-bottom:3px}.workbench{display:grid;grid-template-columns:1fr 1.1fr;border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}.compose,.review{padding:25px;min-width:0}.compose{border-right:1px solid var(--line)}label{display:block;font-size:12px;font-weight:600;margin-bottom:10px}textarea{display:block;width:100%;padding:13px 14px;border:1px solid #d7d7d1;background:#fbfbfa;border-radius:5px;resize:vertical;color:var(--ink);font-size:13px;line-height:1.6}textarea::placeholder{color:#74736e}.example-row{margin:10px 0}select{width:100%;background:white;color:var(--muted);border:1px solid var(--line);padding:8px;border-radius:4px;font-size:11px}.mode-note{font-size:10px;color:var(--muted);line-height:1.6;margin:16px 0}.primary{background:#272c29;color:#fff;border:1px solid #272c29;border-radius:5px;padding:10px 15px;display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:11px;font-weight:600;min-height:39px}.primary:hover:not(:disabled){background:#414842}.primary span{font-size:16px;font-weight:400;line-height:1}.secondary{background:white;border:1px solid #d6d6d0;color:var(--ink);padding:8px 12px;border-radius:5px;font-size:11px}.secondary:hover{background:var(--wash)}.review-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.review-heading h3{font-size:12px;font-weight:600;margin:0}.empty{text-align:center;padding:27px 5px 12px}.empty-glyph{font:27px var(--mono);color:#9b9e96;display:block;margin-bottom:14px}.empty p{font-size:12px;margin-bottom:4px}.empty small{font-size:11px;color:var(--muted)}pre{max-height:185px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f6f3;padding:14px;font:11px/1.8 var(--mono);border-radius:4px;margin:12px 0}#explanation{font-size:11px;color:var(--muted);margin:16px 0 7px}.source-line{font-size:10px;color:var(--green);margin-bottom:5px}summary{font-size:11px;color:var(--muted)}details{margin:10px 0}.sql-editor{border-bottom:1px solid var(--line);padding-bottom:10px}.check{font-size:10px;font-weight:400;display:flex;align-items:center;gap:7px;margin:12px 0}#sql-input{font:11px/1.8 var(--mono)}.context-used{margin:18px 0}.context-used h4{font-size:10px;color:var(--muted);font-weight:500;margin-bottom:7px}.context-used ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:5px}.context-used li{font-size:10px;background:var(--wash);padding:4px 7px;border-radius:3px}.error{font-size:12px;color:#9f2f2d;background:#fdebec;padding:12px 14px;border-radius:5px;margin:16px 0 0}.muted{color:var(--muted)}.results{margin-top:20px;border:1px solid var(--line);border-radius:8px;padding:22px;background:white}.table-wrap{overflow-x:auto;border-radius:5px}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}th{font-size:10px;letter-spacing:.3px;font-weight:500;background:#f6f6f3;color:var(--muted);white-space:nowrap}td,th{padding:11px 14px;border-bottom:1px solid var(--line)}td{font-variant-numeric:tabular-nums}.row-status{font-size:10px;color:var(--green)}.row-status.rejected,.row-status.error{color:#9f2f2d;background:transparent;padding:0;margin:0}footer{display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted);margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.schema-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:35px 0 45px}.schema-grid section{border:1px solid var(--line);padding:25px;border-radius:8px;background:white}.schema-grid h2{font:20px var(--mono);margin-bottom:8px}.schema-grid p{font-size:12px;color:var(--muted)}.column{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font:12px var(--mono)}.column span:last-child{color:var(--muted);font-size:10px}.rules-list{display:grid;gap:0}.rule{padding:22px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:200px 1fr;gap:25px}.rule h3{font-size:13px;margin:0}.rule p{font-size:13px;color:var(--muted);max-width:640px;margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;top:-100px;left:20px;z-index:9;background:white;padding:10px}.skip:focus{top:10px}.view{animation:enter .35s ease-out}@keyframes enter{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){main{padding-top:54px}.charts{margin-top:36px}.chart{height:230px}.query-section{margin-top:48px}}
@media(max-width:1100px){.sidebar{width:190px;padding:30px 16px}.shell{margin-left:190px}.topbar{padding:0 28px}main{padding:32px 28px}.metrics{gap:12px}.metrics strong{font-size:25px}.charts{grid-template-columns:1.6fr 1fr}.panel{padding:20px 18px}.workbench{grid-template-columns:1fr 1fr}.compose,.review{padding:21px}.page-heading{align-items:flex-start;flex-direction:column;gap:14px}}
@media(max-width:800px){.sidebar{position:relative;width:auto;padding:20px 22px;border-right:0;border-bottom:1px solid var(--line);display:block}.brand{font-size:22px}.sidebar-label,.sidebar-note{display:none}nav{display:flex;gap:6px;margin-top:18px}.nav-item{padding:9px 10px;font-size:12px}.nav-item span{display:none}.shell{margin:0}.topbar{height:55px;padding:0 22px}main{padding:28px 22px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 15px}.metrics>div:nth-child(2){border-right:0}.metrics strong{font-size:29px}.charts{grid-template-columns:1fr}.channel-chart{margin-top:16px;gap:15px}.channels{padding-bottom:20px}.chart-caption{margin-top:18px}.workbench{grid-template-columns:1fr}.compose{border-right:0;border-bottom:1px solid var(--line)}.empty{padding-bottom:20px}.query-section{margin-top:32px}.schema-grid{grid-template-columns:1fr}.rule{grid-template-columns:1fr;gap:8px}footer{flex-direction:column;gap:5px}h1{font-size:34px;letter-spacing:-1px}.section-heading>span{display:none}}
.inference-controls{margin:14px 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.inference-controls>label{font-size:11px;margin-bottom:5px}.inference-controls .check{margin:10px 0 0;font-weight:400}.lab-panel{margin-top:22px}#ai-status{font-size:12px;color:var(--muted);margin-bottom:28px}#generation-note{margin-bottom:0}#ai-provenance .rule{grid-template-columns:180px 1fr}#inference-trace{font-size:10px}.sidebar nav{gap:5px}
@media(max-width:800px){nav{flex-wrap:wrap}.nav-item{font-size:11px}#ai-provenance .rule{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.dataset-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0;border-top:1px solid var(--line);margin:18px 0 8px}.dataset-strip strong{font-size:13px}.dataset-strip p{font-size:11px;color:var(--muted);margin:3px 0 0}.import-privacy{font-size:12px;line-height:1.8;color:var(--muted);max-width:850px}.import-steps{list-style:none;display:flex;padding:0;margin:28px 0;gap:30px;border-bottom:1px solid var(--line)}.import-steps li{font:14px var(--mono);color:var(--muted);padding:0 0 13px}.import-steps li span{font:12px var(--sans);margin-left:8px}.import-steps li.active,.import-steps li[aria-current]{color:var(--green);border-bottom:2px solid var(--green)}.upload-panel{margin-top:20px;padding:26px}.upload-panel h2{font-size:17px;margin-bottom:10px}.upload-panel h3{font-size:14px;margin-top:25px}.upload-panel>p,.upload-panel section>p{font-size:12px;color:var(--muted);max-width:800px}.upload-panel input[type="file"]{display:block;margin:12px 0 22px;max-width:100%;font-size:13px}.upload-panel input[type="text"]{width:100%;border:1px solid #d7d7d1;border-radius:4px;padding:8px 10px;background:white;font-size:13px;min-height:36px}.mapping-grid,.import-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;margin:24px 0}.mapping-grid label,.import-options label{font-size:12px;margin-bottom:7px}.mapping-grid select,.import-options select{min-height:36px;font-size:12px}.assumptions{padding-left:20px;font-size:12px;line-height:1.85;color:var(--muted);margin:12px 0 22px}.import-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:22px}.upload-panel .check{align-items:flex-start;font-size:12px;line-height:1.7}.upload-panel .check input{margin-top:4px;flex-shrink:0}.upload-panel .table-wrap{max-height:300px;overflow:auto;margin:18px 0}#upload-error{white-space:pre-line}#upload-status-section{padding-top:8px;border-top:1px solid var(--line)}.upload-panel a{text-decoration:underline}.import-options{border-top:1px solid var(--line);padding-top:24px}
@media(max-width:800px){.dataset-strip{align-items:flex-start;flex-direction:column}.mapping-grid,.import-options{grid-template-columns:1fr}.import-steps{gap:16px}.import-steps li span{display:block;margin:7px 0 0;font-size:11px}.upload-panel{padding:20px}.period{max-width:55%;text-align:right;font-size:10px}.import-actions{align-items:stretch;flex-direction:column}.import-actions button{justify-content:center}}
