:root{--ink: #20383b;--muted: #52606d;--line: #dfe4ea;--surface: #ffffff;--page: #f7f9fb;--accent: #1f6f78;--danger: #a4262c}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5;background:var(--page)}button{border:1px solid var(--line);border-radius:8px;padding:.4rem .85rem;color:var(--ink);font:inherit;background:var(--surface);cursor:pointer}button:hover:not(:disabled){background:#eef2f6}button:disabled{color:var(--muted);cursor:default;opacity:.6}input,textarea,select{border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem;color:var(--ink);font:inherit;background:var(--surface)}.visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);width:1px;height:1px;white-space:nowrap}.form-error{margin:.5rem 0;color:var(--danger)}.app-shell{display:grid;grid-template-rows:auto 1fr;min-height:100vh}.app-header{display:flex;gap:1.25rem;align-items:center;border-bottom:1px solid var(--line);padding:.7rem 1.25rem;background:var(--surface)}.app-name{font-size:1.05rem;font-weight:700;letter-spacing:.02em}.app-header nav{display:flex;gap:.75rem}.app-header nav a{border-radius:8px;padding:.3rem .6rem;color:var(--muted);text-decoration:none}.app-header nav a.active{color:var(--ink);background:#eef2f6}.app-header-right{display:flex;gap:.7rem;align-items:center;margin-left:auto}.app-user{color:var(--muted);font-size:.9rem}.app-loading{display:grid;min-height:100vh;place-items:center;color:var(--muted)}.ask-page,.saved-page{display:grid;gap:1.25rem;align-content:start;width:min(72rem,100%);margin:0 auto;padding:1.5rem 1.25rem 3rem}.ask-form,.login-form{display:grid;gap:.75rem;border:1px solid var(--line);border-radius:10px;padding:1.1rem;background:var(--surface)}.ask-form label,.login-form label{display:grid;gap:.3rem}.ask-form button,.login-form button{justify-self:start}.login-page{display:grid;min-height:100vh;place-items:center;padding:1.5rem}.login-form{width:min(24rem,100%)}.login-form h1{margin:0;font-size:1.2rem}.job-progress{border:1px solid var(--line);border-radius:10px;padding:.9rem 1.1rem;background:var(--surface)}.job-progress h2{margin:0 0 .5rem;color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.job-progress ol{display:grid;gap:.2rem;margin:0;padding-left:1.1rem}.job-progress li[data-status=failed]{color:var(--danger)}.report-actions{display:flex;gap:.7rem;align-items:center}.saved-list{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}.saved-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.75rem;align-items:center;border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;background:var(--surface)}.saved-list-title{font-weight:600}.saved-list-meta{color:var(--muted);font-size:.85rem}.saved-list-actions{display:flex;gap:.4rem}.rebind-required{border:1px solid #e3c08a;border-radius:10px;padding:.9rem 1.1rem;background:#fdf6e9}.rebind-required h2{margin:0 0 .35rem;font-size:1rem}@media(max-width:640px){.saved-list li{grid-template-columns:minmax(0,1fr)}}.unsupported-plan-details{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.3rem .55rem;margin:0;text-align:left}.unsupported-plan-details dt{color:inherit;font-weight:700}.unsupported-plan-details dd{min-width:0;margin:0;overflow-wrap:anywhere}.sankey-chart{display:grid;gap:.5rem;min-height:20rem}.sankey-chart svg{width:100%;min-height:20rem;overflow:visible}.sankey-nodes rect{fill:#20383b}.sankey-nodes text{fill:#20383b;font-size:.75rem;font-weight:700}.sankey-chart figcaption{color:#52606d;font-size:.82rem}.report-empty-state{display:grid;min-height:22rem;place-items:center;border:1px dashed #9ca9b5;border-radius:8px;padding:1rem;color:#52606d;background:#fbfcfd;text-align:center}.report-empty-state div{display:grid;gap:.45rem;max-width:28rem}.report-empty-state p{line-height:1.45}.report-unsupported-state,.report-fallback-state{border-color:#d89b72;color:#5b2f22;background:#fff6f2}.report-renderer,.rendered-report-header,.report-assumptions,.report-executed-sql,.report-widget-grid,.report-widget,.widget-heading{display:grid;gap:.85rem;min-width:0}.report-assumptions details>summary{cursor:pointer;list-style:revert;display:list-item;padding:.15rem 0;-webkit-user-select:none;user-select:none}.report-assumptions details>summary>h3{display:inline;margin:0}.report-assumptions details[open]>summary{margin-bottom:.5rem}.report-assumptions details>ul{margin-top:.4rem}.rendered-report-header{grid-template-columns:minmax(0,1fr) minmax(14rem,22rem);align-items:start;border-bottom:1px solid #e0e6ed;padding-bottom:1rem}.rendered-report-header p,.widget-heading p,.table-message,.chart-state,.kpi-comparison{color:#627180;font-size:.88rem}.rendered-report-header h2{margin-top:.2rem;color:#17202a;font-size:1.35rem;overflow-wrap:anywhere}.report-metadata{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.35rem .55rem;margin:0;border:1px solid #d8dee6;border-radius:8px;padding:.7rem;background:#fbfcfd;font-size:.82rem}.report-metadata dt{color:#627180;font-weight:700}.report-metadata dd{min-width:0;margin:0;overflow-wrap:anywhere}.report-filter-bar{display:grid;gap:.8rem;border:1px solid #d8dee6;border-radius:8px;padding:.85rem;background:#fbfcfd}.report-filter-heading{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;justify-content:space-between}.report-filter-heading h3{margin:0;color:#17202a;font-size:.95rem}.report-filter-reset{padding:.35rem .65rem;font-size:.82rem}.report-filter-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr));gap:.75rem}.report-filter-control{display:grid;gap:.35rem;min-width:0;margin:0;border:0;padding:0}.report-filter-control>span,.report-filter-control legend{color:#3d4b59;font-size:.82rem;font-weight:700}.report-filter-control select,.report-filter-control input[type=date],.report-filter-control input[type=number]{width:100%;min-width:0;border:1px solid #c6d2de;border-radius:6px;padding:.45rem .55rem;color:#17202a;background:#fff;font:inherit}.report-filter-options{align-content:start}.report-filter-options label{display:inline-flex;gap:.4rem;align-items:center;width:fit-content;color:#2c3a46;font-size:.88rem}.report-filter-range{grid-template-columns:repeat(2,minmax(0,1fr))}.report-filter-range legend{grid-column:1 / -1}.report-filter-range label{display:grid;gap:.3rem;min-width:0}.report-filter-range label span{color:#627180;font-size:.78rem;font-weight:700}.report-issues ul,.report-assumptions ul,.report-executed-sql ul,.report-widget-error ul{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.report-issues li,.report-assumptions li{border-left:3px solid #c68b3b;padding:.35rem 0 .35rem .6rem;color:#5b4322;background:#fff9ef}.report-issues .report-issue-error{border-left-color:#c65f3b;color:#5b2f22;background:#fff6f2}.report-executed-sql li{display:grid;gap:.7rem;border:1px solid #d8dee6;border-radius:8px;padding:.85rem;background:#fbfcfd}.executed-sql-heading{display:flex;flex-wrap:wrap;gap:.7rem;align-items:start;justify-content:space-between}.executed-sql-heading h4{margin:0;color:#17202a;font-size:.95rem}.executed-sql-heading p,.executed-sql-params{margin:.2rem 0 0;color:#627180;font-size:.82rem}.executed-sql-heading-actions{display:flex;align-items:center;gap:.5rem}.executed-sql-toggle{border:1px solid #c6d2de;border-radius:999px;padding:.2rem .7rem;background:#fff;color:#354556;font-size:.78rem;font-weight:600;cursor:pointer}.executed-sql-toggle:hover{background:#f1f5f9}.executed-sql-toggle:focus-visible{outline:2px solid #2a72b0;outline-offset:2px}.executed-sql-details{display:grid;gap:.5rem}.report-executed-sql pre{overflow-x:auto;margin:0;border:1px solid #d8dee6;border-radius:6px;padding:.75rem;background:#17202a;color:#f7fafc;font-size:.82rem;line-height:1.45;white-space:pre-wrap}.report-widget-grid{grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr));align-items:start}.report-widget{border:1px solid #d8dee6;border-radius:8px;padding:1rem;background:#fff}.kpi-card-widget{align-content:start}.kpi-value{display:flex;flex-wrap:wrap;gap:.35rem;align-items:baseline}.kpi-value span{color:#17202a;font-size:1.75rem;font-weight:800;line-height:1.1;overflow-wrap:anywhere}.kpi-value small{color:#52606d;font-size:.9rem;font-weight:700}.table-widget,.chart-widget,.note-widget,.report-widget-error{grid-column:1 / -1}.widget-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end}.table-scroll{max-width:100%;overflow-x:auto;border:1px solid #e0e6ed;border-radius:8px}.table-scroll table{width:100%;min-width:30rem;border-collapse:collapse;font-size:.9rem}.table-scroll th,.table-scroll td{border-bottom:1px solid #e8edf2;padding:.65rem .75rem;color:#2c3a46;text-align:left;vertical-align:top;overflow-wrap:anywhere}.table-scroll th{color:#3d4b59;background:#f4f7f9;font-size:.78rem;text-transform:uppercase}.table-scroll tr:last-child td{border-bottom:0}.table-scroll .numeric-cell{text-align:right;font-variant-numeric:tabular-nums}.empty-table-cell{color:#627180;text-align:center}.table-scroll th .table-header-content{display:flex;align-items:center;justify-content:space-between;gap:.3rem;min-width:0;position:relative}.table-scroll th.numeric-cell .table-header-content{justify-content:flex-end}.table-header-sort .sort-indicator{font-size:.65rem;opacity:.5}.table-header-sort.active .sort-indicator{opacity:1;color:#0d9488}.table-header-filter{position:relative}.table-filter-popover{position:absolute;top:calc(100% + 4px);right:0;background:#fff;border:1px solid #d1d8e0;border-radius:6px;box-shadow:0 8px 20px #0f172a1f;padding:.6rem;z-index:20;min-width:12rem;text-transform:none;font-size:.85rem;color:#1f2937}.table-filter-popover .filter-options{list-style:none;padding:0;margin:0 0 .5rem;max-height:14rem;overflow-y:auto}.table-filter-popover .filter-options li{padding:.15rem 0}.table-filter-popover .filter-options label{display:flex;align-items:center;gap:.4rem;cursor:pointer}.table-filter-popover .filter-range-row{display:flex;gap:.5rem;margin-bottom:.5rem}.table-filter-popover .filter-range-row label{flex:1;display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:#475569}.table-filter-popover .filter-range-row input{width:100%;padding:.3rem .4rem;border:1px solid #cbd5e1;border-radius:4px;font-size:.85rem}.table-filter-popover .filter-actions{display:flex;justify-content:flex-end;gap:.4rem}.table-filter-popover .filter-actions button{padding:.25rem .6rem;border:1px solid #cbd5e1;border-radius:4px;background:#fff;cursor:pointer;font-size:.8rem}.table-filter-popover .filter-actions button:last-child{background:#0d9488;color:#fff;border-color:#0d9488}.note-widget p{color:#2c3a46;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.chart-frame{position:relative;min-height:18rem;overflow:auto;border:1px solid #e0e6ed;border-radius:8px;padding:.75rem;background:#fbfcfd}.chart-container{min-width:20rem;min-height:16rem}.chart-state{display:grid;min-height:16rem;place-items:center;text-align:center}.chart-error{color:#5b2f22}.chart-empty-state{margin:.5rem 0 0;color:#52606d;text-align:center}.cohort-heatmap-widget{grid-column:1 / -1}.cohort-heatmap-legend{display:grid;grid-template-columns:auto minmax(8rem,18rem) auto;gap:.6rem;align-items:center;width:fit-content;margin:0 0 .75rem auto;color:#52606d;font-size:.82rem;font-variant-numeric:tabular-nums}.cohort-heatmap-gradient{height:.75rem;border:1px solid #cbd5df;border-radius:999px;background:linear-gradient(90deg,#1e62a714,#1e62a7)}.cohort-heatmap-scroll{max-width:100%;overflow-x:auto;border:1px solid #e0e6ed;border-radius:8px}.cohort-heatmap-table{width:100%;min-width:32rem;border-collapse:collapse}.cohort-heatmap-table th,.cohort-heatmap-table td{border-bottom:1px solid #e8edf2;padding:.55rem;color:#2c3a46;text-align:center}.cohort-heatmap-table th{background:#f4f7f9;color:#3d4b59;font-size:.78rem;text-transform:uppercase}.cohort-heatmap-table tbody th{text-align:left}.cohort-heatmap-empty{height:8rem;color:#627180;text-align:center}.report-widget-error{border-color:#c65f3b;color:#5b2f22;background:#fff6f2}.report-widget-title{margin:0 0 .75rem;color:#52606d;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.chart-widget{border:1px solid #dfe4ea;border-radius:8px;padding:1.1rem;background:#fff;box-shadow:0 1px 2px #20383b0f}.widget-card{border:1px solid #dfe4ea;border-radius:8px;padding:1rem;background:#fff}.widget-empty{padding:1rem;color:#52606d;font-size:.9rem;text-align:center}.sankey-widget{display:grid;gap:.5rem}.sankey-links path{fill:none;stroke:#7d8b99;stroke-opacity:.45}.executed-sql-toggle{display:inline-flex;align-items:center;gap:.35rem;border:1px solid #dfe4ea;border-radius:8px;padding:.3rem .7rem;color:#20383b;font-size:.8rem;background:#f1f4f7;cursor:pointer}.executed-sql-toggle:hover{background:#e3e8ee}.sql-block{display:grid;gap:.4rem}.sql-block-actions{display:flex;justify-content:flex-end}.executed-sql-fallback{margin:0;overflow-x:auto;border:1px solid #dfe4ea;border-radius:8px;padding:.75rem;color:#20383b;font-size:.82rem;line-height:1.45;background:#f8fafc}
