@media print{@page{size:landscape;margin:.45in}body,.app-shell,.app-shell--print,.app-shell__main{background:#fff!important;background-image:none!important;color:#000!important}.no-print{display:none!important}.app-shell__main{padding:0!important;max-width:none!important}.print-page{page-break-inside:avoid;color:#000!important}.print-body{grid-template-columns:minmax(0,1fr) 218px!important;gap:14px!important}.seat-tile{min-height:0!important;padding:2px!important}.seat-tile__chip,.seat-tile__empty{min-height:0!important;padding:0!important}.avatar,.avatar--sm{width:17px!important;height:17px!important;font-size:7px!important;margin-top:0!important}.seat-tile__name,.seat-tile__name--first{font-size:9px!important;line-height:1.05!important}.seating-chart__group-label{font-size:8px!important}.front-of-room{margin:0 0 4px!important}.front-of-room__board{padding:4px 12px!important;font-size:9px!important}.print-header,.print-header__class,.print-header__meta dd,.print-roster__title,.print-annex__title{color:#000!important}.print-header__meta dt,.print-orientation,.print-roster__seat,.print-roster__note{color:#333!important}.print-roster__table th,.print-roster__table td,.print-annex__table th,.print-annex__table td{border-color:#000!important}.print-annex{break-before:page}}.app-shell--print .seat-tile__star,.app-shell--print .seat-tile__low-badge,.app-shell--print .seat-tile__warn,.app-shell--print .seating-chart__group-high,.app-shell--print .roster-chip__star,.app-shell--print .seat-tile__photo,.app-shell--print .seat-tile__kagan{display:none!important}.app-shell--print .seat-tile--high .seat-tile__chip,.app-shell--print .seat-tile--low .seat-tile__chip,.app-shell--print .seat-tile--violation .seat-tile__chip,.app-shell--print .seat-tile--violation{border-color:#000!important;border-style:solid!important;background:#fff!important;box-shadow:none!important}.app-shell--print .seating-chart-wrap{background:#fff!important;border:1.5px solid #000!important;box-shadow:none!important;padding:10px!important}.app-shell--print .seating-chart{background:#fff!important;background-image:none!important;border-color:#000!important;box-shadow:none!important}.app-shell--print .seating-chart__rug{background:transparent!important;border-color:#000!important;opacity:1!important}.app-shell--print .seat-tile__pin{display:none!important}.app-shell--print .seating-chart__group-label,.app-shell--print .seating-chart__group-label-text{color:#000!important}.app-shell--print .seating-chart__group-badge{background:#000!important}.app-shell--print .seat-tile{background:#fff!important;box-shadow:none!important}.app-shell--print .seat-tile:before{display:none!important}.app-shell--print .seat-tile__chip{background:#fff!important;border:1px solid #000!important;box-shadow:none!important}.app-shell--print .seat-tile__chip:before{display:none!important}.app-shell--print .seat-tile__name,.app-shell--print .seat-tile__name--first{color:#000!important;font-weight:600!important}.app-shell--print .avatar,.app-shell--print .avatar--sm{background:#fff!important;color:#000!important;border:1px solid #000!important}.app-shell--print .seat-tile__empty{border:1px dashed #666!important;background:#fff!important}.app-shell--print .seating-chart__board,.app-shell--print .front-of-room__board{background:#fff!important;color:#000!important;border:1.5px solid #000!important;box-shadow:none!important}.app-shell--print .seating-chart__board--smart,.app-shell--print .front-of-room__board--smart{background:#fff!important;color:#000!important}.app-shell--print .seating-chart__teacher-desk-shape path{fill:#fff!important;stroke:#000!important}.app-shell--print .seating-chart__teacher-desk,.app-shell--print .seating-chart__teacher-desk-label{color:#000!important}.app-shell--print .seating-chart__closet-tile{background:#fff!important;border:1px dashed #000!important}.app-shell--print .seating-chart__door-tile{background:#fff!important;border:1px solid #000!important;color:#000!important}.app-shell--print .rotate-btn,.app-shell--print .seating-chart__group-meta button{display:none!important}.print-photos{break-before:page;page-break-before:always}.print-photos__title{font-family:var(--font-serif);font-weight:400;font-size:20pt;margin:0 0 2pt}.print-photos__warning{margin:0 0 10pt;font-size:9pt;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.print-photos__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8pt}.print-photos__card{margin:0;text-align:center;break-inside:avoid}.print-photos__img{width:100%;aspect-ratio:1;object-fit:cover;border:.5pt solid #000;border-radius:3pt;filter:grayscale(1)}.print-photos__name{font-size:8.5pt;margin-top:2pt;line-height:1.2}.print-photos__empty{font-size:10pt}:root{color-scheme:light;--bg-app: #f7f8fa;--bg-card: #ffffff;--bg-subtle: #f2f4f7;--bg-board: #eef1f5;--bg-raised: #ffffff;--bg-input: #ffffff;--row-hover: #f9fafb;--av-bg: #eef0f4;--av-ink: #344054;--th-bg: #fafbfc;--bar-bg: #ffffff;--border-soft: #e4e7ec;--border-strong: #d0d5dd;--border-dashed: #98a2b3;--border-row: #eaecf0;--text-primary: #101828;--text-secondary: #475467;--text-muted: #5b6474;--text-placeholder: #667085;--on-primary: #ffffff;--on-danger: #ffffff;--primary: #4338ca;--primary-hover: #3730a3;--primary-active: #3730a3;--primary-soft-bg: #eef0ff;--primary-soft-hover: #e2e5ff;--primary-soft-text: #3730a3;--primary-ring: rgba(67, 56, 202, .55);--link: #3730a3;--brand-teal: #12a37a;--brand-navy: #1e2a4a;--accent-high: #dc6803;--accent-high-soft: #fffaeb;--warn: #93370d;--warn-soft-bg: #fffaeb;--info: #026aa2;--info-soft-bg: #f0f9ff;--danger: #b42318;--danger-hover: #912018;--danger-soft-bg: #fef3f2;--danger-ring: rgba(180, 35, 24, .35);--success: #067647;--success-soft-bg: #ecfdf3;--high: #b54708;--low: #026aa2;--class-0-base: #e09a1f;--class-0-soft: #fef6e7;--class-0-deep: #93370d;--class-1-base: #e04f6c;--class-1-soft: #fef0f3;--class-1-deep: #a11043;--class-2-base: #12a37a;--class-2-soft: #ecfdf3;--class-2-deep: #067647;--class-3-base: #6172f3;--class-3-soft: #eef0ff;--class-3-deep: #3730a3;--edge-ok: #12a37a;--edge-late: #e09a1f;--edge-bad: #d92d20;--toggle-off: #d0d5dd;--toggle-off-hover: #b9c0cc;--toggle-on: #4338ca;--toggle-knob: #ffffff;--scrim: rgba(16, 24, 40, .45);--toast-bg: #101828;--toast-ink: #ffffff;--toast-sub: #d0d5dd;--toast-border: transparent;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 1px 3px rgba(16, 24, 40, .08);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .16);--shadow-primary: 0 1px 2px rgba(16, 24, 40, .08);--shadow-deck: 0 1px 3px rgba(16, 24, 40, .08);--shadow-toast: 0 8px 24px rgba(16, 24, 40, .18);--focus-ring: 0 0 0 2px var(--bg-card), 0 0 0 4px #4338ca;--focus-color: #4338ca;--select-caret: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23475467' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-pill: 999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif: var(--font-sans);--font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, Menlo, monospace;--display-weight: 600;--display-track: -.018em;--btn-weight: 500;--eyebrow-font: var(--font-sans);--eyebrow-size: 12.5px;--eyebrow-weight: 500;--eyebrow-track: 0;--eyebrow-case: none;--heading-weight: 600;--press-shift: none;--outline-bg: var(--bg-card);--outline-shadow: var(--shadow-sm);--hero-bg: var(--primary);--hero-bg-hover: var(--primary-hover);--hero-weight: 500;--hero-track: 0;--hero-radius: var(--radius-sm);--hero-shadow: var(--shadow-primary);--hero-shadow-hover: var(--shadow-primary);--hero-lift: none;--card-shadow: none;--cell-pad: 9px 14px;--page-title-size: 24px;--wood-1: #c69770;--wood-2: #9a6b40;--wood-3: #7e5230;--floor-top: #efd9b3;--floor-bottom: #e1c189;--wall: #6b5b46;--wall-deep: #4a3a26;--shadow-room: 0 20px 40px rgba(40, 25, 10, .18);--group-amber-base: #e8a33d;--group-amber-soft: #faebc7;--group-amber-deep: #7c5310;--group-rose-base: #d86a6a;--group-rose-soft: #f8d6d6;--group-rose-deep: #7a2727;--group-emerald-base: #4fa37a;--group-emerald-soft: #d2ead9;--group-emerald-deep: #1f5a3d;--group-indigo-base: #6e73d6;--group-indigo-soft: #dee0f5;--group-indigo-deep: #3a3e94;--surface-strong: var(--bg-subtle);--border: var(--border-soft);--muted: var(--text-muted);--appbar-h: 52px;--ctrl: 32px;--tap: 44px;--gutter: 24px}:root[data-appearance=dark]{color-scheme:dark;--bg-app: #0b0f17;--bg-card: #111723;--bg-subtle: #192131;--bg-board: #141b28;--bg-raised: #161d2b;--bg-input: #0d121c;--row-hover: #151c29;--av-bg: #222b3b;--av-ink: #d3d9e4;--th-bg: #141b28;--bar-bg: #0f1520;--border-soft: #232c3b;--border-strong: #344054;--border-dashed: #475467;--border-row: #1f2836;--text-primary: #e8ebf1;--text-secondary: #aab2c2;--text-muted: #9aa3b5;--text-placeholder: #7d879b;--on-primary: #ffffff;--on-danger: #1b0b09;--primary: #5a5fe0;--primary-hover: #4b4fd0;--primary-active: #a9b1ff;--primary-soft-bg: #1e2347;--primary-soft-hover: #272d59;--primary-soft-text: #c3c8ff;--primary-ring: rgba(139, 145, 255, .65);--link: #a9b1ff;--brand-teal: #3ccb95;--brand-navy: #1e2a4a;--accent-high: #fdb022;--accent-high-soft: #2e2210;--warn: #fdb022;--warn-soft-bg: #2e2210;--info: #7cd4fd;--info-soft-bg: #0b2a3d;--danger: #f97066;--danger-hover: #fda29b;--danger-soft-bg: #331816;--danger-ring: rgba(249, 112, 102, .45);--success: #47cd89;--success-soft-bg: #0e2a1f;--high: #fdb022;--low: #7cd4fd;--class-0-base: #f5b544;--class-0-soft: #2e2210;--class-0-deep: #fac66b;--class-1-base: #f06c87;--class-1-soft: #33161f;--class-1-deep: #f7a3b5;--class-2-base: #3ccb95;--class-2-soft: #0e2a1f;--class-2-deep: #75e0b5;--class-3-base: #8b98fa;--class-3-soft: #1e2347;--class-3-deep: #c3c8ff;--edge-ok: #3ccb95;--edge-late: #f5b544;--edge-bad: #f97066;--toggle-off: #344054;--toggle-off-hover: #475467;--toggle-on: #5a5fe0;--toggle-knob: #ffffff;--scrim: rgba(0, 0, 0, .6);--toast-bg: #1a2232;--toast-ink: #f2f4f8;--toast-sub: #b3bbcb;--toast-border: #2c3647;--shadow-sm: none;--shadow-md: none;--shadow-lg: 0 16px 40px rgba(0, 0, 0, .5);--shadow-primary: none;--shadow-deck: none;--shadow-toast: 0 8px 24px rgba(0, 0, 0, .45);--focus-ring: 0 0 0 2px var(--bg-card), 0 0 0 4px #8b91ff;--focus-color: #8b91ff;--select-caret: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23aab2c2' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>")}@media print{:root,:root[data-appearance]{color-scheme:light;--bg-app: #f7f8fa;--bg-card: #ffffff;--bg-subtle: #f2f4f7;--bg-board: #eef1f5;--bg-raised: #ffffff;--bg-input: #ffffff;--row-hover: #f9fafb;--av-bg: #eef0f4;--av-ink: #344054;--th-bg: #fafbfc;--bar-bg: #ffffff;--border-soft: #e4e7ec;--border-strong: #d0d5dd;--border-dashed: #98a2b3;--border-row: #eaecf0;--text-primary: #101828;--text-secondary: #475467;--text-muted: #5b6474;--text-placeholder: #667085;--on-primary: #ffffff;--on-danger: #ffffff;--primary: #4338ca;--primary-hover: #3730a3;--primary-active: #3730a3;--primary-soft-bg: #eef0ff;--primary-soft-hover: #e2e5ff;--primary-soft-text: #3730a3;--primary-ring: rgba(67, 56, 202, .55);--link: #3730a3;--brand-teal: #12a37a;--brand-navy: #1e2a4a;--accent-high: #dc6803;--accent-high-soft: #fffaeb;--warn: #93370d;--warn-soft-bg: #fffaeb;--info: #026aa2;--info-soft-bg: #f0f9ff;--danger: #b42318;--danger-hover: #912018;--danger-soft-bg: #fef3f2;--danger-ring: rgba(180, 35, 24, .35);--success: #067647;--success-soft-bg: #ecfdf3;--high: #b54708;--low: #026aa2;--class-0-base: #e09a1f;--class-0-soft: #fef6e7;--class-0-deep: #93370d;--class-1-base: #e04f6c;--class-1-soft: #fef0f3;--class-1-deep: #a11043;--class-2-base: #12a37a;--class-2-soft: #ecfdf3;--class-2-deep: #067647;--class-3-base: #6172f3;--class-3-soft: #eef0ff;--class-3-deep: #3730a3;--edge-ok: #12a37a;--edge-late: #e09a1f;--edge-bad: #d92d20;--toggle-off: #d0d5dd;--toggle-off-hover: #b9c0cc;--toggle-on: #4338ca;--toggle-knob: #ffffff;--scrim: rgba(16, 24, 40, .45);--toast-bg: #101828;--toast-ink: #ffffff;--toast-sub: #d0d5dd;--toast-border: transparent;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 1px 3px rgba(16, 24, 40, .08);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .16);--shadow-primary: 0 1px 2px rgba(16, 24, 40, .08);--shadow-deck: 0 1px 3px rgba(16, 24, 40, .08);--shadow-toast: 0 8px 24px rgba(16, 24, 40, .18);--focus-ring: 0 0 0 2px var(--bg-card), 0 0 0 4px #4338ca;--focus-color: #4338ca;--select-caret: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23475467' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>")}}app-screen-page,app-check-in-board-page,app-class-board,app-layout-board,.legacy-board{color-scheme:light;--bg-app: #faf6ee;--bg-card: #ffffff;--bg-subtle: #f6f1e6;--bg-board: #f3ece0;--bg-raised: #ffffff;--bg-input: #ffffff;--row-hover: #f6f1e6;--bar-bg: rgba(255, 255, 255, .92);--border-soft: #e7e2d5;--border-strong: #d6d0c0;--border-dashed: #c9c3b3;--border-row: #e7e2d5;--text-primary: #1c1917;--text-secondary: #57534e;--text-muted: #a8a29e;--text-placeholder: #a8a29e;--on-primary: #ffffff;--on-danger: #ffffff;--primary: #0060c0;--primary-hover: #004f9e;--primary-active: #004890;--primary-soft-bg: #e9f1fb;--primary-soft-hover: #d8e6f7;--primary-soft-text: #004890;--primary-ring: rgba(0, 96, 192, .32);--link: #004890;--brand-teal: #18a890;--brand-navy: #20314b;--accent-high: #f59e0b;--accent-high-soft: #fef3c7;--warn: #92400e;--warn-soft-bg: #fef3c7;--info: #075985;--info-soft-bg: #e0f2fe;--danger: #b91c1c;--danger-hover: #991b1b;--danger-soft-bg: #fef2f2;--danger-ring: rgba(185, 28, 28, .35);--success: #12876f;--success-soft-bg: #f0fdf4;--high: #d97706;--low: #0ea5e9;--toggle-off: #d6d0c0;--toggle-off-hover: #c5bfae;--toggle-on: #0060c0;--toggle-knob: #ffffff;--scrim: rgba(28, 25, 23, .45);--toast-bg: #ffffff;--toast-ink: #1c1917;--toast-sub: #57534e;--toast-border: #e7e2d5;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--shadow-sm: 0 1px 2px rgba(28, 25, 23, .05);--shadow-md: 0 6px 18px rgba(28, 25, 23, .07);--shadow-lg: 0 14px 32px rgba(28, 25, 23, .1);--shadow-primary: 0 8px 16px rgba(0, 96, 192, .28);--shadow-deck: 0 14px 28px rgba(28, 25, 23, .1);--shadow-toast: 0 14px 32px rgba(28, 25, 23, .1);--focus-ring: 0 0 0 3px rgba(0, 96, 192, .32);--focus-color: #0060c0;--font-serif: "Instrument Serif", "Newsreader", Georgia, serif;--font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, Menlo, monospace;--select-caret: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2357534e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");--display-weight: 400;--display-track: -.01em;--btn-weight: 600;--eyebrow-font: var(--font-mono);--eyebrow-size: 10px;--eyebrow-weight: 600;--eyebrow-track: .14em;--eyebrow-case: uppercase;--heading-weight: 700;--press-shift: translateY(1px);--outline-bg: transparent;--outline-shadow: none;--hero-bg: linear-gradient(135deg, var(--brand-navy) 0%, var(--primary) 62%, #0d7fd6 100%);--hero-bg-hover: linear-gradient(135deg, #1a2a41 0%, var(--primary-hover) 62%, #0060c0 100%);--hero-weight: 700;--hero-track: .01em;--hero-radius: var(--radius-md);--hero-shadow: var(--shadow-md), inset 0 1px 0 rgba(255, 255, 255, .18);--hero-shadow-hover: var(--shadow-lg);--hero-lift: translateY(-1px);--card-shadow: var(--shadow-sm);--cell-pad: 12px 14px;--page-title-size: 26px;--th-bg: var(--bg-subtle)}@media(pointer:coarse){:root{--ctrl: 44px}}@media(max-width:760px){:root{--gutter: 16px}}:root{--board-bg: #faf6ee;--board-surface: #ffffff;--board-ink: #1c1917;--board-soft: #57534e;--board-muted: #a8a29e;--board-line: #e7e2d5;--board-accent: #0060c0;--board-accent-soft: #e9f1fb;--board-amber: #b45309;--board-amber-soft: #fef3c7;--board-celebrate: #be185d;--board-celebrate-soft: #fce7f3;--board-seg-off: #ece6d8;--board-seg-on: #12876f;--board-text: 1}[data-theme=dark]{--board-bg: #16130f;--board-surface: #221e19;--board-ink: #f5f1e8;--board-soft: #d6d0c0;--board-muted: #8a8378;--board-line: #37312a;--board-accent: #7fb2ea;--board-accent-soft: #1d2a3a;--board-amber: #fbbf24;--board-amber-soft: #3a2c10;--board-celebrate: #f9a8d4;--board-celebrate-soft: #3b1f2e;--board-seg-off: #2f2a24;--board-seg-on: #34d399}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;color:var(--text-primary);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3{font-weight:var(--heading-weight);letter-spacing:var(--display-track);margin:0}h1{font-size:22px}h2{font-size:18px}h3{font-size:15px}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;font-weight:var(--btn-weight);cursor:pointer;background:var(--primary);color:var(--on-primary);border:1px solid transparent;border-radius:var(--radius-sm);padding:8px 16px;transition:background .12s ease,box-shadow .12s ease,transform 80ms ease;box-shadow:var(--shadow-sm)}button:hover:not(:disabled){background:var(--primary-hover)}button:active:not(:disabled){transform:var(--press-shift);box-shadow:none}button:focus-visible{outline:none;box-shadow:var(--focus-ring)}button:disabled{background:var(--bg-subtle);color:var(--text-muted);border-color:var(--border-strong);cursor:not-allowed;box-shadow:none}button.btn-secondary{background:var(--primary-soft-bg);color:var(--primary-soft-text);border-color:transparent;box-shadow:none}button.btn-secondary:hover:not(:disabled){background:var(--primary-soft-hover)}button.btn-outline{background:var(--outline-bg);color:var(--text-primary);border-color:var(--border-strong);box-shadow:var(--outline-shadow)}button.btn-outline:hover:not(:disabled){background:var(--bg-subtle)}button.btn-danger{background:var(--danger);color:var(--on-danger)}button.btn-danger:hover:not(:disabled){background:var(--danger-hover)}button.btn-ghost{background:transparent;color:var(--link);box-shadow:none;padding:6px 10px}button.btn-ghost:hover:not(:disabled){background:var(--primary-soft-bg)}button.btn-sm{padding:5px 10px;font-size:13px}button.btn-icon{display:inline-flex;align-items:center;gap:6px}button.btn-hero{background:var(--hero-bg);color:var(--on-primary);padding:9px 18px;font-size:14px;font-weight:var(--hero-weight);letter-spacing:var(--hero-track);border-radius:var(--hero-radius);box-shadow:var(--hero-shadow);display:inline-flex;align-items:center;gap:8px}button.btn-hero:hover:not(:disabled){background:var(--hero-bg-hover);transform:var(--hero-lift);box-shadow:var(--hero-shadow-hover)}button.btn-hero:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}button.btn-hero:focus-visible{box-shadow:var(--focus-ring)}button.btn-hero:disabled{background:var(--bg-subtle);color:var(--text-muted);cursor:not-allowed;box-shadow:none;transform:none}.btn-icon__svg{flex:0 0 auto;width:14px;height:14px;display:inline-block}.btn-icon__svg--lg{width:18px;height:18px}input[type=text],input[type=number],input[type=email],input[type=password],input[type=url],input[type=search],input[type=file],input[type=date],input[type=time],input[type=tel],select,textarea{font:inherit;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);transition:border-color .12s ease,box-shadow .12s ease}input[type=text]::placeholder,input[type=number]::placeholder,input[type=email]::placeholder,input[type=password]::placeholder,input[type=url]::placeholder,input[type=search]::placeholder,input[type=file]::placeholder,input[type=date]::placeholder,input[type=time]::placeholder,input[type=tel]::placeholder,select::placeholder,textarea::placeholder{color:var(--text-placeholder)}input[type=text]:focus,input[type=number]:focus,input[type=email]:focus,input[type=password]:focus,input[type=url]:focus,input[type=search]:focus,input[type=file]:focus,input[type=date]:focus,input[type=time]:focus,input[type=tel]:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}input[type=text]:disabled,input[type=number]:disabled,input[type=email]:disabled,input[type=password]:disabled,input[type=url]:disabled,input[type=search]:disabled,input[type=file]:disabled,input[type=date]:disabled,input[type=time]:disabled,input[type=tel]:disabled,select:disabled,textarea:disabled{background:var(--bg-subtle);color:var(--text-muted);cursor:not-allowed}input[type=search]{-webkit-appearance:none;appearance:none}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{line-height:1.5;resize:vertical;min-height:72px}select{-webkit-appearance:none;appearance:none;padding-right:34px;background-image:var(--select-caret);background-repeat:no-repeat;background-position:right 11px center;background-size:14px 14px;cursor:pointer}select:hover:not(:disabled){border-color:var(--text-muted)}label{display:block;margin-bottom:6px;font-weight:600;color:var(--text-secondary);font-size:13px}.card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:20px;box-shadow:var(--card-shadow)}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:12px;align-items:center}.muted{color:var(--text-muted)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;background:var(--bg-subtle);color:var(--text-secondary)}.pill.pill-success{background:var(--success-soft-bg);color:var(--success)}.pill.pill-warning{background:var(--warn-soft-bg);color:var(--warn)}.pill.pill-danger{background:var(--danger-soft-bg);color:var(--danger)}.pill.pill-primary{background:var(--primary-soft-bg);color:var(--primary-soft-text)}table{width:100%;border-collapse:separate;border-spacing:0}th,td{text-align:left;padding:var(--cell-pad);border-bottom:1px solid var(--border-row);vertical-align:middle}th{font-family:var(--eyebrow-font);font-weight:var(--eyebrow-weight);font-size:var(--eyebrow-size);letter-spacing:var(--eyebrow-track);text-transform:var(--eyebrow-case);color:var(--text-muted);background:var(--th-bg);white-space:nowrap}th:first-child{border-top-left-radius:var(--radius-sm)}th:last-child{border-top-right-radius:var(--radius-sm)}tbody tr{transition:background .1s ease}tbody tr:hover td{background:var(--row-hover)}tbody tr:last-child td{border-bottom:0}.card--table{padding:0;overflow:hidden}.eyebrow{font-family:var(--eyebrow-font);font-size:var(--eyebrow-size);font-weight:var(--eyebrow-weight);letter-spacing:var(--eyebrow-track);text-transform:var(--eyebrow-case);color:var(--text-muted)}.display{font-family:var(--font-serif);font-weight:var(--display-weight);letter-spacing:var(--display-track)}.stack-lg{display:flex;flex-direction:column;gap:24px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.row--between{justify-content:space-between}.row--end{justify-content:flex-end}.row--wrap{flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px}.field>span,.field>label{margin:0;font-size:12px;font-weight:600;color:var(--text-secondary)}.field input,.field select,.field textarea{width:100%}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.form-grid .field--wide{grid-column:1/-1}.menu{position:relative}.menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:background .12s ease,color .12s ease}.menu>summary::-webkit-details-marker{display:none}.menu>summary:hover{background:var(--bg-subtle);color:var(--text-primary)}.menu>summary svg{width:16px;height:16px}.menu[open]>summary{background:var(--bg-subtle)}.menu .menu__list{position:absolute;right:0;top:calc(100% + 6px);min-width:168px;padding:6px;background:var(--bg-raised);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:2px;z-index:30}.menu .menu__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-weight:500;font-size:13px;text-align:left;box-shadow:none;text-decoration:none}.menu .menu__item:hover:not(:disabled){background:var(--bg-subtle);text-decoration:none}.menu .menu__item--danger{color:var(--danger)}.menu .menu__item--danger:hover:not(:disabled){background:var(--danger-soft-bg)}.menu .menu__item svg{width:14px;height:14px;flex:0 0 auto}.level{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;letter-spacing:.02em;background:var(--bg-subtle);color:var(--text-secondary)}.level--high{background:var(--warn-soft-bg);color:var(--warn)}.level--low{background:var(--info-soft-bg);color:var(--info)}.icon{width:16px;height:16px;flex:0 0 auto;display:inline-block;vertical-align:-3px}.icon--sm{width:14px;height:14px}.drop-zone{border:2px dashed var(--border-dashed);border-radius:var(--radius-md);background:var(--bg-subtle);padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;transition:border-color .12s ease,background .12s ease}.drop-zone.is-over{border-color:var(--primary);background:var(--primary-soft-bg)}.drop-zone p{margin:0}.tabs{display:inline-flex;gap:4px;padding:4px;background:var(--bg-subtle);border-radius:var(--radius-pill);border:1px solid var(--border-soft)}.tabs__btn{background:transparent;color:var(--text-secondary);border-radius:var(--radius-pill);padding:6px 14px;font-size:13px;box-shadow:none}.tabs__btn:hover:not(:disabled){background:var(--bg-card);color:var(--text-primary)}.tabs__btn--active,.tabs__btn--active:hover:not(:disabled){background:var(--bg-card);color:var(--primary-soft-text);box-shadow:var(--shadow-sm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ctx-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;min-width:0;margin-bottom:16px;color:var(--text-secondary)}.ctx-row__title{display:inline-flex;align-items:center;gap:8px;margin:0;font-family:var(--font-serif);font-weight:var(--display-weight);font-size:var(--page-title-size);line-height:1.1;letter-spacing:var(--display-track);color:var(--text-primary);min-width:0}.ctx-row__spacer{flex:1 1 auto}.ctx-row__sub{flex-basis:100%;margin:0;text-wrap:pretty}.ctx-row__meta{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.ctx-row__meta strong{color:var(--text-primary)}.ctx-row__seg{display:inline-flex;padding:2px;gap:2px;height:var(--ctrl);background:var(--bg-subtle);border:1px solid var(--border-soft);border-radius:var(--radius-sm)}.ctx-row__seg>button,.ctx-row__seg>a{display:inline-flex;align-items:center;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;box-shadow:none;text-decoration:none;white-space:nowrap}.ctx-row__seg>button:hover:not(:disabled),.ctx-row__seg>a:hover:not(:disabled){background:var(--bg-card);color:var(--text-primary);text-decoration:none}.ctx-row__seg>button[aria-pressed=true],.ctx-row__seg>button.is-active,.ctx-row__seg>a[aria-pressed=true],.ctx-row__seg>a.is-active{background:var(--bg-card);color:var(--primary-soft-text);box-shadow:var(--shadow-sm)}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;min-width:0}@media(max-width:760px){.col-wide{display:none}}@media(pointer:coarse){.menu>summary{width:var(--tap);height:var(--tap)}.menu__item,.tabs__btn,.ctx-row button,.ctx-row a.btn-sm,td button,td a.btn-sm{min-height:var(--tap)}}button.switch{position:relative;flex:0 0 auto;width:44px;height:26px;min-height:0;padding:0;border:0;border-radius:var(--radius-pill);background:var(--toggle-off);box-shadow:none;transition:background .12s ease}button.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--toggle-knob);box-shadow:0 1px 3px #1018284d;transition:transform .12s ease}button.switch[aria-checked=true]{background:var(--toggle-on)}button.switch[aria-checked=true]:after{transform:translate(18px)}button.switch:hover:not(:disabled){background:var(--toggle-off-hover)}button.switch[aria-checked=true]:hover:not(:disabled){background:var(--primary-hover)}button.switch:active:not(:disabled){transform:none;box-shadow:none}button.switch:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px;box-shadow:none}button.switch:disabled{background:var(--toggle-off);opacity:.5;cursor:not-allowed}@media(prefers-reduced-motion:reduce){button.switch,button.switch:after{transition:none}}@media(pointer:coarse){button.switch:before{content:"";position:absolute;inset:-9px -2px}}a:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px;border-radius:2px}@media(prefers-reduced-motion:reduce){*:not(:is(app-screen-page,app-check-in-board-page) *),*:not(:is(app-screen-page,app-check-in-board-page) *):before,*:not(:is(app-screen-page,app-check-in-board-page) *):after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
