.layout{background:var(--surface-0);grid-template:"header""nav""main"1fr/minmax(0,1fr);min-height:100vh;display:grid}.layout-header{justify-content:space-between;align-items:center;gap:var(--s-2) var(--s-4);padding:var(--s-3);background:var(--surface-1);border-bottom:1px solid var(--line);flex-wrap:wrap;grid-area:header;display:flex}.header-title,.header-operator{align-items:center;gap:var(--s-2) var(--s-4);flex-wrap:wrap;display:flex}.layout-header h1{font-size:var(--fs-lg);font-weight:600}.environment,.admin-name,.session-ends{font-size:var(--fs-sm);color:var(--text-low)}.theme-control{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);display:inline-flex}.theme-control select{min-height:var(--target-min);padding:0 var(--s-2);font:inherit;font-size:var(--fs-base);color:var(--text-hi);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-sm)}.console-nav{gap:var(--s-2);padding:var(--s-3);background:var(--surface-1);border-bottom:1px solid var(--line);grid-area:nav;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.console-nav a{min-height:var(--target-min);min-width:var(--target-min);padding:0 var(--s-3);border-radius:var(--r-sm);color:var(--text-hi);justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:flex}.console-nav a:hover{background:var(--surface-2)}.console-nav a.active{background:var(--surface-2);color:var(--accent-text);box-shadow:inset 3px 0 0 var(--river-500)}.layout-content{width:100%;min-width:0;max-width:1200px;padding:var(--s-3);grid-area:main;margin:0 auto}@media (min-width:1024px){.layout{grid-template:"nav header""nav main"1fr/216px minmax(0,1fr)}.layout-header{padding:var(--s-3) var(--s-8)}.console-nav{border-bottom:0;border-right:1px solid var(--line);grid-template-columns:1fr;align-content:start}.console-nav a{justify-content:flex-start}.layout-content{padding:var(--s-8)}}@media (min-width:375px) and (max-width:1023px){.layout-header,.console-nav,.layout-content{padding-left:var(--s-4);padding-right:var(--s-4)}}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.card{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-6);box-shadow:var(--shadow-1)}.data-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.data-table th{text-align:left;padding:var(--s-2) var(--s-3);color:var(--text-low);font-weight:600;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--line)}.data-table td{padding:var(--s-3);border-bottom:1px solid var(--surface-2);color:var(--text-hi)}.data-table tr:hover td{background:var(--surface-2)}.data-table a{color:var(--accent-text)}.badge{font-size:var(--fs-xs);border-radius:9999px;padding:2px 8px;font-weight:500;display:inline-block}.badge-active{background:var(--surface-2);color:var(--moss-700)}.badge-locked{background:var(--error-wash);color:var(--rose-500)}.badge-plan{background:var(--gold-wash);color:var(--gold-ink)}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:var(--target-min);min-width:var(--target-min);padding:0 var(--s-4);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);cursor:pointer;transition:box-shadow var(--motion-quick) var(--ease-out-soft);border:1px solid #0000;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:var(--shadow-1)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-danger{background:var(--rose-500);color:var(--surface-1)}.btn-success{background:var(--moss-500);color:var(--surface-1)}.btn-outline{background:var(--surface-1);color:var(--text-hi);border-color:var(--line)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.pagination{justify-content:space-between;align-items:center;gap:var(--s-2);margin-top:var(--s-4);font-size:var(--fs-sm);color:var(--text-low);flex-wrap:wrap;display:flex}.search-bar{gap:var(--s-2);margin-bottom:var(--s-5);display:flex}.search-bar input{min-height:var(--target-min);padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-base);color:var(--text-hi);background:var(--surface-1);flex:1}.error-message{padding:var(--s-3) var(--s-4);background:var(--error-wash);color:var(--rose-500);border-radius:var(--r-sm);font-size:var(--fs-sm);margin-bottom:var(--s-4)}.empty-state{text-align:center;padding:var(--s-12);color:var(--text-low)}.login-page{min-height:100vh;padding:var(--s-3);background:var(--surface-0);justify-content:center;align-items:center;display:flex}.login-card{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-6);width:100%;max-width:400px;box-shadow:var(--shadow-1);overflow-wrap:anywhere}.login-header{text-align:center;margin-bottom:var(--s-6)}.login-header h1{font-size:var(--fs-lg);color:var(--text-hi);margin-bottom:var(--s-1);font-weight:700}.login-header p{font-size:var(--fs-sm);color:var(--text-low)}.login-form{gap:var(--s-5);flex-direction:column;display:flex}.form-group{gap:var(--s-1);flex-direction:column;display:flex}.form-group label{font-size:var(--fs-sm);color:var(--text-hi);font-weight:500}.form-group input{min-height:var(--target-min);padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-base);background:var(--surface-1);color:var(--text-hi)}.form-group input:focus{border-color:var(--ring)}.login-button{min-height:var(--target-primary);padding:0 var(--s-4);background:var(--accent);color:var(--on-accent);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-base);cursor:pointer;border:none;font-weight:600}.login-button:hover:not(:disabled){box-shadow:var(--shadow-1)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-error{background:var(--error-wash);color:var(--rose-500);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);font-size:var(--fs-sm);border:1px solid var(--rose-500)}.login-notice{padding:var(--s-2) var(--s-3);background:var(--gold-wash);color:var(--gold-ink);border-radius:var(--r-sm);font-size:var(--fs-sm)}.view-switch{align-self:flex-start}.record-cards{gap:var(--s-3);flex-direction:column;list-style:none;display:flex}.record-cards dl{gap:var(--s-2);display:grid}.record-cards dt{font-size:var(--fs-xs);color:var(--text-low)}.record-cards dd{overflow-wrap:anywhere}.record-cards a,.record-table a{min-height:var(--target-min);min-width:var(--target-min);color:var(--accent-text);align-items:center;display:inline-flex}.record-table-region{max-width:100%;overflow-x:auto}.record-table caption{text-align:left;padding-bottom:var(--s-2);color:var(--text-low)}.record-table th[scope=row]{font-size:inherit;text-align:left;text-transform:none;letter-spacing:normal;color:var(--text-hi);font-weight:500}.record-table th[scope=row],.record-table td{padding:var(--s-3);border-bottom:1px solid var(--surface-2);overflow-wrap:break-word}.record-table time,.record-cards time,.record-id,.record-count{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.list-page{overflow-wrap:anywhere;gap:var(--s-4);flex-direction:column;display:flex}.list-page>section{gap:var(--s-3);flex-direction:column;display:flex}.list-page h3{font-size:var(--fs-base)}.list-summary,.field-hint,.list-page .as-of{font-size:var(--fs-sm);color:var(--text-low)}.list-filters{gap:var(--s-3);grid-template-columns:minmax(0,1fr);align-items:end;display:grid}.list-filters .field{gap:var(--s-1);min-width:0;font-size:var(--fs-sm);color:var(--text-low);flex-direction:column;display:flex}.list-filters input,.list-filters select{min-width:0;min-height:var(--target-min);padding:0 var(--s-3);font:inherit;font-size:var(--fs-base);color:var(--text-hi);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-sm)}.counters{gap:var(--s-3);grid-template-columns:minmax(0,1fr);display:grid}.counter{gap:var(--s-1);flex-direction:column;display:flex}.counter dt,.counter .definition{font-size:var(--fs-sm);color:var(--text-low)}.counter .count,.list-page .as-of time{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.counter .count{font-size:var(--fs-xl);color:var(--text-hi);font-weight:600}.shortcuts{gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.shortcuts a{min-height:var(--target-min);padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-1);color:var(--accent-text);justify-content:center;align-items:center;font-weight:500;display:flex}@media (min-width:640px){.counters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.list-filters{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr))}.counters{grid-template-columns:repeat(4,minmax(0,1fr))}}.list-more-filters summary{min-height:var(--target-min);cursor:pointer;color:var(--accent-text);align-items:center;display:flex}.list-more-filters summary:before{content:"+ ";margin-right:var(--s-2)}.list-more-filters[open] summary:before{content:"− "}.list-more-filters .field{margin-top:var(--s-3)}.detail-page{overflow-wrap:anywhere;gap:var(--s-4);flex-direction:column;display:flex}.detail-page>.back-link{align-self:flex-start}.detail-page h3{font-size:var(--fs-base)}.detail-page .field-hint{font-size:var(--fs-sm);color:var(--text-low)}.record-fields,.detail-roster{gap:var(--s-3);flex-direction:column;display:flex}.record-fields dl{gap:var(--s-3);grid-template-columns:minmax(0,1fr);display:grid}.record-fields dt{font-size:var(--fs-xs);color:var(--text-low)}.record-fields a{min-height:var(--target-min);color:var(--accent-text);align-items:center;display:inline-flex}.record-fields time{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.action-bar{gap:var(--s-2);flex-wrap:wrap;display:flex}.action-panel{gap:var(--s-3);flex-direction:column;display:flex}.action-panel .field{gap:var(--s-1);flex-direction:column;display:flex}.action-panel label{font-weight:500}.action-panel input,.action-panel textarea{width:100%;min-height:var(--target-min);padding:var(--s-2) var(--s-3);font:inherit;font-size:var(--fs-base);color:var(--text-hi);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-sm)}.action-panel textarea{resize:vertical}.field-error,.action-refused,.action-unknown{color:var(--rose-500)}.action-outcome{align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-1);flex-wrap:wrap;display:flex}.action-refused,.action-unknown{border-color:var(--rose-500);background:var(--error-wash)}@media (min-width:640px){.record-fields dl{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.record-fields dl{grid-template-columns:repeat(3,minmax(0,1fr))}}.audit-page{gap:var(--s-4);flex-direction:column;display:flex}.audit-page>.btn{align-self:flex-start}.page-head{justify-content:space-between;align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.audit-filters{gap:var(--s-3);grid-template-columns:minmax(0,1fr);align-items:end;display:grid}.audit-filters .field{gap:var(--s-1);font-size:var(--fs-sm);color:var(--text-low);flex-direction:column;display:flex}.audit-filters input,.audit-filters select{min-height:var(--target-min);padding:0 var(--s-3);font:inherit;font-size:var(--fs-base);color:var(--text-hi);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-sm)}.audit-more-filters .field{margin-top:var(--s-3)}.audit-more-filters summary{min-height:var(--target-min);cursor:pointer;color:var(--text-hi);align-items:center;font-weight:500;display:flex}.audit-cards{gap:var(--s-3);flex-direction:column;list-style:none;display:flex}.audit-cards dl,.audit-fields dl{gap:var(--s-2);display:grid}.audit-cards dt,.audit-fields dt{font-size:var(--fs-xs);color:var(--text-low)}.audit-cards dd,.audit-fields dd{overflow-wrap:anywhere}.audit-cards a{min-height:var(--target-min);color:var(--accent-text);align-items:center;display:inline-flex}.audit-fields h3{font-size:var(--fs-base);margin-bottom:var(--s-3)}.audit-states{gap:var(--s-4);grid-template-columns:minmax(0,1fr);display:grid}.audit-page time,.audit-fields dd,.audit-page .as-of{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.table-region{max-width:100%;overflow-x:auto}.data-table caption{text-align:left;padding-bottom:var(--s-2);color:var(--text-low)}.data-table td a{min-height:var(--target-min);align-items:center;display:inline-flex}.audit-page .as-of{font-size:var(--fs-xs);color:var(--text-low)}.pagination-buttons{gap:var(--s-2);display:flex}@media (min-width:1024px){.audit-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.audit-states{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--paper:#f5f1e8;--surface:#fffcf6;--wash:#eae2d6;--ink:#302d2a;--muted:#6a6259;--line:#bdb1a2;--control:#887966;--accent:#67482e;--on-accent:#fffaf1;--gold:#e8b766;--gold-ink:#634119;--gold-wash:#f4e5c5;--umber:#755036;--good:#755036;--error:#983a32;--error-wash:#f9e8dd;--ring:#9e4e25;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-11:44px;--s-12:48px;--s-14:56px;--s-20:80px;--r-sm:8px;--r-md:12px;--r-lg:16px;--font-display:Fraunces, Georgia, "Times New Roman", serif;--font-ui:Inter, system-ui, sans-serif;--font-mono:"Fragment Mono", "JetBrains Mono", ui-monospace, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-child-task:1.125rem;--fs-lg:1.375rem;--fs-xl:2rem;--target-min:44px;--target-primary:48px;--target-child:48px;--motion-quick:.16s;--motion-standard:.24s;--motion-celebrate:.8s;--motion-hold:.6s;--motion-undo:30s;--ease-out-soft:cubic-bezier(.2, .75, .25, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ink-900:#1b1d21;--ink-800:#25272c;--ink-700:#303239;--ink-600:#3c3e46;--ink-300:#85817a;--parchment-50:#fffcf6;--parchment-100:#f5f1e8;--parchment-200:#eae2d6;--lantern-100:#f4e5c5;--lantern-300:#efcd8f;--lantern-400:#e8b766;--lantern-700:#634119;--lantern-850:#4a3012;--surface-0:var(--paper);--surface-1:var(--surface);--surface-2:var(--wash);--surface-3:color-mix(in oklab, var(--wash) 78%, var(--line));--text-hi:var(--ink);--text-mid:color-mix(in oklab, var(--ink) 55%, var(--muted));--text-low:var(--muted);--accent-text:var(--accent);--shadow-1:0 1px 2px #3c321414, 0 2px 10px #3c321412;--shadow-2:0 4px 10px #3c32141a, 0 14px 44px #3c32141f;--shadow-glow:0 0 20px color-mix(in oklab, var(--gold) 55%, transparent);--moss-500:var(--good);--moss-700:color-mix(in oklab, var(--good) 80%, var(--ink));--rose-500:var(--error);--river-500:var(--umber);--river-300:#e7be89;--river-700:color-mix(in oklab, var(--umber) 80%, var(--ink));--ember-500:var(--ring);--violet-500:var(--gold-ink)}[data-theme=dark]{--paper:#1b1d21;--surface:#25272c;--wash:#303239;--ink:#f5efe4;--muted:#c7beb1;--line:#85817a;--control:#a59b8c;--accent:#edbd75;--on-accent:#302214;--gold:#edbd75;--gold-ink:#edbd75;--gold-wash:#43372b;--umber:#e7be89;--good:#e7be89;--error:#ffc2ad;--error-wash:#4b3129;--ring:#ffd092;--surface-0:var(--paper);--surface-1:var(--surface);--surface-2:var(--wash);--surface-3:color-mix(in oklab, var(--wash) 78%, var(--line));--text-hi:var(--ink);--text-mid:color-mix(in oklab, var(--ink) 55%, var(--muted));--text-low:var(--muted);--accent-text:var(--accent);--shadow-1:0 1px 2px #00000080, 0 2px 12px #00000059;--shadow-2:0 4px 10px #00000080, 0 12px 40px #00000073;--shadow-glow:0 0 24px color-mix(in oklab, var(--gold) 45%, transparent);--moss-500:var(--good);--moss-700:color-mix(in oklab, var(--good) 80%, var(--ink));--rose-500:var(--error);--river-500:var(--umber);--river-300:color-mix(in oklab, var(--umber) 70%, var(--ink));--river-700:color-mix(in oklab, var(--umber) 80%, var(--paper));--ember-500:var(--ring);--violet-500:var(--gold-ink)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-ui);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--surface-0);color:var(--text-hi);min-height:100vh}a{color:var(--accent-text)}#root{min-height:100vh}.session-gate{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.session-gate-card{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-8);width:100%;max-width:420px;box-shadow:var(--shadow-1);flex-direction:column;gap:16px;display:flex}.session-gate-card h1{font-size:20px}.session-gate-actions{flex-wrap:wrap;gap:8px;display:flex}.console-notices{flex-direction:column;gap:8px;padding:12px 16px 0;display:flex}.console-notice{background:var(--gold-wash);color:var(--gold-ink);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}.page-state{padding:var(--s-6);border-radius:var(--r-md);background:var(--surface-1);border:1px solid var(--line);align-items:flex-start;gap:var(--s-2);flex-direction:column;display:flex}.page-state-title{font-weight:600}.page-error{border-color:var(--rose-500);color:var(--rose-500);background:var(--error-wash)}.skeleton-line{width:100%;height:var(--s-6);border-radius:var(--r-sm);background:var(--surface-2)}.stale-notice{align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--gold-wash);color:var(--gold-ink);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
