:root{font-family:'Segoe UI','Yu Gothic UI','Hiragino Kaku Gothic ProN',sans-serif;color:#17324d;background:#f4f7f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,input:focus-visible,.import-label:focus-within{outline:3px solid #2a92c4;outline-offset:2px}.app-shell{max-width:1600px;margin:auto;padding:0 32px}.topbar{height:96px;display:flex;align-items:center;gap:16px;border-bottom:1px solid #dce5e9}.brand-mark{height:48px;width:48px;border-radius:13px;background:#102d46;color:white;display:grid;place-items:center;font-weight:700;letter-spacing:-.09em;font-size:18px}.brand-mark span{color:#70d4c3;margin:0 2px}.brand-copy h1{font-size:20px;letter-spacing:-.04em;margin:2px 0 0;line-height:1.2}.eyebrow,.section-kicker{font-size:11px;font-weight:700;letter-spacing:.14em;color:#72909e;text-transform:uppercase}.top-actions{margin-left:auto;display:flex;gap:9px}.button{border:1px solid transparent;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;font-weight:700;font-size:12px;white-space:nowrap;transition:background .15s,transform .15s}.button:hover:not(:disabled){transform:translateY(-1px)}.button-quiet{color:#34556b;background:#fff;border-color:#d9e4e9}.button-quiet:hover{background:#eaf3f4}.button-primary{background:#0b806f;color:white;box-shadow:0 5px 12px #0b806f22}.button-primary:hover{background:#086e60}.button-danger{background:#fff;color:#a05049;border-color:#ead7d4}.button-danger:hover{background:#fff5f3}.import-label{cursor:pointer}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;padding:31px 0 29px}.intro .section-kicker{margin:0 0 9px;color:#0e9b84}.intro h2{font-size:31px;letter-spacing:-.055em;margin:0 0 8px}.intro p:last-child{font-size:13px;color:#708797;margin:0;line-height:1.7}.session-picker{min-width:410px}.field-label{display:block;font-size:11px;color:#6a8391;font-weight:700;margin-bottom:9px}.session-tabs{display:flex;gap:4px;padding:4px;border:1px solid #dde6e9;border-radius:12px;background:#e9eff1}.session-tab{background:transparent;border:0;border-radius:8px;padding:7px 10px;min-width:51px;min-height:39px;color:#6f8491;font-size:12px;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2}.session-tab small{font-size:9px;color:#75939c;margin-top:3px}.session-tab.active{background:#fff;color:#147c70;box-shadow:0 2px 6px #19374618}.session-tab.active small{color:#147c70}.workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr);gap:18px;align-items:start}.panel{background:#fff;border:1px solid #e0e9eb;border-radius:17px;box-shadow:0 8px 28px #2c52640c}.board{padding:26px 28px 23px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.panel-heading .section-kicker{margin:0 0 5px}.panel-heading h2{font-size:19px;letter-spacing:-.04em;margin:0}.room-tag,.count-badge{font-size:11px;font-weight:700;border-radius:7px;background:#eaf2f5;color:#4b7385;padding:7px 10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #e5edef;border-radius:12px;background:#f8fafb;margin:23px 0 22px;padding:17px 0}.stats>div{padding:0 16px;border-right:1px solid #e4ebee}.stats>div:last-child{border-right:0}.stats span{display:block;font-size:11px;font-weight:600;color:#78909d;margin-bottom:5px}.stats strong{font-size:22px;letter-spacing:-.04em}.stats small{font-size:11px;color:#94a6af;font-weight:600;letter-spacing:0}.legend{display:flex;align-items:center;gap:17px;flex-wrap:wrap;font-size:11px;color:#567080;font-weight:600}.legend>span{display:flex;align-items:center;gap:6px}.legend-note{margin-left:auto;color:#91a3ab!important;font-weight:500!important}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-five{background:#16aa8e}.dot-six{background:#4c87c7}.teacher-desk{width:146px;height:34px;display:grid;place-items:center;border:1px solid #d3dfe4;border-radius:7px;margin:22px auto 23px;color:#68818d;font-size:12px;font-weight:700;background:#f8fafb}.seat-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.seat-column{display:grid;grid-template-rows:repeat(10,1fr);gap:9px}.seat-card{height:54px;position:relative;display:flex;align-items:center;justify-content:space-between;overflow:hidden;border-radius:9px;border:1px solid #dbe9e5;background:#f0faf6;color:#176e60;text-align:left;padding:0 13px;transition:transform .15s,box-shadow .15s,border-color .15s}.seat-card:hover{transform:translateY(-2px);box-shadow:0 4px 10px #345e631b}.seat-card.selected{outline:2px solid #158a79;outline-offset:1px}.seat-card.class-six{background:#f0f6fc;border-color:#dae6f2;color:#3f75a7}.seat-card.class-six.selected{outline-color:#4a84bb}.seat-number{font-size:17px;font-weight:700;letter-spacing:.02em}.seat-meta{font-size:11px;display:flex;align-items:baseline;gap:2px}.seat-meta b{font-size:17px}.seat-meta small{font-size:10px;color:#89a39f}.class-six .seat-meta small{color:#9aafc5}.seat-progress{position:absolute;bottom:0;left:0;width:var(--fill);height:3px;background:#24ae93}.class-six .seat-progress{background:#75a6d4}.board-footnote{font-size:11px;color:#91a3ab;margin:18px 0 0;line-height:1.6}.side-stack{display:grid;gap:18px}.arrival-panel,.detail-panel{padding:22px}.panel-intro{font-size:12px;color:#7c909c;margin:12px 0 17px}.bulk-actions{display:flex;gap:8px}.bulk-actions .button-primary{flex:1}.search-field{height:42px;display:flex;align-items:center;gap:10px;margin:20px 0 15px;border:1px solid #dbe6ea;border-radius:9px;padding:0 12px;color:#9caeb7}.search-field:focus-within{border-color:#41a48f}.search-field svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.search-field input{min-width:0;width:100%;border:0;outline:0;background:transparent;font-size:12px;color:#243d51}.search-field input::placeholder{color:#9caeb7}.list-head{display:flex;justify-content:space-between;border-bottom:1px solid #e7eef0;padding:0 0 11px;font-size:11px;color:#7a909b;font-weight:700}.student-list{height:475px;overflow:auto;scrollbar-color:#d3e2e5 transparent}.student-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid #eef2f3;padding:10px 2px}.student-avatar{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;font-size:10px;font-weight:700;flex:none}.avatar-five{background:#e4f6ee;color:#19846e}.avatar-six{background:#eaf2fb;color:#4f80b2}.student-info{min-width:0;flex:1}.student-info strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-info small{display:block;color:#91a4ad;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.student-actions{display:flex;gap:5px;flex:none}.arrive-button,.seat-chip,.history-button{border-radius:6px;border:1px solid #cfe6df;background:#eef9f4;color:#16836d;font-size:10px;font-weight:700;min-height:29px;padding:0 8px}.arrive-button:hover{background:#d8f3e7}.seat-chip{color:#4177a6;border-color:#dbe9f4;background:#eef5fb}.history-button{color:#78909b;border-color:#e2eaed;background:#fff}.history-button:hover{background:#f2f6f7}.empty-list{font-size:12px;color:#91a3ab;text-align:center;padding:25px 0}.detail-panel{min-height:187px}.detail-content{margin-top:17px}.muted{font-size:12px;color:#96a7ae;line-height:1.7;margin:0}.detail-subtitle{font-size:11px;color:#8ba0aa;margin:0 0 6px}.member-list{list-style:none;margin:0;padding:0}.member-list li{display:flex;gap:11px;align-items:center;border-top:1px solid #edf1f2;padding:10px 0}.member-number{font-size:11px;font-weight:700;color:#72919c;background:#eff4f5;border-radius:6px;padding:6px}.member-list li>span:nth-child(2){flex:1}.member-list strong{display:block;font-size:12px}.member-list small{display:block;font-size:10px;color:#98a9b1;margin-top:2px}footer{text-align:center;color:#a0afb6;font-size:11px;padding:31px}.history-dialog{border:0;border-radius:16px;box-shadow:0 30px 90px #0d243b44;padding:24px;width:min(480px,calc(100vw - 36px));color:#17324d}.history-dialog::backdrop{background:#102a43aa}.dialog-head{display:flex;justify-content:space-between;align-items:start}.dialog-head .section-kicker{margin:0 0 6px}.dialog-head h2{font-size:20px;margin:0}.icon-button{background:#f3f6f7;border:0;border-radius:7px;font-size:22px;line-height:1;width:32px;height:32px;color:#69818d}.history-person{font-size:12px;color:#8399a4;margin:10px 0 20px}.history-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.history-item{border:1px solid #e2ebee;border-radius:9px;padding:12px;display:flex;justify-content:space-between;font-size:12px}.history-item span{color:#8096a0}.history-item strong{color:#1d7e70}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,16px);background:#14394a;color:#fff;padding:11px 18px;border-radius:9px;box-shadow:0 10px 26px #122f3a33;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:20}.toast.visible{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 350px}.app-shell{padding:0 18px}.board{padding:22px 18px}.seat-map{gap:8px}.stats>div{padding:0 10px}}
@media(max-width:900px){.intro{align-items:start;flex-direction:column}.session-picker{min-width:0;width:100%}.workspace{grid-template-columns:1fr}.side-stack{grid-template-columns:1fr 1fr}.student-list{height:400px}}
@media(max-width:650px){.app-shell{padding:0 12px}.topbar{height:auto;min-height:76px;flex-wrap:wrap;padding:12px 0}.top-actions{width:100%;margin:0}.top-actions .button{flex:1}.intro{padding:24px 0}.intro h2{font-size:26px}.session-tabs{overflow:auto}.session-tab{flex:1;min-width:48px;padding:7px 5px}.board{padding:20px 13px}.stats{grid-template-columns:repeat(2,1fr);gap:16px 0}.stats>div:nth-child(2){border-right:0}.stats strong{font-size:19px}.legend-note{width:100%;margin-left:0}.seat-map{gap:6px}.seat-column{gap:6px}.seat-card{height:48px;padding:0 7px}.seat-number,.seat-meta b{font-size:14px}.seat-meta small{font-size:9px}.side-stack{grid-template-columns:1fr}.student-list{height:430px}.bulk-actions{flex-direction:column}.bulk-actions .button{width:100%}}
