.layout{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100%}.layout__sidebar{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-5) var(--space-4);border-right:var(--border-width) solid var(--color-border);background:var(--color-surface)}.layout__brand{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);text-decoration:none}.layout__nav{display:flex;flex-direction:column;gap:var(--space-1)}.layout__link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);text-decoration:none;transition:background var(--transition-fast)}.layout__link:hover{background:var(--color-accent-subtle);color:var(--color-accent-text)}.layout__link--active{background:var(--color-accent-subtle);color:var(--color-accent-text);font-weight:var(--font-weight-medium);box-shadow:inset 3px 0 0 var(--color-accent)}.layout__main{display:flex;flex-direction:column;min-width:0}.layout__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:var(--border-width) solid var(--color-border);background:var(--color-surface)}.layout__user{font-size:var(--font-size-sm)}.layout__actions{display:flex;gap:var(--space-2)}.layout__content{flex:1;padding:var(--space-6) var(--space-5)}@media(max-width:40rem){.layout{grid-template-columns:1fr}.layout__sidebar{border-right:none;border-bottom:var(--border-width) solid var(--color-border)}.layout__nav{flex-direction:row;flex-wrap:wrap}}.charts__header{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between}.charts__header-actions{display:flex;gap:var(--space-2)}.charts__hint,.charts__totals{color:var(--color-text-muted);font-size:var(--font-size-sm)}.charts__layout{display:grid;gap:var(--space-4);grid-template-columns:16rem 1fr;margin-top:var(--space-4)}.charts__list{list-style:none;margin:0;max-height:40rem;overflow-y:auto;padding:0}.charts__list-item{background:transparent;border:none;border-bottom:var(--border-width) solid var(--color-border);cursor:pointer;display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2);text-align:left;width:100%}.charts__list-item--active{background:var(--color-surface-raised)}.charts__list-title{color:var(--color-text);flex:1 1 100%;font-size:var(--font-size-sm)}.charts__state,.charts__badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);padding:0 var(--space-2)}.charts__state--raw{background:var(--color-accent-subtle);color:var(--color-accent-text)}.charts__state--validated,.charts__state--approved{background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);color:var(--color-text-muted)}.charts__state--failed,.charts__state--unusable{background:var(--color-danger-subtle);border:var(--border-width) solid var(--color-danger-border);color:var(--color-danger)}.charts__badge{background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);color:var(--color-text-muted)}.charts__badge--error{background:var(--color-danger-subtle);border-color:var(--color-danger-border);color:var(--color-danger)}.charts__empty{color:var(--color-text-muted)}.charts__detail-header{align-items:baseline;display:flex;gap:var(--space-3);justify-content:space-between}.charts__caption{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-sm);white-space:pre-line}.charts__findings{background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);margin-block:var(--space-3);padding:var(--space-3)}.charts__findings--clean{color:var(--color-text-muted);font-size:var(--font-size-sm)}.charts__findings h3{font-size:var(--font-size-md);margin:0 0 var(--space-2)}.charts__findings ul{margin:0;padding-left:var(--space-5)}.charts__finding--error{color:var(--color-danger)}.charts__finding-check{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);padding:0 var(--space-2)}.charts__totals-table{border-collapse:collapse;font-size:var(--font-size-sm);margin-block:var(--space-3)}.charts__totals-table th,.charts__totals-table td{border-bottom:var(--border-width) solid var(--color-border);padding:var(--space-1) var(--space-3);text-align:left}.charts__side-by-side{display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr}.charts__image{margin:0}.charts__image img{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);max-width:100%}.charts__image figcaption{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:var(--space-1)}.charts__grid{border-collapse:collapse;width:100%}.charts__cell{background:var(--color-accent);border:1px solid var(--color-border);color:var(--color-text-inverted);cursor:pointer;font-size:.6rem;padding:0;width:100%;aspect-ratio:1}.charts__cell--flagged{outline:2px solid var(--color-danger);outline-offset:-2px}.charts__cell--manual{border:2px dashed var(--color-text)}.charts__cell-form,.charts__unusable{background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-4)}.charts__cell-form h3,.charts__unusable h3{font-size:var(--font-size-md);margin:0}.charts__cell-form label,.charts__unusable label{display:flex;flex-direction:column;font-size:var(--font-size-sm);gap:var(--space-1)}.concepts__header{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between}.concepts__hint,.concepts__totals{color:var(--color-text-muted);font-size:var(--font-size-sm)}.concepts__issues{background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);margin-block:var(--space-4);padding:var(--space-3) var(--space-4)}.concepts__issues--clean{color:var(--color-text-muted);font-size:var(--font-size-sm)}.concepts__issues h2{font-size:var(--font-size-md);margin:0 0 var(--space-2)}.concepts__issues ul{margin:0;padding-left:var(--space-5)}.concepts__issue-kind{background:var(--color-danger-subtle);border:var(--border-width) solid var(--color-danger-border);border-radius:var(--radius-sm);color:var(--color-danger);font-size:var(--font-size-xs);padding:0 var(--space-2)}.concepts__chapter{margin-block:var(--space-5)}.concepts__chapter-header{align-items:baseline;border-bottom:var(--border-width) solid var(--color-border);display:flex;gap:var(--space-3);justify-content:space-between;padding-bottom:var(--space-2)}.concepts__chapter-header h2{font-size:var(--font-size-lg);margin:0}.concepts__empty{color:var(--color-text-muted);font-size:var(--font-size-sm)}.concepts__list{list-style:none;margin:0;padding:0}.concepts__item{border-bottom:var(--border-width) solid var(--color-border);padding-block:var(--space-3)}.concepts__row{display:flex;gap:var(--space-4);justify-content:space-between}.concepts__row h3{font-size:var(--font-size-md);margin:0}.concepts__summary{margin:var(--space-1) 0}.concepts__meta,.concepts__prereqs{color:var(--color-text-muted);display:flex;flex-wrap:wrap;font-size:var(--font-size-sm);gap:var(--space-3);margin:var(--space-1) 0 0}.concepts__state{border-radius:var(--radius-full);font-size:var(--font-size-xs);padding:0 var(--space-2)}.concepts__state--draft{background:var(--color-accent-subtle);color:var(--color-accent-text)}.concepts__state--approved{background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);color:var(--color-text-muted)}.concepts__row-actions{display:flex;flex-direction:column;gap:var(--space-2);flex-shrink:0}.concepts__form{background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-4)}.concepts__form label{display:flex;flex-direction:column;font-size:var(--font-size-sm);gap:var(--space-1)}.dashboard__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--space-4);margin-top:var(--space-5)}.dashboard__card-title{font-size:var(--font-size-md);margin-bottom:var(--space-2)}.login{width:100%;max-width:22rem;padding:var(--space-6);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.login__topbar{display:flex;justify-content:flex-end;margin-bottom:var(--space-2)}.login__title{margin-bottom:var(--space-1)}.login__subtitle{margin-bottom:var(--space-5);font-size:var(--font-size-sm)}.login__submit{width:100%}.calls__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.calls__filters{display:flex;gap:var(--space-2)}.calls__filter{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-3)}.calls__filter--active{background:var(--color-surface-raised);border-color:var(--color-accent);color:var(--color-text)}.calls{border-collapse:collapse;margin-top:var(--space-3);width:100%}.calls th,.calls td{border-bottom:1px solid var(--color-border);padding:var(--space-2);text-align:left}.calls__detail-button{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;padding:var(--space-1) var(--space-2)}.calls__error{color:var(--color-danger, #c0392b)}.calls__text{background:var(--color-surface-raised);border-radius:var(--radius-sm);max-height:20rem;overflow:auto;padding:var(--space-3);white-space:pre-wrap;word-break:break-word}.badge--success{border-color:var(--color-accent)}.badge--error{color:var(--color-danger, #c0392b)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.settings__field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3);max-width:32rem}.settings__field select,.settings__field input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:var(--space-2)}.settings__field [aria-invalid=true]{border-color:var(--color-danger, #c0392b)}.settings__field-error{color:var(--color-danger, #c0392b);margin:0}.settings__actions{align-items:center;display:flex;gap:var(--space-3)}.settings__saved{color:var(--color-text-muted)}.settings__ping{border-left:3px solid var(--color-border);margin-top:var(--space-3);padding-left:var(--space-3)}.settings__ping--ok{border-left-color:var(--color-accent)}.settings__ping--error{border-left-color:var(--color-danger, #c0392b)}:root{--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 999px;--sidebar-width: 15rem;--border-width: 1px;--shadow-sm: 0 1px 2px rgb(0 0 0 / 12%);--shadow-md: 0 4px 12px rgb(0 0 0 / 16%);--transition-fast: .12s ease}:root,[data-theme=light]{--color-bg: #f6f7f9;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-border: #d7dbe0;--color-text: #14181d;--color-text-muted: #5a636e;--color-text-inverted: #ffffff;--color-accent: #1b5fbe;--color-accent-hover: #164e9c;--color-accent-subtle: #e4edfb;--color-accent-text: #12448a;--color-danger: #a3182a;--color-danger-subtle: #fdeaec;--color-danger-border: #eab5bc;--color-focus-ring: #1b5fbe}[data-theme=dark]{--color-bg: #12151a;--color-surface: #1a1f26;--color-surface-raised: #222932;--color-border: #333c47;--color-text: #eef1f5;--color-text-muted: #a3adba;--color-text-inverted: #12151a;--color-accent: #6aa6f5;--color-accent-hover: #8bbcfa;--color-accent-subtle: #1e3557;--color-accent-text: #cfe0fb;--color-danger: #ff9aa5;--color-danger-subtle: #40191f;--color-danger-border: #6d2b34;--color-focus-ring: #8bbcfa}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 var(--space-3);line-height:var(--line-height-tight)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}p{margin:0 0 var(--space-3)}a{color:var(--color-accent-text)}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}button,input{font:inherit;color:inherit}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:var(--border-width) solid transparent;border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-text-inverted);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast)}.button:hover:not(:disabled){background:var(--color-accent-hover)}.button:disabled{opacity:.6;cursor:not-allowed}.button--secondary{background:transparent;border-color:var(--color-border);color:var(--color-text)}.button--secondary:hover:not(:disabled){background:var(--color-accent-subtle);color:var(--color-accent-text)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.field__input{padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.alert{padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--color-danger-border);border-radius:var(--radius-md);background:var(--color-danger-subtle);color:var(--color-danger);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.card{padding:var(--space-5);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.muted{color:var(--color-text-muted)}.badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);background:var(--color-accent-subtle);color:var(--color-accent-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.center-screen{display:flex;align-items:center;justify-content:center;min-height:100%;padding:var(--space-4)}
