@charset "UTF-8";:root{--ink: #16243d;--ink-hover: #22345a;--accent: #e07b24;--accent-strong: #a8520c;--accent-soft: #fdeedf;--bg: #f4f2ee;--surface: #ffffff;--surface-2: #faf9f6;--hover: #f1efea;--text: #1f2937;--text-muted: #6b7280;--border: #e4e0d8;--border-strong: #cfc9bd;--info: #2c4a7c;--info-soft: #e8eef8;--success: #1a7f37;--success-soft: #e3f3e8;--warning: #8a6100;--warning-soft: #fcf1cf;--danger: #c4311c;--danger-soft: #fceae6;--danger-on-dark: #ff9b8e;--notice: #f5b301;--tone-blue: #2c4a7c;--tone-blue-soft: #e5ecf8;--tone-teal: #0f6b5c;--tone-teal-soft: #ddf1ec;--tone-violet: #5b3fa6;--tone-violet-soft: #ece7fa;--tone-copper: #8a4b14;--tone-copper-soft: #f6eadf;--tone-rose: #9d2e5c;--tone-rose-soft: #fbe6ef;--tone-cyan: #0b6a8a;--tone-cyan-soft: #def1f7;--tone-slate: #475569;--tone-slate-soft: #eceef2;--tone-olive: #526317;--tone-olive-soft: #eef2da;--chart-1: #2a78d6;--chart-2: #eb6834;--chart-3: #1baf7a;--chart-4: #eda100;--chart-5: #e87ba4;--chart-6: #008300;--chart-7: #6250d6;--chart-8: #e34948;--sidebar-bg: var(--ink);--sidebar-active: #233a5a;--sidebar-text: #c9d3e2;--sidebar-muted: #7d8ca5;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fs-page: 20px;--fs-section: 16px;--fs-body: 14px;--fs-label: 13px;--fs-caption: 12px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--r-sm: 6px;--r-md: 10px;--r-pill: 999px;--control-h: 34px;--scrollbar-size: 3px;--scrollbar-thumb: var(--border-strong);--scrollbar-thumb-hover: var(--text-muted);--shadow-modal: 0 20px 48px rgb(22 36 61 / .22)}@media(max-width:760px){:root{--control-h: 44px}}*,*:before,*:after{box-sizing:border-box}::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--r-pill)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-button{display:none;width:0;height:0}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}}body{margin:0;background:var(--bg);color:var(--text);font:400 var(--fs-body)/1.5 var(--font);-webkit-font-smoothing:antialiased}:where(h1,h2,h3,p){margin:0}:where(h1){font-size:var(--fs-page);font-weight:650;line-height:1.3;color:var(--ink)}:where(h2){font-size:var(--fs-section);font-weight:600;line-height:1.35;color:var(--ink)}:where(h3){font-size:var(--fs-body);font-weight:600;color:var(--ink)}:where(a){color:var(--info);text-underline-offset:2px}:where(small){font-size:var(--fs-caption)}.muted{color:var(--text-muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.page{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.page .subtitle{margin:var(--sp-1) 0 0;color:var(--text-muted)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.page-head p{margin-top:var(--sp-1);color:var(--text-muted)}.page:has(.page-head-block .crumbs){padding-top:5px}.page:has(.page-head-block):not(:has(.page-head-block .crumbs)){padding-top:var(--sp-3)}.page-head-block:not(:has(.crumbs)):has(>.page-actions:empty){display:none}.page-head-block{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;min-width:0;margin-bottom:calc(var(--sp-2) - var(--page-gap, var(--sp-4)))}.crumbs{display:flex;align-items:center;gap:8px;min-height:24px;min-width:0;overflow-x:auto;color:var(--text-muted);font-size:var(--fs-caption);white-space:nowrap}.crumbs a,.crumbs button{min-height:0;padding:0;border:0;background:none;color:var(--info);font:inherit;text-decoration:none}.crumbs a:hover,.crumbs button:hover{text-decoration:underline}.crumbs span[aria-current]{color:var(--text)}.page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-left:auto}.page-actions:empty{display:none}.screen-note{margin:0;color:var(--text-muted);font-size:var(--fs-label)}.screen-note.end{margin-left:auto;text-align:right}@media(max-width:760px){.page{padding:var(--sp-4)}}:where(button,.btn){display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--control-h);padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:500 var(--fs-body)/1.2 var(--font);white-space:nowrap;text-decoration:none;cursor:pointer}:where(button,.btn):hover:not(:disabled){background:var(--hover)}:where(button,.btn):disabled{opacity:.5;cursor:not-allowed}:where(button,.btn).primary{background:var(--ink);border-color:var(--ink);color:var(--surface);font-weight:600}:where(button,.btn).primary:hover:not(:disabled){background:var(--ink-hover)}:where(button,.btn).danger{color:var(--danger);background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}:where(button,.btn).danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 16%,var(--surface))}:where(button,.btn).ghost{border-color:transparent;background:transparent}:where(button,.btn).sm{min-height:28px;padding:0 10px;font-size:var(--fs-label)}:where(button,.btn).info{background:var(--info-soft);border-color:transparent;color:var(--info)}:where(button,.btn).action-view{--action-color: var(--success);--action-soft: var(--success-soft)}:where(button,.btn).action-edit{--action-color: var(--warning);--action-soft: var(--warning-soft)}:where(button,.btn).action-secondary{--action-color: var(--info);--action-soft: var(--info-soft)}:where(button,.btn):is(.action-view,.action-edit,.action-secondary){color:var(--action-color);background:var(--action-soft);border-color:color-mix(in srgb,var(--action-color) 35%,var(--surface))}:where(button,.btn):is(.action-view,.action-edit,.action-secondary):hover:not(:disabled){background:color-mix(in srgb,var(--action-color) 16%,var(--surface))}:where(button).link{min-height:0;padding:0;border:0;background:none;color:var(--ink);font-weight:600;text-align:left;white-space:normal}:where(button).link:hover:not(:disabled){background:none;text-decoration:underline}:where(button).icon{width:var(--control-h);padding:0;font-size:18px}span.pw{position:relative;display:block}span.pw>input{padding-right:40px}.pw-toggle{position:absolute;top:50%;right:4px;display:inline-grid;place-items:center;width:32px;height:28px;min-height:0;padding:0;border:0;background:none;color:var(--text-muted);transform:translateY(-50%)}.pw-toggle:hover{background:var(--hover);color:var(--ink)}.pw-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}:where(input:not([type=checkbox],[type=radio]),select,textarea){width:100%;min-width:0;min-height:var(--control-h);padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:400 var(--fs-body)/1.4 var(--font)}:where(textarea){min-height:84px;padding:8px 10px;resize:vertical}:where(input,select,textarea):focus-visible{outline:2px solid var(--info-soft);border-color:var(--info)}:where(input,select,textarea):disabled{background:var(--surface-2);color:var(--text-muted)}:where(select:not([multiple],[size])){appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}:where(input[type=checkbox],input[type=radio]){width:16px;height:16px;margin:0;accent-color:var(--ink)}.field{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:var(--fs-label);font-weight:600;color:var(--text)}.field-hint{font-size:var(--fs-caption);font-weight:400;color:var(--text-muted)}.field-error{font-size:var(--fs-caption);font-weight:500;color:var(--danger)}.check{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--control-h);font-size:var(--fs-body);font-weight:400}.form-stack{display:grid;gap:var(--sp-4)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.form-grid .full{grid-column:1/-1}fieldset.form-section{margin:0;padding:0;border:0;min-width:0}fieldset.form-section+fieldset.form-section{margin-top:var(--sp-5)}fieldset.form-section>legend{width:100%;padding:0 0 var(--sp-2);margin-bottom:var(--sp-4);border-bottom:1px solid var(--border);font-size:var(--fs-section);font-weight:600;color:var(--ink)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.toolbar .field{flex:0 1 auto;flex-direction:row;align-items:center;gap:var(--sp-2);white-space:nowrap;min-width:min-content}.toolbar .field>select,.toolbar .field>input:not([type=checkbox],[type=radio]){width:200px;min-width:120px}.toolbar .grow{flex:1 1 260px}.toolbar .grow>input,.toolbar .grow>select{flex:1;width:100%}.toolbar>.primary,.toolbar>.toolbar-actions,.toolbar>.row-actions{margin-inline-start:auto}.toolbar>.push~.primary{margin-inline-start:0}.toolbar>.toolbar-actions{display:flex;align-items:center;gap:var(--sp-2)}.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.chips button{min-height:30px;padding:0 12px;border-radius:var(--r-pill);font-size:var(--fs-label);font-weight:500;color:var(--text)}.chips button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.chips .count{color:inherit;opacity:.7}.filter-list{display:flex;flex-direction:column;gap:2px;padding:var(--sp-2) var(--sp-2) var(--sp-2) 0}.filter-list button{justify-content:space-between;min-height:32px;padding:0 var(--sp-3);border:0;border-left:3px solid transparent;border-radius:0;background:transparent;color:var(--text);font-weight:400;text-align:left;white-space:normal}.filter-list button[aria-pressed=true]{border-left-color:var(--ink);color:var(--ink);font-weight:600}.filter-list .count{color:var(--text-muted);font-variant-numeric:tabular-nums}.filter-list:has(small){gap:var(--sp-1);padding-block:var(--sp-3)}.filter-list button:has(small){min-height:56px;padding:10px var(--sp-4);gap:var(--sp-3);line-height:1.35}.tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tabs>button,.tabs>a{min-height:40px;padding:0 var(--sp-3);border:0;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;background:transparent;color:var(--text-muted);font-weight:500;text-decoration:none}.tabs>.active{border-bottom-color:var(--accent);color:var(--ink);font-weight:600}.panel{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow-x:auto}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.panel-body{padding:var(--sp-4)}.panel-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);color:var(--text-muted);font-size:var(--fs-label)}.pager{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.pager>button{justify-content:center;width:32px;min-width:32px;height:30px;min-height:30px;flex-shrink:0;padding:0 6px;font-variant-numeric:tabular-nums}.pager>button.current{border-color:var(--ink);background:var(--ink);color:var(--surface);font-weight:700}.pager .pager-jump{width:32px;height:30px;min-height:30px;padding:0 4px;font-size:var(--fs-label);text-align:center}.pager .pager-jump::placeholder{color:var(--text-muted)}.pager>select{width:auto;height:30px;min-height:30px;margin-left:var(--sp-2)}table.data{width:100%;border-collapse:collapse;font-family:var(--font);font-size:var(--fs-body);line-height:1.4}table.data th{padding:10px var(--sp-4);background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:var(--fs-label);font-weight:600;text-align:left;white-space:nowrap}table.data td{padding:10px var(--sp-4);border-bottom:1px solid var(--border);vertical-align:middle}table.data td>:is(b,strong),table.data .person-cell>:first-child{font-size:inherit;font-weight:600}table.data tbody th[scope=row]{background:var(--surface);color:var(--text);font-size:inherit;vertical-align:middle}table.data tbody tr:last-child :is(td,th[scope=row]){border-bottom:0}table.data tbody tr:hover :is(td,th[scope=row]){background:var(--surface-2)}table.data td small{display:block;color:var(--text-muted);margin-top:2px;font-size:var(--fs-caption);font-weight:400;line-height:1.4}table.data td small.status-text{display:flex}table.data th.actions,table.data td.actions{text-align:center;white-space:nowrap}.row-actions{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2)}.permission-value,.permission-toggle,.permission-chip{--value-color: var(--text-muted);--value-bg: transparent;color:var(--value-color);background-color:var(--value-bg);border-color:transparent;border-radius:var(--r-sm);font-weight:500}.permission-value[data-value=self],.permission-value[data-value=view],.permission-toggle[data-value=self],.permission-toggle[data-value=view],.permission-chip[data-value=self],.permission-chip[data-value=view]{--value-color: var(--tone-slate);--value-bg: var(--tone-slate-soft)}.permission-value[data-value=department],.permission-value[data-value=edit],.permission-toggle[data-value=department],.permission-toggle[data-value=edit],.permission-chip[data-value=department],.permission-chip[data-value=edit]{--value-color: var(--tone-teal);--value-bg: var(--tone-teal-soft)}.permission-value[data-value=project],.permission-value[data-value=granted],.permission-toggle[data-value=project],.permission-toggle[data-value=granted],.permission-chip[data-value=project],.permission-chip[data-value=granted]{--value-color: var(--tone-blue);--value-bg: var(--tone-blue-soft)}.permission-value[data-value=all],.permission-value[data-value=manage],.permission-toggle[data-value=all],.permission-toggle[data-value=manage],.permission-chip[data-value=all],.permission-chip[data-value=manage]{--value-color: var(--tone-violet);--value-bg: var(--tone-violet-soft)}span.permission-value{display:inline-flex;align-items:center;min-height:28px;padding:0 var(--sp-2)}.permission-toggle{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:28px;padding:0 var(--sp-2);font-size:var(--fs-caption);cursor:pointer}@media(max-width:760px){.permission-toggle{min-height:var(--control-h)}}.pending-request-count{display:inline-block;margin-left:var(--sp-1);padding:0 6px;border-radius:var(--r-pill);color:var(--warning);background:var(--warning-soft);font-size:var(--fs-caption);font-weight:600;white-space:nowrap}.request-dialog-body{display:grid;align-content:start;gap:var(--sp-5)}.request-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-4)}.request-heading h3{margin-top:var(--sp-1)}.request-heading .badge{flex:none}.request-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4) var(--sp-5);margin:0}.request-meta dt{color:var(--text-muted);font-size:var(--fs-caption)}.request-meta dd{margin:var(--sp-1) 0 0}.request-meta small{display:block;margin-top:var(--sp-1)}.request-text-block{display:grid;gap:var(--sp-2);padding-top:var(--sp-4);border-top:1px solid var(--border)}.request-text-block p{white-space:pre-line;overflow-wrap:anywhere}.request-hint{font-size:var(--fs-caption)}@media(max-width:760px){.request-heading{flex-wrap:wrap}}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:var(--fs-caption);font-weight:500;line-height:1.5;white-space:nowrap}.badge.ok{background:var(--success-soft);border-color:transparent;color:var(--success)}.badge.warn{background:var(--warning-soft);border-color:transparent;color:var(--warning)}.badge.bad{background:var(--danger-soft);border-color:transparent;color:var(--danger)}.badge.info{background:var(--info-soft);border-color:transparent;color:var(--info)}.badge.muted{color:var(--text-muted)}.badge.status{border-radius:var(--r-pill);font-weight:600}.badge.permission-chip{color:var(--value-color);background:var(--value-bg);border-color:transparent}.badge.permission-chip[data-value=view]{--value-color: var(--tone-blue);--value-bg: var(--tone-blue-soft)}.badge.permission-chip[data-value=""]{--value-bg: var(--surface-2);border-color:var(--border)}.badge.permission-chip[data-severity=warning]{--value-color: var(--warning);--value-bg: var(--warning-soft)}.badge.permission-chip[data-severity=danger]{--value-color: var(--danger);--value-bg: var(--danger-soft)}.role-tone,.badge.role{--c: var(--tone-slate);--c-soft: var(--tone-slate-soft)}.role-tone[data-role=general_director],.badge.role[data-role=general_director]{--c: #fff;--c-soft: var(--ink)}.role-tone[data-role=project_ceo],.badge.role[data-role=project_ceo]{--c: var(--tone-blue);--c-soft: var(--tone-blue-soft)}.role-tone[data-role=department_head],.badge.role[data-role=department_head]{--c: var(--tone-teal);--c-soft: var(--tone-teal-soft)}.role-tone[data-role=staff],.badge.role[data-role=staff]{--c: var(--tone-violet);--c-soft: var(--tone-violet-soft)}.role-tone[data-role=collaborator],.badge.role[data-role=collaborator]{--c: var(--tone-cyan);--c-soft: var(--tone-cyan-soft)}.role-tone[data-role=accountant],.badge.role[data-role=accountant]{--c: var(--tone-copper);--c-soft: var(--tone-copper-soft)}.role-tone[data-role=hr],.badge.role[data-role=hr]{--c: var(--tone-rose);--c-soft: var(--tone-rose-soft)}.role-tone[data-role=marketing],.badge.role[data-role=marketing]{--c: var(--tone-copper);--c-soft: var(--tone-copper-soft)}.badge.role{border-color:transparent;background:var(--c-soft);color:var(--c);font-weight:600}.status-text{display:inline-flex;align-items:flex-start;gap:6px;color:var(--text-muted)}.status-text:before{content:"";flex:none;margin-top:.45em;width:7px;height:7px;border-radius:50%;background:var(--border-strong)}.status-text.ok:before{background:var(--success)}.status-text.warn{color:var(--warning)}.status-text.warn:before{background:var(--warning)}.status-text.bad{color:var(--danger)}.status-text.bad:before{background:var(--danger)}.badges{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.avatar{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--info-soft);color:var(--info);font-size:var(--fs-caption);font-weight:600}.avatar.lg{width:44px;height:44px;font-size:var(--fs-body)}.avatar[data-tone="1"]{background:var(--tone-teal-soft);color:var(--tone-teal)}.avatar[data-tone="2"]{background:var(--tone-violet-soft);color:var(--tone-violet)}.avatar[data-tone="3"]{background:var(--tone-copper-soft);color:var(--tone-copper)}.avatar[data-tone="4"]{background:var(--tone-rose-soft);color:var(--tone-rose)}.avatar[data-tone="5"]{background:var(--tone-cyan-soft);color:var(--tone-cyan)}.alert{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:10px 14px;border-radius:var(--r-sm);background:var(--info-soft);color:var(--info);font-size:var(--fs-body)}.alert.ok{background:var(--success-soft);color:var(--success)}.alert.warn{background:var(--warning-soft);color:var(--warning)}.alert.bad{background:var(--danger-soft);color:var(--danger)}.toast{inset:var(--sp-4) var(--sp-4) auto auto;margin:0;display:none;align-items:center;gap:var(--sp-2);max-width:min(400px,100vw - 32px);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);border:1px solid color-mix(in srgb,var(--success) 30%,transparent);border-radius:var(--r-sm);background:var(--success-soft);color:var(--success);font-weight:600;box-shadow:var(--shadow-modal)}.toast:popover-open{display:flex}.toast.warn{border-color:color-mix(in srgb,var(--warning) 30%,transparent);background:var(--warning-soft);color:var(--warning)}.toast.bad{border-color:color-mix(in srgb,var(--danger) 30%,transparent);background:var(--danger-soft);color:var(--danger)}.toast button{width:28px;min-height:28px;color:inherit}.state{padding:40px var(--sp-5);text-align:center}.state h2{margin-bottom:var(--sp-1)}.state p{color:var(--text-muted);margin-bottom:var(--sp-4)}dialog.modal{width:min(640px,100vw - 32px);max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:var(--r-md);background:var(--surface);color:var(--text);box-shadow:var(--shadow-modal)}dialog.modal[open]{display:flex;flex-direction:column}dialog.modal.modal-sm{width:min(440px,100vw - 32px)}dialog.modal.modal-lg{width:min(880px,100vw - 32px)}dialog.modal::backdrop{background:color-mix(in srgb,var(--ink) 45%,transparent)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);flex-shrink:0;border-bottom:1px solid var(--border)}.modal-head h2{margin:0;min-width:0;font-size:var(--fs-section);line-height:1.3;overflow-wrap:anywhere}.modal-head>button{flex-shrink:0}.modal-head-actions{display:flex;align-items:center;gap:var(--sp-2);flex:none}.modal-head button[aria-label^=\110\f3ng]{border-color:transparent;border-radius:var(--r-pill);background:transparent;box-shadow:none}.modal-head button[aria-label^=\110\f3ng]:hover:not(:disabled){background:var(--hover)}.modal-head button[aria-label^=\110\f3ng]:focus-visible{outline:none;text-decoration:underline;text-underline-offset:var(--sp-1)}dialog.modal.modal-pair{width:fit-content;max-width:calc(100vw - 32px);max-height:none;border-radius:0;background:transparent;box-shadow:none;overflow:visible}dialog.modal.modal-pair[open]{flex-direction:row;align-items:flex-start;gap:var(--sp-4)}.modal-card{display:flex;flex-direction:column;flex:none;width:min(640px,100vw - 32px);max-height:calc(100dvh - 48px);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-modal);overflow:hidden}.modal-card.sm{width:min(440px,100vw - 32px)}.modal-card.side{width:360px}.modal-body{flex:1;overflow-y:auto;padding:var(--sp-5)}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:var(--surface-2)}.modal-foot .spacer{margin-right:auto}@media(max-width:1100px){.modal-card.side{position:fixed;top:24px;right:16px}}@media(max-width:760px){.modal-card.side{top:0;right:0}.form-grid{grid-template-columns:1fr}.toolbar .field,.toolbar .grow{flex:1 1 100%}.toolbar .field>input,.toolbar .field>select,.toolbar .grow>input,.toolbar .grow>select{flex:1;width:100%}table.data.responsive thead{display:none}table.data.responsive tbody,table.data.responsive tr,table.data.responsive td{display:block}table.data.responsive tr{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}table.data.responsive td{padding:3px 0;border:0}table.data.responsive td[data-label]:before{content:attr(data-label) ": ";color:var(--text-muted);font-size:var(--fs-label)}table.data.responsive tbody tr:hover td{background:none}table.data.responsive td.actions{width:auto;padding-top:var(--sp-2);text-align:left}table.data.responsive .row-actions{flex-wrap:wrap}table.data :is(button,.btn).sm{min-height:var(--control-h)}.modal-card,.modal-card.sm,.modal-card.side{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}dialog.modal,dialog.modal.modal-sm,dialog.modal.modal-lg{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.modal-head,.modal-body,.modal-foot{padding-left:var(--sp-4);padding-right:var(--sp-4)}}table.action-matrix .grant-select-wrap{display:block;position:relative}table.action-matrix select.grant-select{appearance:none;background-color:transparent;background-position:right 6px center;background-size:14px;border:1px solid transparent;padding:0 24px;text-align:center;text-align-last:center;cursor:pointer}table.action-matrix select.grant-select option{text-align:center}table.action-matrix .grant-select:hover,table.action-matrix .grant-select:focus-visible{background-color:var(--surface);border-color:var(--border-strong)}table.action-matrix .grant-checkbox{display:inline-flex;align-items:center;justify-content:center;width:32px;height:28px;border-radius:var(--r-sm);cursor:pointer}table.action-matrix .grant-checkbox input{accent-color:var(--ink)}table.action-matrix .grant-checkbox:has(input:focus-visible){outline:2px solid var(--info);outline-offset:1px}table.action-matrix .grant-checkbox input:not(:checked){opacity:.65}table.action-matrix .locked-value,table.action-matrix .readonly-check,table.action-matrix .unavailable-value,table.action-matrix .readonly-value{display:inline-flex;align-items:center;justify-content:center;min-height:28px;color:var(--text-muted)}table.action-matrix .locked-value svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}table.action-matrix .severity-icon{width:14px;height:14px;vertical-align:-2px;margin-inline-end:var(--sp-1);fill:none;stroke:currentColor;stroke-width:1.7}[data-tone]{--c: var(--tone-slate);--c-soft: var(--tone-slate-soft)}[data-tone=blue]{--c: var(--tone-blue);--c-soft: var(--tone-blue-soft)}[data-tone=teal]{--c: var(--tone-teal);--c-soft: var(--tone-teal-soft)}[data-tone=violet]{--c: var(--tone-violet);--c-soft: var(--tone-violet-soft)}[data-tone=copper]{--c: var(--tone-copper);--c-soft: var(--tone-copper-soft)}[data-tone=rose]{--c: var(--tone-rose);--c-soft: var(--tone-rose-soft)}[data-tone=cyan]{--c: var(--tone-cyan);--c-soft: var(--tone-cyan-soft)}[data-tone=slate]{--c: var(--tone-slate);--c-soft: var(--tone-slate-soft)}.badge.tone{background:var(--c-soft);border-color:transparent;color:var(--c);font-weight:600}.icon-chip{display:inline-grid;place-items:center;flex:none;width:34px;height:34px;border-radius:var(--r-sm);background:var(--c-soft);color:var(--c)}.icon-chip svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-chip.sm{width:26px;height:26px}.icon-chip.sm svg{width:15px;height:15px}.title-row{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.progress{height:8px;border-radius:var(--r-pill);background:var(--hover);overflow:hidden}.progress>span{display:block;height:100%;background:var(--ink);border-radius:inherit}.progress.ok>span{background:var(--success)}.progress[data-tone]>span,[data-tone] .progress>span{background:var(--c)}.dropzone{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-5) var(--sp-4);border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface-2);text-align:center;cursor:pointer}.dropzone.over,.dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone:focus-within{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.qcard{padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.qcard-head{display:flex;align-items:center;gap:var(--sp-2)}.q-n{color:var(--text-muted);font-size:var(--fs-label);font-weight:600;font-variant-numeric:tabular-nums}.q-try{margin-left:auto;color:var(--text-muted);font-size:var(--fs-label)}.q-stem{margin:var(--sp-2) 0 var(--sp-3);color:var(--ink);font-weight:600}.options{display:grid;gap:var(--sp-2)}.opt{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:10px 14px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;font-weight:400}.opt input{position:absolute;opacity:0;pointer-events:none}.opt .letter{display:grid;place-items:center;flex:none;width:26px;height:26px;border:1px solid var(--border-strong);border-radius:50%;color:var(--text-muted);font-size:var(--fs-label);font-weight:600}.opt .t{flex:1}.opt:after{margin-left:auto;font-size:var(--fs-label);font-weight:600;white-space:nowrap}.opt:hover:has(input:enabled){border-color:var(--ink);background:var(--hover)}.opt:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.opt:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.opt:has(input:checked) .letter{background:var(--ink);border-color:var(--ink);color:var(--surface)}.opt:has(input:disabled){cursor:default}.opt.tried .t{color:var(--text-muted);text-decoration:line-through}.opt.tried:not(:has(input:checked)):after{content:"Sai l\1ea7n tr\1b0\1edb c";color:var(--text-muted);font-weight:400}.qcard:is([data-state=right],[data-state=wrong]) .opt:not(:has(input:checked)){opacity:.5}.qcard[data-state=right] .opt:has(input:checked){border-color:var(--success);background:var(--success-soft);box-shadow:inset 0 0 0 1px var(--success)}.qcard[data-state=right] .opt:has(input:checked) .letter{background:var(--success);border-color:var(--success)}.qcard[data-state=right] .opt:has(input:checked):after{content:"\2713  \110\fang";color:var(--success)}.qcard[data-state=wrong] .opt:has(input:checked){border-color:var(--danger);background:var(--danger-soft);box-shadow:inset 0 0 0 1px var(--danger)}.qcard[data-state=wrong] .opt:has(input:checked) .letter{background:var(--danger);border-color:var(--danger)}.qcard[data-state=wrong] .opt:has(input:checked):after{content:"\2717  Ch\1b0 a \111\fang";color:var(--danger)}.q-feedback{margin:var(--sp-3) 0 0;padding:10px 14px;border-left:3px solid;border-radius:var(--r-sm)}.q-feedback.ok{background:var(--success-soft);border-color:var(--success)}.q-feedback.bad{background:var(--danger-soft);border-color:var(--danger)}.qcard-foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border)}.q-hint{margin-right:auto;color:var(--text-muted);font-size:var(--fs-label)}.q-hint.ok{color:var(--success);font-weight:600}.gate-label{display:block;font-size:12px;font-weight:400;line-height:1.4;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.function-nav{align-self:start;overflow:visible;min-width:0}.function-nav>.panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px}.function-nav>.panel-head>.row-actions{flex-wrap:nowrap;margin-left:auto}.function-nav nav{display:grid;padding:6px}.function-item{position:relative;display:flex;align-items:center;min-height:34px;border-left:3px solid transparent}.function-item.active{border-left-color:var(--ink)}.function-item:hover{background:var(--hover)}.function-choice{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:6px 10px;border:0;border-radius:0;background:transparent;color:var(--text);font:inherit;text-align:left;justify-content:flex-start;overflow-wrap:anywhere}.function-item.active .function-choice{color:var(--ink);font-weight:600}.function-choice small{color:var(--muted);font-weight:400}.function-actions{flex:none;position:relative}.function-menu-toggle{min-width:28px;min-height:28px;padding:2px}.function-menu{position:absolute;top:100%;right:0;z-index:20;min-width:180px;padding:4px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);box-shadow:0 4px 12px var(--border)}.function-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;justify-content:flex-start}.function-menu button:hover{background:var(--hover)}@media(max-width:900px){.function-nav nav{display:flex;flex-direction:column}.function-item{width:100%}.function-menu{top:0;right:32px}}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-3)}.metric{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.metric-head{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-label);font-weight:600;color:var(--text-muted)}.metric-value{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;min-height:30px}.metric-value b{font-size:26px;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}.metric-value>span:not(.unmeasured){color:var(--text-muted);font-size:var(--fs-label)}.metric small{margin-top:auto;color:var(--text-muted);font-size:var(--fs-caption)}.metric small.up{color:var(--success)}.metric small.down,.metric.low .metric-value b{color:var(--danger)}.settings-row{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--sp-5);padding:var(--sp-5)}.settings-row+.settings-row{border-top:1px solid var(--border)}.settings-row[hidden]{display:none}.settings-label h2{margin-bottom:var(--sp-1)}.settings-label p{color:var(--text-muted);font-size:var(--fs-label)}.settings-body{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.settings-body.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4) var(--sp-5)}.settings-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-3)}.field.changed :is(input,select){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}@media(max-width:1280px){.settings-body.fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.settings-row{grid-template-columns:1fr;gap:var(--sp-3);padding:var(--sp-4)}.settings-body.fields{grid-template-columns:1fr}.settings-actions{flex-wrap:wrap}}.panel-resize-handle{position:absolute;z-index:4;width:10px;min-width:10px;min-height:36px;padding:0;border:0;border-radius:0;background:transparent;cursor:col-resize;touch-action:none}.panel-resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:4px;width:2px;border-radius:var(--r-pill);background:var(--border-strong);opacity:.55}.panel-resize-handle:hover,.panel-resize-handle:focus-visible{background:var(--info-soft);outline:none}.panel-resize-handle:hover:after,.panel-resize-handle:focus-visible:after{background:var(--info);opacity:1}.panel-resize-handle[hidden]{display:none}body.panel-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}body.panel-resizing .panel-resize-handle:after{background:var(--info);opacity:1}.administration{min-width:0}.administration app-requests-page{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.administration .embedded{padding:0}.administration .scroll{overflow-x:auto}.administration .role-picker{anchor-name:--permission-role-picker}.administration .role-options{position:fixed;position-anchor:--permission-role-picker;inset:auto;top:anchor(bottom);right:anchor(right);margin:var(--sp-2) 0 0;width:min(320px,100vw - 32px);max-height:min(400px,60dvh);overflow-y:auto;padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);box-shadow:var(--shadow-modal)}.administration .role-options h2{margin-bottom:var(--sp-2);font-size:var(--fs-section)}.administration .role-options>button{margin-top:var(--sp-3)}.administration .additional-role-heading{margin:var(--sp-3) 0 var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border);font-size:var(--fs-label);color:var(--text-muted)}.administration .permission-filters .grow{flex:1 1 240px}.administration .permission-filters .permission-group{flex-basis:160px}.administration .matrix-scroll{max-height:min(68dvh,720px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.administration .mobile-role{display:none}.administration .action-matrix{table-layout:fixed;min-width:calc(224px + var(--role-count) * 152px)}.administration .action-matrix th:first-child{width:224px;white-space:normal;position:sticky;left:0;z-index:1}.administration .action-matrix th,.administration .action-matrix td{min-width:0;white-space:normal;overflow-wrap:anywhere}.administration .action-matrix thead th{position:sticky;top:0;z-index:2;background:var(--surface);box-shadow:inset 0 -2px var(--border);vertical-align:middle}.administration .action-matrix thead th:first-child{z-index:3}.administration .role-heading{display:flex;align-items:center;justify-content:center;gap:var(--sp-1);min-height:28px}.administration .role-title{min-width:0;text-align:center}.administration .role-title .role-name{max-width:100%;white-space:normal}.administration .action-matrix th small{display:block;font-weight:400}.administration .action-matrix .permission-group-row th,.administration .action-matrix .permission-group-row td{padding:var(--sp-2);background:var(--tone-copper-soft);color:var(--tone-copper)}.administration .action-matrix .permission-group-row[data-group=areas] th,.administration .action-matrix .permission-group-row[data-group=areas] td{background:var(--tone-rose-soft);color:var(--tone-rose)}.administration .action-matrix .permission-group-row[data-group=specials] th,.administration .action-matrix .permission-group-row[data-group=specials] td{background:var(--tone-olive-soft);color:var(--tone-olive)}.administration .action-matrix .permission-group-row small{display:inline;margin-left:var(--sp-2);color:inherit}.administration .action-matrix .pending-change{background:var(--accent-soft);box-shadow:inset 0 -2px var(--accent)}.administration .reserved-mark{display:inline-block;margin-left:var(--sp-1);color:var(--tone-copper);font-size:var(--fs-caption)}.administration .permission-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.administration .save-bar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);z-index:2}.administration .save-bar>span{margin-right:auto}.administration .section-heading{margin:var(--sp-4) 0}.administration .request-summary{display:grid;gap:var(--sp-3)}.administration .preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.administration .pager{display:flex;gap:var(--sp-2)}@media(max-width:760px){.administration .action-matrix{min-width:0}.administration .mobile-role{display:flex}.administration .role-picker{display:none}.administration .action-matrix th:first-child{width:58%}.administration .action-matrix tr>:nth-child(n+3){display:none}.administration .action-matrix th,.administration .action-matrix td{padding:var(--sp-2)}.administration .matrix-scroll{max-height:68dvh}.administration .permission-filters .permission-group,.administration .permission-filters .mobile-role{flex:1 1 calc(50% - var(--sp-3))}}.practice app-quote-practice,.practice app-roleplay-practice,.practice app-cards-practice,.practice app-listing-practice{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}.practice .toolbar{align-items:flex-end;row-gap:var(--sp-2)}.practice .toolbar>.field{flex:0 1 200px}.practice .toolbar>.push,.practice .toolbar>button{min-height:var(--control-h);display:inline-flex;align-items:center}.practice .scope-options{display:grid;gap:var(--sp-3)}.practice .chips button{min-height:34px;padding:0 var(--sp-4);gap:6px}.practice .push{margin-left:auto}.practice .stat-label{color:var(--text-muted);font-size:var(--fs-label);font-weight:600}.practice kbd{padding:1px 6px;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);color:var(--text-muted);font:inherit;font-size:var(--fs-caption)}.practice .quote{padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);font-style:italic}.practice .pager{display:flex;gap:var(--sp-2)}.practice .ok-text{color:var(--success)}.practice .bad-text{color:var(--danger)}.practice .side-layout{display:grid;grid-template-columns:var(--practice-nav-width, 280px) minmax(0,1fr);gap:var(--sp-4);align-items:start}.practice .grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.practice .filter-list{gap:var(--sp-1);padding-block:var(--sp-3)}.practice .filter-list .filter-list-head{margin:0 0 var(--sp-2);padding:0 var(--sp-3) var(--sp-3) calc(var(--sp-4) + 3px);border-bottom:1px solid var(--border)}.practice .filter-list button{min-height:56px;padding:10px var(--sp-4);gap:var(--sp-3);line-height:1.35}.practice .filter-list small.block{display:block;margin-top:2px;font-weight:400}.practice .filter-list .empty-note{margin:0;padding:var(--sp-2) var(--sp-4)}.practice .quote-body{display:grid;gap:var(--sp-3)}.practice .money-input{display:flex;align-items:stretch}.practice .money-input input{flex:1;min-width:0;border-radius:var(--r-sm) 0 0 var(--r-sm);font-size:var(--fs-section);font-variant-numeric:tabular-nums;text-align:right}.practice .money-input .unit{display:grid;place-items:center;padding:0 var(--sp-3);border:1px solid var(--border-strong);border-left:0;border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--surface-2);color:var(--text-muted);font-weight:600}.practice .landed{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--success);border-radius:var(--r-md);background:var(--success-soft);color:var(--success)}.practice .landed b{font-size:var(--fs-page);font-variant-numeric:tabular-nums}.practice .fees{display:grid;gap:var(--sp-3)}.practice .fees dl{display:grid;grid-template-columns:max-content 1fr;gap:6px var(--sp-4);margin:0}.practice .fees dt{color:var(--text-muted)}.practice .fees dd{margin:0;font-weight:600}.practice .fees h3{margin:var(--sp-2) 0 0;font-size:var(--fs-body)}.practice .calc{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.practice .calc th,.practice .calc td{padding:8px var(--sp-3);border-bottom:1px solid var(--border);text-align:left}.practice .calc th{background:var(--surface-2);color:var(--text-muted);font-size:var(--fs-label)}.practice .calc td:nth-child(2){color:var(--text-muted)}.practice .calc td:nth-child(3),.practice .calc th:nth-child(3){text-align:right;white-space:nowrap}.practice .calc tr.total td{border-bottom:0;color:var(--ink);font-weight:700}.practice .brief{display:flex;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);background:var(--surface-2);color:var(--text-muted)}.practice .brief b{flex:none;color:var(--ink)}.practice .chat{display:flex;flex-direction:column;gap:var(--sp-3);height:min(480px,60vh);overflow-y:auto;overscroll-behavior:contain}.practice .msg{display:flex;align-items:flex-end;gap:var(--sp-2);margin-right:15%}.practice .msg.me{flex-direction:row-reverse;margin:0 0 0 15%}.practice .msg.me .avatar{background:var(--ink);color:var(--surface)}.practice .msg.me .bubble{border-color:var(--ink);background:var(--ink);color:var(--surface)}.practice .msg.me .bubble small{color:var(--surface);opacity:.75}.practice .bubble{display:grid;gap:2px;width:fit-content;padding:10px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);overflow-wrap:anywhere}.practice .bubble>span{white-space:pre-wrap}.practice .bubble small{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-muted);font-size:var(--fs-caption)}.practice .reply{align-items:flex-end}.practice .reply .grow{flex:1 1 260px}.practice .reply textarea{min-height:56px;max-height:160px;field-sizing:content}.practice .finish{display:grid;gap:var(--sp-3)}.practice .finish ol{margin:0;padding-left:20px}.practice .flipcard{display:grid;gap:var(--sp-3)}.practice .flipcard:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--r-md)}.practice .flipcard.turned .face{animation:practice-flip-in .32s ease-out}.practice .deck-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);color:var(--text-muted);font-size:var(--fs-label)}.practice .deck-dots{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.practice .deck-dots button{width:20px;min-height:0;height:20px;padding:0;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface)}.practice .deck-dots .known{border-color:var(--c);background:var(--c)}.practice .deck-dots .unknown{border-color:var(--danger);background:var(--danger-soft)}.practice .deck-dots [aria-current]{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}.practice .face{display:grid;gap:var(--sp-3);align-content:center;min-height:260px;padding:var(--sp-6);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.practice .face.front{justify-items:center;border-color:transparent;background:var(--c-soft);text-align:center}.practice .face.tap{width:100%;font:inherit;color:inherit;cursor:pointer}.practice .face.tap:hover{border-color:var(--c)}.practice .face .flip-hint{display:flex;align-items:center;gap:var(--sp-2)}.practice .face .say{color:var(--c);font-size:22px;font-weight:600}.practice .face.back .stat-label{color:var(--c)}.practice .face .answer{margin:0;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);background:var(--c-soft);color:var(--ink);font-size:var(--fs-section);font-weight:600;line-height:1.5}.practice .face .dont-box{display:grid;gap:6px;padding:var(--sp-2) var(--sp-3);border-left:3px solid var(--danger);background:var(--danger-soft);font-size:var(--fs-label)}.practice .face .dont-box .stat-label{color:var(--danger)}.practice .face .dont{margin:0;padding-left:20px;color:var(--danger)}.practice .deck-table td[data-label="S\1ed1  th\1ebb"]{white-space:nowrap}.practice .deck-known{display:flex;align-items:center;gap:var(--sp-2)}.practice .deck-known .progress{flex:none;width:80px}.practice .table-wrap{position:relative;overflow-x:auto}.practice .card-list{table-layout:fixed}.practice .card-list th:nth-child(1){width:24%}.practice .card-list th:nth-child(3){width:24%}.practice .card-list th:nth-child(4){width:104px}.practice .card-list td{vertical-align:top;line-height:1.45}.practice .dont-cell{color:var(--danger)}.practice .dont-cell span{display:block}.practice .dont-cell span+span{margin-top:2px}.practice .listing-card h2{margin:2px 0 0}.practice .listing-card .source{font-size:var(--fs-caption)}.practice .listing{display:grid;gap:var(--sp-3)}.practice .listing p{margin:0}.practice .listing .facts{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.practice .listing .fact{display:grid;gap:2px;min-width:160px;padding:10px var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.practice .listing .fact span{color:var(--text-muted);font-size:var(--fs-label)}.practice .listing .fact b{color:var(--ink);font-weight:600}.practice .listing .fact.price b{font-size:var(--fs-page);font-weight:700;font-variant-numeric:tabular-nums}.practice .listing .description{padding:var(--sp-3) var(--sp-4);border-left:3px solid var(--border-strong);background:var(--surface-2);white-space:pre-line}.practice .steps{display:grid;gap:var(--sp-5)}.practice .steps fieldset{margin:0;padding:0;border:0;min-width:0}.practice .steps legend{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);font-weight:700}.practice .steps legend .n{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:var(--r-sm);background:var(--ink);color:var(--surface);font-size:var(--fs-caption)}.practice .steps legend small{font-weight:400}.practice .steps .alert{margin:0}.practice .risk-item,.practice .decision{padding:10px var(--sp-2);border-bottom:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer}.practice .risk-item .t,.practice .decision .t{flex:1}.practice .risk-item:hover,.practice .risk-item:has(input:checked),.practice .decision:hover,.practice .decision:has(input:checked){background:var(--c-soft, var(--surface-2))}.practice .risk-item.missed .t,.practice .decision.wrong .t{color:var(--danger)}.practice .decision.right .t{color:var(--success);font-weight:600}@keyframes practice-flip-in{0%{transform:perspective(900px) rotateY(-70deg);opacity:.2}}@media(max-width:760px){.practice .side-layout,.practice .grid-2{grid-template-columns:1fr}.practice .face{min-height:220px;padding:var(--sp-4)}}.practice .head-actions{display:flex;flex:none;align-items:center;gap:var(--sp-2)}.practice .attempts-btn{anchor-name:--rp-attempts}.practice .attempts-pop{position:fixed;position-anchor:--rp-attempts;inset:auto;top:calc(anchor(bottom) + 4px);right:anchor(right);width:260px;margin:0;padding:var(--sp-1) 0;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-modal)}.practice .attempts-pop>button{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);border:0;border-left:3px solid transparent;border-radius:0;background:none;color:var(--text);font-weight:400;text-align:left}.practice .attempts-pop>button:hover{background:var(--hover)}.practice .attempts-pop>button[aria-current=true]{border-left-color:var(--ink)}.practice .attempts-pop>button small{margin-left:var(--sp-2);color:var(--text-muted)}.practice .viewing-old{margin-right:var(--sp-2);color:var(--warning);font-size:var(--fs-label);white-space:nowrap}.practice .viewing-old .link{margin-left:var(--sp-2);font-size:inherit}.hb-layout{display:grid;grid-template-columns:var(--hb-nav-width, 240px) minmax(0,1fr);gap:var(--sp-4);align-items:start}.hb-main{display:grid;gap:var(--sp-4);min-width:0}@media(min-width:1281px){.page.hb-page{height:calc(100dvh - var(--topbar-h))}.page.hb-page>app-page-head{flex:none}.hb-layout{flex:1 1 0;min-height:0;align-items:stretch}.hb-nav,.hb-main{min-height:0;overflow-y:auto}.hb-main{display:flex;flex-direction:column}.hb-slide,.hb-main>.state{flex:1 0 0;min-height:0}.hb-slide{display:flex;flex-direction:column}.hb-slide .hb-item{flex:1;min-height:0;overflow-y:auto}}.hb-nav button>span:first-child{display:block;min-width:0}.hb-nav .part-dot{display:inline-block;width:10px;height:10px;margin-right:var(--sp-2);border-radius:50%;background:var(--c)}.hb-steps{display:flex;flex-wrap:wrap;gap:6px;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.hb-steps button{width:32px;min-height:0;height:32px;padding:0;border-radius:50%;font-size:var(--fs-label);font-weight:600;justify-content:center}.hb-steps [aria-current]{border-color:var(--c);background:var(--c);color:var(--surface)}.hb-item{min-width:0;scroll-margin-top:var(--sp-4)}.hb-item h3{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);color:var(--ink);font-size:var(--fs-section)}.hb-item app-md-view{font-size:15px;line-height:1.7}.hb-item app-md-view p{margin-bottom:var(--sp-3)}.hb-item app-md-view ul,.hb-item app-md-view ol{margin-bottom:var(--sp-4)}.hb-item app-md-view li+li{margin-top:var(--sp-2)}.hb-item app-md-view ul+p,.hb-item app-md-view ol+p{margin-top:var(--sp-5)}.hb-pager{justify-content:space-between}.hb-hits{list-style:none;margin:0;padding:0}.hb-hits li{display:grid;gap:2px;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.hb-hits li:last-child{border-bottom:0}.hb-hits .link{justify-content:flex-start}.hb-hits small{font-size:var(--fs-label)}.hb-hits mark{padding:0 2px;border-radius:2px;background:var(--warning-soft);color:var(--warning);font-weight:600}@media(max-width:1280px){.hb-layout{grid-template-columns:minmax(0,1fr)}.hb-main{order:2}.hb-nav{flex-direction:row;gap:var(--sp-1);padding:0;overflow-x:auto;scrollbar-width:none}.hb-nav:has(small){padding-block:0}.hb-nav button,.hb-nav button:has(small){flex:none;min-height:44px;padding:0 var(--sp-3);border-left:0;border-bottom:3px solid transparent;white-space:nowrap}.hb-nav button[aria-pressed=true]{border-bottom-color:var(--ink)}.hb-nav button>span:first-child{display:flex;align-items:center;gap:var(--sp-2)}.hb-nav small{margin-left:0}}.hb-layout.reloading{opacity:.6;transition:opacity .15s}.training-home>app-page-head{flex:none}@media(min-width:1101px)and (min-height:640px){.page.training-home{height:calc(100dvh - var(--topbar-h));--page-gap: var(--sp-3);gap:var(--page-gap)}.page.training-home .alert{padding-block:var(--sp-2)}.page.training-home .hero{padding:var(--sp-3) var(--sp-5)}.page.training-home .hero h2{margin:var(--sp-1) 0 2px}.page.training-home .hero-bar{margin-top:var(--sp-2)}.page.training-home .home-columns{flex:1 1 0;min-height:0;align-items:stretch;gap:var(--sp-3)}.page.training-home .home-main,.page.training-home .home-side{grid-template-rows:repeat(2,minmax(0,1fr));min-height:0;gap:var(--sp-3)}.page.training-home .home-columns .panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.page.training-home .home-columns .panel-head{padding-block:var(--sp-2)}.page.training-home .home-columns .panel-body{flex:1;min-height:0;overflow-y:auto;padding-block:var(--sp-3)}}.performance .metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-3)}.performance .unmeasured{color:var(--text-muted);font-size:var(--fs-section);font-weight:600}.performance .metric .progress{height:6px}.performance .perf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4);align-items:start}.performance .perf-grid>.panel:last-child:nth-child(odd){grid-column:1/-1}.performance>app-page-head{flex:none}.performance .table-wrap{position:relative;overflow-x:auto}.performance .subs{font-size:var(--fs-label)}.performance .subs th,.performance .subs td{padding:8px 10px;vertical-align:top}.performance .subs td:first-child{width:40%}.performance .subs td b{font-weight:600}.performance .subs td small{display:block;color:var(--text-muted);font-size:var(--fs-caption);white-space:nowrap}.performance .subs .note{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text)}.performance .subs .actions{white-space:nowrap}.performance .perf-grid .panel-head .title-row{flex:none}.performance .perf-grid .panel-head>.muted{flex:1 1 0;min-width:0;text-align:right;font-size:var(--fs-label)}.performance .mistakes{list-style:none;margin:0;padding:0}.performance .mistakes li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border)}.performance .mistakes li:first-child{padding-top:0}.performance .mistakes li:last-child{padding-bottom:0;border-bottom:0}.performance .mistakes small{display:block;color:var(--text-muted);font-size:var(--fs-label)}.performance .mistakes .times{color:var(--danger);font-weight:600}@media(max-width:1100px){.performance .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.performance .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.performance .metric:last-child:nth-child(odd){grid-column:1/-1}.performance .perf-grid{grid-template-columns:1fr}}@media(min-width:1101px)and (min-height:640px){.page.performance{height:calc(100dvh - var(--topbar-h));--page-gap: var(--sp-3);gap:var(--page-gap)}.page.performance .perf-grid{flex:1 1 0;min-height:0;grid-auto-rows:minmax(0,1fr);align-items:stretch;gap:var(--sp-3)}.page.performance .perf-grid>.panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.page.performance .perf-grid .panel-head{padding-block:var(--sp-2)}.page.performance .perf-grid .panel-body,.page.performance .perf-grid .table-wrap{flex:1;min-height:0;overflow-y:auto}.page.performance .subs thead th{position:sticky;top:0;z-index:1}}.coach-dialog{overflow-wrap:anywhere}.coach-dialog .who{display:flex;align-items:center;gap:var(--sp-3)}.coach-dialog .who small{color:var(--text-muted);font-size:var(--fs-label)}.coach-dialog fieldset{margin:var(--sp-4) 0 0;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm)}.coach-dialog legend{padding:0 var(--sp-1);font-weight:600}.coach-dialog .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2);margin:0}.coach-dialog .stats>div{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--surface-2)}.coach-dialog .stats dt{color:var(--text-muted);font-size:var(--fs-caption)}.coach-dialog .stats dd{margin:2px 0 0;color:var(--ink);font-size:var(--fs-section);font-weight:700}.coach-dialog .stats dd small{color:var(--text-muted);font-size:var(--fs-caption);font-weight:400}.coach-dialog .lines,.coach-dialog .subs{display:grid;gap:var(--sp-2);margin:0;padding:0;list-style:none}.coach-dialog .lines small,.coach-dialog .lines q,.coach-dialog .subs small,.coach-dialog .subs q{display:block;color:var(--text-muted);font-size:var(--fs-label)}.coach-dialog .lines li{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--sp-2)}.coach-dialog .lines li>small{grid-column:1}.coach-dialog .lines li>.badge{grid-column:2;grid-row:1/span 2;align-self:center}.coach-dialog .lines.sent{margin-top:var(--sp-3)}.coach-dialog .subs li{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.coach-dialog .subs li+li{padding-top:var(--sp-2);border-top:1px solid var(--border)}.coach-dialog .subs li>div{min-width:0}.coach-dialog .practice .chat.transcript{height:min(320px,40vh);margin-bottom:var(--sp-4)}.coach-dialog .criteria{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);margin-bottom:var(--sp-3)}.coach-dialog .outcome{margin:var(--sp-3) 0 0}.coach-dialog .form-stack{display:grid;gap:var(--sp-3)}@media(max-width:760px){.coach-dialog .stats,.coach-dialog .criteria{grid-template-columns:repeat(2,minmax(0,1fr))}}.path-tracking{gap:var(--sp-3)}.path-tracking .toolbar{margin:0;align-items:center}.path-tracking app-coach-page{display:contents}.path-tracking .row-actions{gap:var(--sp-2);align-items:center}.path-tracking .member-count{text-align:center}.path-tracking .path-progress{display:flex;align-items:center;gap:var(--sp-2);white-space:nowrap}.path-tracking progress{width:88px;height:5px;accent-color:var(--info)}@media(max-width:760px){.path-tracking .member-count{text-align:left}.path-tracking .row-actions{flex-wrap:wrap}}:root{--topbar-h: 56px}.top-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--sp-4);height:var(--topbar-h);padding:0 var(--sp-5);border-bottom:1px solid var(--border);background:var(--surface)}.top-title{flex:none;margin:0;color:var(--ink);font-size:var(--fs-section);font-weight:700;white-space:nowrap}.top-tabs{flex:none;align-self:stretch;padding-left:var(--sp-4);border-left:1px solid var(--border);border-bottom:0}.top-tabs>button{min-height:100%;border-bottom-width:3px;white-space:nowrap}.top-tools{display:flex;flex:1 1 auto;justify-content:flex-end;align-items:center;gap:var(--sp-2);min-width:0;margin-left:auto}.top-search-host{position:relative;flex:0 1 280px;min-width:140px}.top-search{position:relative;display:block;flex:0 1 280px;min-width:140px}.top-search svg{position:absolute;top:50%;left:10px;width:16px;height:16px;transform:translateY(-50%);fill:none;stroke:var(--text-muted);stroke-width:2;stroke-linecap:round}.top-search input{width:100%;padding-left:32px}.top-icon{position:relative;display:inline-grid;place-items:center;width:var(--control-h);height:var(--control-h);padding:0;border:0;background:none;color:var(--ink)}.top-icon:hover{background:var(--hover)}.top-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.bell svg{fill:var(--surface)}.bell.has-unread svg{fill:var(--notice);stroke:var(--warning)}.bell-count{position:absolute;top:3px;right:1px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--danger);box-shadow:0 0 0 2px var(--surface);color:var(--surface);font-size:10px;font-weight:700;line-height:16px;text-align:center}.top-me{display:inline-flex;align-items:center;gap:var(--sp-2);padding:2px var(--sp-2) 2px 2px;border:0;background:none;color:var(--ink);font-weight:600}.top-me:hover{background:var(--hover)}.top-me>svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.top-pop{position:fixed;inset:calc(var(--topbar-h) - 4px) var(--sp-4) auto auto;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);box-shadow:var(--shadow-modal)}.top-pop>header{display:grid;gap:2px;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.top-pop>header small{color:var(--text-muted);font-size:var(--fs-caption)}.top-bell{width:min(420px,100vw - 32px);max-height:min(560px,100dvh - var(--topbar-h) - 16px);overflow-y:auto}.top-bell>header{position:sticky;top:0;z-index:1;grid-template-columns:1fr auto;align-items:center;row-gap:var(--sp-3);background:var(--surface)}.top-bell h2{margin:0;color:var(--ink);font-size:var(--fs-body);font-weight:700}.top-bell h2 span{color:var(--text-muted);font-weight:500}.top-bell .bell-read-all{display:inline-flex;align-items:center;gap:6px;min-height:0;padding:4px 6px;border:0;background:none;color:var(--ink);font-size:var(--fs-label);font-weight:600}.top-bell .bell-read-all:hover:not(:disabled){background:var(--hover)}.top-bell .bell-read-all:disabled{color:var(--text-muted);cursor:default}.top-bell .bell-filter{display:flex;grid-column:1/-1;gap:var(--sp-2)}.top-bell .bell-filter button{min-height:0;padding:4px 12px;border:1px solid var(--border);border-radius:999px;background:none;color:var(--text);font-size:var(--fs-label);font-weight:500}.top-bell .bell-filter button:hover{background:var(--hover)}.top-bell .bell-filter button.active{border-color:var(--ink);background:var(--ink);color:var(--surface)}.top-bell ul{margin:0;padding:0;list-style:none}.top-bell li+li{border-top:1px solid var(--border)}.top-bell li>button{display:grid;grid-template-columns:32px minmax(0,1fr) 8px;align-items:start;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4);border:0;border-radius:0;background:none;color:var(--text);font-weight:400;text-align:left;white-space:normal;overflow-wrap:anywhere}.top-bell li>button:hover{background:var(--hover)}.top-bell .icon-chip{width:32px;height:32px}.top-bell .bell-body{display:grid;gap:2px}.top-bell .bell-title{display:flex;flex-wrap:wrap;align-items:center;gap:2px var(--sp-2)}.top-bell .bell-title b{color:var(--ink);font-weight:600}.top-bell .bell-detail{font-size:var(--fs-label)}.top-bell q{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text);font-size:var(--fs-label);quotes:"\201c" "\201d"}.top-bell small{color:var(--text-muted);font-size:var(--fs-caption)}.top-bell li.unread .bell-title b{font-weight:700}.top-bell .bell-dot{width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--accent)}.top-bell .empty{padding:var(--sp-4);color:var(--text-muted)}.top-menu{width:240px}.top-menu>button,.top-menu>a{display:block;width:100%;padding:var(--sp-2) var(--sp-4);border:0;border-radius:0;background:none;color:var(--text);font:inherit;text-align:left;text-decoration:none}.top-menu>button:hover,.top-menu>a:hover{background:var(--hover)}.top-menu>:last-child{margin-bottom:var(--sp-2)}.top-menu>header+*{margin-top:var(--sp-2)}.top-menu .danger-text{color:var(--danger)}@media(max-width:1100px){:root{--topbar-h: 104px}.top-bar{gap:var(--sp-2);padding:0 var(--sp-3);height:var(--topbar-h);align-content:center;flex-wrap:wrap;padding-block:var(--sp-2)}.top-search{width:100%}.top-tabs{flex:1 1 auto;overflow-x:auto;min-width:0}.top-tools{flex-basis:100%}.top-search-host{flex:1 1 140px}.top-name{display:none}}.content-management app-content-setup-page,.content-management app-review-page{display:block;flex:1;min-height:0}.content-management .page.content{height:100%;padding:0;min-height:0}.content-management .list-search{display:flex;justify-content:flex-end;padding:var(--sp-3);border-bottom:1px solid var(--border)}@media(max-width:760px){body:has(app-content-management-page) .top-bar .top-tools{flex:none}}.review-compare{display:grid;grid-template-columns:var(--review-before-width, minmax(0, 1fr)) minmax(0,1fr);gap:var(--sp-4);margin-block:var(--sp-4)}.review-compare section{min-width:0}.review-compare h3{margin-bottom:var(--sp-2)}.review-value{white-space:pre-wrap;overflow-wrap:anywhere;padding:var(--sp-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);max-height:40dvh;overflow:auto}@media(max-width:760px){.review-compare{grid-template-columns:1fr}}.page.content{overflow-wrap:anywhere}.page.content .content-body{display:grid;grid-template-columns:var(--author-list-width, 320px) minmax(0,1fr);gap:var(--sp-4);align-items:start}.page.content .empty{padding:var(--sp-3) var(--sp-4)}.page.content .review-bar{align-items:center;row-gap:var(--sp-2)}.page.content .review-bar .rule-note{flex:1 1 320px;font-size:var(--fs-label);text-align:right}.page.content .lesson-list{padding:0}.page.content .list-scroll{display:flex;flex-direction:column;gap:2px;padding:0 var(--sp-2) var(--sp-2) 0}.page.content .list-scroll .alert{margin:0 0 0 var(--sp-3)}.page.content .list-scroll .group-title{padding:var(--sp-3) var(--sp-3) var(--sp-1);color:var(--text-muted);font-size:var(--fs-caption);font-weight:600}.page.content .list-scroll button{gap:var(--sp-3);padding-block:6px}.page.content .list-scroll .name{min-width:0}.page.content .editor{display:flex;flex-direction:column;overflow:hidden}.page.content .editor-body{display:grid;gap:var(--sp-3);padding:var(--sp-4)}.page.content .editor-foot{display:grid;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--surface-2)}.page.content .foot-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2)}.page.content .foot-actions{display:flex;gap:var(--sp-2)}.page.content .block-edit{display:grid;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-left:3px solid var(--c, var(--border-strong));border-radius:var(--r-sm)}.page.content .block-edit.changed{border-color:var(--accent)}.page.content .block-edit>header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.page.content .block-edit>header .block-label{color:var(--ink);font-size:var(--fs-section);font-weight:600}.page.content .block-edit textarea{field-sizing:content;min-height:calc(4lh + 2 * var(--sp-2) + 2px)}.page.content .block-edit .check{min-height:0}.page.content .block-edit .block-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-left:auto}.page.content .block-edit .block-view{padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2)}.page.content .block-edit .block-view .muted{margin:0}.page.content .table-panel .table-scroll{position:relative;padding:0}.page.content td.name small{display:block;color:var(--text-muted)}.page.content td .badge{margin-left:var(--sp-1)}.page.content td .badges .badge{margin-left:0}:is(.page.content,.content-dialog) .field.changed :is(input,textarea){border-color:var(--accent)}:is(.page.content,.content-dialog) .draft-note{display:grid;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--info-soft);color:var(--info);font-size:var(--fs-label)}:is(.page.content,.content-dialog) .draft-note p{white-space:pre-wrap}:is(.page.content,.content-dialog) .history{border-top:1px solid var(--border);padding-top:var(--sp-3)}:is(.page.content,.content-dialog) .history summary{color:var(--ink);font-weight:600;cursor:pointer}:is(.page.content,.content-dialog) .history ol{display:grid;gap:var(--sp-2);margin:var(--sp-3) 0 0;padding:0;list-style:none}:is(.page.content,.content-dialog) .history li{display:flex;align-items:flex-start;gap:var(--sp-3)}:is(.page.content,.content-dialog) .history li>.badge{flex:none;min-width:76px;justify-content:center}:is(.page.content,.content-dialog) .history li>div{display:grid;min-width:0}:is(.page.content,.content-dialog) .history small{color:var(--text-muted);font-size:var(--fs-label)}.content-dialog{overflow-wrap:anywhere}.content-dialog details+.field{margin-top:var(--sp-4)}.content-dialog .form-stack{display:grid;gap:var(--sp-3)}.content-dialog .modal-body>.alert{margin-bottom:var(--sp-3)}.content-dialog .diff{margin:var(--sp-3) 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);white-space:pre-wrap}.content-dialog .diff del{background:var(--danger-soft);color:var(--danger);text-decoration:line-through}.content-dialog .diff ins{background:var(--success-soft);color:var(--success);text-decoration:none}@media(min-width:1101px)and (min-height:640px){.page.content{height:calc(100dvh - var(--topbar-h));gap:var(--sp-3)}.page.content .content-body{flex:1 1 0;min-height:0;grid-template-rows:minmax(0,1fr);align-items:stretch}.page.content .lesson-list,.page.content .editor,.page.content .table-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.page.content .table-panel{flex:1 1 0}.page.content .list-scroll,.page.content .editor-body,.page.content .table-scroll{flex:1;min-height:0;overflow-y:auto}.page.content .table-scroll thead th{position:sticky;top:0;z-index:1}}@media(max-width:1100px){.page.content .content-body{grid-template-columns:minmax(0,1fr)}.page.content .list-scroll{max-height:40dvh;overflow-y:auto}}@media(max-width:760px){.page.content .foot-row{align-items:stretch}.page.content .foot-actions{flex:1 1 100%}.page.content .foot-actions button{flex:1}}@media(min-width:761px){dialog.diagram-builder.modal-lg{width:min(1200px,100vw - 32px)}}dialog.diagram-builder .modal-body{display:grid;align-content:start;gap:var(--sp-3);overflow:auto}dialog.diagram-builder .builder-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}dialog.diagram-builder .builder-edit{display:grid;align-content:start;gap:var(--sp-3);min-width:0}dialog.diagram-builder .builder-layout>.builder-preview{position:sticky;top:0}@media(max-width:900px){dialog.diagram-builder .builder-layout{grid-template-columns:minmax(0,1fr)}dialog.diagram-builder .builder-layout>.builder-preview{position:static}}dialog.diagram-builder .grid-wrap{overflow-x:auto}dialog.diagram-builder table.grid{border-collapse:collapse}dialog.diagram-builder table.grid th,dialog.diagram-builder table.grid td{padding:2px;vertical-align:middle}dialog.diagram-builder table.grid thead input{font-weight:600}dialog.diagram-builder table.grid input{min-width:9rem}dialog.diagram-builder table.grid .tool{width:1%}dialog.diagram-builder table.grid tfoot button{width:100%;color:var(--text-muted)}dialog.diagram-builder .builder-actions{display:flex;align-items:start;gap:var(--sp-2)}dialog.diagram-builder ol.steps{display:grid;gap:var(--sp-2);margin:0;padding:0;list-style:none}dialog.diagram-builder ol.steps li{display:flex;align-items:center;gap:var(--sp-1)}dialog.diagram-builder ol.steps input{flex:1;min-width:0}dialog.diagram-builder .builder-preview{padding:var(--sp-3);border:1px dashed var(--border-strong);border-radius:var(--r-sm);background:var(--surface-2)}dialog.diagram-builder .builder-preview h3{margin:0 0 var(--sp-2);color:var(--text-muted);font-size:var(--fs-label);font-weight:600}dialog.diagram-builder .builder-preview .muted{margin:0}dialog.path-import .modal-body{display:grid;align-content:start;gap:var(--sp-3);overflow:auto}dialog.path-import .alert ul{margin:var(--sp-1) 0 0;padding-left:1.2em}dialog.path-import .import-step{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}dialog.path-import .import-step.column{flex-direction:column;align-items:stretch}dialog.path-import .import-step h3{margin:0;font-size:var(--fs-section)}dialog.path-import .import-step p{margin:var(--sp-1) 0 0}dialog.path-import .import-step .btn{flex:none}dialog.path-import .dropzone{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-5) var(--sp-4);border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface-2);text-align:center;cursor:pointer}dialog.path-import .dropzone.over,dialog.path-import .dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}dialog.path-import .dropzone:focus-within{outline:2px solid var(--accent);outline-offset:2px}dialog.path-import .import-summary{margin:0}dialog.path-import .import-tree{display:grid;gap:var(--sp-3);margin:0;padding:0;list-style:none}dialog.path-import .import-tree ul{display:grid;gap:var(--sp-1);margin:var(--sp-1) 0 0;padding-left:var(--sp-4);list-style:none}dialog.path-import .import-tree li li{display:flex;flex-wrap:wrap;gap:0 var(--sp-2);padding:6px var(--sp-3);border-left:2px solid var(--border)}dialog.path-import .import-stage{display:flex;flex-wrap:wrap;gap:var(--sp-2)}dialog.path-import .import-warn{flex-basis:100%;margin:2px 0 0;color:var(--warning);font-size:var(--fs-caption)}.content-management .block-edit .insert-menu{position:relative}.content-management .block-edit .insert-menu>summary{list-style:none;cursor:pointer}.content-management .block-edit .insert-menu>summary::-webkit-details-marker{display:none}.content-management .block-edit .insert-menu>summary:after{content:" \25be"}.content-management .block-edit .insert-menu[open]>summary{background:var(--hover)}.content-management .block-edit .insert-menu .insert-items{position:absolute;z-index:5;top:calc(100% + 4px);right:0;display:grid;min-width:168px;padding:var(--sp-1);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-modal)}.content-management .block-edit .insert-menu .insert-items button{justify-content:flex-start;border:0;background:transparent;font-weight:400;text-align:left}.content-management .block-edit .insert-menu .insert-items button:hover:not(:disabled){background:var(--hover)}dialog.diagram-builder .chart-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}dialog.diagram-builder .chart-types{display:inline-flex}dialog.diagram-builder .chart-types button{border-radius:0}dialog.diagram-builder .chart-types button:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}dialog.diagram-builder .chart-types button:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}dialog.diagram-builder .chart-types button+button{margin-left:-1px}dialog.diagram-builder .chart-types button[aria-pressed=true]{position:relative;background:var(--ink);border-color:var(--ink);color:var(--surface)}dialog.diagram-builder .chart-title{flex:1;min-width:12rem}dialog.diagram-builder .builder-hint{margin:0;font-size:var(--fs-caption)}dialog.diagram-builder input.invalid{border-color:var(--danger);background:var(--danger-soft)}dialog.diagram-builder ol.steps.tree li{transition:padding-left .12s ease}@media(prefers-reduced-motion:reduce){dialog.diagram-builder ol.steps.tree li{transition:none}}dialog.image-builder .modal-body{display:grid;gap:var(--sp-3)}dialog.image-builder .dropzone{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-4);border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface-2);text-align:center;cursor:pointer}dialog.image-builder .dropzone.over,dialog.image-builder .dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}dialog.image-builder .dropzone:focus-within{outline:2px solid var(--accent);outline-offset:2px}dialog.image-builder .dropzone img{max-width:100%;max-height:280px;border-radius:var(--r-sm)}fieldset.read-only{border:0;margin:0;padding:0;min-width:0}fieldset.read-only:disabled .primary,fieldset.read-only:disabled .danger,fieldset.read-only:disabled .add-slot,fieldset.read-only:disabled .add-stage,fieldset.read-only:disabled .import-menu{display:none}.md-tree-wrap{overflow-x:auto;margin:var(--sp-2) 0;padding-bottom:var(--sp-1)}.md-tree,.md-tree ul{display:flex;justify-content:center;margin:0;padding:0;list-style:none}.md-tree{gap:var(--sp-4);min-width:max-content}.md-tree ul{position:relative;padding-top:16px}.md-tree ul:before{content:"";position:absolute;top:0;left:50%;height:16px;border-left:1px solid var(--border-strong)}.md-tree li{position:relative;display:flex;flex-direction:column;align-items:center;margin:0;padding:16px 6px 0}.md-tree>li{padding-top:0}.md-tree ul>li:before,.md-tree ul>li:after{content:"";position:absolute;top:0;width:50%;height:16px;border-top:1px solid var(--border-strong)}.md-tree ul>li:before{right:50%}.md-tree ul>li:after{left:50%;border-left:1px solid var(--border-strong)}.md-tree ul>li:first-child:before,.md-tree ul>li:last-child:after{border-top:0}.md-tree ul>li:only-child:before{display:none}.md-tree ul>li:only-child:after{border-top:0}.md-tree .node{display:inline-block;max-width:22ch;padding:6px 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);text-align:center}.md-tree>li>.node{border-color:var(--c, var(--ink));border-width:2px;font-weight:600}.md-chart{margin:var(--sp-2) 0}.md-chart svg{display:block;width:100%;max-width:720px;height:auto;overflow:visible}.md-chart .grid{stroke:var(--border);stroke-width:1}.md-chart .axis{stroke:var(--border-strong);stroke-width:1}.md-chart .tick,.md-chart .cat{fill:var(--text-muted);font-size:12px}.md-chart .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.md-chart path.mark,.md-chart circle.mark{stroke:var(--surface);stroke-width:2}.md-chart .mark:hover{opacity:.85}.md-chart-title{margin-bottom:var(--sp-1);color:var(--ink);font-weight:600}.md-chart-error{margin:0;padding:var(--sp-2) var(--sp-3);border:1px dashed var(--danger);border-radius:var(--r-sm);color:var(--danger)}.md-legend{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);margin:var(--sp-1) 0 0;padding:0;list-style:none;color:var(--text);font-size:var(--fs-label)}.md-legend li{display:inline-flex;align-items:center;gap:6px;margin:0}.md-legend li::marker{content:none}.md-legend .swatch{width:10px;height:10px;border-radius:2px}.md-image{margin:var(--sp-2) 0}.md-image a{display:inline-block}.md-image img{display:block;max-width:100%;max-height:480px;height:auto;border:1px solid var(--border);border-radius:var(--r-sm)}.md-image figcaption{margin-top:var(--sp-1);color:var(--text-muted);font-size:var(--fs-caption)}.md-image-missing{display:grid;place-items:center;min-height:96px;border:1px dashed var(--border-strong);border-radius:var(--r-sm);color:var(--text-muted)}
