/* Nexus 1.4: the only Room 344 layout. Stored coordinates are unchanged.
   Both room views share these sizes across seating, attendance and homework. */
.room344-stage{margin:0;padding:0 0 8px;overflow:visible;border:0;background:transparent}
.room344-layout{--seat-height:32px;--room-name:14px;--room-meta:9px;--room-label:11px;--room-edge:34px;width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(4,auto) 22px;gap:5px;align-items:start;position:relative;padding:14px var(--room-edge) 0;box-sizing:border-box}
.room344-room-label{position:absolute;top:0;left:var(--room-edge);font-size:10px;line-height:1;font-weight:700;color:var(--muted)}
.room344-layout .room344-station{grid-row:var(--room344-row);grid-column:var(--room344-col);align-self:start;min-width:0;min-height:0;padding:1px;border-radius:4px;box-shadow:none}
.room344-layout .room344-station>header{font-size:var(--room-label);line-height:1.2;letter-spacing:0;font-weight:700;margin:1px 0 2px;text-align:center;color:var(--ink)}
.room344-layout .pc-seats{gap:2px;grid-template-rows:none;align-items:stretch}
.room344-top .pc-seats,.room344-bottom .pc-seats{grid-template-columns:repeat(2,minmax(0,1fr))}
.room344-layout .room344-left,.room344-layout .room344-right{width:50%;position:relative;box-sizing:border-box}
.room344-layout .room344-left{justify-self:start}
.room344-layout .room344-right{justify-self:end}
.room344-left .pc-seats,.room344-right .pc-seats{grid-template-columns:1fr}
.room344-layout .room344-left>header,.room344-layout .room344-right>header{position:absolute;top:50%;width:var(--room-edge);margin:0;transform:translateY(-50%);text-align:center}
.room344-layout .room344-left>header{right:100%}
.room344-layout .room344-right>header{left:100%}
.room344-layout .seat{position:relative;box-sizing:border-box;min-width:0;width:100%;height:auto;min-height:var(--seat-height);padding:3px 2px;display:flex;flex-direction:column;justify-content:center;gap:2px;border:1px solid var(--line);border-radius:3px;overflow:visible;white-space:normal}
.room344-layout .seat-number{display:none}
.room344-layout .seat-student{display:flex;flex-flow:row wrap;align-items:baseline;justify-content:center;gap:2px 3px;width:100%;min-width:0;line-height:1.1;white-space:normal;overflow:visible}
.room344-layout .seat-student-name{display:block;min-width:0;max-width:100%;font-size:var(--room-name);font-weight:700;line-height:1.12;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;letter-spacing:0}
.room344-layout .seat-student-meta{display:block;min-width:0;max-width:100%;font-size:var(--room-meta);line-height:1.1;white-space:normal;overflow-wrap:anywhere;margin:0;color:var(--muted)}
.room344-layout .seat-status,.room344-layout .seat-grade{font-size:10px;line-height:1.1;margin:0;white-space:normal}
.room344-board{grid-row:5;grid-column:2/5;align-self:start;margin-top:3px;border-top:3px solid var(--line);background:transparent;height:auto;text-align:center;line-height:1}
.room344-board>span{font-size:10px;color:var(--muted)}
.room344-board::after{content:none}
.room344-desk{grid-row:5;grid-column:5;justify-self:end;align-self:start;font-size:10px;line-height:1.2;color:var(--muted)}
body[data-layout="mobile"] .room344-layout{--seat-height:36px;--room-name:12px;--room-meta:8px;--room-label:10px;--room-edge:0px;width:100%;padding-top:0;column-gap:2px;row-gap:3px;grid-template-rows:repeat(4,auto) 18px}
body[data-layout="mobile"] .room344-room-label{display:none}
body[data-layout="mobile"] .room344-layout .room344-station{padding:1px;border-radius:3px;min-height:0}
body[data-layout="mobile"] .room344-layout .room344-left,body[data-layout="mobile"] .room344-layout .room344-right{width:100%}
body[data-layout="mobile"] .room344-layout .room344-left>header,body[data-layout="mobile"] .room344-layout .room344-right>header{position:static;width:auto;transform:none;margin:0 0 1px}
body[data-layout="mobile"] .room344-layout .pc-seats{gap:2px;grid-template-rows:none}
body[data-layout="mobile"] .room344-layout .seat{min-height:var(--seat-height);height:auto;padding:3px 1px;gap:2px}
body[data-layout="mobile"] .room344-layout .seat-student{flex-direction:column;align-items:center;gap:2px;white-space:normal}
body[data-layout="mobile"] .room344-layout .seat-student-name{font-size:var(--room-name);line-height:1.12;overflow-wrap:anywhere;white-space:normal}
body[data-layout="mobile"] .room344-layout .seat-student-meta{font-size:var(--room-meta);line-height:1.1;white-space:normal}
body[data-layout="mobile"] .room344-layout .seat-status,body[data-layout="mobile"] .room344-layout .seat-grade{font-size:9px}
body[data-layout="mobile"] .room344-board>span,body[data-layout="mobile"] .room344-desk{font-size:9px}
body[data-layout="mobile"] .room344-stage{margin:0;padding:0 0 5px}
/* Room 343: rear and side rows share one footprint. The outside seat edges
   align (PC07/left wall and PC09/right wall); spare width goes into the aisle.
   This changes presentation only, never stored coordinates or assignments. */
.room343-layout{--room343-side-width:300px;--room343-column-gap:7px;--room343-aisle-min:clamp(32px,12%,96px)}
.room343-layout .room343-back,.room343-layout .room343-sides{width:min(820px,100%);margin:0 auto;column-gap:var(--room343-column-gap)}
.room343-layout .room343-sides{grid-template-columns:minmax(0,var(--room343-side-width)) minmax(var(--room343-aisle-min),1fr) minmax(0,var(--room343-side-width))}
body[data-layout="desktop"] dialog.attendance-popup .room343-layout{--room343-side-width:285px;--room343-column-gap:5px}
/* Mobile retains readable vertical pairs and a wider, responsive aisle. */
body[data-layout="mobile"] .room343-layout{--room343-column-gap:3px;width:100%;gap:4px}
body[data-layout="mobile"] .room343-back{padding-top:0}
body[data-layout="mobile"] .room343-wall-label{display:none}
body[data-layout="mobile"] .room343-layout .room343-sides{grid-template-columns:minmax(0,1fr) clamp(28px,10%,48px) minmax(0,1fr)}
body[data-layout="mobile"] .room343-side{gap:3px}
body[data-layout="mobile"] .room343-aisle{min-height:0;border:0}
body[data-layout="mobile"] .room343-aisle span{display:none}
body[data-layout="mobile"] .room343-layout .pc-station{padding:1px 2px;min-height:0;box-shadow:none}
body[data-layout="mobile"] .room343-layout .pc-station>header{font-size:10px;line-height:1.1;margin-bottom:2px}
body[data-layout="mobile"] .room343-layout .pc-side{display:grid;grid-template-columns:30px minmax(0,1fr);gap:3px;align-items:center}
body[data-layout="mobile"] .room343-left .pc-side{grid-template-columns:minmax(0,1fr) 30px}
body[data-layout="mobile"] .room343-left .pc-side>header{grid-column:2;grid-row:1}
body[data-layout="mobile"] .room343-left .pc-side .pc-seats{grid-column:1;grid-row:1}
body[data-layout="mobile"] .room343-layout .pc-seats{gap:2px;grid-template-columns:1fr}
body[data-layout="mobile"] .room343-layout .pc-back .pc-seats{grid-template-columns:repeat(2,minmax(0,1fr))}
body[data-layout="mobile"] .room343-layout .seat{height:auto;min-height:27px;padding:2px;border-bottom-width:1px;gap:1px;overflow:visible}
body[data-layout="mobile"] .room343-layout .seat-number{display:none}
body[data-layout="mobile"] .room343-layout .seat-student{display:flex;flex-flow:row wrap;align-items:baseline;justify-content:center;gap:2px;white-space:normal}
body[data-layout="mobile"] .room343-layout .seat-student-name{font-size:12px;line-height:1.1;overflow-wrap:anywhere;white-space:normal;text-overflow:clip;max-width:100%}
body[data-layout="mobile"] .room343-layout .seat-student-meta{font-size:8px;line-height:1.1;margin:0}
body[data-layout="mobile"] .room343-layout .seat-status,body[data-layout="mobile"] .room343-layout .seat-grade{font-size:9px;line-height:1.1;margin:0}
body[data-layout="mobile"] .room343-front{margin:3px auto 12px;height:3px}
body[data-layout="mobile"] .room343-front span{font-size:9px;top:4px}
@media(min-width:600px){body[data-layout="mobile"] .room344-layout{--room-name:14px;--room-meta:10px;--seat-height:36px}}
