:root{color-scheme:light;--background:#f4f0e8;--surface:#fff;--surface-muted:#faf8f2;--text:#24231f;--muted:#625e55;--border:#dcd5c8;--control-border:#8d867a;--accent:#806020;--accent-light:#f4ead4;--gold:#d5b77a;--ink:#101112;--danger:#a4312f;--danger-surface:#fff0ed;--success:#2f6543;--success-surface:#eaf3eb;--warning:#e4c98d;--warning-surface:#f4ead4;--scrim:#10111299;--matte-text:#f2f1ec;--matte-muted:#b8b8b1;--matte-border:#494a43;--matte-hover:#ffffff0a;--matte-selected:#d5b77a1c;--matte-grain:repeating-linear-gradient(115deg,#ffffff03 0 1px,transparent 1px 3px);--matte-background:radial-gradient(ellipse at 12% 0%,#363932 0%,#242623 42%,#17191a 100%);--radius:.75rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--motion:120ms;--control:3rem;--select-arrow-inset:min(var(--space-4),16px);--select-arrow-half:min(.375rem,6px);--select-arrow-stroke-half:min(.046875rem,.75px);--select-arrow-gap:min(var(--space-3),12px);--field-label-line:1.3125rem;--text-body:1rem;--text-small:.875rem;--text-label:.875rem;--text-caption:.8125rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.5}
*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--text);font-size:var(--text-body)}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button,a{cursor:pointer}a{color:var(--accent)}button{min-height:var(--control);padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:.5rem;color:var(--text);background:var(--surface);font-weight:600;transition:background var(--motion)}button:hover{background:var(--surface-muted)}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{min-height:var(--control);min-width:0;width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--control-border);border-radius:.5rem;background:var(--surface);color:var(--text)}input:not([type=checkbox]):not([type=radio]),select{height:var(--control)}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,p{margin:0}h1{font-size:1.75rem;line-height:1.3;letter-spacing:-.02em}h2{font-size:1.25rem;line-height:1.4}small{font-size:var(--text-caption)}.muted,.data-boundary{color:var(--muted)}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.primary{background:var(--control-matte);border-color:var(--gold);color:var(--gold);box-shadow:var(--control-depth)}.primary:hover:not(:disabled){background:var(--control-matte-hover)}.secondary{background:var(--surface-muted);color:var(--accent)}.text-button{border-color:transparent;background:transparent;color:var(--accent)}.error{color:var(--danger);font-size:var(--text-small);white-space:pre-wrap;overflow-wrap:anywhere}.error:empty{display:none}.error:not(:empty){padding:var(--space-3);background:var(--danger-surface);border-left:3px solid var(--danger);margin:var(--space-3) 0}.matte{color-scheme:dark;color:var(--matte-text);background:var(--matte-grain),var(--matte-background)}.skip{position:absolute;left:1rem;top:0;transform:translateY(-120%);padding:.75rem;background:var(--surface);z-index:5}.skip:focus{transform:none}[hidden]{display:none!important}
/* Primary actions keep the same matte material as the sidebar, with only a
   shallow static sheen and two-pixel depth. Secondary/danger roles stay distinct. */
:root{--control-matte:var(--matte-grain),linear-gradient(180deg,#ffffff0d,transparent 55%),var(--matte-background);--control-matte-hover:var(--matte-grain),linear-gradient(180deg,#ffffff14,transparent 55%),var(--matte-background);--control-matte-pressed:var(--matte-grain),linear-gradient(180deg,#0000000a,transparent 55%),var(--matte-background);--control-depth:inset 0 1px 0 #ffffff14,inset 0 -1px 0 #0000002b,0 2px 3px #10111214}
.primary:active:not(:disabled){background:var(--control-matte-pressed);box-shadow:inset 0 1px 2px #0000002b}
/* Keep native select interaction; draw a CSP-safe chevron with shared inset. */
select:not([multiple]):not([size]),select:not([multiple])[size="1"]{appearance:none;-webkit-appearance:none;padding-inline-end:calc(var(--select-arrow-inset) + var(--select-arrow-half) + var(--select-arrow-half) + var(--select-arrow-gap));background-image:linear-gradient(45deg,transparent calc(50% - var(--select-arrow-stroke-half)),var(--muted) calc(50% - var(--select-arrow-stroke-half)),var(--muted) calc(50% + var(--select-arrow-stroke-half)),transparent calc(50% + var(--select-arrow-stroke-half))),linear-gradient(135deg,transparent calc(50% - var(--select-arrow-stroke-half)),var(--muted) calc(50% - var(--select-arrow-stroke-half)),var(--muted) calc(50% + var(--select-arrow-stroke-half)),transparent calc(50% + var(--select-arrow-stroke-half)));background-position:right calc(var(--select-arrow-inset) + var(--select-arrow-half)) center,right var(--select-arrow-inset) center;background-size:var(--select-arrow-half) var(--select-arrow-half);background-repeat:no-repeat}
@media(forced-colors:active){select:not([multiple]):not([size]),select:not([multiple])[size="1"]{appearance:auto;-webkit-appearance:auto;background-image:none;padding-inline-end:var(--space-3)}}
/* Control values do not inherit the weight or size of a wrapping field label. */
input,select,textarea{font-size:var(--text-body);font-weight:400;line-height:1.5}
.login-layout{display:grid;grid-template-columns:minmax(18rem,1fr) minmax(22rem,1fr);max-width:70rem;min-height:36rem;margin:10vh auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:clip}.login-brand{padding:4rem;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-6)}.login-brand h1{font-size:2.25rem;color:var(--gold);line-height:1.4}.login-brand p:not(.eyebrow){color:var(--matte-muted)}.brand-rule{height:1px;width:4rem;background:var(--gold)}.login-brand small{margin-top:auto;color:var(--matte-muted)}.login-form{padding:4rem;display:flex;flex-direction:column;align-self:center;gap:var(--space-3)}.login-form h2{font-size:1.75rem}.login-form label{font-weight:600;font-size:var(--text-small);margin-top:var(--space-3)}.login-form small,.login-note{color:var(--muted);font-size:var(--text-caption)}.login-note{margin-top:var(--space-3)}
.console-layout{display:grid;grid-template-columns:14rem minmax(0,1fr);min-height:100dvh}
.sidebar{padding:var(--space-6) var(--space-4);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;position:sticky;top:0;align-self:start;height:100dvh;min-height:0;overflow:auto;border-inline-end:1px solid var(--matte-border)}
.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--gold)}.brand b{letter-spacing:.1em}.brand small{display:block;letter-spacing:0;font-weight:400;color:var(--matte-muted);margin-top:.125rem}.side-label{font-size:.75rem;color:var(--matte-muted);margin:var(--space-8) var(--space-3) var(--space-3)}
#navigation{display:grid;align-content:start;gap:var(--space-2);min-height:0;overflow:auto;overscroll-behavior:contain;padding:var(--space-1);margin-inline:calc(-1 * var(--space-1));scroll-padding:var(--space-2)}
.nav-group{min-width:0}.nav-toggle{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);min-height:var(--control);border-color:transparent;background:transparent;color:var(--matte-muted);text-align:start;font-size:.9375rem;font-weight:600}
.nav-toggle>span{flex:1;min-width:0;overflow-wrap:anywhere}.nav-toggle svg{width:1.25rem;height:1.25rem;flex-shrink:0}.nav-toggle .nav-chevron{width:1rem;height:1rem;transition:transform var(--motion)}.nav-toggle[aria-expanded=true] .nav-chevron{transform:rotate(180deg)}.nav-toggle:hover,.nav-children a:hover{background:var(--matte-hover)}.nav-group.is-active>.nav-toggle{color:var(--gold)}
.nav-children{display:grid;gap:var(--space-1);margin:var(--space-1) 0 var(--space-2) var(--space-4);padding-inline-start:var(--space-2);border-inline-start:1px solid var(--matte-border)}.nav-children a{display:flex;align-items:center;padding:var(--space-2) var(--space-3);min-height:var(--control);border:1px solid transparent;border-radius:.5rem;color:var(--matte-text);text-decoration:none;font-size:var(--text-small);overflow-wrap:anywhere}.nav-children a[aria-current=page]{color:var(--gold);background:var(--matte-selected);border-color:var(--gold)}
.side-footer{padding-top:var(--space-6);display:grid;gap:var(--space-3);font-size:var(--text-small);color:var(--matte-muted)}.side-footer a{color:var(--matte-muted);text-decoration:none}.sidebar-action{background:transparent;border-color:var(--matte-border);color:var(--gold)}.sidebar-action:hover{background:var(--matte-hover)}.sidebar :focus-visible{outline-color:var(--gold)}
main{min-width:0;padding:var(--space-8);max-width:100rem;width:100%}.workspace-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-6)}.workspace-header .eyebrow{color:var(--muted);margin-bottom:var(--space-2)} .workspace-header>div{min-width:0;overflow-wrap:anywhere}.workspace-header .muted{font-size:var(--text-small);margin-top:var(--space-2)}.environment{font-size:var(--text-caption);border:1px solid var(--border);padding:.375rem .75rem;border-radius:2rem;flex-shrink:0;background:var(--surface)}.data-panel{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius)}.filters{padding:var(--space-6);border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-3)}.filters>div{min-width:min(10rem,100%);max-width:100%}.filters label{display:block;font-size:var(--text-caption);font-weight:600;margin-bottom:var(--space-2)}.search-control{flex:1 1 18rem;max-width:32rem}.list-heading{padding:var(--space-4) var(--space-6);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-3);font-size:var(--text-caption);color:var(--muted)}.data-panel>.error{margin:0 var(--space-6) var(--space-4)}.table-wrap{overflow-x:auto;min-height:12rem;max-width:100%;overscroll-behavior-inline:contain}table{width:100%;border-collapse:collapse;font-size:var(--text-small);text-align:left}thead{background:var(--surface-muted);color:var(--muted);font-size:var(--text-caption)}th,td{padding:var(--space-4);border-bottom:1px solid var(--border);vertical-align:top}th:first-child,td:first-child{padding-left:var(--space-6)}th:last-child,td:last-child{padding-right:var(--space-6)}td{overflow-wrap:anywhere}tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface-muted)}.summary{max-width:32rem;min-width:14rem;white-space:pre-wrap}.meta{font-size:.75rem;color:var(--muted);margin-top:var(--space-2)}.numeric{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.badge{display:inline-block;padding:.25rem .5rem;background:var(--accent-light);color:var(--accent);border-radius:.375rem;font-size:var(--text-caption);overflow-wrap:anywhere}.badge.approved,.badge.resolved,.badge.completed,.badge.published,.badge.active{background:var(--success-surface);color:var(--success)}.badge.rejected,.badge.dismissed,.badge.cancelled,.badge.disabled{background:var(--danger-surface);color:var(--danger)}.badge.expired,.badge.archived{background:var(--surface-muted);color:var(--muted)}.pagination{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);font-size:var(--text-caption);color:var(--muted)}.pagination>div{display:flex;gap:var(--space-2)}.empty{padding:3rem var(--space-6);text-align:center;color:var(--muted)}.data-boundary{margin-top:var(--space-4);font-size:.75rem}.row-button{font-size:var(--text-small);color:var(--accent)}
dialog{max-width:calc(100% - 2 * min(var(--space-4),16px));width:min(40rem,calc(100% - 2 * min(var(--space-4),16px)));max-height:calc(100dvh - 2 * min(var(--space-4),16px));padding:0;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface)}dialog[open]{display:flex;flex-direction:column;overflow:hidden}#detailBody{min-height:0;overflow:auto;overscroll-behavior:contain;padding:var(--space-4) var(--space-6);scroll-padding:var(--space-4)}#detailError:not(:empty){flex:none;margin:var(--space-3) var(--space-6);max-height:25dvh;overflow:auto}dialog::backdrop{background:var(--scrim)}dialog>header{display:flex;flex:none;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border)}.detail-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75;margin:var(--space-4) 0}.detail-fields{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:var(--space-3);font-size:var(--text-small)}.detail-fields dt{color:var(--muted)}.detail-fields dd{margin:0;overflow-wrap:anywhere}.dialog-actions{display:flex;flex:none;flex-wrap:wrap;align-items:end;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border);margin-top:var(--space-4);max-height:45dvh;overflow:auto}.dialog-actions label{display:block;font-size:var(--text-caption);margin-bottom:var(--space-2)}.dialog-actions>div{margin-right:auto}.danger{color:var(--danger)}
@media(max-width:70rem){.login-layout{margin:var(--space-6)}.login-form,.login-brand{padding:var(--space-8)}main{padding:var(--space-6)}}
@media(max-width:52rem){.console-layout{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;height:auto;min-height:0;display:block;padding:var(--space-4)}.side-label{display:none}#navigation{grid-template-columns:repeat(auto-fit,minmax(min(12rem,100%),1fr));margin-top:var(--space-4);max-height:50dvh}.side-footer{display:flex;align-items:center;flex-wrap:wrap;padding-top:var(--space-4)}.workspace-header{flex-wrap:wrap}.login-layout{grid-template-columns:minmax(0,1fr);margin:var(--space-4)}.login-brand{padding:var(--space-6)}.login-brand h1{font-size:1.75rem}.login-form{padding:var(--space-6)}main{padding:var(--space-4)}.filters,.list-heading,.pagination{padding:var(--space-4)}.pagination{flex-wrap:wrap}.table-wrap{max-width:100%}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* Data tables preserve readable columns; their own region handles narrow windows. */
.table-wrap>table{min-width:52rem}.table-wrap>table :is(th,td):first-child{min-width:16rem}.table-wrap>table :is(th,td):last-child{min-width:11rem}#tableHost[data-module=users]>table{min-width:72rem}
.page-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-3)}.page-actions .environment{order:-1}.filter-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.filters small{display:block;color:var(--muted);font-size:var(--text-caption);margin-top:var(--space-2)}#commentArticleControl{flex:0 1 15rem}.workspace-header>div:first-child{flex:1}.workspace-header .page-actions{flex:0 1 auto}.filters>div{min-width:0}.filter-actions{flex:1 1 auto}.filter-actions #refresh{margin-inline-start:auto}.filters.has-filter-fields>.filter-actions:not(#dashboardPeriods){padding-top:calc(1.5 * var(--text-caption) + var(--space-2))}.form-feedback{display:grid;gap:var(--space-2);border-inline-start:3px solid var(--danger);background:var(--danger-surface);padding:var(--space-4);margin-bottom:var(--space-4);color:var(--danger);font-size:var(--text-small)}.form-feedback ul{margin:0;padding-inline-start:var(--space-6)}.field-error:empty{display:none}.field-error{color:var(--danger);font-size:var(--text-small);overflow-wrap:anywhere}.editor-field :is(input,select,textarea)[aria-invalid=true]{border-color:var(--danger)}.editor-section{border:0;padding:0;margin:0 0 var(--space-6);min-width:0}.editor-section>legend{font-size:1.125rem;font-weight:600;margin-bottom:var(--space-4)}.editor-checks{grid-column:1/-1}.editor-checks label{flex:1 1 14rem}.editor-checks small{display:block;color:var(--muted);font-weight:400}.editor-help{margin:0 0 var(--space-6);padding:var(--space-4);background:var(--surface-muted);border-inline-start:2px solid var(--accent);font-size:var(--text-small);color:var(--muted);overflow-wrap:anywhere}.editor-help p+p{margin-top:var(--space-2)}
@media(max-width:52rem){.workspace-header .page-actions{justify-content:flex-start;width:100%}.sidebar{border-inline-end:0;border-bottom:1px solid var(--matte-border)}.filters>div:not(.filter-actions){flex:1 1 12rem;max-width:none}.filters.has-filter-fields>.filter-actions:not(#dashboardPeriods){width:100%;padding-top:0}.filter-actions #refresh{margin-inline-start:0}}
.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);min-width:11rem}.row-actions a{display:inline-flex;align-items:center;min-height:var(--control);font-size:var(--text-small);padding:var(--space-2) 0;text-underline-offset:.25em}.row-button{white-space:normal;text-align:start}
.login-fields{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.login-form,.side-footer{overflow-wrap:anywhere}
dialog>header{flex-wrap:wrap}dialog>header h2{flex:1 1 0;min-width:0}
@media(max-width:32rem){.login-form{padding:var(--space-4)}dialog>header,#detailBody,.dialog-actions{padding:min(var(--space-4),16px)}dialog>header .text-button{padding-inline:min(var(--space-3),12px)}#detailError:not(:empty){margin-inline:min(var(--space-4),16px)}.detail-fields{grid-template-columns:minmax(0,1fr)}.detail-fields dd{margin-bottom:var(--space-3)}.dialog-actions>button{flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.password-required{padding:var(--space-6);display:grid;gap:var(--space-4)}.password-required>button{justify-self:start}
.catalog-dialog{width:min(64rem,calc(100% - 2 * min(var(--space-4),16px)))}.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-4);align-items:start}.editor-field{min-width:0;display:grid;align-content:start;align-items:start;gap:var(--space-2);margin-bottom:var(--space-4)}.editor-grid>.editor-field{margin-bottom:0}.editor-field>label,.editor-field>.field-label{font-size:var(--text-label);font-weight:600;line-height:var(--field-label-line);overflow-wrap:anywhere}.editor-field>:is(input,select,textarea){align-self:start}.editor-options .editor-checks{min-height:var(--control)}.editor-field label,.content-block label{font-size:var(--text-label);font-weight:600}.editor-field small,.editor-note{font-size:var(--text-small);color:var(--muted);overflow-wrap:anywhere}.editor-note{margin-bottom:var(--space-4)}.editor-checks{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.editor-checks label{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control);font-size:var(--text-label);font-weight:400;line-height:1.5}.editor-checks input{width:1.25rem;min-height:1.25rem}.body-editor h3{margin:0 0 var(--space-3)}.content-block{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--border);border-radius:.5rem;min-width:0}.content-block legend{font-size:var(--text-caption);color:var(--muted)}.content-block label{display:grid;gap:var(--space-2)}.block-tools{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-2);margin-bottom:var(--space-3)}.block-tools>label{flex:1 1 12rem}.editor-preview,.editor-history{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border)}.editor-preview summary,.editor-history summary{cursor:pointer;font-weight:600;min-height:var(--control);padding:var(--space-2) 0}.editor-history label{display:block;margin:var(--space-3) 0}.editor-history button{margin-top:var(--space-3)}#catalogPreview{overflow-wrap:anywhere}.catalog-dialog .dialog-actions{background:var(--surface)}
@supports(grid-template-rows:subgrid){.editor-grid{row-gap:var(--space-2)}.editor-grid>.editor-field{grid-row:span 4;grid-template-rows:subgrid;align-content:normal}.editor-grid>.editor-field>:nth-child(1){grid-row:1}.editor-grid>.editor-field>:nth-child(2){grid-row:2}.editor-grid>.editor-field>:nth-child(3){grid-row:3}.editor-grid>.editor-field>small{grid-row:3}.editor-grid>.editor-field>.field-error{grid-row:4}}
@media(max-width:52rem){.editor-grid{grid-template-columns:minmax(0,1fr)}.catalog-dialog .dialog-actions{position:static}}
.catalog-preview-image{display:block;width:100%;max-width:32rem;aspect-ratio:16/9;object-fit:cover;border-radius:.5rem;margin:var(--space-3) 0}.catalog-preview-image.portrait{max-width:8rem;aspect-ratio:1}.editor-preview figure{margin:var(--space-4) 0}
.teacher-media-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin:var(--space-4) 0}.teacher-media-fields>h3,.teacher-media-fields>.editor-note{grid-column:1/-1;margin:0}.teacher-media-field{min-width:0;display:grid;align-content:start;gap:var(--space-3);border:1px solid var(--border);border-radius:.75rem;padding:var(--space-4)}.teacher-media-stage{display:grid;place-items:center;aspect-ratio:2.5;min-width:0;margin:0;background:var(--surface-muted);border-radius:.5rem;overflow:hidden}.teacher-media-stage img{max-height:100%}.teacher-media-field>label{display:grid;gap:var(--space-2);font-size:var(--text-label);font-weight:600;line-height:var(--field-label-line)}.teacher-media-field input[type=file]{width:100%;min-width:0;white-space:normal}.teacher-media-preview,.catalog-preview-image.teacher-cover-preview{width:100%;height:auto;aspect-ratio:2.5;object-fit:cover;border-radius:.5rem}.teacher-media-preview.avatar{max-width:8rem;aspect-ratio:1}.teacher-media-field small,.teacher-media-field [role=status]{font-size:var(--text-small);line-height:1.5;color:var(--muted);overflow-wrap:anywhere}@media(max-width:40rem){.teacher-media-fields{grid-template-columns:minmax(0,1fr)}}
.editor-confirm{flex:1 1 100%;padding:var(--space-4);background:var(--surface-muted);border:1px solid var(--border);border-radius:.5rem}.editor-confirm>div{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-3)}.editor-confirm button{flex:1 1 10rem}
.dashboard{padding:var(--space-6);display:grid;gap:var(--space-4);container-type:inline-size}.dashboard-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:var(--space-4)}.dashboard-metrics article{display:grid;align-content:start;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.dashboard-metrics p,.dashboard-metrics small{font-size:var(--text-caption);color:var(--muted)} .dashboard-metrics strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:2rem;line-height:1.25;color:var(--text)}.dashboard-tasks{padding:var(--space-4);border-left:3px solid var(--gold);background:var(--matte-grain),var(--matte-background);color:var(--matte-text)}.dashboard-tasks a{color:var(--gold)}.dashboard-tasks>div{display:flex;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-3);font-size:var(--text-small)}.finance-boundary{color:var(--muted);font-size:var(--text-small)}.dashboard table{min-width:24rem}.record-id{overflow-wrap:anywhere}.prediction-fields{border:0;padding:0;margin:0;min-width:0}.prediction-numbers{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);margin:var(--space-4) 0;min-width:0}.prediction-numbers legend{font-weight:600}.prediction-numbers .muted{font-size:var(--text-small);margin-bottom:var(--space-4)}.prediction-fields:disabled input,.prediction-fields:disabled select{color:var(--text);opacity:1;background-color:var(--surface-muted)}
@media(max-width:32rem){.dashboard{padding:min(var(--space-4),16px)}.dashboard .chart{padding:min(var(--space-4),16px)}.dashboard-metrics{grid-template-columns:minmax(0,1fr)}}
.user-identity{display:flex;align-items:center;gap:var(--space-3);min-width:12rem}.user-identity>div{min-width:0;overflow-wrap:anywhere}.user-avatar{flex:none;width:2.5rem;height:2.5rem;border-radius:50%;object-fit:cover;background:var(--accent-light)}.user-avatar-placeholder{display:grid;place-items:center;color:var(--accent);font-size:var(--text-small)}.user-detail-heading{display:grid;gap:var(--space-3);margin-block:var(--space-4)}
.chart{margin:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0}.chart h2{margin-bottom:var(--space-2)}.chart p{font-size:var(--text-small);overflow-wrap:anywhere}.chart>svg{display:block;width:100%;height:auto;margin-top:var(--space-4)}.chart-grid{stroke:var(--border);stroke-width:1}.chart-axis{fill:var(--muted);font-size:12px}.chart-series{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.chart-series-0{stroke:var(--accent)}.chart-series-1{stroke:var(--success);stroke-dasharray:8 4}.chart-series-2{stroke:var(--muted);stroke-dasharray:2 5}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-6);margin-top:var(--space-4);font-size:var(--text-small)}.chart-legend>span{display:flex;align-items:center;gap:var(--space-2)}.chart-key{width:var(--space-6);border-top:3px solid var(--accent)}.chart-key-1{border-top-color:var(--success);border-top-style:dashed}.chart-key-2{border-top-color:var(--muted);border-top-style:dotted}.chart-ranking{display:grid;gap:var(--space-3);list-style:none;margin:var(--space-4) 0 0;padding:0}.chart-ranking li{display:grid;grid-template-columns:minmax(6rem,1fr) minmax(0,2fr) minmax(2rem,auto);align-items:center;gap:var(--space-3);font-size:var(--text-small);overflow-wrap:anywhere}.chart-ranking svg{width:100%;height:var(--space-3)}.chart-bar-track{fill:var(--surface-muted)}.chart-bar{fill:var(--accent)}.chart-ranking b{text-align:end}.chart-table{min-width:0;overflow:auto}
@media(max-width:32rem){.chart-ranking li{grid-template-columns:minmax(0,1fr) auto}.chart-ranking li>span{grid-column:1/-1}.chart-ranking svg{grid-column:1}.chart-ranking b{grid-column:2}}
/* Dashboard composition shares the existing spacing, type and color tokens. */
.chart-plot{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:var(--space-2);margin:var(--space-6) 0 var(--space-3)}.chart-plot>svg{display:block;width:100%;height:clamp(12rem,20vw,17rem);overflow:visible}.chart-plot :is(line,polyline){vector-effect:non-scaling-stroke}.chart-scale{display:flex;flex-direction:column;justify-content:space-between;min-width:var(--space-4);text-align:end;color:var(--muted);font-size:var(--text-caption);line-height:1}.chart-dates{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);font-size:var(--text-caption);color:var(--muted)}
.dashboard-period{display:grid;gap:var(--space-1);font-size:var(--text-small);overflow-wrap:anywhere}.dashboard-period small{color:var(--muted)}.metric-change{font-size:var(--text-caption);color:var(--accent);padding-top:var(--space-2);border-top:1px solid var(--border);overflow-wrap:anywhere}.metric-unavailable strong,.metric-unavailable .metric-change{color:var(--muted)}.dashboard-trends{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--space-4);align-items:stretch}.dashboard-analysis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);align-items:stretch}.dashboard-details{min-width:0;display:grid;gap:var(--space-3)}.chart-ring{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:var(--space-4);margin-top:var(--space-4)}.chart-ring-visual{display:grid;place-items:center;width:100%;max-width:15rem;justify-self:center;min-width:0}.chart-ring-visual>svg{grid-area:1/1;display:block;width:100%}.chart-ring-caption{grid-area:1/1;display:grid;justify-items:center;gap:var(--space-1);max-width:50%;text-align:center;color:var(--muted);font-size:var(--text-caption);overflow-wrap:anywhere}.chart-ring-caption b{font-size:1.75rem;line-height:1.25;color:var(--text)}.chart-ring-track{stroke:var(--border)}.chart-ring-segment{stroke:var(--accent)}.chart-fill-0{stroke:var(--accent);background:var(--accent)}.chart-fill-1{stroke:var(--success);background:var(--success)}.chart-fill-2{stroke:var(--muted);background:var(--muted)}.chart-share-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-4);font-size:var(--text-small)}.chart-share-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-1) var(--space-2);overflow-wrap:anywhere}.chart-share-list li>span{display:flex;align-items:baseline;gap:var(--space-2);grid-column:1/-1}.chart-swatch{width:var(--space-2);height:var(--space-2);border-radius:50%;flex:none}.chart-share-list small{color:var(--muted);text-align:end}.chart-funnel{list-style:none;margin:var(--space-4) 0 0;padding:0;display:grid;gap:var(--space-4);font-size:var(--text-small)}.chart-funnel li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);overflow-wrap:anywhere}.chart-funnel svg{width:100%;height:var(--space-4);grid-column:1/-1}.chart-funnel small{grid-column:1/-1;color:var(--muted)}.chart-unavailable{padding-top:var(--space-4);border-top:1px dashed var(--border);color:var(--muted)}
@media(max-width:70rem){.dashboard-trends,.dashboard-analysis{grid-template-columns:minmax(0,1fr)}}
@media(max-width:32rem){.chart-ring{grid-template-columns:minmax(0,1fr)}.chart-share-list li{grid-template-columns:minmax(0,1fr) auto auto}.chart-share-list li>span{grid-column:1}}
@container(max-width:46rem){.dashboard-trends,.dashboard-analysis{grid-template-columns:minmax(0,1fr)}}
@container(max-width:32rem){.chart-ring{grid-template-columns:minmax(0,1fr)}}
@container(max-width:10rem){.chart-ring-visual{display:flex;flex-direction:column;gap:var(--space-3)}.chart-ring-caption{max-width:100%}.chart-share-list li{grid-template-columns:minmax(0,1fr) auto}.chart-share-list li>span{grid-column:1/-1}}
