:root{--ink-900:#181B1F;--ink-700:#4B535B;--ink-500:#7A828A;--paper:#F1F2EE;--surface:#FFFFFF;--line:#E2E4DE;--field-border:#C9CDD1;--brand-blue:#005CA9;--brand-blue-hover:#243D8A;--brand-blue-light:#4C86C4;--brand-blue-soft:#E3ECF6;--brand-yellow:#FFED00;--gold:#8A6D00;--gold-soft:#FFF6CC;--success:#2E8B67;--success-soft:#E4F3EC;--danger:#C0432B;--danger-soft:#FBEAE6;--scrim:rgb(24 27 31/50%);--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--control-h-compact:34px;--control-h-default:40px;--touch-target:44px;--sidebar-width:250px;--content-max:1280px;--reading-max:760px;--font-sans:Manrope,system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--type-xs:11.5px;--type-sm:12.5px;--type-base:13.5px;--type-md:15px;--type-lg:16.5px;--type-page:25px;--type-detail:23px;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--shadow-overlay:0 20px 50px rgb(24 27 31/25%);--layer-sticky:5;--layer-dropdown:40;--layer-modal:60;--layer-toast:100;--color-canvas:var(--paper);--color-surface:var(--surface);--color-surface-subtle:var(--paper);--color-surface-selected:var(--brand-blue-soft);--color-text-strong:var(--ink-900);--color-text:var(--ink-700);--color-text-muted:var(--ink-500);--color-border:var(--line);--color-border-strong:var(--field-border);--color-action:var(--brand-blue);--color-action-hover:var(--brand-blue-hover);--color-focus:var(--brand-blue);--color-success:var(--success);--color-success-subtle:var(--success-soft);--color-warning:var(--gold);--color-warning-subtle:var(--gold-soft);--color-danger:var(--danger);--color-danger-subtle:var(--danger-soft);--button-bg:var(--color-action);--button-fg:var(--color-surface);--button-border:var(--color-action);--button-bg-hover:var(--color-action-hover);--button-height:var(--control-h-default);--button-radius:var(--radius-sm);--button-focus-ring:var(--color-focus);--input-bg:var(--color-surface);--input-fg:var(--color-text-strong);--input-border:var(--color-border-strong);--input-border-focus:var(--color-focus);--input-border-error:var(--color-danger);--input-height:var(--control-h-default);--input-radius:var(--radius-sm);--card-bg:var(--color-surface);--card-border:var(--color-border);--card-radius:var(--radius-md);--card-padding:var(--space-5);--card-shadow:none;--badge-bg:var(--color-surface-subtle);--badge-fg:var(--color-text);--badge-border:var(--color-border);--badge-radius:var(--radius-sm);--table-header-bg:var(--color-surface);--table-row-bg:var(--color-surface);--table-row-hover:var(--color-surface-selected);--table-border:var(--color-border);--table-cell-x:var(--space-4);--table-cell-y:var(--space-3);--overlay-bg:var(--scrim);--overlay-surface:var(--color-surface);--overlay-border:var(--color-border);--overlay-radius:var(--radius-lg);--overlay-shadow:var(--shadow-overlay);--feedback-bg:var(--color-danger-subtle);--feedback-fg:var(--color-danger);--feedback-border:var(--color-danger)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--type-md);line-height:1.5;color:var(--color-text);background:var(--color-canvas)}h1,h2,h3{margin:0;color:var(--color-text-strong)}h1{font-size:var(--type-page);line-height:32px;font-weight:800}h2{font-size:var(--type-lg);line-height:24px}p{margin:var(--space-2) 0 var(--space-4)}button,input,select,textarea{font:inherit}a,button,input,select{min-height:var(--touch-target)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}a{color:var(--color-action);text-decoration:none}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}input,select,textarea{display:block;width:100%;color:var(--input-fg);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);padding:var(--space-2) var(--space-3)}input:hover,select:hover,textarea:hover{border-color:var(--color-action)}input[type=checkbox]{width:20px;min-height:20px;margin:0;accent-color:var(--color-action)}input:disabled{color:var(--color-text-muted);background:var(--color-surface-subtle)}textarea{min-height:88px;resize:vertical}label{font-size:var(--type-base);font-weight:600}label,small{display:block}small{font-size:var(--type-sm);font-weight:400}.mono{font-family:var(--font-mono)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}.app-rail{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:22px var(--space-4);background:var(--color-surface);border-right:1px solid var(--color-border)}.app-brand{display:flex;align-items:center;gap:11px;padding:var(--space-2);color:var(--color-text-strong)}.app-brand-logo{width:32px;height:30px;flex:none}.app-brand strong{font-size:var(--type-lg);font-weight:800}.app-brand small{color:var(--color-action)}.app-rail nav{margin-top:var(--space-6)}.nav-item{display:flex;align-items:center;padding:10px var(--space-3);border-left:3px solid transparent;border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text);font-weight:600}.nav-item:hover{background:var(--color-surface-subtle)}.nav-item[aria-current=page]{background:var(--color-surface-selected);color:var(--color-action);border-left-color:var(--color-action)}.sidebar-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border)}.sidebar-footer button{margin-top:var(--space-3)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:var(--layer-sticky);display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4) var(--space-8);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-content{max-width:var(--content-max);padding:30px var(--space-8)}.page-heading{display:flex;justify-content:space-between;gap:var(--space-4);align-items:flex-start;margin-bottom:var(--space-5)}.page-heading p{max-width:var(--reading-max);font-size:var(--type-base)}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-3);gap:var(--space-3);margin-bottom:var(--space-5)}.category-card{padding:var(--space-5);border:1px solid var(--card-border);border-radius:var(--card-radius);background:var(--card-bg);color:var(--color-text-strong);text-align:left;font-weight:600}.category-card[aria-pressed=true]{border-color:var(--color-action);background:var(--color-surface-selected)}.filters{display:flex;align-items:end;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--card-border);border-radius:var(--card-radius);background:var(--card-bg)}.filters label{min-width:130px;flex:1 1}.ds-button{min-height:var(--touch-target);padding:10px 17px;border:1px solid var(--button-border);border-radius:var(--button-radius);background:var(--button-bg);color:var(--button-fg);font-size:var(--type-base);font-weight:700;white-space:nowrap}.ds-button:hover:not(:disabled){background:var(--button-bg-hover)}.ds-button[data-variant=outline],.ds-button[data-variant=secondary]{--button-bg:var(--color-surface);--button-fg:var(--color-action);--button-bg-hover:var(--color-surface-selected);--button-border:var(--color-border-strong)}.ds-button[data-variant=ghost],.ds-button[data-variant=link]{--button-bg:transparent;--button-fg:var(--color-action);--button-bg-hover:var(--color-surface-selected);--button-border:transparent}.ds-button[data-variant=destructive]{--button-bg:var(--color-danger);--button-fg:var(--color-surface);--button-bg-hover:var(--color-danger);--button-border:var(--color-danger)}.table-scroll{overflow-x:auto;border:1px solid var(--table-border);border-radius:var(--radius-md);background:var(--table-row-bg)}table{width:100%;border-collapse:collapse;font-size:var(--type-base)}th{background:var(--table-header-bg);color:var(--color-text-muted);font-size:var(--type-xs);font-weight:700}td,th{padding:var(--table-cell-y) var(--table-cell-x);border-bottom:1px solid var(--table-border);text-align:left;vertical-align:top}tbody tr:hover{background:var(--table-row-hover)}.row-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.badge{display:inline-block;padding:4px 8px;border:1px solid var(--badge-border);border-radius:var(--badge-radius);background:var(--badge-bg);color:var(--badge-fg);font-size:var(--type-sm)}.badge--warning{--badge-bg:var(--color-warning-subtle);--badge-fg:var(--color-warning);--badge-border:var(--color-warning)}.unplanned-cell{background:var(--color-warning-subtle)}.warning{color:var(--color-warning)}.feedback{padding:var(--space-3);border:1px solid var(--feedback-border);border-radius:var(--radius-sm);background:var(--feedback-bg);color:var(--feedback-fg);overflow-wrap:anywhere}.save-notice{color:var(--color-success)}.empty-state{padding:var(--space-8);text-align:center}.pagination{display:flex;gap:var(--space-3);align-items:center;justify-content:flex-end;margin-top:var(--space-4)}.ds-overlay{position:fixed;inset:0;z-index:var(--layer-modal);display:grid;place-items:center;padding:var(--space-4)}.ds-overlay-backdrop{position:absolute;inset:0;width:100%;height:100%;border:none;background:var(--overlay-bg)}.ds-overlay-surface{position:relative;width:min(440px,100%);max-height:90vh;overflow-y:auto;border:1px solid var(--overlay-border);border-radius:var(--overlay-radius);background:var(--overlay-surface);box-shadow:var(--overlay-shadow);padding:26px}.ds-overlay-header{display:flex;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.ds-overlay-header p,.ds-overlay-header small{font-size:var(--type-sm)}.ds-icon-button{min-width:var(--touch-target);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.check-field{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target);font-weight:400}.editor-form label,.login-panel label{margin-bottom:var(--space-3)}fieldset{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin:var(--space-4) 0}.editor-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.audit-event{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-mono);font-size:var(--type-sm)}.login-panel{margin:10vh auto;padding:28px;width:min(440px,calc(100% - 32px));background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg)}.skip-link{position:fixed;top:-100px;left:var(--space-4);z-index:var(--layer-toast);background:var(--color-surface);padding:var(--space-3)}.skip-link:focus{top:var(--space-4)}@media (max-width:920px){.app-shell{display:block}.app-rail{position:static;height:auto;border-right:none;border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-4)}.app-rail nav{display:flex;overflow-x:auto;margin-top:var(--space-2)}.nav-item{flex:none}.sidebar-footer{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3)}.sidebar-footer button{margin:0}.topbar{position:static;padding:var(--space-4)}.app-content{padding:22px var(--space-4)}.category-grid{grid-template-columns:repeat(2,1fr)}.page-heading{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.pagination{justify-content:center;flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.attachment-preview{display:block;max-inline-size:100%}