/* Teacher workspace: ink-blue navigation, bright paper, generous touch targets. */
:root{--ink:#142c46;--muted:#62758a;--blue:#1664d8;--blue-soft:#eaf2ff;--bg:#edf2f7;--line:#dbe4ed;--radius:18px;--shadow:0 4px 16px #193b5b08}
body{font-size:16px;background:var(--bg);line-height:1.6}
.app{max-width:1320px;padding:0 28px 105px}.topbar{height:84px;background:#142f4c;color:#fff;margin:0 -28px;padding:0 28px;border:0}.brand-name{font-size:21px}.brand-sub{color:#bdcfe2;font-size:13px}.logo{background:#2c70bd;box-shadow:none}.class-switch{background:#ffffff12;border-color:#ffffff35;color:#fff;min-height:44px}.class-switch small{color:#c2d5e9}.main{padding-top:24px}
.workbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.workspace-label{font-weight:800;font-size:28px;letter-spacing:-.04em}.workbar p{margin:2px 0 0;color:var(--muted);font-size:14px}.greeting{margin:14px 0}.greeting .eyebrow,.greeting h1,.greeting .subtext{display:none}.date-chip{padding:0;color:var(--muted);font-size:13px}.greeting>div:first-child{display:none}
.stats{gap:12px}.stat{border:1px solid var(--line);padding:16px;box-shadow:none}.stat-num{font-variant-numeric:tabular-nums;font-size:28px}.stat-label{font-size:13px}.stat-icon{border-radius:12px}.home-grid{grid-template-columns:1.2fr 1fr}.card{border:1px solid var(--line);padding:22px}.card-title{font-size:18px}.card-note{font-size:13px}.actions{gap:10px}.action{min-height:115px;background:#f8faff;border-color:#dfe8f2;padding:16px}.action strong{font-size:16px}.action small{font-size:13px}.action-icon{color:var(--blue)}.notice{font-size:14px;border-radius:12px;background:#f1f6fc}.privacy{font-size:13px;line-height:1.7}.feed-text{font-size:15px}.feed-meta{font-size:13px}.feed-row{padding:15px 0}.empty{padding:28px 14px;color:#687a8f;font-size:14px}
.btn,.field,.chip,.class-switch{min-height:44px}.btn{font-size:14px;box-shadow:none;padding:11px 17px}.btn.small{font-size:14px;padding:9px 13px}.field{font-size:16px;max-width:100%;border-color:#ccd8e5}.form-label{font-size:14px}.form-field{min-width:0}.form-field>.field{width:100%}.form-field textarea{min-height:110px}.page-head h1{font-size:28px}.page-head p{font-size:14px}.link-btn{font-size:14px;min-height:44px}.student-small,.compact-row span:last-child{font-size:13px}.student-row{grid-template-columns:40px minmax(95px,1fr) 1fr auto auto;padding:15px;gap:12px}.student-name{font-size:16px}.grade-pill{font-size:13px}.icon-btn{min-width:44px;min-height:44px;font-size:19px}.row-actions{flex-shrink:0}.compact-row{font-size:16px}.draw-stage{min-height:360px}.draw-ring{width:235px;height:235px;border-color:#cfdef4;box-shadow:inset 0 0 0 12px #fff}.draw-name{font-size:36px}.draw-controls .btn{min-width:170px;min-height:50px}.draw-placeholder{font-size:16px}
.seat-stage{background:#f2f6fb}.front-board{background:#183b5c;color:#fff;border:0;font-size:14px;letter-spacing:.3em}.seat-grid{gap:10px;min-width:400px}.seat{min-height:78px;border-radius:10px;border-bottom:4px solid #c4d6ea}.seat:nth-child(2n){margin-right:5px}.seat-name{font-size:15px}.seat-id{font-size:12px}.seat.empty-seat{font-size:14px}.seat.selected{background:#e4efff}.rule-card{background:#f7faff;border-color:#d5e3f3}.rule-card h3{font-size:15px;color:var(--ink)}.rule-card p{font-size:14px;color:var(--muted)}.suggestion{border-left:4px solid #d39420;background:#fffdf7}.suggestion h3{font-size:16px}.suggestion p{font-size:14px}.suggestion-actions{flex-wrap:wrap}.tag{font-size:12px}.log-row{grid-template-columns:85px 1fr auto}.log-main strong{font-size:15px}.log-main p{font-size:14px}.log-date{font-size:13px}
.tabs{border:1px solid #d6e0ec;box-shadow:0 -4px 24px #14365b0a}.tab{font-size:14px;min-height:56px;border-radius:12px}.tab.active{background:#eaf2ff;color:#135bc1}.tab .tab-icon{font-size:22px}.modal-backdrop{backdrop-filter:blur(3px)}.modal{width:min(620px,calc(100vw - 30px));max-height:88dvh;overflow:auto;border-radius:22px;padding:24px}.modal-head{position:sticky;top:-24px;background:#fff;z-index:2;padding-top:8px}.modal-close{min-width:44px;min-height:44px}.modal-actions{flex-wrap:wrap}.toast{max-width:calc(100vw - 30px);width:max-content;font-size:14px;white-space:normal;text-align:center}.setup-guide{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;background:#fff;border:1px solid #cbdcf0;border-left:4px solid var(--blue);border-radius:12px}.setup-guide strong{font-size:16px}.setup-guide p{font-size:14px;margin:3px 0 0;color:var(--muted)}.setup-guide[hidden]{display:none}.import-help{font-size:14px;margin:0 0 14px;color:var(--muted)}.import-input{width:100%;min-height:150px;white-space:pre;overflow:auto}.import-preview{overflow:auto;margin:14px 0;max-height:250px}.import-preview table{border-collapse:collapse;width:100%;font-size:14px}.import-preview td{padding:8px 12px;border:1px solid var(--line);white-space:nowrap}.import-summary{background:var(--blue-soft);padding:12px;border-radius:10px;font-size:14px}.seat-tools{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.grade-details{margin:8px 0;font-size:14px}.grade-details summary{cursor:pointer;color:var(--blue);padding:8px 0}.grade-details table{width:100%;border-collapse:collapse}.grade-details td{border-bottom:1px solid var(--line);padding:6px}.backup-note{color:#7b5b1e;background:#fff7e5;padding:10px;border-radius:8px;font-size:13px}
@media(min-width:1000px){.app{padding-left:200px}.topbar{margin-left:-200px;padding-left:28px}.tabs{left:max(0px,calc((100vw - 1320px)/2));top:108px;bottom:auto;transform:none;width:176px;border:0;background:transparent;box-shadow:none;padding:0 12px}.tab-inner{display:flex;flex-direction:column;gap:7px}.tab{display:flex;align-items:center;gap:13px;text-align:left;padding:13px 18px;width:100%;font-size:15px}.tab .tab-icon{margin:0;width:26px}.tab.active{background:#fff;border:1px solid #d9e4f2;box-shadow:0 3px 10px #17365708}}
@media(max-width:760px){.app{padding:0 14px 108px}.topbar{margin:0 -14px;padding:0 16px;height:72px}.main{padding-top:20px}.brand-name{font-size:20px}.brand-sub{display:none}.workspace-label{font-size:25px}.workbar p{font-size:13px}.workbar>.btn{padding:10px 13px;white-space:nowrap}.home-grid{grid-template-columns:1fr}.stats{gap:9px}.stat{padding:13px;border-radius:12px;gap:9px}.stat-icon{width:34px;height:34px}.stat-num{font-size:25px}.stat-label{font-size:12px}.card{padding:17px;border-radius:16px}.actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.action{padding:12px 9px;min-height:106px}.action strong{font-size:14px}.action small{font-size:12px;line-height:1.5}.student-row{grid-template-columns:34px minmax(80px,1fr) auto;gap:8px}.student-row>.grade-pill{grid-column:2;font-size:12px;justify-self:start}.student-row>.row-actions{grid-column:3;grid-row:1/3}.student-row>.avatar{grid-row:1/3}.student-row>.hide-mobile{display:none}.student-name{font-size:16px}.setup-guide{padding:14px;align-items:flex-start;flex-direction:column}.setup-guide .btn{width:100%}.page-head h1{font-size:25px}.page-head p{font-size:14px}.toolbar.mobile-stack{grid-template-columns:1fr}.toolbar .btn{flex:1;white-space:nowrap}.student-tools .toolbar{width:100%}.log-row{grid-template-columns:1fr auto;gap:4px}.log-date{grid-column:1/-1}.log-row .row-actions{grid-column:2;grid-row:2}.log-main{min-width:0}.modal{padding:20px 18px;border-radius:20px}.modal-head{top:-20px}.tabs{padding-bottom:calc(8px + env(safe-area-inset-bottom));border-radius:0}.tab{font-size:13px}.tab-inner{gap:2px}.seat-stage{padding:12px}.seat-grid{min-width:380px}.seat-toolbar{align-items:stretch}.seat-toolbar .toolbar{width:100%;flex-wrap:wrap}.seat-toolbar strong{font-size:15px}.draw-stage{min-height:345px}.greeting{margin:10px 0}.card-title{font-size:17px}}
.seat{padding:6px 2px}.seat-name,.seat-id{white-space:nowrap}.page-head>.btn{white-space:nowrap;flex-shrink:0}.seat-grid{min-width:450px}
@media(max-width:760px){.student-row>.hide-mobile{display:block;grid-column:2;grid-row:3;font-size:13px}.student-row>.avatar,.student-row>.row-actions{grid-row:1/4}.student-row>.grade-pill{grid-row:2}.seat-grid{min-width:450px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
