.app{align-content:start;gap:16px;display:grid}.app>*{min-width:0}.app .button:disabled{opacity:.5;cursor:not-allowed}.app .button[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.button-danger{border-color:var(--bad);background:var(--surface);color:var(--bad)}.button-danger:hover{background:color-mix(in srgb, var(--bad) 8%, var(--surface))}.field{gap:4px;min-width:0;display:grid}.field-label{color:var(--text);font-size:.875rem;font-weight:600;line-height:1.3}.field-hint{color:var(--muted);font-size:.875rem;line-height:1.4}.field-inline{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.field-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.select,.input{border:1px solid var(--border-strong);background:var(--surface);min-width:0;max-width:100%;min-height:48px;color:var(--text);font:inherit;border-radius:10px;padding:0 12px}.textarea{resize:vertical;width:100%;min-height:120px;padding:12px;line-height:1.5}.check{cursor:pointer;align-items:center;gap:10px;min-height:48px;display:flex}.check input{width:22px;height:22px;accent-color:var(--primary);flex:none;margin:0}.check-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0 16px;display:grid}.segmented{flex-wrap:wrap;gap:4px;display:inline-flex}.error{color:var(--bad);font-weight:600}.count{color:var(--muted);font-size:.875rem;font-weight:500}.notice{border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);gap:12px;margin:0;padding:12px 16px;display:grid}.notice p{margin:0}.bars{gap:12px;display:grid}.bar,.toolbar{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.toolbar{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:8px}.selection{border:1px solid var(--primary);border-radius:var(--radius);background:var(--primary-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:8px 12px;display:flex}.selection p{margin:0}.show-bar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;min-height:64px;display:flex}.show-bar .button{min-height:64px;padding-inline:28px;font-size:1.125rem}.show-bar .camera{margin-right:auto}.show-exit{min-width:120px}.workspace{align-items:start;gap:16px;display:grid}@media (width>=1024px){.workspace{grid-template-columns:minmax(0,1fr) 300px}}html.seating-show .workspace{grid-template-columns:minmax(0,1fr)}.plan-scroll{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 24px 24px, var(--surface-2);padding:12px;overflow:auto}.plan,.print-plan{width:var(--plan-w);height:var(--plan-h);margin-inline:auto;position:relative}.plan{touch-action:none}.plan[data-view="3d"]{overflow:hidden}.plan-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.board,.teacher-desk,.desk,.seat,.print-seat,.desk-toggle{left:var(--x);top:var(--y);width:var(--w);height:var(--h);position:absolute}.board,.teacher-desk{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);text-align:center;justify-content:center;align-items:center;font-size:.875rem;font-weight:600;line-height:1.2;display:flex;overflow:hidden}.board{border-width:2px;border-color:var(--text);color:var(--text)}.desk{border:2px solid var(--border-strong);background:var(--surface);border-radius:10px}.desk[data-removed=true]{opacity:.6;background:0 0;border-style:dashed}.seat,.print-seat{width:calc(var(--w) - 4px);height:calc(var(--h) - 4px);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-family:var(--font);font-size:var(--name-size);text-align:center;border-radius:8px;margin:2px;padding:1px;font-weight:600;line-height:1.15}.seat{white-space:nowrap;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;justify-content:center;align-items:center;display:flex;overflow:hidden}.seat[data-student-id=""]{background:var(--surface-2);border-style:dashed}.seat[data-blocked=true]{background:var(--surface-2);color:var(--muted);cursor:default;border-style:solid}.plan[data-editing=true] .seat{cursor:pointer}.seat[data-selected=true]{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 2px var(--primary)}.seat[data-drop=true],.tray[data-drop=true]{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 3px var(--primary)}.seat[data-dragging=true]{opacity:.45}.seat:focus-visible{z-index:1001}.seat[data-placed=false]{visibility:hidden}.plan[data-view="3d"] .seat{background:color-mix(in srgb, var(--surface) 92%, transparent)}.seat-name{max-width:100%;display:block}.seat:has(.seat-mark) .seat-name{padding-top:16px}html.seating-show .seat:has(.seat-mark) .seat-name{padding-top:28px}html.seating-show .plan[data-marks=beside] .seat:has(.seat-mark) .seat-name{padding-top:0;padding-inline:28px}.seat-mark{width:14px;height:14px;position:absolute;top:2px}html.seating-show .seat-mark{width:24px;height:24px}.seat-pin{color:var(--primary);left:3px}.seat-alert{color:var(--bad);right:3px}.seat-blocked{flex-direction:column;align-items:center;gap:2px;font-size:.8125rem;font-weight:500;display:flex}.seat-cross{width:18px;height:18px}.desk-toggle{z-index:2;border:1px solid var(--border-strong);background:var(--surface);width:48px;height:48px;color:var(--text);box-shadow:var(--shadow-menu);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.desk-toggle[data-removed=true]{border-color:var(--primary);color:var(--primary)}.desk-toggle-icon{width:20px;height:20px}.drag-ghost{z-index:2000;border:2px solid var(--primary);background:var(--surface);max-width:240px;color:var(--text);box-shadow:var(--shadow-menu);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;transform:translate(var(--drag-x,0), var(--drag-y,0)) translate(-50%, -50%);border-radius:10px;padding:10px 16px;font-weight:600;line-height:1.2;position:fixed;top:0;left:0;overflow:hidden}.tray{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-content:start;gap:8px;min-height:120px;padding:12px;display:grid}@media (width>=1024px){.tray{top:calc(var(--header-height) + 16px);max-height:calc(100vh - var(--header-height) - 32px);position:sticky;overflow:auto}}.tray .panel-title,.tray p{margin:0}.tray-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tray-student{border:1px solid var(--border-strong);background:var(--surface);min-width:48px;min-height:48px;color:var(--text);font:inherit;text-align:left;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:10px;padding:6px 14px;font-weight:600;line-height:1.25}.tray-student:hover{border-color:var(--primary)}.tray-student[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 2px var(--primary)}.tray-student[data-dragging=true]{opacity:.45}.panels{align-items:start;gap:16px;display:grid}@media (width>=900px){.panels{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}}.panel,.empty{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-content:start;gap:12px;min-width:0;padding:16px;display:grid}.empty{justify-items:start;padding:24px}.panel p,.empty p{margin:0}.panel-title{margin:0;font-size:1.125rem;line-height:1.3}.panel-subtitle{margin:4px 0 0;font-size:1rem;line-height:1.3}.add-student,.add-rule{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;gap:8px 12px;display:grid}.student-list,.pair-list,.preview-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.student-list{max-height:480px;overflow:auto}.student,.pair-list li,.preview-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.student-name,.preview-name,.pair-list li>span{flex:140px;min-width:0}.student-edit{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;display:grid}.front{border:0;min-width:0;margin:0;padding:0}.unmet{color:var(--muted)}.unmet[data-count]:not([data-count="0"]){color:var(--bad);font-weight:600}.file-button{position:relative}.file-button:focus-within{outline:3px solid var(--focus-ring);outline-offset:2px}.dialog{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--text);box-shadow:var(--shadow-menu);padding:24px}.dialog::backdrop{background:color-mix(in srgb, var(--text) 45%, transparent)}.dialog-title{margin:0 0 12px;font-size:1.25rem}.dialog-body{gap:12px;display:grid}.dialog-body p{margin:0}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.preview-list{max-height:40vh;overflow:auto}html.seating-show .site-header,html.seating-show .site-footer,html.seating-show .head,html.seating-show .skip-link{display:none}html.seating-show .app{max-width:none;padding:16px}.app:fullscreen{background:var(--bg);max-width:none;padding:16px;overflow:auto}.print-sheet{display:none}.print-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.print-title{margin:0;font-size:1.375rem}.print-date{color:var(--muted);margin:0}.print-seat{overflow-wrap:anywhere;justify-content:center;align-items:center;display:flex;overflow:hidden}.print-seat[data-blocked=true]{color:var(--muted);font-size:.75rem;font-weight:500}@media print{@page{size:A4 landscape;margin:10mm}body{background:var(--surface)}.site-header,.site-footer,.skip-link,.head,.app>:not(.print-sheet){display:none!important}.app{max-width:none;padding:0}.print-sheet{color:var(--text);-webkit-print-color-adjust:exact;print-color-adjust:exact;display:block}}.head[data-astro-cid-ngoyhtcw],.app[data-astro-cid-ngoyhtcw]{max-width:calc(1920px + 2 * var(--gutter))}.head[data-astro-cid-ngoyhtcw]{padding-block:32px 24px}@media (width>=720px){.head[data-astro-cid-ngoyhtcw]{padding-block:48px 32px}}.head[data-astro-cid-ngoyhtcw] .note[data-astro-cid-ngoyhtcw]{border-left:2px solid var(--accent);max-width:68ch;color:var(--muted);margin-top:16px;padding-left:16px;font-size:.9375rem;line-height:1.55}.nojs[data-astro-cid-ngoyhtcw]{color:var(--text);padding-block:16px;font-weight:500}.app[data-astro-cid-ngoyhtcw]{padding-bottom:48px}.skeleton[data-astro-cid-ngoyhtcw]{gap:16px;display:grid}.skeleton-toolbar[data-astro-cid-ngoyhtcw],.skeleton-room[data-astro-cid-ngoyhtcw]{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.skeleton-toolbar[data-astro-cid-ngoyhtcw]{height:56px}.skeleton-room[data-astro-cid-ngoyhtcw]{background:linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 24px 24px, var(--surface-2);height:min(70vh,640px)}
