@charset "UTF-8";
:root{--ink:#203b32;--muted:#75827c;--green:#194e3d;--green-dark:#143c30;--lime:#cceaa9;--bg:#f5f6f2;--line:#e5e9e2;--warning:#9b661e;--warning-bg:#fff3dd;--font:"Microsoft YaHei","PingFang SC","Noto Sans SC",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;font:14px/1.6 var(--font);color:var(--ink);background:var(--bg)}button,input{font:inherit}button,a,input{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.43}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:29px;font-weight:650;letter-spacing:-.8px;line-height:1.45}h2{font-size:17px;font-weight:650}h3{font-size:16px}strong{font-weight:600}.muted{color:var(--muted)}.small{font-size:12px}.full{width:100%}.icon{height:20px;width:20px;flex-shrink:0;vertical-align:middle}.eyebrow{display:block;font-size:10px;font-weight:650;letter-spacing:2px;color:#84917d;margin-bottom:8px}.eyebrow.light{color:#bdd5bc}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#77a973;flex-shrink:0}code{font:13px/1.5 Consolas,monospace;background:#f0f3ec;padding:2px 5px;border-radius:4px;overflow-wrap:anywhere}
.button{min-height:41px;border:1px solid transparent;border-radius:7px;padding:9px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:550;transition:background .15s}.button.primary{background:var(--green);color:white}.button.primary:hover:not(:disabled){background:#28634e}.button.secondary{background:white;border-color:#dce2d8;color:#355143}.button.secondary:hover:not(:disabled){background:#f2f5ee}.button.ghost{background:transparent;color:#68796f}.button.small{min-height:34px;padding:6px 11px;font-size:12px}.button.tiny{min-height:28px;padding:4px 9px;font-size:11px}.text-button{border:0;background:none;color:var(--green);display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:12px;padding:5px}.text-button .icon{width:15px;height:15px}.text-button:hover:not(:disabled){text-decoration:underline}.text-button.danger{color:#a85c47}.icon-button{width:34px;height:34px;background:none;border:0;color:#748078;border-radius:6px}.icon-button:hover{background:#edf1e9}.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:5px;font-size:11px;font-weight:550;white-space:nowrap}.pill .icon{width:13px;height:13px}.pill.neutral{background:#edf0e9;color:#6a776e}.pill.success{background:#eaf4e5;color:#527d44}.pill.warning{background:var(--warning-bg);color:var(--warning)}.count{display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:#7a8a76;background:#f0f3eb;padding:2px 7px;min-width:22px;border-radius:4px}.boot{padding:15vh 10vw;font-size:20px}.hidden{display:none!important}[hidden]{display:none!important}
.brand{display:flex;align-items:center;gap:11px;font-size:20px;line-height:1.2;font-weight:700;letter-spacing:.5px}.brand-mark{width:39px;height:43px;display:flex;align-items:center;justify-content:center;background:var(--lime);border-radius:9px 9px 9px 0;color:var(--green-dark);font-family:Arial,sans-serif;font-weight:800;font-size:27px}.brand-sub{display:block;font-size:10px;font-weight:450;letter-spacing:1.2px;margin-top:5px;opacity:.65}.login-page{min-height:100vh;display:grid;grid-template-columns:49% 51%}.login-story{background:#193e33;color:#fff;padding:48px 54px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.story-content{padding:65px 0;max-width:460px}.story-content h1{font-size:43px;line-height:1.55;letter-spacing:1px;margin:22px 0;color:#f3f6ec}.story-content>p{color:#aec4b4;font-size:14px;line-height:2.1;max-width:365px}.story-diagram{display:flex;align-items:center;gap:12px;margin-top:48px}.story-diagram>div{border:1px solid #436452;border-radius:10px;width:100px;height:94px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#cce3c2;font-size:11px}.story-diagram .icon{width:28px;height:28px}.diagram-line{height:1px;width:25px;background:#5f7d64}.story-footer{display:flex;gap:9px;align-items:center;font-size:11px;color:#9eb8a4}.login-side{background:#fafbf7;display:flex;align-items:center;justify-content:center;padding:50px}.login-box{width:100%;max-width:365px}.login-box h2{font-size:28px;margin:8px 0}.login-box>p{margin-bottom:26px}.login-box form{margin-top:28px}.login-box label,.stack-form label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:550;margin-bottom:19px}.login-box input,.stack-form input{width:100%;height:45px;border:1px solid #dfe5d8;border-radius:6px;padding:10px 13px;background:#fff;color:var(--ink);font-size:13px}.login-box input:focus,.stack-form input:focus{outline:2px solid #bad4a9;border-color:#91b47a}.login-box input::placeholder,.stack-form input::placeholder{color:#a5aea1}.form-error{min-height:24px;color:#ac4a3b;font-size:12px;margin:0 0 10px}.login-help{border-top:1px solid var(--line);margin:28px 0 16px;padding-top:22px;color:#788674;font-size:11px}.login-help strong{display:flex;align-items:center;gap:6px;color:#53694f;margin-bottom:8px;font-size:12px}.login-help .icon{width:15px;height:15px}.login-help p{line-height:1.9}.login-help code{font-size:11px}
.app-layout{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.sidebar{position:fixed;top:0;bottom:0;left:0;width:220px;background:#193e33;color:#d0dfd0;padding:29px 18px 17px;display:flex;flex-direction:column}.sidebar .brand{margin:0 7px 44px;color:#eff5e6}.workspace-label{font-size:9px;letter-spacing:2px;color:#83a08b;padding-left:14px;margin-bottom:12px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:7px;background:none;padding:12px 13px;color:#b5cdbb;text-align:left;font-size:12px}.nav-item.active{background:#cceaa9;color:#244331;font-weight:600}.nav-item:not(.active):hover{background:#28503e}.nav-item .icon{width:18px;height:18px}.nav-tag{margin-left:auto;font-size:9px;border:1px solid #4d6a55;padding:0 4px;border-radius:3px;color:#9bb39d}.sidebar-bottom{margin-top:auto;padding-top:40px}.local-status{font-size:10px;color:#b2c7ad;display:flex;align-items:center;gap:7px;padding:0 12px}.sidebar-bottom>p{font-size:10px;line-height:1.9;color:#809f88;margin:9px 12px 24px}.user-card{width:100%;border:0;border-top:1px solid #345842;background:none;color:#d4e1cf;display:flex;gap:10px;text-align:left;padding:17px 4px 0;align-items:center}.user-card>span:nth-child(2){flex:1}.user-card strong{display:block;font-size:12px}.user-card small{font-size:10px;color:#90ad95}.user-card>.icon{width:16px;height:16px;color:#8ba991}.avatar{height:33px;width:33px;border-radius:50%;background:#eef0e8;color:#6d7e66;display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.user-card .avatar{background:#41614a;color:#dceacb}.main-layout{grid-column:2;min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px}.breadcrumb{font-size:11px;color:#8b9587}.breadcrumb span{margin:0 13px;color:#bcc3b8}.breadcrumb strong{font-weight:500;color:#536b4c}.topbar-actions{display:flex;align-items:center;gap:12px}.content{padding:32px 36px 45px;max-width:1700px;margin:0 auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading p{color:var(--muted);font-size:12px;margin-top:7px}.page-heading .eyebrow{font-size:9px;letter-spacing:2px}.page-date{font-size:11px;color:#879180;white-space:nowrap}.welcome-banner{background:#e6ecdf;border:1px solid #dde5d5;border-radius:10px;display:flex;align-items:center;justify-content:space-between;padding:25px 29px;min-height:165px;margin-bottom:23px;overflow:hidden}.welcome-banner h2{font-size:24px;margin:12px 0 6px;letter-spacing:-.4px}.welcome-banner p{font-size:12px;color:#71816a}.banner-pill{background:#d6e3c9;color:#607b4d;font-size:9px;padding:3px 7px}.banner-graphic{display:flex;align-items:center;gap:20px;transform:rotate(-6deg);margin-right:25px;color:#748f62}.banner-graphic>.icon{height:76px;width:76px;stroke-width:.9}.graphic-dot{width:12px;height:12px;border-radius:50%;background:#b2cb92;box-shadow:0 0 0 8px #dce7d0}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px;margin-bottom:23px}.stat{background:#fff;border:1px solid var(--line);border-radius:9px;padding:19px 24px}.stat>span{display:block;color:#75836e;font-size:11px}.stat>strong{display:block;font-size:31px;font-weight:600;margin:6px 0}.stat>strong small{font-size:11px;color:#98a18e;font-weight:400;margin-left:9px}.stat>.stat-text{font-size:22px;line-height:1.85;color:#98a18e}.stat-note{font-size:10px;color:#92a087;display:flex;align-items:center;gap:6px}.stat-note .status-dot{width:5px;height:5px}.dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:23px}.card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:23px;min-width:0}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px}.card-heading h2{font-size:14px}.card-heading h2 .count{margin-left:5px}.section-number{font:12px Consolas,monospace;color:#a3af99}.stack-form .button{margin-top:1px}.code-input{letter-spacing:5px;font-size:19px!important}.feature-list{display:flex;flex-direction:column;gap:18px}.feature-list>div{display:flex;gap:13px;align-items:center}.feature-list .icon{width:32px;height:32px;background:#eff4e9;padding:6px;border-radius:7px;color:#718a5b}.feature-list strong{display:block;font-size:12px;font-weight:550}.feature-list small{display:block;color:#94a08b;font-size:10px;margin-top:3px}.inline-note{padding-top:14px;margin-top:17px;border-top:1px solid var(--line);font-size:10px;color:#89947f;line-height:1.9}.room-list-card{padding-bottom:10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:10px;font-weight:400;color:#94a18a;background:#f7f9f4;padding:10px 12px}td{padding:15px 12px;border-bottom:1px solid #eff2eb;font-size:11px}td>strong{display:block;font-weight:500}td>small{display:block;font-size:9px;color:#9aa58f;margin-top:2px}tbody tr:last-child td{border:0}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:75px 25px;gap:16px;color:#718368}.empty>.icon{width:46px;height:46px;stroke-width:1.2;color:#a4b895}.empty p{font-size:12px;color:#91a184;max-width:520px}.empty.compact{padding:38px 20px;gap:9px}.empty.compact>.icon{width:30px;height:30px}.empty.compact strong{font-size:12px}.empty.compact p{font-size:11px}
.classroom-heading{align-items:flex-end}.classroom-heading h1{font-size:25px;margin-top:8px}.back{padding-left:0;font-size:10px}.room-heading-actions{display:flex;align-items:center;gap:10px}.classroom-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px}.classroom-main,.classroom-aside{display:flex;flex-direction:column;gap:18px;min-width:0}.screen-card{background:#fff;border:1px solid var(--line);border-radius:9px;overflow:hidden}.screen-card-bar{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line);font-size:11px}.screen-card-bar>span:first-child{display:flex;align-items:center;gap:7px}.screen-card-bar .icon{width:16px;height:16px}.screen-tag{font-size:9px;padding:2px 6px;background:#f0f3eb;color:#88977e;border-radius:3px;margin-left:5px}.connection-label{font-size:9px;color:#789368}.connection-label.offline{color:#b08a43}.screen-stage{aspect-ratio:16/9;background:#172d28;position:relative;display:flex;align-items:center;justify-content:center;min-height:230px}#screen-video{height:100%;width:100%;object-fit:contain;position:absolute;inset:0;display:none}#screen-video.visible{display:block}.screen-placeholder{text-align:center;color:#bdcfc0;position:relative;padding:25px}.screen-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:62px;height:62px;background:#29433a;border:1px solid #3b5649;border-radius:14px;color:#9db794;margin-bottom:17px}.screen-empty-icon .icon{width:31px;height:31px;stroke-width:1.2}.screen-placeholder h2{font-size:17px;font-weight:500;color:#d5e2cf}.screen-placeholder p{font-size:10px;color:#829d88;margin:8px 0 17px}.screen-placeholder .button{background:#2c493a;color:#b7ceb0;border-color:#45634b;font-size:10px;min-height:29px;padding:4px 12px}.screen-toolbar{padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:9px;flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.recording-label{position:absolute;top:13px;left:13px;color:#fff;background:#a34a3b;padding:4px 8px;font-size:10px;border-radius:4px}.mode-notice{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#edf0e6;padding:11px 14px;border:1px solid #e1e6d7;border-radius:7px;font-size:10px;color:#80906f}.mode-notice>div{display:flex;align-items:center;gap:9px}.mode-notice .pill{font-size:9px}.mode-notice .text-button{white-space:nowrap;font-size:10px}.diagnosis-card .card-heading{margin-bottom:17px}.diagnosis-card .card-heading p{font-size:10px;margin-top:4px}.parameter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.parameter{border:1px solid #e9ede2;border-radius:6px;padding:12px;background:#fafbf7;min-width:0}.parameter>span{font-size:10px;color:#839276}.parameter>strong{display:block;font-size:25px;line-height:1.6;font-weight:550;color:#375537;white-space:nowrap}.parameter>strong small{font-size:10px;font-weight:400;color:#8c9c7e;margin-left:4px}.parameter>div{font-size:8px;color:#a0ac95}.action-buttons{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0}.action-buttons .button.small{font-size:10px;min-height:31px;padding:5px 8px}.dtc-row{display:flex;gap:11px;align-items:center;border:1px solid #eee7d8;border-radius:6px;background:#fdfaf2;padding:12px}.dtc-symbol{width:25px;height:25px;background:#f1e4c9;color:#a68142;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px}.dtc-row>div{flex:1}.dtc-row strong{font:11px Consolas,monospace}.dtc-row p{color:#8a8e77;font-size:10px}.dtc-row .pill{font-size:9px}.empty-inline{padding:14px;font-size:11px;color:#9aa38e;border:1px dashed #e4e9db;border-radius:5px}.board-info{font-size:9px;color:#96a38b;margin-top:12px}.join-card{text-align:center;background:#f2f6eb;border-color:#e1e8d7;padding:20px}.join-card .eyebrow{font-size:9px;margin-bottom:4px}.join-code{font:600 34px/1.4 Consolas,monospace;letter-spacing:6px;color:#37572d;margin:4px 0 6px}.join-card p{font-size:10px}.classroom-aside .card{padding:19px}.control-summary{display:flex;align-items:center;gap:10px;border:1px solid #e3e9d9;background:#f6f8f1;padding:10px;border-radius:5px;margin-bottom:14px}.control-summary>.icon{height:17px;width:17px;color:#82956d}.control-summary strong{display:block;font-size:10px;font-weight:550}.control-summary small{display:block;font-size:9px;color:#94a181;margin-top:2px}.participant-list{display:flex;flex-direction:column;gap:15px;margin-bottom:19px}.participant{display:flex;align-items:center;gap:8px}.participant>.avatar{width:30px;height:30px;font-size:10px}.participant>div{flex:1;min-width:0}.participant strong{display:block;font-size:11px;font-weight:500}.participant strong small{font-size:8px;background:#f0f3e8;color:#9aa78c;margin-left:4px;padding:0 3px}.participant>div>span{display:block;font-size:9px;color:#9aa58e;margin-top:2px}.teacher-avatar{background:#dcebd1;color:#547742}.end-class{font-size:10px;margin-top:13px}.boundary-card{background:#eef1e8}.boundary-card .eyebrow{font-size:9px}.boundary-card h3{font-size:13px;margin:8px 0}.boundary-card p{font-size:10px;color:#87967a;line-height:1.9;margin-top:9px}.event-list{max-height:330px;overflow:auto}.event{display:flex;align-items:flex-start;gap:11px;padding:8px 0}.event-dot{height:6px;width:6px;border-radius:50%;background:#a8be92;margin-top:6px;flex-shrink:0}.event p{font-size:10px;color:#65795a}.event small{font-size:9px;color:#a1ac95}.classroom-main .card-heading .text-button{font-size:10px;margin-left:7px}.classroom-main .card-heading{gap:7px}
.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.case-card{padding:16px}.case-cover{height:130px;background:#eaf0e0;border-radius:5px;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:20px;color:#829b6d}.case-cover .icon{height:48px;width:48px;stroke-width:1.2}.case-cover span{font-size:10px;letter-spacing:2px}.case-card h2{margin:10px 0 6px;font-size:15px}.case-card>.pill{font-size:9px}.case-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:22px}.case-bottom .small{font-size:9px}.replay-controls{display:flex;align-items:center;gap:20px;margin:10px 0 25px}.replay-controls input{flex:1;accent-color:var(--green);min-width:80px}.replay-controls>span{font-size:11px;color:#859579}.status-list{margin:0}.status-list>div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #edf0e6;padding:13px 0;font-size:12px}.status-list dt{color:#8b9982}.status-list dd{margin:0;color:#576e4c;text-align:right}.toast{padding:12px 19px;border:1px solid #cbdcc0;background:#f3f9ec;color:#355b2a;border-radius:7px;box-shadow:0 6px 25px #1d30201a;font-size:12px;max-width:430px}.toast.error{background:#fff5ed;border-color:#e9c7b7;color:#9a5942}#toasts{position:fixed;right:25px;bottom:24px;display:flex;flex-direction:column;gap:9px;z-index:100}
@media(min-width:1500px){.content{padding:38px 45px}.classroom-grid{grid-template-columns:minmax(0,1fr) 315px}.screen-stage{max-height:510px}.welcome-banner{min-height:175px}}
@media(max-width:1150px){.app-layout{grid-template-columns:190px 1fr}.sidebar{width:190px;padding:25px 12px}.content{padding:27px 24px}.topbar{padding:0 24px}.classroom-grid{grid-template-columns:minmax(0,1fr) 250px;gap:15px}.classroom-aside .card{padding:15px}.card{padding:19px}.parameter-grid{gap:6px}.parameter{padding:9px}.parameter>strong{font-size:21px}.classroom-heading h1{font-size:22px}.classroom-heading .button{font-size:10px;padding:7px 10px}.screen-card-bar{gap:10px;flex-wrap:wrap}.case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:920px){.classroom-grid{grid-template-columns:1fr}.classroom-aside{display:grid;grid-template-columns:1fr 1fr}.boundary-card{grid-column:1/-1}.welcome-banner{padding:22px}.welcome-banner h2{font-size:21px}.banner-graphic{margin-right:0;gap:15px}.banner-graphic>.icon{width:45px;height:45px}.dashboard-columns{gap:15px}.stat{padding:16px}.stat-grid{gap:12px}.page-date{display:none}.story-content h1{font-size:33px}.login-story{padding:35px}.login-side{padding:35px}.story-diagram{gap:6px}.story-diagram>div{width:75px;height:83px}.diagram-line{width:12px}}
@media(max-width:700px){.app-layout{display:block}.sidebar{position:static;width:100%;padding:14px 16px}.sidebar .brand{margin:0 0 14px;font-size:17px}.sidebar .brand-mark{height:32px;width:30px;font-size:23px}.sidebar .brand-sub{display:inline;margin-left:9px;font-size:10px}.workspace-label,.sidebar-bottom{display:none}.sidebar nav{flex-direction:row;gap:4px;overflow:auto}.nav-item{width:auto;padding:8px 10px;gap:5px;font-size:10px;flex-shrink:0}.nav-item .icon{width:15px;height:15px}.nav-tag{display:none}.topbar{height:50px;padding:0 17px}.topbar-actions{gap:6px}.topbar-actions .pill{font-size:9px}.breadcrumb{font-size:10px}.content{padding:23px 16px}.page-heading{margin-bottom:20px;gap:10px}h1{font-size:24px}.page-heading p{font-size:11px}.page-heading .eyebrow{font-size:8px}.welcome-banner{padding:19px;min-height:160px}.welcome-banner h2{font-size:19px}.welcome-banner p{font-size:10px;max-width:240px}.banner-graphic{display:none}.stat-grid{gap:8px}.stat{padding:11px}.stat>span{font-size:9px}.stat>strong{font-size:25px}.stat>.stat-text{font-size:17px;line-height:2}.stat-note{font-size:8px}.stat-note .status-dot{display:none}.dashboard-columns{grid-template-columns:1fr}.card{padding:18px}.classroom-heading{align-items:flex-start;flex-direction:column}.classroom-heading h1{font-size:23px}.room-heading-actions{width:100%;justify-content:space-between}.classroom-aside{grid-template-columns:1fr}.boundary-card{grid-column:auto}.parameter-grid{grid-template-columns:repeat(2,1fr);gap:9px}.parameter{padding:13px}.parameter>strong{font-size:25px}.mode-notice{flex-direction:column;align-items:flex-start}.mode-notice>div{align-items:flex-start}.screen-stage{min-height:200px}.screen-placeholder{padding:17px}.screen-empty-icon{height:42px;width:42px;margin-bottom:10px}.screen-empty-icon .icon{height:23px;width:23px}.screen-placeholder h2{font-size:14px}.screen-placeholder p{font-size:9px}.screen-tag{margin:0;font-size:8px}.screen-card-bar{padding:11px;font-size:10px}.connection-label{font-size:8px}.screen-toolbar{padding:10px}.screen-toolbar .button{font-size:10px;padding:5px 7px}.diagnosis-card .card-heading{align-items:flex-start;flex-direction:column}.dtc-row{gap:8px}.dtc-row p{font-size:9px}.case-grid{grid-template-columns:1fr}.replay-controls{gap:10px}.replay-controls .button{font-size:10px;padding:8px}.replay-controls>span{font-size:9px;white-space:nowrap}.login-page{display:block}.login-story{min-height:auto;padding:25px}.story-content{padding:25px 0}.story-content h1{font-size:28px;margin:10px 0}.story-content>p{font-size:12px}.story-diagram,.story-footer{display:none}.login-side{padding:35px 25px}.login-box h2{font-size:25px}#toasts{left:15px;right:15px;bottom:15px}.toast{max-width:none}.status-list>div{font-size:11px}}
/* Keep supporting text readable on classroom laptops and tablets. */
.event p,.board-info,.inline-note,.dtc-row p,.feature-list small,.screen-placeholder p,.boundary-card p,.join-card p,.login-help,.stat-note{font-size:12px}
.parameter>div,.event small,.participant>div>span,.control-summary small,.sidebar-bottom>p,.local-status,.screen-tag,.connection-label{font-size:11px}
.participant strong,.control-summary strong,.classroom-main .card-heading .text-button{font-size:12px}

@media(max-width:700px){.topbar-actions>.pill:not(.account-badge){display:none}.topbar-actions .account-badge{max-width:150px;overflow:hidden;text-overflow:ellipsis}}

#screen-compatible{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}#screen-compatible.visible{display:block}
[hidden]{display:none!important}
.activity-switch{margin-bottom:22px}.activity-heading{display:flex;gap:14px;align-items:center;margin-bottom:11px}.activity-heading strong{font-size:13px}.activity-heading>span{font-size:12px;color:var(--muted)}.activity-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.activity-option{display:flex;text-align:left;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#60745b;padding:15px 17px;min-width:0}.activity-option.selected{background:#edf5e5;border-color:#acc994;color:#274b32;box-shadow:inset 0 0 0 1px #acc994}.activity-option strong,.activity-option small{display:block}.activity-option strong{font-size:13px}.activity-option small{font-size:12px;color:#83917b;margin-top:3px}.activity-option .icon{width:21px;height:21px}.activity-option:disabled{opacity:1}.activity-option:disabled:not(.selected){opacity:.6}.classroom-grid[data-activity=simulation] .diagnosis-card{margin-top:0}
.media-status{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:12px 14px;background:#f7faf4}.media-status>div:first-child{min-width:0}.media-status strong{font-size:12px;color:#42613c;font-weight:550}.media-status p{font-size:12px;color:#7b8d71;margin:4px 0 0;line-height:1.7}.media-status[data-tone=warning]{background:#fcf8ee}.media-status[data-tone=warning] strong{color:#9b7134}.media-status .toolbar-group{flex-shrink:0}.screen-placeholder{z-index:1;background:#172d28e8;border-radius:8px}
@media(max-width:700px){.media-status{align-items:flex-start;flex-direction:column}.media-status .toolbar-group{width:100%}}
@media(max-width:700px){.activity-options{grid-template-columns:1fr;gap:8px}.activity-option{padding:11px 13px}.activity-heading{align-items:flex-start;flex-direction:column;gap:3px}}
.media-diagnostics{width:min(680px,calc(100% - 32px));border:1px solid var(--line);border-radius:10px;padding:24px;color:var(--ink);background:#fff}.media-diagnostics::backdrop{background:#122d2477}.media-diagnostics>p{font-size:12px;color:var(--muted);margin:8px 0 15px}.media-diagnostics textarea{display:block;width:100%;height:360px;max-height:50vh;resize:vertical;font:12px/1.7 Consolas,"Microsoft YaHei",monospace;border:1px solid var(--line);border-radius:6px;padding:12px;margin-bottom:16px;background:#f7faf6;color:var(--ink)}.media-status .toolbar-group{flex-wrap:wrap;justify-content:flex-end;max-width:100%}
.desktop-card .card-heading{align-items:flex-start}.desktop-card .card-heading p{margin-top:7px}.desktop-card h2{font-size:16px}.desktop-scope{font-size:12px;line-height:1.8;color:#88652e;background:#fff7e6;border:1px solid #ebdbb7;padding:12px 14px;border-radius:6px;margin:8px 0 14px}.desktop-buttons{display:flex;flex-wrap:wrap;gap:8px}.desktop-message{font-size:12px;line-height:1.8;margin-top:10px;color:#65795a}.desktop-requests>div{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;font-size:12px}.desktop-viewport{width:100%;height:480px;max-height:70vh;min-height:240px;background:#192c29;border:1px solid #ccdac3;border-radius:6px;overflow:hidden;margin-top:14px}.desktop-paused{display:none!important}.desktop-buttons .danger{background:#a84f3e;color:#fff;border-color:#a84f3e}@media(max-width:700px){.desktop-viewport{height:320px}.desktop-card .card-heading{flex-direction:column}.desktop-requests>div{align-items:flex-start;flex-direction:column}}

.resource-summary{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:-4px 0 20px;font-size:13px}.resource-summary>span{font-size:12px;color:var(--muted)}
.resource-upload{margin-bottom:24px}.resource-upload-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.resource-upload-form label{min-width:0}.resource-description-field,.resource-upload-bottom,.resource-upload-status{grid-column:1/-1}
.stack-form select,.stack-form textarea,.resource-filter select,.resource-filter input{font:13px/1.6 var(--font);width:100%;min-width:0;border:1px solid #dfe5d8;border-radius:6px;background:#fff;padding:10px 12px;color:var(--ink)}.stack-form textarea{resize:vertical}.resource-upload-form input[type=file]{height:auto;min-height:45px;padding:8px;max-width:100%}.resource-upload-bottom{display:flex;align-items:center;gap:16px}.resource-upload-bottom>p{max-width:540px}.resource-upload-status{font-size:12px;color:var(--green);min-height:20px;margin-top:9px}
.resource-filter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr) minmax(0,1fr) auto;gap:14px;align-items:end;margin-bottom:20px}.resource-filter label{display:flex;flex-direction:column;gap:6px;font-size:12px}.resource-filter .button{height:43px}
.resource-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.resource-empty{grid-column:1/-1}.resource-item{display:flex;flex-direction:column;gap:13px}.resource-item-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.resource-type{font:600 12px/1.4 Consolas,monospace;letter-spacing:1px;color:#507450;padding:8px 11px;background:#eff5e9;border:1px solid #dfe8d7;border-radius:6px}.resource-item h2{font-size:17px;overflow-wrap:anywhere}.resource-description{white-space:pre-line;overflow-wrap:anywhere;font-size:13px;color:#6b7e6a;line-height:1.9}.resource-meta{font-size:12px;line-height:1.9;color:var(--muted);overflow-wrap:anywhere}.resource-item-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto;padding-top:8px}.resource-updated{font-size:11px;color:#8b9885;border-top:1px solid var(--line);padding-top:12px}.resource-pagination{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:24px;font-size:12px;color:var(--muted)}
.resource-dialog{width:min(900px,calc(100% - 32px));max-height:90vh;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:10px;padding:25px;background:#fff;color:var(--ink)}.resource-dialog::backdrop{background:#15342988}.resource-dialog .card-heading{margin-bottom:12px}.resource-dialog .card-heading h2{font-size:18px;overflow-wrap:anywhere}.resource-dialog>.muted{overflow-wrap:anywhere;margin-bottom:12px}.resource-dialog>.resource-description{margin-bottom:15px}.resource-preview-image,.resource-preview-video{display:block;max-width:100%;max-height:58vh;margin:16px auto;background:#f4f6f0;border-radius:5px}.resource-preview-video{width:100%}.resource-preview-pdf{display:block;width:100%;height:58vh;border:1px solid var(--line);border-radius:5px;margin-top:15px}.resource-preview-text{max-height:55vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.9 Consolas,"Microsoft YaHei",monospace;background:#f5f8f1;border:1px solid var(--line);border-radius:6px;padding:18px;margin:16px 0}.resource-preview-actions{display:flex;justify-content:flex-end;margin-top:20px}.resource-format-note{padding:30px 15px;margin-top:16px;background:#f4f7ef;color:var(--muted);font-size:13px;border-radius:6px;line-height:1.9}.resource-access{margin-top:18px;max-height:50vh;overflow:auto}
@media(max-width:1000px){.resource-filter{grid-template-columns:1fr 1fr}.resource-list{grid-template-columns:1fr}}
@media(max-width:700px){.resource-upload-form,.resource-filter{grid-template-columns:1fr}.resource-upload-bottom{align-items:flex-start;flex-direction:column;gap:12px}.resource-summary{flex-direction:column;gap:6px}.resource-dialog{padding:17px}.resource-dialog .card-heading{align-items:flex-start}.resource-item-actions .button{min-height:38px}.resource-upload .card-heading{align-items:flex-start;flex-direction:column}}
.resource-pdf-toolbar{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;margin:15px 0;font-size:12px;color:var(--muted)}.resource-pdf-scroll{height:58vh;overflow:auto;background:#e7ebe3;border:1px solid var(--line);border-radius:5px;padding:8px}.resource-pdf-canvas{display:block;max-width:100%;height:auto;margin:0 auto;background:#fff;box-shadow:0 1px 5px #172f2922}
.report-create{margin-bottom:24px}.report-create>summary{cursor:pointer;font-weight:600;font-size:15px;margin-bottom:18px}.report-task-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.report-wide{grid-column:1/-1}.report-task-form>p{align-self:center;margin-bottom:18px}.report-list-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.report-list-heading label{display:flex;align-items:center;gap:10px;font-size:12px}.report-list-heading select{max-width:280px;border:1px solid var(--line);padding:8px;border-radius:6px;color:var(--ink);background:#fff}.report-task{display:flex;flex-direction:column;gap:14px}.report-task h2{font-size:18px;overflow-wrap:anywhere}.report-instructions-summary{white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;color:var(--muted);line-height:1.9}.report-counts{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;background:#f1f5ec;border-radius:6px;padding:11px}.report-student-status{display:flex;gap:15px;align-items:center}.report-student-status strong{color:var(--green);font-size:18px}.report-overview{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:12px 0 18px}.report-overview strong{font-size:21px;color:var(--green)}.report-requirements{background:#f4f7ef;border:1px solid var(--line);border-radius:6px;padding:12px 15px;margin-bottom:16px;font-size:13px}.report-requirements>summary{cursor:pointer}.report-requirements .report-answer{margin-top:12px}.report-feedback{background:#fff8e9;border:1px solid #eadcbe;color:#8a682e;padding:12px 15px;border-radius:6px;font-size:13px;margin:12px 0;white-space:pre-wrap;overflow-wrap:anywhere}.report-dialog-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:15px 0 22px}.report-answer{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;color:#536b59;line-height:2}.report-readonly>section{margin-bottom:23px}.report-readonly h3{font-size:14px;margin-bottom:8px}.report-save-status{font-size:12px;color:var(--muted);margin:8px 0 15px;min-height:22px}.report-attachments{margin-top:23px;padding-top:20px;border-top:1px solid var(--line)}.report-attachments h3{font-size:14px;margin-bottom:13px}.report-file{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.report-file>span{overflow-wrap:anywhere;min-width:0}.report-file small{color:var(--muted);white-space:nowrap}.report-file>div{display:flex;flex-shrink:0;gap:5px}.report-file-upload{display:flex;gap:12px;align-items:center;margin:17px 0 12px}.report-file-upload input{min-width:0;max-width:100%;font-size:12px}.report-grade{background:#f3f7ed;border:1px solid #dce6d3;border-radius:7px;padding:20px;margin:25px 0}.report-grade h3{font-size:15px;margin-bottom:18px}.report-grade input{max-width:180px}.report-grade .muted{margin-top:12px}.report-history{margin-top:26px;border-top:1px solid var(--line);padding-top:20px}.report-history>h3{font-size:14px;margin-bottom:12px}.report-history>details{border:1px solid var(--line);padding:12px;border-radius:5px;margin-top:10px;font-size:12px}.report-history summary{cursor:pointer;color:var(--muted)}.report-history h4{margin:14px 0 6px;font-weight:600}.report-history-review{background:#f0f4e9;border-radius:5px;padding:10px;margin-top:13px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}.report-roster{margin:18px 0;max-height:50vh;overflow:auto}.report-recover{margin-bottom:16px}
.exam-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:24px;overflow:auto}.exam-tabs button{border:0;border-bottom:3px solid transparent;background:none;color:var(--muted);padding:12px 20px;white-space:nowrap}.exam-tabs [aria-selected=true]{color:var(--green);border-bottom-color:var(--green);font-weight:600}.exam-bank-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.exam-bank-tools p{max-width:520px;font-size:13px;line-height:1.9}.exam-import{position:relative;overflow:hidden;cursor:pointer}.exam-import input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.exam-bank-filter{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:14px;align-items:end;margin-bottom:20px}.exam-bank-filter label,.exam-form-pair label{display:flex;flex-direction:column;gap:7px;font-size:12px}.exam-bank-filter input,.exam-bank-filter select{min-width:0;width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--ink)}.exam-selection{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px;font-size:13px}.exam-bank-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.exam-bank-question h2{font-size:16px;white-space:pre-wrap;overflow-wrap:anywhere;margin:14px 0 10px}.exam-select-label{display:flex;align-items:center;gap:8px;font-size:12px}.exam-select-label input{accent-color:var(--green)}.exam-bank-question details{font-size:12px;margin-top:15px}.exam-bank-question summary{color:var(--muted);cursor:pointer}.exam-option-list{padding-left:24px;margin:12px 0;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.exam-option-list li{padding:5px 0}.exam-answer-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.9}.exam-reference{margin-top:14px;padding:13px 16px;background:#f2f6ec;border:1px solid var(--line);border-radius:6px;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}.exam-reference strong{font-size:13px}.exam-paper,.exam-card{display:flex;flex-direction:column;gap:15px}.exam-paper h2,.exam-card h2{overflow-wrap:anywhere}.exam-form-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.exam-build-row{border-bottom:1px solid var(--line);padding:18px 0;display:grid;grid-template-columns:minmax(0,1fr) 90px auto;align-items:center;gap:16px}.exam-build-row p{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.exam-build-row label{font-size:12px}.exam-build-row input{width:100%;min-width:0}.exam-paper-items{margin:15px 0}.exam-attempt-status{position:sticky;top:-25px;background:#fff;z-index:1;border-bottom:1px solid var(--line);padding:15px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px}.exam-attempt-status strong{font-size:21px;color:var(--green);font-variant-numeric:tabular-nums}.exam-attempt-status .exam-clock-warning{color:#a55c32}.exam-timing-note{background:#fff8e9;color:#8a682e;border-radius:5px;padding:10px 13px;font-size:12px;line-height:1.9;margin:12px 0}.exam-question{min-width:0;margin:22px 0 0;padding:20px;border:1px solid var(--line);border-radius:7px}.exam-question legend,.exam-question h3{max-width:100%;font-size:15px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;padding:0 7px;font-weight:600}.exam-question>p{margin-bottom:13px}.exam-options{display:flex;flex-direction:column;gap:10px;margin-top:15px}.exam-options label{display:flex;flex-direction:row;gap:10px;align-items:flex-start;padding:11px 13px;background:#f7f9f4;border:1px solid var(--line);border-radius:5px;font-size:13px;cursor:pointer}.exam-options input{width:17px;height:17px;min-height:0;margin:3px 0 0;padding:0;flex-shrink:0;accent-color:var(--green)}.exam-options span{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.exam-options input:checked+span{font-weight:600;color:var(--green)}.exam-question textarea{width:100%;font:13px/1.9 var(--font);resize:vertical}.exam-roster{margin:20px 0;max-height:50vh;overflow:auto}.exam-final-score{font-size:23px;color:var(--green)}.exam-mine-status{font-size:13px;line-height:1.9;color:var(--muted)}
@media(max-width:1000px){.exam-bank-filter{grid-template-columns:1fr 1fr}.exam-bank-tools{align-items:flex-start;flex-direction:column}.exam-build-row{grid-template-columns:minmax(0,1fr) 75px}.exam-build-row>.toolbar-group{grid-column:1/-1}}
@media(max-width:700px){.exam-bank-list{grid-template-columns:1fr}.exam-selection{flex-direction:column;align-items:flex-start}.exam-selection .toolbar-group{flex-wrap:wrap}.exam-bank-filter{grid-template-columns:1fr}.exam-tabs button{padding:10px 14px}.exam-bank-tools .toolbar-group{flex-wrap:wrap}.exam-form-pair{grid-template-columns:1fr}.exam-question{padding:12px;margin-top:18px}.exam-question legend{font-size:14px}.exam-attempt-status{top:-25px}.exam-attempt-status strong{font-size:18px}.exam-options label{padding:10px}.exam-dialog .card-heading h2{font-size:17px}}
@media(max-width:700px){.report-task-form{grid-template-columns:1fr}.report-list-heading{align-items:flex-start;flex-direction:column}.report-list-heading label{width:100%;flex-direction:column;align-items:flex-start}.report-list-heading select{width:100%;max-width:100%}.report-file{align-items:flex-start;flex-direction:column;gap:3px}.report-file-upload{align-items:flex-start;flex-direction:column}.report-grade{padding:14px}.report-task .resource-item-actions .button{min-height:38px}}
/* Keep the close action reachable while scrolling a long mobile report or preview.
   Exams retain their separate sticky countdown bar. */
@media(max-width:900px){.resource-dialog:not(.exam-dialog)>.card-heading{position:sticky;top:0;z-index:25;background:#fff;padding:10px 0;border-bottom:1px solid var(--line)}}
/* Administrative records and browser terminal registration. */
.management-tools{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:22px}.management-tools .toolbar-group{flex-wrap:wrap}.management-tools p{max-width:450px}.management-filter{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:13px;align-items:end;margin-bottom:22px}.management-filter label{display:flex;flex-direction:column;gap:7px;font-size:12px}.management-filter input,.management-filter select{min-width:0;width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}.management-row-actions{display:flex;flex-wrap:wrap;gap:4px;max-width:270px}.management-accounts table{min-width:650px}.management-accounts td{vertical-align:top}.management-dialog .stack-form>div[data-account-student] label{margin-bottom:18px}.management-dialog .management-check{display:flex;flex-direction:row;align-items:center;gap:9px}.management-check input{width:17px;height:17px;min-height:0;accent-color:var(--green)}.management-notice{background:#fff8e9;border:1px solid #eadcbe;color:#8a682e;line-height:1.9;font-size:13px;padding:13px 16px;border-radius:6px;margin:15px 0;overflow-wrap:anywhere}.management-credentials{margin:20px 0;max-height:50vh;overflow:auto}.management-credentials code{white-space:nowrap;font-size:14px;user-select:all}.management-code{font:700 32px/1.6 Consolas,monospace;letter-spacing:4px;text-align:center;padding:22px;background:#f0f5e9;color:var(--green);border-radius:8px;margin:22px 0;user-select:all;overflow-wrap:anywhere}.management-pair-instruction{font-size:13px;line-height:2;margin-top:18px;color:var(--muted)}.management-terminal{display:flex;flex-direction:column;gap:15px}.management-terminal h2{overflow-wrap:anywhere}.management-audit-row{display:flex;gap:20px;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);font-size:13px}.management-audit-row p{color:var(--muted);overflow-wrap:anywhere;line-height:1.9;margin-top:5px}.management-audit-row small,.management-audit-row time{font-size:11px;color:var(--muted)}.management-audit-row time{white-space:nowrap}.management-mine{margin-bottom:22px}.management-mine>p{margin:12px 0 18px;line-height:1.9}.management-pair-form{max-width:430px;margin-top:22px}.management-pair-form input{font:22px/1.5 Consolas,monospace;letter-spacing:2px;text-transform:uppercase}.management-current-terminal{padding:18px;background:#f1f6eb;border:1px solid var(--line);border-radius:6px;margin:18px 0}.management-current-terminal strong{font-size:17px}.management-current-terminal p{font-size:13px;color:var(--muted);margin-top:6px}.management-my-list>div{display:flex;align-items:center;gap:15px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:16px 0;font-size:13px}.management-my-list>div>span:not(.pill){color:var(--muted);flex:1;min-width:180px;overflow-wrap:anywhere}
@media(max-width:1100px){.management-filter{grid-template-columns:1fr 1fr}.management-tools{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.management-filter{grid-template-columns:1fr}.management-audit-row{flex-direction:column;gap:8px}.management-code{font-size:25px;letter-spacing:2px}.management-tools .button{font-size:12px}.management-dialog .card-heading h2{font-size:17px}.management-mine .toolbar-group{flex-wrap:wrap}.management-my-list>div{align-items:flex-start;flex-direction:column;gap:6px}}
