:root{--surface-base: #f6f8fb;--surface-raised: #ffffff;--surface-sunken: #eef2f6;--surface-overlay: rgba(15, 23, 42, .45);--stroke-subtle: #e2e8f0;--stroke-default: #cbd5e1;--stroke-strong: #94a3b8;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #64748b;--text-inverse: #ffffff;--accent-500: #0369a1;--accent-600: #075985;--accent-100: #e0f2fe;--success: #16a34a;--success-bg: #dcfce7;--success-text: #166534;--warn: #d97706;--warn-bg: #fef3c7;--warn-text: #854d0e;--danger: #dc2626;--danger-bg: #fee2e2;--danger-text: #991b1b;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--tap-min: 44px;--shell-max: 1120px;--focus-ring: 0 0 0 3px rgba(3, 105, 161, .35);--font-base: "Segoe UI", "Cairo", "Amiri", system-ui, sans-serif;--font-size-base: 16px;--line-height-base: 1.55;color-scheme:light dark;font-family:var(--font-base);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--text-primary);background:var(--surface-base)}:root[data-theme=dark]{--surface-base: #0b1220;--surface-raised: #111a2c;--surface-sunken: #172238;--surface-overlay: rgba(0, 0, 0, .6);--stroke-subtle: #1f2a44;--stroke-default: #2a3755;--stroke-strong: #3b4a6b;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-tertiary: #64748b;--text-inverse: #0f172a;--accent-500: #38bdf8;--accent-600: #0ea5e9;--accent-100: #0b2739;--success-bg: #113826;--success-text: #a7f3d0;--warn-bg: #3b2a0b;--warn-text: #fde68a;--danger-bg: #391515;--danger-text: #fecaca}:root[data-font=dyslexic]{--font-base: "Lexend", "Verdana", "Trebuchet MS", system-ui, sans-serif;letter-spacing:0}:root[data-size=lg]{--font-size-base: 18px}:root[data-size=xl]{--font-size-base: 20px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box}body{margin:0}a{color:var(--accent-500);text-decoration:none}a:hover,a:focus-visible{text-decoration:underline}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.layout{max-width:var(--shell-max);margin:0 auto;padding:1rem 1.25rem 4rem}nav.top{display:flex;flex-wrap:wrap;gap:.35rem .6rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--stroke-subtle);margin-bottom:1rem}nav.top a{text-decoration:none;font-weight:600;color:var(--text-secondary);padding:.55rem .8rem;border-radius:var(--radius-sm);min-height:var(--tap-min);display:inline-flex;align-items:center}nav.top a:hover{background:var(--surface-sunken);text-decoration:none}nav.top a.active{color:var(--accent-500);background:var(--accent-100)}nav.top .brand{font-weight:800;color:var(--text-primary);margin-inline-end:auto}nav.top .menu-toggle{display:none;font-size:1.25rem;background:transparent;border:1px solid var(--stroke-default);border-radius:var(--radius-sm);padding:0 .75rem;min-height:var(--tap-min);min-width:var(--tap-min)}@media (max-width: 720px){nav.top{gap:.3rem}nav.top .menu-toggle{display:inline-flex;align-items:center;justify-content:center}nav.top .links{display:none;width:100%;flex-direction:column;align-items:stretch;gap:.25rem;padding:.4rem 0 .2rem}nav.top[data-open=true] .links{display:flex}nav.top .links a{width:100%}}.card{background:var(--surface-raised);border-radius:var(--radius-md);padding:1rem 1.25rem;margin-bottom:1rem;border:1px solid var(--stroke-subtle)}h1,h2,h3{color:var(--text-primary);line-height:1.2}button{font:inherit;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--stroke-strong);background:var(--surface-raised);color:var(--text-primary);padding:0 1rem;min-height:var(--tap-min);transition:background-color .12s ease,border-color .12s ease}button:hover:not(:disabled){background:var(--surface-sunken)}button.primary{background:var(--accent-500);border-color:var(--accent-500);color:var(--text-inverse)}button.primary:hover:not(:disabled){background:var(--accent-600);border-color:var(--accent-600)}button.ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{font:inherit;color:var(--text-primary);background:var(--surface-raised);border-radius:var(--radius-sm);border:1px solid var(--stroke-default);padding:.55rem .7rem;width:100%;max-width:100%;min-height:calc(var(--tap-min) - 4px)}input[type=radio],input[type=checkbox]{width:auto;min-height:auto;margin-inline-end:.4rem}textarea{min-height:96px;resize:vertical}table.grid{width:100%;border-collapse:collapse;font-size:.92rem}table.grid th,table.grid td{border-bottom:1px solid var(--stroke-subtle);padding:.5rem .6rem;text-align:start;color:var(--text-primary)}table.grid th{color:var(--text-secondary);font-weight:600;background:var(--surface-sunken)}.badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-sm);font-size:.78rem;font-weight:700}.badge.present{background:var(--success-bg);color:var(--success-text)}.badge.partial{background:var(--warn-bg);color:var(--warn-text)}.badge.missing{background:var(--danger-bg);color:var(--danger-text)}.muted{color:var(--text-secondary);font-size:.92rem}.error{color:var(--danger-text);white-space:pre-wrap}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.9rem}.stat{background:var(--surface-raised);border:1px solid var(--stroke-subtle);border-radius:var(--radius-md);padding:.85rem 1rem;min-width:140px}.stat .label{font-size:.78rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.stat .value{font-size:1.35rem;font-weight:700;color:var(--text-primary)}.pill{display:inline-flex;align-items:center;padding:.25rem .7rem;min-height:26px;border-radius:999px;font-size:.82rem;font-weight:700;background:var(--stroke-subtle);color:var(--text-primary)}.pill.warn{background:var(--warn-bg);color:var(--warn-text)}.pill.danger{background:var(--danger-bg);color:var(--danger-text)}.pill.ok{background:var(--success-bg);color:var(--success-text)}.bar{position:relative;height:10px;background:var(--surface-sunken);border-radius:999px;overflow:hidden;width:100%;max-width:260px}.bar>span{position:absolute;inset:0 auto 0 0;background:var(--accent-500);transition:width .3s ease}.bar.danger>span{background:var(--danger)}.bar.warn>span{background:var(--warn)}.bar.ok>span{background:var(--success)}.small{font-size:.82rem;color:var(--text-tertiary)}.meter-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.6rem;padding:.3rem 0}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;background:var(--surface-raised);border:1px solid var(--stroke-subtle);border-radius:var(--radius-md);padding:.6rem .8rem;margin-bottom:1rem}.toolbar label{display:inline-flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:var(--text-secondary)}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem}.table-actions{display:flex;gap:.4rem;justify-content:end}.errorbox{background:var(--danger-bg);color:var(--danger-text);border-radius:var(--radius-md);padding:.8rem 1rem;border:1px solid var(--stroke-subtle);margin-bottom:1rem}.errorbox h4{margin:0 0 .35rem;font-size:1rem}.errorbox .hint{font-size:.85rem;opacity:.85}.notice{background:var(--accent-100);color:var(--accent-600);border-radius:var(--radius-md);padding:.6rem 1rem;margin-bottom:1rem;border:1px solid var(--stroke-subtle)}.chart-container{width:100%;overflow-x:auto}.chart-container svg{display:block;width:100%;height:auto}.form-narrow{max-width:480px;margin:3rem auto}.button-danger{background:var(--danger)!important;border-color:var(--danger)!important;color:var(--text-inverse)!important}.ghost-danger{color:var(--danger-text)!important}.card-danger{border:2px solid var(--danger)}.row-right{margin-inline-start:auto}.stack-sm{display:flex;flex-direction:column;gap:.5rem}.chip{display:inline-flex;align-items:center;gap:4px;padding:.3rem .75rem;min-height:44px;border:1px solid var(--stroke-default);border-radius:999px;background:var(--surface-raised);color:var(--text-primary);font-size:.85rem;cursor:pointer}.chip:hover:not(:disabled){background:var(--surface-sunken)}button.chip.selected,.chip.selected{background:var(--accent-100);border-color:var(--accent-500);color:var(--accent-600)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.field-error{color:var(--danger-text);font-size:.82rem;margin-top:.2rem}main.page{display:flex;flex-direction:column;gap:1rem}dialog.kids-dialog{border:1px solid var(--stroke-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);color:var(--text-primary);padding:1rem 1.25rem;max-width:min(520px,92vw);max-height:90vh;overflow:auto;box-shadow:0 12px 40px #0000002e}dialog.kids-dialog::backdrop{background:var(--surface-overlay)}dialog.kids-dialog[open]{display:flex;flex-direction:column;gap:.6rem}dialog.kids-dialog h3{margin:0}label:has(>input[type=checkbox]),label:has(>input[type=radio]){min-height:44px;display:inline-flex;align-items:center;padding:.25rem 0;cursor:pointer}@media (max-width: 600px){.layout{padding:.6rem .8rem 3rem}.toolbar{padding:.5rem .6rem}.toolbar>label,.toolbar>select,.toolbar>input{width:100%}.toolbar>.row-right{margin-inline-start:0}.form-grid-2{grid-template-columns:1fr}.responsive-table,.responsive-table thead,.responsive-table tbody,.responsive-table tr,.responsive-table th,.responsive-table td{display:block}.responsive-table thead{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.responsive-table tr{border:1px solid var(--stroke-subtle);border-radius:var(--radius-sm);padding:.65rem;margin-bottom:.65rem;background:var(--surface-raised)}.responsive-table td{border:0;padding:.35rem 0}.responsive-table td[data-label]:before{content:attr(data-label);display:block;color:var(--text-secondary);font-size:.75rem;margin-bottom:.15rem}.responsive-table .table-actions{justify-content:flex-start;flex-wrap:wrap}.grid-2{gap:.6rem}dialog.kids-dialog{max-width:100vw;margin:auto .4rem;border-radius:var(--radius-md)}table.grid{font-size:.85rem}table.grid th,table.grid td{padding:.4rem .45rem}}@container (max-width: 360px){.stat{min-width:0;padding:.6rem .7rem}.stat .value{font-size:1.1rem}}
