@font-face{font-family:'Source Serif 4';src:url('/fonts/source-serif-4/400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('/fonts/source-serif-4/600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'IBM Plex Sans Condensed';src:url('/fonts/ibm-plex-sans-condensed/400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Sans Condensed';src:url('/fonts/ibm-plex-sans-condensed/600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/fonts/ibm-plex-mono/500.woff2') format('woff2');font-weight:500;font-display:swap}
:root{--ink:#171819;--muted:#535b60;--rule:#c7cbd0;--soft:#f4f5f6;--red:#b52d27;--green:#276354;--paper:#fff;--ui:'IBM Plex Sans Condensed',Arial,sans-serif;--reading:'Source Serif 4',Georgia,serif;--mono:'IBM Plex Mono',monospace;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.5 var(--ui)}[hidden]{display:none!important}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit;color:inherit}button,select,input:not([type=checkbox]){min-height:44px}button{padding:.6rem .9rem;border:1px solid var(--rule);background:var(--paper);cursor:pointer;font-weight:600;line-height:1.25}button:hover{border-color:var(--ink);background:var(--soft)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--red);color:white;border-color:var(--red)}button.primary:hover{background:#932520}button.text{padding-inline:0;border:0;text-decoration:underline;background:transparent;font-weight:400}button,input,select,textarea,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #1261a0;outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--reading);font-weight:400;letter-spacing:-.035em;line-height:1.15}h1{font-size:clamp(2.5rem,4.5vw,4rem)}h2{font-size:1.8rem}h3{font-size:1.15rem}label{display:block;font-weight:600;font-size:1rem}input,select,textarea{padding:.6rem .75rem;border:1px solid var(--rule);background:var(--paper);border-radius:0;width:100%;max-width:100%}textarea{resize:vertical;line-height:1.45}select,input{margin-top:.3rem}textarea[aria-invalid=true]{border-color:var(--red)}.hint{font-size:.93rem;color:var(--muted);line-height:1.45}.eyebrow{font:500 .7rem/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.skip:not(:focus){position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.skip:focus{position:absolute;background:white;z-index:5;padding:1rem}.site-header{max-width:1440px;padding:1rem 3rem;margin:auto;display:flex;align-items:center;gap:2rem;border-bottom:1px solid var(--rule)}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font:600 1.1rem/1.13 var(--reading);letter-spacing:-.03em}.brand img{width:48px;height:48px;flex:none}.site-header>a:not(.brand){margin-left:auto}.draft-label{font:500 .6rem var(--mono);padding:.4rem .55rem;border:1px solid var(--rule);letter-spacing:.05em}main{max-width:1370px;padding:2.1rem 3rem 4rem;margin:auto}.heading{margin-bottom:2rem}.heading .eyebrow{margin-bottom:.65rem}.intro{margin:.9rem 0 0;color:var(--muted);max-width:70ch;font-size:1.12rem}.workspace{display:grid;grid-template-columns:minmax(300px,370px) minmax(0,1fr);gap:2.25rem;align-items:start;border-top:3px solid var(--ink);padding-top:1.4rem}.setup{min-width:0;border-right:1px solid var(--rule);padding-right:2rem}.section-title{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:1.15rem}.section-title h2{font-size:1.6rem}.section-title button{font-size:.91rem}.setup label+.hint{margin:.25rem 0 .5rem}.setup .hint{margin:.4rem 0}.split-options{margin-top:1.2rem}.split-options #value-field{margin-top:.75rem}#group-value{max-width:110px}#names{font-size:1rem;min-height:170px}.size-preview{background:var(--soft);border-left:3px solid var(--red);padding:.7rem .85rem;margin:.9rem 0 .45rem;font-weight:600;font-size:1rem}.check{display:flex;align-items:center;gap:.65rem;margin:1rem 0 .3rem;font-weight:400}.check input{width:19px;height:19px;min-height:19px;flex:none;accent-color:var(--red);margin:0;padding:0}.make-button{width:100%;margin-top:1rem;font-size:1.1rem}#status{margin:.7rem 0;color:var(--green);font-size:.96rem;min-height:1.5em}#status.error,#rename-error{color:var(--red)}details{border-block:1px solid var(--rule);margin:.9rem 0}summary{cursor:pointer;min-height:44px;padding:.8rem 0;font-weight:600;line-height:1.4}.detail-body{padding:0 0 1rem}.detail-body label{margin:.6rem 0 .2rem}.detail-body button{margin-top:.6rem}#rules-count{font-weight:400;color:var(--muted)}.rule-list{list-style:none;padding:0;margin:.75rem 0 0}.rule-list li{border-top:1px solid var(--rule);padding:.4rem 0;display:flex;gap:.7rem;align-items:center;justify-content:space-between}.rule-list button{margin:0;font-size:.85rem;flex:none}.inline{display:flex;align-items:center;gap:.5rem}.inline input{min-width:0}.inline button{flex:none;margin:0}.add-student{margin-top:1rem}.attendance-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem 0;border-bottom:1px solid var(--rule)}.attendance-row label{font-weight:400;margin:0;overflow-wrap:anywhere}.attendance-row .check{min-width:0}.attendance-row .row-actions{display:flex;gap:.45rem;flex:none}.row-actions button{font-size:.78rem;margin:0;padding:.35rem .45rem;min-height:36px}.undo-row{margin:.5rem 0}.undo-row button{font-size:.9rem}.save-panel .check{align-items:start}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.result{min-width:0}.result-heading{border-bottom:1px solid var(--rule);padding-bottom:1rem;margin-bottom:1rem}.result-heading h2{margin:.35rem 0 .5rem;font-size:2rem}.result-heading p{overflow-wrap:anywhere}.empty{border:1px dashed var(--rule);background:var(--soft);padding:4rem 2rem;text-align:center;color:var(--muted);margin-top:1.5rem}.empty-number{font:500 1.8rem var(--mono);letter-spacing:-.08em;color:#767f86}.empty>p:not(.hint){font:400 1.5rem var(--reading);color:var(--ink);margin:1.3rem 0 .6rem}.group-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.group-card{border:1px solid var(--rule);border-top:3px solid var(--ink);padding:1rem 1.2rem;min-width:0;break-inside:avoid}.group-card h3{font:500 .8rem var(--mono);color:var(--muted);margin:0 0 .7rem;text-transform:uppercase;letter-spacing:.07em}.group-card ul{list-style:none;padding:0;margin:0;font:400 1.24rem/1.55 var(--reading)}.group-card li{overflow-wrap:anywhere}.repeat-summary{margin:1rem 0 .5rem;font-size:.96rem;color:var(--green)}.repeat-summary.repeats{color:#8b3d15}.result-actions{display:flex;gap:.55rem;flex-wrap:wrap;padding-top:.7rem}.result-actions .primary{font-size:1.05rem}#history-help{margin:.75rem 0 1rem}.swap-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.exports{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.7rem;border-top:1px solid var(--rule)}.exports button{font-size:.93rem}#export-note{margin:.6rem 0}#copy-fallback{margin:1rem 0;font-size:.95rem}.history-panel{border-top:3px solid var(--ink);margin-top:1.6rem;padding-top:.9rem}.history-panel h3{margin-bottom:.5rem}.history-panel label{font-weight:400}.history-panel .hint{margin:.6rem 0}.notice{border:1px solid #cdb169;border-left:4px solid #9b731a;background:#fffaf0;padding:1rem;margin-bottom:1rem}.notice .actions{margin-top:.75rem}.about{border-top:1px solid var(--rule);margin-top:2.5rem;padding-top:1.5rem;display:grid;grid-template-columns:1fr 2fr;gap:2rem}.about h2{font-size:1.5rem}.about p{margin-bottom:.8rem;color:var(--muted);font-size:1rem;max-width:70ch}footer{max-width:1440px;margin:auto;border-top:1px solid var(--rule);padding:1.5rem 3rem;display:flex;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.85rem}dialog{max-width:520px;width:calc(100% - 2rem);background:var(--paper);border:1px solid var(--ink);padding:1.7rem;color:var(--ink)}dialog::backdrop{background:#0007}dialog h2{font-size:1.7rem}dialog p{margin:1rem 0}dialog .actions{margin-top:1.2rem}dialog input{margin-top:.4rem}.student-view{position:fixed;inset:0;max-width:none;width:100%;height:100%;max-height:none;margin:0;border:0;padding:0;overflow:auto}.student-layout{min-height:100%;padding:2rem}.student-layout:fullscreen{width:100%;height:100%;overflow:auto;background:var(--paper);color:var(--ink)}#student-display-status:empty{display:none}.student-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:3px solid var(--ink);padding-bottom:1rem;margin-bottom:1.5rem}.student-bar h2{font-size:2.2rem}.student-view .group-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:1rem}.student-view .group-card{padding:1.25rem 1.5rem}.student-view .group-card ul{font-size:1.8rem}.student-view .group-card h3{font-size:1rem}#print-view{display:none}
@media(min-width:1450px){.group-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){main{padding:1.7rem 1.5rem 3rem}.site-header{padding:1rem 1.5rem}.workspace{grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1.5rem}.setup{padding-right:1.4rem}.group-card{padding:.85rem}.group-card ul{font-size:1.12rem}}
@media(max-width:730px){body{font-size:17px}.site-header{padding:.75rem 1rem;gap:1rem}.brand{gap:.5rem;font-size:.91rem}.brand img{width:37px;height:37px}.site-header>a:not(.brand){font-size:.95rem}.draft-label{display:none}main{padding:1.4rem 1rem 2.5rem}.heading{margin-bottom:1.4rem}h1{font-size:2.65rem}.intro{font-size:1rem}.workspace{display:flex;flex-direction:column;gap:1.7rem}.setup{width:100%;padding-right:0;border-right:0}.result{width:100%;border-top:3px solid var(--ink);padding-top:1.1rem}.group-cards{gap:.6rem}.group-card ul{font-size:1.05rem}.result-actions>button{flex:1 1 150px}.exports>button{flex:1 1 140px}.swap-fields{grid-template-columns:1fr;gap:.4rem}.about{grid-template-columns:1fr;gap:1rem}.student-layout{padding:1rem}.student-bar{align-items:start;flex-wrap:wrap}.student-bar h2{font-size:1.8rem}.student-bar .actions{margin:0}.student-view .group-card ul{font-size:1.45rem}footer{padding:1.3rem 1rem;flex-direction:column}.empty{padding:2.5rem 1.25rem}}
@media(max-width:360px){.group-cards{grid-template-columns:1fr}.section-title{align-items:start;flex-wrap:wrap}.attendance-row{align-items:start;flex-wrap:wrap}.brand{font-size:.85rem}}
@media print{@page{size:auto;margin:14mm}body{font:12pt/1.4 Georgia,serif;background:white;color:black}body>*:not(#print-view){display:none!important}#print-view{display:block!important}#print-view h1{font:20pt Georgia,serif;margin-bottom:6mm}#print-view .print-note{font:10pt Arial,sans-serif;margin:0 0 6mm}#print-view .group-cards{display:grid;grid-template-columns:1fr 1fr;gap:4mm}#print-view .group-card{border:1px solid #777;padding:4mm;break-inside:avoid}#print-view .group-card h3{font:10pt Arial,sans-serif}#print-view .group-card ul{font:12pt/1.5 Georgia,serif}a{color:black}}
.edit-members{font-family:var(--ui);font-size:.9rem;margin-top:.8rem;font-weight:400}#manual-note{margin:.8rem 0}.member-list{list-style:none;padding:0;margin:1rem 0;max-height:230px;overflow:auto}.member-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--rule);padding:.5rem 0}.member-list span{overflow-wrap:anywhere;min-width:0}.member-list button{flex:none;font-size:.9rem}#member-name-field{margin-top:.8rem}#member-form>.hint{margin:.75rem 0}#member-status{font-size:1rem;color:var(--green)}#member-status.error{color:var(--red)}

.site-header>nav{margin-left:auto}.site-information{display:flex;flex-wrap:wrap;gap:.7rem 1rem}.site-information a{min-height:44px;display:inline-flex;align-items:center}
