:root{--color-brand-600: #1d5f8a;--color-brand-700: #174d70;--color-brand-50: #eaf2f8;--color-positive: #1e7b34;--color-caution: #8a6d1d;--color-critical: #a03030;--color-neutral-ink: #22303c;--color-icon-on-tone: #ffffff;--color-surface: #ffffff;--color-surface-alt: #f5f7f9;--color-border: #d5dce2;--color-text: #22303c;--color-text-muted: #5a6b78;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--leading-normal: 1.5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-full: 999px;--shadow-1: 0 1px 3px rgba(34, 48, 60, .12);--focus-ring: 2px solid var(--color-brand-600);--target-min: 44px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-surface-alt);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal)}#root{min-height:100vh;display:flex;flex-direction:column}:focus-visible{outline:var(--focus-ring);outline-offset:2px}a{color:var(--color-brand-600)}button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--target-min);padding:0 var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer}button.primary,.button.primary{background:var(--color-brand-600);border-color:var(--color-brand-600);color:var(--color-surface);font-weight:600}button.primary:hover,.button.primary:hover{background:var(--color-brand-700);border-color:var(--color-brand-700)}button:disabled{opacity:.6;cursor:default}input[type=text],input[type=email],input[type=password],input[type=date],textarea,select{font:inherit;padding:var(--space-2) var(--space-3);min-height:var(--target-min);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);max-width:100%}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-4)}.app-header .inner{max-width:960px;margin:0 auto;display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.app-header .brand{font-weight:700;font-size:var(--text-lg);color:var(--color-text);text-decoration:none;margin-right:var(--space-4)}.app-header nav{display:flex;gap:var(--space-2);flex-wrap:wrap}.app-header nav a{display:inline-flex;align-items:center;min-height:var(--target-min);padding:0 var(--space-3);border-radius:var(--radius-sm);text-decoration:none;color:var(--color-text)}.app-header nav a[aria-current=page]{background:var(--color-brand-50);font-weight:600}.helper-note{border:1px solid var(--color-border);border-left:3px solid var(--color-brand-600, #1c4f8a);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.setup-policy-value{display:block;margin:var(--space-2) 0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-alt);font-size:var(--text-sm)}.app-footer{margin-top:var(--space-6);padding:var(--space-4) 0;font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.app-header .who{margin-left:auto;display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm)}main{width:100%;max-width:960px;margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-12);flex:1}h1{font-size:var(--text-2xl);margin:0 0 var(--space-4)}h2{font-size:var(--text-xl);margin:var(--space-8) 0 var(--space-3)}code{overflow-wrap:anywhere}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-1);padding:var(--space-4);margin-bottom:var(--space-3)}.training-row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:space-between}.training-row .info{flex:1 1 240px;min-width:0}.training-row .title{font-weight:600;font-size:var(--text-lg)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-sm);border:1px solid var(--color-border);background:var(--color-surface-alt);color:var(--color-neutral-ink)}.badge.positive{border-color:var(--color-positive);color:var(--color-positive)}.badge.caution{border-color:var(--color-caution);color:var(--color-caution)}.badge.critical{border-color:var(--color-critical);color:var(--color-critical)}.badge svg{flex:none}.due{font-size:var(--text-sm);color:var(--color-text-muted)}.due.overdue{color:var(--color-critical);font-weight:600}.due.due_soon{color:var(--color-caution)}.locked-note{font-size:var(--text-sm);color:var(--color-critical)}.error-block{border:1px solid var(--color-critical);border-left-width:var(--space-2);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-4);margin:var(--space-4) 0}.error-block .what{font-weight:600;margin:0 0 var(--space-1)}.error-block .why{margin:0 0 var(--space-2)}.error-block .next{margin:0}.empty-state{text-align:center;padding:var(--space-12) var(--space-4);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.skeleton{color:var(--color-text-muted);padding:var(--space-8) 0;text-align:center}.meta{color:var(--color-text-muted);font-size:var(--text-sm)}.field{display:block;margin-bottom:var(--space-3)}.field span{display:block;font-size:var(--text-sm);margin-bottom:var(--space-1)}.hint{color:var(--color-text-muted);font-size:var(--text-sm);margin:var(--space-1) 0 var(--space-3)}.checkbox-row{display:flex;align-items:center;gap:var(--space-2);min-height:var(--target-min)}.checkbox-row input{width:var(--space-6);height:var(--space-6)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}@media(max-width:480px){main{padding:var(--space-4) var(--space-3) var(--space-12)}.app-header .who{margin-left:0}}.player-frame{width:100%;min-height:32rem;border:1px solid var(--color-border);background:var(--color-surface-alt)}.lesson-list{list-style:none;padding:0;margin:0 0 var(--space-4) 0;display:grid;gap:var(--space-2)}.lesson-row{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.form-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:var(--space-3) 0}.form-row label{font-size:var(--text-sm);color:var(--color-text-muted)}.form-row input:not([type=checkbox]):not([type=radio]),.form-row select,.form-row textarea{flex:1 1 180px;min-width:0;min-height:var(--target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;background:var(--color-surface);color:var(--color-text)}.form-row input:focus-visible,.form-row select:focus-visible,.form-row textarea:focus-visible,.form-row button:focus-visible{outline:var(--focus-ring);outline-offset:2px}.form-row textarea{resize:vertical}button.secondary,.button.secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}button.secondary:hover,.button.secondary:hover{background:var(--color-surface-alt)}.admin-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-1);padding:0;margin:0 0 var(--space-4)}.admin-nav a{display:inline-flex;align-items:center;min-height:var(--target-min);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none;font-size:var(--text-sm)}.admin-nav a[aria-current=page]{background:var(--color-brand-50);border-color:var(--color-brand-600);font-weight:600}.admin-cards{list-style:none;padding:0;margin:0 0 var(--space-4);display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-3)}.admin-cards .card{margin-bottom:0}.admin-cards .count{font-size:var(--text-2xl);font-weight:600;margin:var(--space-1) 0}.heartbeat{border-left:var(--space-2) solid var(--color-border);padding-left:var(--space-3);margin:var(--space-2) 0}.heartbeat.ok{border-left-color:var(--color-positive)}.heartbeat.warn{border-left-color:var(--color-caution)}.heartbeat.fail{border-left-color:var(--color-critical)}.capability-row{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-1) 0}.capability-row input{width:var(--space-6);height:var(--space-6);margin-top:var(--space-1);flex:none}.capability-row label{min-height:var(--target-min);display:inline-flex;align-items:center}fieldset{border:1px solid var(--color-border);border-radius:var(--radius-md);margin:var(--space-3) 0}legend{font-size:var(--text-sm);color:var(--color-text-muted);padding:0 var(--space-2)}table{width:100%;border-collapse:collapse;margin:var(--space-3) 0}th,td{text-align:left;padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--color-border);vertical-align:top;font-size:var(--text-sm)}.correction-list{list-style:none;padding:0;margin:0 0 var(--space-4) 0;display:grid;gap:var(--space-2)}.drop-target{border:1px dashed var(--line, #94a3b8);border-radius:8px;transition:border-color .12s ease,background-color .12s ease}.drop-target.drag-over,.drop-target:hover{border-color:var(--accent, #0f62fe);background-color:var(--accent-soft, rgba(15, 98, 254, .06))}.admin-zone{border-left:4px solid var(--accent, #0f62fe);background:var(--accent-soft, rgba(15, 98, 254, .05));padding:var(--space-3, 1rem);border-radius:0 8px 8px 0;margin-top:var(--space-4, 1.5rem)}.admin-zone h2{margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2) var(--space-3);align-items:end;margin:var(--space-3) 0}.form-grid label{font-size:var(--text-sm);color:var(--color-text-muted);display:block;margin-bottom:var(--space-1)}.form-grid input:not([type=checkbox]):not([type=radio]),.form-grid select,.form-grid textarea{width:100%;min-width:0;min-height:var(--target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;background:var(--color-surface);color:var(--color-text);box-sizing:border-box}.form-grid input:focus-visible,.form-grid select:focus-visible,.form-grid textarea:focus-visible{outline:var(--focus-ring);outline-offset:2px}.form-grid textarea{resize:vertical}.form-grid .span-1{grid-column:span 1}.form-grid .span-2{grid-column:span 2}.form-grid .span-3{grid-column:span 3}.form-grid .span-4{grid-column:1 / -1}@media(max-width:768px){.form-grid{grid-template-columns:1fr 1fr}.form-grid .span-3,.form-grid .span-4{grid-column:1 / -1}}.form-row>button[type=submit],.form-row>button[type=button]:not(.secondary){display:block;width:100%;margin-top:var(--space-2)}.form-row>button+button{width:auto;display:inline-block;margin-top:0}
