:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#212529;background:#f4f4f5;font-size:16px;--accent:#a32e0b;--line:#e0e0e4}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;color:#34363b;border-radius:7px;padding:8px 10px;font-size:14px;line-height:1.25}button:hover{background:#f1f1f3}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.45;cursor:default}.primary{background:var(--accent);color:white;border-color:var(--accent)}.primary:hover{background:#812408}.danger{color:var(--accent)}
header{padding:10px 20px;border-top:4px solid var(--accent);border-bottom:1px solid var(--line);background:white;display:flex;justify-content:space-between;align-items:center;gap:14px}.brand{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}h1{font:500 25px/1.15 Georgia,"Times New Roman",serif;margin:3px 0 0}.saved{font-size:13px;color:#686a70;max-width:270px;text-align:right}main{width:100%;margin:0 auto;padding:12px 16px;display:grid;grid-template-columns:205px minmax(0,1fr);gap:14px}aside{display:flex;flex-direction:column;gap:10px;min-width:0}h2{font-size:16px;margin:0 0 8px}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:12px}label{display:block;font-size:14px;margin-bottom:6px}input{min-width:0;width:100%;border:1px solid #d5d6da;border-radius:6px;padding:8px;color:#212529;background:white}.hint{color:#686a70;font-size:13px;line-height:1.4;margin:8px 0 0}.actions{display:grid;gap:6px}.stats{font-size:28px;font-weight:650;line-height:1.1}.stats small{font-size:17px;color:#75777d;font-weight:400}.legend{display:flex;align-items:center;gap:6px;font-size:13px;color:#686a70;margin-top:6px}.swatch{width:10px;height:10px;border-radius:3px;background:#edd4cc;flex:none}#layoutHint{display:none}main>section{min-width:0;display:flex;flex-direction:column;gap:8px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.toolbar h2{margin:0;overflow-wrap:anywhere}.toolbar-actions{display:flex;gap:6px;flex-wrap:wrap}.room{background:white;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}.front{display:none}.screen{width:48%;margin:0 auto;background:#f4e7e2;border-top:3px solid var(--accent);border-radius:2px 2px 6px 6px;padding:3px;text-align:center;color:#86280d;font-size:13px;line-height:1.2}.islands{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;flex:1}.island{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);grid-template-rows:repeat(4,minmax(116px,1fr));gap:7px 0;min-width:0}.table{grid-column:2;grid-row:1/5;background:#e5e6e9;border:1px solid #d5d6da;display:flex;align-items:center;justify-content:center;border-radius:6px}.table span{writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.1em;text-transform:uppercase;font-size:12px;color:#707278}.seat{padding:6px 7px;border:1px solid #dfdfe3;border-radius:7px;background:#f8f8f9;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:2px}.seat.left{margin-right:5px}.seat.right{margin-left:5px}.seat.selected{outline:2px solid var(--accent);background:#f9eae4}.seat.off{border:1px dashed #d5d6da;background:#fafafa}.seat.broken{background:#fff2e8;border:1px dashed var(--accent)}.seat.flagged{box-shadow:inset 0 -3px var(--accent)}.seat:focus-within{border-color:var(--accent)}.seat-top{display:flex;align-items:center;justify-content:space-between;gap:3px}.pc{font-size:12px;color:var(--accent);font-weight:650;white-space:nowrap}.seat button{font-size:12px;padding:3px 4px;background:transparent;border:0}.seat input{padding:3px 0;font-size:14px;border:0;background:transparent;border-bottom:1px solid #d5d6da;border-radius:0;line-height:1.3}.seat input:focus{background:white}.seat input::placeholder{color:#73757b}.seat .pc-status{font-size:12px;text-align:left;padding:2px 0;color:#86280d;align-self:flex-start}.off-text{font-size:12px;color:#73757b}.discipline{display:flex;align-items:center;gap:4px;font-size:13px;flex-wrap:nowrap}.discipline span{margin-right:auto;white-space:nowrap}.discipline button{border:1px solid #d5d6da;background:white;min-width:26px;min-height:26px;font-size:16px;padding:0}.foot{padding-top:5px;border-top:1px solid #e5e6e9;display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#73757b}.message{min-height:18px;font-size:13px;line-height:1.3;margin:0;color:#686a70;overflow-wrap:anywhere}.notice{padding:6px 9px;margin:0;background:#f9eae4;border-left:3px solid var(--accent);font-size:13px;white-space:pre-line;max-height:58px;overflow:auto;flex:none}.notice[hidden],.file{display:none}
@media(min-width:1000px) and (min-height:700px){body{min-height:100dvh;display:flex;flex-direction:column}header{flex:none}main{flex:1;min-height:0;height:calc(100dvh - 76px)}aside .hint{display:none}main>section{min-height:0}.room{min-height:0}.island{grid-template-rows:repeat(4,minmax(116px,1fr))}}
@media(min-width:1000px) and (max-height:760px){header{padding-top:7px;padding-bottom:7px}main{padding-top:8px;padding-bottom:8px;gap:10px}.panel{padding:10px}.actions{gap:5px}.actions button{padding:7px 8px}.island{grid-template-rows:repeat(4,minmax(110px,1fr));gap:5px 0}.room{gap:6px}.notice{max-height:35px}.foot{padding-top:3px}}
@media(max-width:1100px) and (min-width:1000px){main{grid-template-columns:180px minmax(0,1fr)}.islands{gap:12px}.island{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)}.seat{padding-left:5px;padding-right:5px}.toolbar h2{font-size:14px}.toolbar-actions button{padding:7px 8px}}
@media(max-width:999px){main{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:8px}.backup{grid-column:1/-1}.backup .actions{grid-template-columns:repeat(4,minmax(0,1fr))}aside .hint,.backup h2{display:none}.island{grid-template-rows:repeat(4,minmax(125px,1fr))}.panel{padding:10px}.room{min-height:580px}}
@media(max-width:600px){header{padding:9px 12px}.brand{font-size:11px;letter-spacing:0}h1{font-size:21px}.saved{font-size:12px;max-width:120px}main{padding:10px;gap:10px}.backup .actions{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{align-items:flex-start}.toolbar-actions{width:100%}.toolbar-actions button{flex:1}.islands{grid-template-columns:1fr;gap:18px}.island{grid-template-rows:repeat(4,minmax(140px,1fr));grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)}.seat{padding:8px}.seat button{min-height:30px}.seat input{font-size:16px}.discipline button{min-width:32px;min-height:32px}.foot{flex-wrap:wrap}.screen{width:65%}.stats{font-size:26px}.legend{font-size:12px}}
@media print{@page{size:A4 landscape;margin:8mm}body{background:white}header{border:0;padding:0 0 8px}h1{font-size:20px}.saved,aside,.toolbar-actions,.message,.notice,.seat button,.discipline{display:none!important}main{display:block;padding:0;height:auto}.room{border:0;padding:5px;min-height:0}.islands{grid-template-columns:1fr 1fr}.island{grid-template-rows:repeat(4,30mm);break-inside:avoid}.seat input{border:0;font-size:14px}.seat.off{visibility:hidden}.seat.selected{outline:0}.foot{flex-direction:row}.screen{padding:2px}.toolbar{margin-bottom:5px}}
/* Wider island tables and a distinct central aisle. */
@media screen and (min-width:1000px){
  .islands{gap:clamp(76px,9vw,152px)}
  .island{grid-template-columns:minmax(0,1fr) clamp(76px,8vw,128px) minmax(0,1fr)}
}
@media screen and (min-width:601px) and (max-width:999px){
  .islands{gap:clamp(52px,8vw,80px)}
  .island{grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr)}
  .discipline{gap:3px;flex-wrap:wrap}
}
@media screen and (max-width:600px){
  .islands{gap:56px}
  .island{grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr)}
}
@media print{
  .islands{gap:32mm}
  .island{grid-template-columns:minmax(0,1fr) 24mm minmax(0,1fr)}
}
/* Keep controls usable beside the wider tables. */
@media screen and (min-width:1000px) and (max-width:1250px){
 .discipline{gap:2px;font-size:12px}
 .discipline button{min-width:22px}
 .seat-top{flex-wrap:wrap}
}
@media screen and (min-width:601px) and (max-width:760px){
 .islands{grid-template-columns:1fr;gap:40px}
 .island{grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr)}
}
/* Prominent student names. */
.seat input{font-size:20px;font-weight:600;line-height:1.25}
.seat input::placeholder{font-size:14px;font-weight:400}
@media print{.seat input{font-size:18px;font-weight:600}}
/* Primatika navigation and the empty-example label. */
.home-link{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.home-link:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.demo-badge{display:inline-block;vertical-align:middle;margin-left:6px;padding:4px 7px;border:1px solid #e2c4b9;border-radius:4px;background:#faf3ef;color:var(--accent);font:500 11px/1.2 system-ui,-apple-system,sans-serif;letter-spacing:0}
.demo-note{margin:0 0 12px;color:#686a70;font-size:12px;line-height:1.5;padding-bottom:12px;border-bottom:1px solid var(--line)}
@media(max-width:600px){.demo-badge{margin-left:0}h1{line-height:1.35}.brand{margin-bottom:3px}}
@media print{.home-link{text-decoration:none}.demo-badge{display:none}}

