:root{color-scheme:light dark;--bg: light-dark(#f6f7f9, #0e0f12);--fg: light-dark(#16181d, #e8eaef);--muted: light-dark(#667085, #a1a8b5);--card: light-dark(#ffffff, #17191f);--border: light-dark(#e5e7eb, #262a33);--primary: #4f46e5;--danger: #e11d48;--ok: #16a34a;--warn: #f59e0b}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica Neue,Arial,Noto Sans,"Apple Color Emoji","Segoe UI Emoji"}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--card);position:sticky;top:0;z-index:3}.brand{font-weight:700;letter-spacing:.2px}.brand-group{display:flex;align-items:center;gap:10px}.topbar-actions{display:flex;gap:8px}.layout{display:grid;grid-template-columns:360px 1fr;height:calc(100% - 56px);transition:grid-template-columns .3s ease}.layout.sidebar-hidden{grid-template-columns:0 1fr}.left-pane{opacity:1;visibility:visible;transition:opacity .3s ease,visibility .3s ease;overflow:hidden}.layout.sidebar-hidden .left-pane{opacity:0;visibility:hidden}.left-pane{padding:12px;border-right:1px solid var(--border);overflow:auto}.right-pane{padding:12px;overflow:auto}section{margin-bottom:16px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px}button,input,select,textarea{background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:10px;padding:8px 10px}button{cursor:pointer}button.primary{background:var(--primary);color:#fff;border:none}button.danger{background:var(--danger);color:#fff;border:none}.actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.groups-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.group-card{border:1px solid var(--border);border-radius:14px;padding:10px}.group-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.group-name{font-weight:700}.group-lock{font-size:12px;opacity:.75}.tag{display:inline-block;padding:2px 6px;border-radius:999px;border:1px solid var(--border);margin:2px 4px 0 0;font-size:12px;color:var(--muted)}.student{padding:6px 8px;border:1px dashed var(--border);border-radius:10px;margin:6px 0;background:light-dark(#fafafa,#14161c)}.progress-bar{height:14px;background:light-dark(#eef0f4,#161a22);border:1px solid var(--border);border-radius:999px;overflow:hidden}.progress-inner{height:100%;background:linear-gradient(90deg,var(--primary),#06b6d4);width:0%;transition:width .2s ease}.progress-label{margin-top:6px;font-size:12px;color:var(--muted)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:light-dark(#e5e7eb,#374151);transition:.3s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}input:checked+.toggle-slider{background-color:var(--primary)}input:checked+.toggle-slider:before{transform:translate(20px)}input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.print-container{display:none}@media print{body>*:not(.print-container){display:none!important}.print-container{display:block!important}@page{margin:1cm;size:auto}.group-card{border:2px solid #333;padding:12px;margin-bottom:16px;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;color-adjust:exact;color:#000!important}.group-name{font-size:18px;font-weight:700;margin-bottom:8px;color:#000!important}.student{border:1px solid #333;padding:6px;margin:4px 0;background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#000!important}.print-mode-pages .group-card{page-break-after:always}.print-mode-pages .group-card:last-child{page-break-after:auto}.print-mode-all .print-groups-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}}.list{display:grid;gap:6px}.row{display:flex;gap:6px;align-items:center}.row input[type=text]{flex:1}.kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:light-dark(#eef1f6,#10131a);border:1px solid var(--border);padding:2px 6px;border-radius:6px}.badge{border:1px solid var(--border);border-radius:999px;padding:2px 6px;font-size:12px;color:var(--muted)}.toast{position:fixed;right:16px;bottom:16px;padding:10px 12px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 24px #0003;z-index:10}.locked{opacity:.7}.dnd-ghost{opacity:.5}.constraints-blurred{filter:blur(6px);pointer-events:none;-webkit-user-select:none;user-select:none}.multiselect-container{position:relative;border:1px solid var(--border);border-radius:6px;padding:6px;min-height:32px;background:var(--card);cursor:pointer;-webkit-user-select:none;user-select:none}.multiselect-container:hover{border-color:var(--primary)}.multiselect-display{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.multiselect-chip{background:var(--primary);color:#fff;padding:2px 8px;border-radius:10px;font-size:10px;display:inline-flex;align-items:center;gap:4px}.multiselect-chip-remove{font-weight:700;font-size:11px;cursor:pointer}.multiselect-chip-remove:hover{color:var(--danger)}.multiselect-placeholder{color:var(--muted);font-size:12px}.multiselect-chevron{margin-left:auto;color:var(--muted);font-size:10px;transition:transform .2s}.multiselect-container.open .multiselect-chevron{transform:rotate(180deg)}.multiselect-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--card);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:100;max-height:200px;overflow-y:auto;display:none}.multiselect-container.open .multiselect-dropdown{display:block}.multiselect-option{padding:8px 12px;display:flex;align-items:center;gap:8px;cursor:pointer}.multiselect-option:hover{background:var(--bg)}.multiselect-option input[type=checkbox]{margin:0;cursor:pointer}.multiselect-empty{padding:12px;text-align:center;color:var(--muted);font-size:12px}
