:root{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#25374b;background:#f3f6fa;font-size:16px;line-height:1.55;font-variant-numeric:tabular-nums;--navy:#17283b;--blue:#205fc7;--muted:#54657a;--line:#dbe3ed;--green:#0f7668;--red:#bd3838;--amber:#996012}
*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{margin:0}small{font-size:14px}h1{font-size:23px;font-weight:650;line-height:1.5}h2{font-size:18px;line-height:1.5}h3{font-size:16px;font-weight:600}a{color:var(--blue)}button,input,select,textarea{font:inherit}input,select,textarea{font-size:16px}button{cursor:pointer;border-radius:4px;padding:9px 12px;border:1px solid var(--line);line-height:1.4;font-size:16px;background:white;color:var(--navy)}button:hover{filter:brightness(.97)}button:disabled{opacity:.42;cursor:not-allowed}button.primary{background:var(--blue);border-color:var(--blue);color:white;font-weight:600}.secondary{background:white;color:var(--navy)}.danger{background:#fff1f1;border-color:#eabcbc;color:var(--red)}.text-danger{border:0;background:none;color:var(--red)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #87b1f5;outline-offset:2px}[hidden]{display:none!important}.full{width:100%}.small{font-size:14px;color:var(--muted);line-height:1.8}.positive{color:var(--green)!important}.negative{color:var(--red)!important}
.masthead{min-height:66px;padding:12px 24px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;gap:15px}.brand{display:flex;align-items:center;gap:11px;color:white;text-decoration:none}.brand-icon{font-size:20px;width:34px;height:34px;border:1px solid #7991ad;border-radius:4px;display:grid;place-items:center;color:#d5e7ff}.brand strong{font-size:20px;line-height:1.35;display:block}.brand small{font-size:14px;line-height:1.4;color:#c4d1df;display:block;margin-top:3px}.header-right{display:flex;align-items:center;gap:8px}.ghost{background:transparent;color:#e4edf8;border-color:#51647c}.status{display:inline-flex;font-size:14px;padding:4px 7px;border-radius:3px;background:#eaf1fc;color:var(--blue);align-items:center;gap:5px;white-space:nowrap}.masthead .status{background:#2a425b;color:#d7e7fa}.status.warn{background:#fff0d8;color:var(--amber)}.status.risk{background:#ffe6e6;color:var(--red)}main{max-width:1680px;margin:auto;padding:18px 24px 30px}#lobby{max-width:1160px;margin:0 auto}.classroom-teacher main,.classroom-student main{max-width:none;min-height:calc(100dvh - 74px)}.intro{max-width:850px;margin:22px auto 30px;text-align:center}.intro-meta{color:var(--muted);font-size:14px;display:block;margin-bottom:4px}.intro h1{font-size:29px}.intro>p:last-child{margin-top:11px;line-height:1.9;color:var(--muted);max-width:760px;margin-inline:auto}.intro-contract{display:flex;justify-content:center;align-items:baseline;gap:10px;margin-top:16px;color:var(--navy)}.intro-contract strong{font-size:22px;color:var(--blue)}.entry-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;max-width:760px;margin:0 auto;align-items:start}body[data-entry-role=student] .entry-grid{max-width:620px}.entry-panel{background:white;border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:6px;padding:23px}.student-entry{border-top-color:var(--green)}.role-icon{font-size:14px;color:var(--blue);margin-bottom:7px}.student-entry .role-icon{color:var(--green)}.entry-panel h2{font-size:21px}.entry-panel>p{color:var(--muted);font-size:16px;line-height:1.85;margin:10px 0 18px}.entry-panel>button{margin-bottom:12px}
form{display:grid;gap:11px}label:not(.inline-check):not(.inline-field){display:grid;gap:6px;color:var(--muted);font-size:14px}input:not([type=checkbox]),select,textarea{width:100%;min-width:0;border:1px solid #c5d2e2;border-radius:4px;padding:8px 10px;background:white;color:#25374b;line-height:1.5}textarea{resize:vertical}input[type=checkbox]{accent-color:var(--blue);width:15px;height:15px;margin:0}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:11px}.inline-check{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--muted);cursor:pointer}.inline-field{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--muted);flex-wrap:wrap}.inline-field select{width:auto;padding:6px 8px}details{font-size:14px;color:var(--muted)}details summary{cursor:pointer;line-height:1.7}details .field-pair{margin:10px 0}details>p{margin-top:10px}details>label{margin-top:10px}.entry-panel details{border-top:1px solid var(--line);padding-top:12px}.code-input{font-size:20px!important;letter-spacing:.15em;text-transform:uppercase}.error{color:var(--red);font-size:14px;line-height:1.7}.error:empty{display:none}.banner{padding:10px 13px;line-height:1.7;font-size:14px;background:#e7f0ff;border-left:3px solid var(--blue);border-radius:3px;margin-bottom:13px;color:#244b7b}.banner.warning{background:#fff4e3;border-color:var(--amber);color:#805416}.banner.danger{background:#fff0f0;border-color:var(--red);color:#9c2929}.banner.success{background:#e6f5ee;border-color:var(--green);color:#0d665b}.class-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.class-heading h1{font-size:22px}.contract-multiplier{display:flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap;padding:6px 18px;border-left:3px solid var(--blue);color:var(--navy);background:#eaf1fc;border-radius:3px}.contract-multiplier span{font-size:14px}.contract-multiplier strong{font-size:24px;color:var(--blue);white-space:nowrap}.contract-multiplier small{font-size:14px;white-space:nowrap}.room-code-small{display:flex;gap:11px;align-items:center;white-space:nowrap}.room-code-small>span{font-size:14px;color:var(--muted)}.room-code-small strong{font-size:21px;letter-spacing:.09em;color:var(--blue)}
.terminal-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:17px;align-items:start}.main-column,.teacher-sidebar,.student-sidebar{display:grid;gap:13px;min-width:0}.classroom-student .terminal-grid{grid-template-columns:minmax(0,var(--student-market-fr,1fr)) 12px minmax(0,var(--student-trade-fr,1fr));gap:10px}.classroom-student .student-sidebar{position:sticky;top:12px;max-height:calc(100dvh - 24px);overflow:auto;scrollbar-gutter:stable}.classroom-student.classroom-setup .student-sidebar{position:static;max-height:none;overflow:visible}.teacher-sidebar{position:sticky;top:12px;max-height:calc(100dvh - 24px);overflow:auto;scrollbar-gutter:stable}.panel,.control-panel,.timeline-panel,.sidebar-drawer{background:white;border:1px solid var(--line);border-radius:5px;min-width:0}.panel-heading{padding:13px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading h2{font-size:18px}.panel-note{padding:0 16px 12px;font-size:14px;line-height:1.8;color:var(--muted)}.control-panel{padding:15px}.control-panel h2{margin-bottom:11px}.control-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.control-buttons button{flex:1;min-width:76px}.control-buttons .inline-field{width:100%}.secondary-controls{padding-top:12px;margin-top:12px;border-top:1px solid var(--line)}.secondary-controls button{flex:initial;font-size:14px;min-width:0}.teacher-sidebar .sidebar-drawer>summary{padding:12px 15px;color:var(--navy);font-weight:600}.sidebar-drawer>.panel{border:0;border-top:1px solid var(--line);border-radius:0}.sidebar-drawer>.panel[hidden]{display:none!important}.invitation,#positionLimitsPanel,#adminPanel{padding:15px}.invitation h2,#positionLimitsPanel h2,#adminPanel h2{margin-bottom:10px}.invitation{text-align:center}.invitation button{margin-top:8px}.big-code{font-size:29px;letter-spacing:.15em;display:block;color:var(--navy)}.join-address{font-size:14px;word-break:break-all;color:var(--muted);margin:7px 0}#inviteQR{margin:12px auto 6px;max-width:155px}#inviteQR svg{display:block;width:100%;height:auto}#adminPanel form{margin:14px 0}.saved-rooms{display:grid;gap:8px;margin:12px 0;max-height:220px;overflow:auto}.saved-rooms button{text-align:left;white-space:normal;overflow-wrap:anywhere}#creatorTools details{margin-bottom:16px}.teacher-entry .banner{margin:14px 0}
.summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:white;border:1px solid var(--line);border-radius:5px}.summary-grid>div{padding:13px 15px;border-right:1px solid var(--line);min-width:0}.summary-grid>div:last-child{border:0}.summary-grid span{display:block;font-size:14px;color:var(--muted)}.summary-grid strong{display:block;font-size:26px;font-weight:600;margin-top:5px;white-space:nowrap}.teacher-chart-bar{display:flex;align-items:center;justify-content:space-between}.teacher-chart-bar h2{font-size:18px}.market-head{padding:15px 18px 9px;display:flex;justify-content:space-between;align-items:center;gap:18px}.market-head h2{font-size:22px;margin:6px 0 3px}.quote{display:grid;gap:3px;text-align:right;white-space:nowrap}.quote strong{font-size:38px;font-weight:600;color:var(--navy)}.quote>span,.quote small{font-size:14px;color:var(--muted)}.chart-switch{display:flex;align-items:center;gap:7px;padding:0 18px;flex-wrap:wrap}.tab{font-size:14px;background:#f3f6fa;border:0;padding:6px 9px}.tab.selected{color:var(--blue);background:#eaf1fc}.legend{display:flex;gap:12px;font-size:14px;color:var(--muted);margin-left:auto;flex-wrap:wrap}.legend span:before{content:"";display:inline-block;width:14px;border-top:2px solid var(--key);vertical-align:middle;margin-right:5px}.chart-tools{display:flex;align-items:center;gap:6px;padding:10px 18px 0;flex-wrap:wrap}.chart-tools button{font-size:14px;padding:4px 7px}.chart-tools span{font-size:14px;color:var(--muted);margin-left:auto}.chart{height:clamp(200px,31dvh,345px);padding:6px 8px 0;touch-action:pan-y;position:relative;cursor:crosshair;min-width:0}.chart svg{width:100%;height:100%;display:block;user-select:none}.chart-readout{font-size:14px;color:var(--navy);padding:0 18px;min-height:22px;line-height:1.7}.chart-footnote{padding:1px 18px 12px;font-size:14px;line-height:1.6;color:var(--muted)}
.timeline-panel .panel-heading{padding:10px 14px}.timeline-panel h2{font-size:14px}#decisionTimeline{list-style:none;display:flex;gap:0;padding:0 13px 11px;margin:0;flex-wrap:wrap}#decisionTimeline li{flex:1;min-width:78px;display:grid;gap:2px;padding:6px 8px;border-top:2px solid #dce4ee;color:var(--muted);font-size:14px}#decisionTimeline li.current{border-color:var(--blue);color:var(--blue);background:#edf3fc}#decisionTimeline li.past{border-color:#78a79f}#decisionTimeline li b{font-size:14px;font-weight:500}.workspace-tabs,.mobile-student-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);padding-bottom:6px;flex-wrap:wrap}.workspace-tabs button,.mobile-student-tabs button{border:0;background:transparent;color:var(--muted)}.workspace-tabs button[aria-selected=true],.mobile-student-tabs button[aria-pressed=true]{background:#e7effb;color:var(--blue)}.overview-metrics{display:flex;gap:22px;flex-wrap:wrap;padding:0 16px 15px}.overview-metrics span{display:block;color:var(--muted);font-size:14px}.overview-metrics strong{display:block;font-size:20px;margin-top:5px}.overview-charts{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:15px 16px;border-top:1px solid var(--line)}.overview-charts h3{font-size:16px;margin-bottom:12px}.distribution{min-height:145px;display:flex;align-items:end;gap:6px;padding-top:10px}.distribution .bin{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--muted);font-size:14px;min-width:0}.bin .bar{width:100%;max-width:38px;background:#ccd8e8;min-height:2px}.bin .bar.loss{background:#d98b8b}.bin .bar.gain{background:#65a99f}.ranking-heading{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.ranking-heading select{font-size:14px;width:auto;padding:4px 7px}.ranking-row{display:flex;align-items:center;gap:9px;justify-content:space-between;padding:8px 0;border-bottom:1px solid #edf1f6;font-size:14px}.ranking-row button{padding:0;border:0;color:var(--blue);font-size:14px}.risk-summary{display:flex;gap:15px;flex-wrap:wrap;padding:0 16px 12px;font-size:14px}.risk-summary b{color:var(--red)}.empty-state{padding:25px 16px;color:var(--muted);text-align:center;font-size:14px;line-height:1.9}.table-wrap{overflow-x:auto;min-width:0}.table-wrap table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:15px}th{background:#f4f7fb;color:var(--muted);font-size:14px;font-weight:500}th,td{padding:11px 10px;border-bottom:1px solid #e8edf4}td:first-child,th:first-child{padding-left:16px}tbody tr:last-child td{border-bottom:0}.risk-row{background:#fff3f3}.mini-button{font-size:14px;padding:4px 6px;margin:3px 3px 0 0}.row-name{padding:0;border:0;color:var(--blue);background:none;text-align:left;font-size:14px}.panel-heading .inline-field input{max-width:135px}.panel-heading .inline-field select{max-width:175px}#teacherLogDrawer>summary{padding:12px 15px;color:var(--navy)}#teacherLogPanel{border:0}#teacherLogPanel .panel-heading{display:none}.activity-log{list-style:none;padding:0 15px 15px;margin:0;max-height:240px;overflow:auto}.activity-log li{font-size:14px;line-height:1.9;padding:7px 0;border-bottom:1px solid var(--line)}.activity-log time{color:var(--blue);margin-right:12px}
.account-summary .panel-heading{padding:13px 15px 7px}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 10px;padding:5px 15px 15px}.account-grid>div{display:grid;gap:3px;align-content:start}.account-grid span,.account-grid small{color:var(--muted);font-size:14px;line-height:1.5}.account-grid strong{font-size:26px;font-weight:600;line-height:1.25;white-space:nowrap}.order-panel{padding:15px}.order-panel>h2{margin-bottom:8px}.order-contract{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:14px;color:var(--muted);margin-bottom:10px}.order-contract strong{font-size:16px;color:var(--blue);white-space:nowrap}.order-panel .panel-heading{padding:0 0 9px}.position-block{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;margin-bottom:10px}.position-block>span,.position-block>strong{display:none}.position-block strong{font-size:19px}.position-block small{font-size:14px;color:var(--muted);width:100%;line-height:1.5}.trade-risk{font-size:14px;line-height:1.7;padding:8px 10px;border-radius:3px;background:#eaf5f0;color:#146858;margin-bottom:10px}.trade-risk.call{background:#fff0f0;color:var(--red);font-weight:500}.trade-risk.locked{background:#fff4e3;color:#805416}.quantity-stepper{display:flex;gap:8px;margin:5px 0 10px}.quantity-stepper input{text-align:center;font-size:20px}.quantity-stepper button{width:37px;flex-shrink:0}.trade-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:7px}.trade-buttons button{min-height:48px;padding:11px 4px;font-size:16px;font-weight:600;border-color:var(--blue);color:var(--blue)}.trade-buttons #sellTrade{background:var(--blue);color:white}.trade-preview{font-size:14px;line-height:1.8;color:var(--navy);padding:9px 0;min-height:50px}.trade-preview div{display:flex;justify-content:space-between;gap:10px}.trade-preview .blocked{color:var(--red)}.trade-reason{margin-bottom:9px}.trade-reason textarea{margin-top:8px}#advancedOrder{border-top:1px solid var(--line);padding-top:10px;margin-top:9px}#advancedOrder form{margin-top:10px}.quick-buttons{display:flex;gap:8px;margin-top:11px}.quick-buttons button{flex:1}.estimate{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:11px;background:#f2f6fc;border-radius:4px}.estimate span{font-size:14px;color:var(--muted);display:block}.estimate b{font-size:14px;font-weight:500;display:block;margin-top:5px}.pending-trade{font-size:14px;padding:9px;background:#fff3dc;line-height:1.7;margin:8px 0}.pending-trade button{margin-top:6px}.stack{display:grid;gap:8px;margin-top:12px}#depositDrawer{padding-top:6px}#depositDrawer form{margin-top:10px}#marginPanel p{margin-bottom:5px}.funds-grid{display:flex;gap:25px;flex-wrap:wrap;padding:0 16px;margin:0 0 13px}.funds-grid dt{font-size:14px;color:var(--muted)}.funds-grid dd{font-size:19px;margin:5px 0 0}.margin-info{display:flex;gap:20px;flex-wrap:wrap;padding:12px 15px;margin:0 16px 12px;background:#f2f6fc;border-radius:3px}.margin-info span{display:block;color:var(--muted);font-size:14px}.margin-info strong{display:block;margin-top:4px;font-size:16px}.margin-info.danger{background:#fff0f0}.decision-records{padding:0 16px 14px}.decision-record{border-bottom:1px solid var(--line);padding:11px 0;font-size:16px;line-height:1.8}.decision-record:last-child{border:0}.decision-record time{color:var(--blue)}.decision-record small{display:block;color:var(--muted);font-size:14px}.checkpoint-form{padding:15px;border-top:1px solid var(--line)}.checkpoint-form h3{color:var(--blue)}#ledgerPanel .table-wrap{max-height:270px;overflow:auto}#ledgerPanel td:last-child{white-space:normal;min-width:210px;max-width:360px}.review{font-size:16px;line-height:1.9;padding:15px 16px}.review p+p{margin-top:8px}#reflectionPanel{padding:0 0 15px}#reflectionPanel>h2{padding:14px 16px 0}#reflectionPanel>form{padding:0 16px}.review-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;padding:0 16px 16px}.review-metrics span{font-size:14px;color:var(--muted);display:block}.review-metrics b{display:block;font-size:20px;margin-top:5px}.contract-details{margin-top:15px;font-size:14px;color:var(--muted);line-height:1.9}.contract-details>p{margin-top:6px}.mobile-student-tabs{display:none}
dialog{border:1px solid var(--line);border-radius:7px;padding:23px;color:var(--navy);max-width:min(920px,94vw);max-height:88dvh;overflow:auto;background:white}dialog::backdrop{background:rgba(15,30,48,.42)}dialog h2{margin-bottom:12px}.dialog-heading,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:15px}.dialog-heading{margin-bottom:14px}.dialog-heading h2{margin:0}.dialog-actions{justify-content:flex-end;margin-top:20px}#confirmDialog{width:460px}#confirmText{line-height:1.9;font-size:16px}.rules-copy{font-size:16px;line-height:1.95;max-width:770px}.rules-copy h3{margin:15px 0 7px}.rules-copy p+p{margin-top:10px}#detailContent{font-size:16px;line-height:1.9;min-width:min(680px,82vw)}#detailContent .table-wrap{margin-top:15px}#claimAddress{width:min(630px,78vw);margin-top:14px;overflow-wrap:anywhere}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--navy);color:white;padding:11px 18px;border-radius:4px;box-shadow:0 4px 16px #17283b22;font-size:14px;line-height:1.7;z-index:100;max-width:90vw;pointer-events:none}.projection .teacher-sidebar{display:none!important}.projection .terminal-grid{grid-template-columns:1fr}.projection .class-heading h1{font-size:25px}.projection .summary-grid strong{font-size:28px}.projection .table-wrap table{font-size:16px}.projection #teacherChartBar{position:relative}.projection .chart{height:38dvh}.projection .workspace-tabs button{font-size:15px}
@media(min-width:1100px){.classroom-student #classBanner{max-height:70px;overflow:auto}.classroom-student .main-column>.market-panel{align-self:start}}
@media(max-width:1100px) and (min-width:851px){main{padding:15px}.terminal-grid{grid-template-columns:260px minmax(0,1fr);gap:12px}.classroom-student .terminal-grid{grid-template-columns:minmax(0,var(--student-market-fr,1fr)) 12px minmax(0,var(--student-trade-fr,1fr));gap:10px}.summary-grid strong{font-size:24px}.summary-grid>div{padding:12px 10px}.overview-charts{grid-template-columns:1fr}.account-grid strong{font-size:21px}}
@media(max-width:850px){.terminal-grid{grid-template-columns:1fr}.teacher-sidebar{position:static;max-height:none;overflow:visible;display:grid;grid-template-columns:1fr 1fr}.teacher-sidebar .control-panel{grid-row:span 2}.teacher-sidebar #positionLimitsPanel{grid-column:2}.teacher-sidebar .sidebar-drawer{grid-column:2}.classroom-student .terminal-grid{display:flex;flex-direction:column;gap:11px}.classroom-student .main-column,.classroom-student .student-sidebar{display:contents;position:static;max-height:none;overflow:visible}.classroom-student #myAccountPanel{order:1;width:100%}.classroom-student #mobileStudentTabs{order:2;display:flex;width:100%}.classroom-student .market-panel{order:3;width:100%}.classroom-student #orderPanel,.classroom-student #decisionPanel{order:4;width:100%}.classroom-student #marginPanel{order:5;width:100%}.classroom-student #timelinePanel{order:6;width:100%}.classroom-student #studentTabs{display:none}.classroom-student #studentFundsPanel,.classroom-student #ledgerPanel,.classroom-student #studentDecisionPanel,.classroom-student #reflectionPanel{order:7;width:100%}.classroom-student .account-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.classroom-student .account-grid strong{font-size:19px}.classroom-student .account-summary .panel-heading{padding:10px 13px 4px}.classroom-student .account-grid{padding:5px 13px 10px}.classroom-student .chart{height:225px}.classroom-student .market-head{padding:11px 13px 7px}.classroom-student .market-head h2{font-size:19px}.classroom-student .phaseHint{display:none}.classroom-student #orderPanel .position-block{display:none}.classroom-student #orderPanel{padding:12px}.classroom-student .order-panel .panel-heading{padding-bottom:6px}.classroom-student .quantity-stepper{max-width:190px}.classroom-student .trade-risk{margin-bottom:7px;padding:6px 9px}.classroom-student .trade-preview{min-height:0;padding:7px 0}.classroom-student #marginPanel{padding:12px}.classroom-student .trade-reason{margin:5px 0}.classroom-student .quick-buttons{margin-top:7px}}
@media(max-width:600px){.masthead{padding:11px 13px;gap:10px;flex-wrap:wrap;min-height:0}.brand strong{font-size:16px}.brand-icon{height:30px;width:30px;font-size:18px}.brand small{font-size:14px}.header-right{margin-left:auto;gap:6px}.header-right .status{font-size:14px}.header-right button{font-size:14px;padding:6px 8px}main{padding:13px 11px 22px}.intro{margin:12px auto 24px}.intro h1{font-size:24px}.intro>p:last-child{font-size:16px}.entry-grid{grid-template-columns:1fr;gap:15px}.entry-panel{padding:19px}.class-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;margin-bottom:10px}.contract-multiplier{justify-content:flex-start;padding:5px 10px;gap:8px}.contract-multiplier strong{font-size:22px}.class-heading h1{font-size:20px}.class-heading .room-code-small{flex-direction:column;gap:2px}.room-code-small strong{font-size:18px}.room-code-small button{font-size:14px;padding:4px 7px}.room-code-small>span{font-size:14px}.banner{font-size:14px;padding:8px 10px;margin-bottom:11px}.summary-grid{grid-template-columns:1fr 1fr}.summary-grid strong{font-size:21px}.summary-grid>div{padding:10px 12px}.summary-grid>div:nth-child(2){border-right:0}.summary-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.teacher-sidebar{grid-template-columns:1fr}.teacher-sidebar #positionLimitsPanel,.teacher-sidebar .sidebar-drawer{grid-column:1}.teacher-sidebar .control-panel{grid-row:auto}.market-head{padding:13px 13px 9px;gap:10px}.market-head h2{font-size:20px}.quote strong{font-size:32px}.quote small{font-size:14px}.chart-switch{padding:0 13px;gap:5px}.legend{gap:8px;font-size:14px}.chart-tools{padding:9px 13px 0}.chart-tools span{width:100%;margin:0}.chart-readout{padding:0 13px;font-size:14px}.chart-footnote{padding:0 13px 10px}.chart{height:220px}.panel-heading{padding:12px 13px;flex-wrap:wrap;gap:8px}.panel-heading h2{font-size:18px}.panel-heading button{font-size:14px;padding:6px}.panel-heading .inline-field{width:100%}.panel-heading .inline-field input{max-width:130px}.panel-heading .inline-field select{max-width:160px}.workspace-tabs{gap:1px}.workspace-tabs button{font-size:14px;padding:8px}.overview-charts{grid-template-columns:1fr;padding:12px 13px}.overview-metrics{padding:0 13px 13px;gap:15px}.table-wrap table{font-size:14px}th,td{padding:10px 8px}td:first-child,th:first-child{padding-left:13px}.account-grid strong{font-size:21px}.funds-grid{gap:15px;padding:0 13px}.funds-grid dd{font-size:18px}.margin-info{margin:0 13px 10px;padding:10px;gap:15px}.margin-info strong{font-size:15px}.panel-note{padding:0 13px 12px}.review-metrics{grid-template-columns:1fr 1fr}.review-metrics b{font-size:18px}.classroom-student .account-grid{grid-template-columns:1fr 1fr}.classroom-student .account-grid strong{font-size:clamp(20px,6vw,24px)}.classroom-student .account-grid>div{gap:2px}.classroom-student .account-grid small{font-size:14px}.classroom-student #phaseHint{display:none}.classroom-student .chart{height:185px}.classroom-student .market-head h2{font-size:18px}.classroom-student .market-head .status{font-size:14px}.classroom-student .quote strong{font-size:30px}.classroom-student .trade-buttons{margin-bottom:5px}.classroom-student .trade-buttons button{min-height:42px}.classroom-student .trade-preview div{font-size:14px}.classroom-student .trade-reason{display:inline-block}.classroom-student #advancedOrder{margin-top:4px;padding-top:6px}.classroom-student .quick-buttons button{padding:7px 10px}.mobile-student-tabs button{flex:1;font-size:14px;padding:7px 8px}.timeline-panel .panel-heading{align-items:start}.timeline-panel #nextDecision{font-size:14px}#decisionTimeline li{min-width:92px}dialog{padding:18px}.rules-copy{font-size:16px}.toast{bottom:12px;font-size:14px}input:not([type=checkbox]),select,textarea{font-size:16px}.inline-field select,.ranking-heading select{font-size:14px}.quantity-stepper input{font-size:17px}}
@media(max-height:650px) and (max-width:850px){.classroom-student .chart{height:140px}.classroom-student .chart-footnote,.classroom-student .chart-tools span,.classroom-student .market-head .status{display:none}.classroom-student .account-grid{gap:4px 9px}.classroom-student .account-grid strong{font-size:18px}.classroom-student #timelinePanel{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Keep execution in the first mobile screen; detailed reading remains below. */
@media(max-width:850px){.classroom-student #orderPanel,.classroom-student #decisionPanel{order:3}.classroom-student .market-panel{order:4}.classroom-student .student-sidebar{position:static;max-height:none;overflow:visible}.classroom-student #marginPanel{order:5}}
@media(max-width:600px){.classroom-student .masthead{padding:9px 12px;gap:8px}.classroom-student .brand{gap:7px}.classroom-student .brand strong{font-size:18px}.classroom-student .brand small{display:none}.classroom-student .brand-icon{width:24px;height:24px;font-size:15px}.classroom-student .header-right{gap:5px}.classroom-student .header-right button{padding:6px;font-size:14px}.classroom-student .header-right .status{padding:4px 6px;font-size:14px}.classroom-student .class-heading h1{font-size:18px}.classroom-student .account-grid{row-gap:9px}.classroom-student .trade-preview{padding:5px 0}.classroom-student #orderPanel>label{display:inline-grid}.classroom-student #orderPanel .quantity-stepper{display:inline-flex;vertical-align:middle;margin:0 0 7px 8px;width:150px}.classroom-student #orderPanel .quantity-stepper input{padding:5px}.classroom-student #orderPanel .quantity-stepper button{width:29px;padding:5px}.classroom-student #orderPanel .panel-heading h2{font-size:18px}.classroom-student .trade-capacity{font-size:14px}}
.bin span{overflow-wrap:anywhere;text-align:center}.pending-trade{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.pending-trade[hidden]{display:none}.pending-trade button{margin:0}

#readyMetric{font-size:clamp(20px,1.7vw,26px);white-space:normal}@media(max-width:1100px) and (min-width:601px){.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-grid>div{border-bottom:1px solid var(--line)}}

.ledger-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 16px 11px;flex-wrap:wrap}.ledger-controls>div{display:flex;gap:6px}.ledger-controls button{font-size:14px;padding:5px 8px}

.saved-room-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.saved-room-row small{display:block;margin-top:4px;color:var(--muted)}.saved-room-row>.danger{white-space:nowrap;text-align:center}

.history-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.history-actions button{color:var(--blue)}#historyRooms{max-height:360px}#historyBackupDialog{width:520px}#historyBackupForm{margin-top:15px}

.class-entry-settings{margin:0;padding:12px 14px 14px;min-width:0;border:1px solid #c5d7ee;border-radius:4px;background:#f5f8fd;display:grid;gap:12px}.class-entry-settings legend{padding:0 6px;font-size:16px;font-weight:600;color:var(--navy)}.class-entry-settings .inline-check{font-size:16px;color:var(--navy);align-items:flex-start}.class-entry-settings input[type=checkbox]{flex-shrink:0;margin-top:5px}

/* Classroom actions and private teacher market controls share the main workspace. */
.preclass-settings{padding:15px;display:grid;gap:12px}.preclass-settings h2{font-size:18px}.preclass-settings .inline-check{align-items:flex-start}.preclass-settings input{flex-shrink:0;margin-top:4px}
.classroom-session-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 15px}.classroom-session-bar h2{margin:0;font-size:16px}.classroom-session-bar .control-buttons{gap:7px}.classroom-session-bar .control-buttons button{flex:initial;min-width:0}.classroom-session-bar .secondary-controls{border:0;padding:0;margin:0 0 0 auto}.classroom-session-bar .secondary-controls button{font-size:16px}.classroom-session-bar button{padding:8px 10px}
.teacher-chart-bar{flex-wrap:wrap;gap:10px 18px;background:white;border:1px solid var(--line);border-radius:5px;padding:12px 15px}.market-view-heading{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.market-view-heading .inline-field{gap:8px}.market-view-heading select{font-size:16px}.market-view-modes{display:flex;gap:7px;flex-wrap:wrap;margin-left:auto}.market-view-modes button{font-size:16px;padding:7px 10px}.market-view-modes button[aria-pressed=true]{background:#e7effb;color:var(--blue);border-color:#87b1f5}#teacherMarketStatus{width:100%}.full-market-warning{color:#805416;background:#fff4e3;padding:6px 9px;border-left:3px solid var(--amber)}
.room-code-small{position:relative}.invite-popover>summary{font-size:16px;color:var(--blue);border:1px solid #b7cceb;border-radius:4px;padding:8px 10px;list-style:none;background:white;white-space:nowrap}.invite-popover>summary::-webkit-details-marker{display:none}.invite-popover>.invitation{white-space:normal;position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 24px));max-height:calc(100dvh - 180px);overflow:auto;z-index:40;background:white;border:1px solid #bccde3;border-radius:5px;box-shadow:0 9px 30px #17283b24}.invite-popover .invitation p{white-space:normal}.invite-popover .invitation button{display:block}.invite-popover .join-address{user-select:all}
.workspace-divider{display:none}.classroom-student .workspace-divider{display:flex;align-items:center;justify-content:center;align-self:stretch;position:sticky;top:12px;max-height:calc(100dvh - 24px);min-height:300px;cursor:col-resize;touch-action:none;color:#6a7e98;border:1px solid #d5dfeb;border-radius:6px;background:#e9eff6}.workspace-divider:hover,.workspace-divider:focus-visible{background:#dce9fc;border-color:#87b1f5}.workspace-divider span{font-size:22px;line-height:1}.resizing-workspace,.resizing-workspace *{cursor:col-resize!important;user-select:none!important}.decision-submit-bar{position:sticky;bottom:0;z-index:5;background:white;border-top:1px solid var(--line);padding:10px 0 0;box-shadow:0 -7px 10px white}.decision-submit-bar .error{margin-bottom:7px}.decision-help{line-height:1.8}.decision-help p{margin-top:7px}
@media(max-width:850px){.classroom-student .workspace-divider{display:none}.classroom-session-bar .secondary-controls{margin-left:0}.teacher-sidebar{grid-template-columns:1fr 1fr}.preclass-settings{grid-column:1}.market-view-modes{margin-left:0}.decision-submit-bar{bottom:5px;padding-bottom:5px}}
@media(max-width:600px){.teacher-sidebar{grid-template-columns:1fr}.classroom-session-bar{padding:11px;gap:10px}.classroom-session-bar .control-buttons{width:100%}.classroom-session-bar .control-buttons button{flex:1;font-size:14px}.teacher-chart-bar{padding:11px}.market-view-heading{gap:12px}.market-view-modes{gap:5px}.market-view-modes button{font-size:14px;padding:7px}.invite-popover>summary{font-size:14px;padding:6px}.room-code-small>span{display:none}.classroom-student .room-code-small>span{display:block}}
@media(max-width:850px){.classroom-student.classroom-setup #decisionPanel{padding-bottom:80px}.classroom-student.classroom-setup .decision-submit-bar{position:fixed;left:12px;right:12px;bottom:8px;padding:10px;background:white;border:1px solid var(--line);border-radius:5px;box-shadow:0 -5px 18px #17283b15}.classroom-student.classroom-setup .toast{bottom:82px}}
/* Keep current tasks separate from the private teacher schedule. */
.current-task{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;margin:0 0 13px;background:#edf5f2;border-left:3px solid var(--green);border-radius:3px;min-width:0}.current-task strong{font-size:16px}.current-task p{font-size:14px;color:var(--muted);line-height:1.7;margin-top:3px}.current-task button{flex-shrink:0}
/* Container widths follow the draggable trade pane rather than the window. */
.classroom-student .student-sidebar{container-name:student-trade;container-type:inline-size}.initial-decision-panel .decision-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.initial-decision-panel .decision-heading h2{font-size:18px}.initial-decision-panel .order-contract{margin:0}.initial-decision-panel #initialContext{margin:5px 0 8px;line-height:1.65}.initial-decision-panel form{gap:7px}.initial-decision-panel label:not(.inline-check){gap:4px}.initial-decision-panel input:not([type=checkbox]),.initial-decision-panel select{padding:6px 9px;height:40px}.initial-funding-row,.initial-input-row{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;align-items:end;min-width:0}.initial-balances{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding-bottom:4px;min-width:0}.initial-balances dt{font-size:14px;color:var(--muted)}.initial-balances dd{margin:3px 0 0;font-size:16px;font-weight:600;white-space:nowrap}.initial-decision-panel .inline-check{line-height:1.6}.initial-decision-panel #initialEstimate{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px 10px}.initial-decision-panel #initialEstimate span{line-height:1.5}.initial-decision-panel #initialEstimate b{font-size:16px;line-height:1.5;margin-top:2px;white-space:nowrap}.initial-decision-panel #initialReason{min-height:58px;max-height:112px;line-height:1.4;padding:7px 9px;resize:vertical;overflow:auto}.initial-decision-panel .decision-submit-bar{padding-top:7px}.initial-decision-panel .decision-help{font-size:14px}.initial-decision-panel .decision-help p{font-size:14px;line-height:1.7}
.quick-quantity-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:9px}.quick-quantity-row>label{font-size:14px;color:var(--muted)}.quick-quantity-row .quantity-stepper{width:180px;max-width:100%;margin:0}.student-sidebar #callActions{display:flex;flex-wrap:wrap}.student-sidebar #callActions button{flex:1 1 180px;width:auto}
@container student-trade (min-width:420px){.initial-input-row{grid-template-columns:repeat(2,minmax(0,1fr))}.initial-input-row>label:last-child{grid-column:1 / -1}}
@container student-trade (min-width:480px){.initial-funding-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}#depositForm{grid-template-columns:minmax(0,1fr) auto;align-items:end}#depositForm .error{grid-column:1 / -1}#depositForm button{width:auto}.quick-quantity-row .quantity-stepper{width:200px}}
@container student-trade (min-width:600px){.initial-input-row{grid-template-columns:repeat(3,minmax(0,1fr))}.initial-input-row>label:last-child{grid-column:auto}.initial-decision-panel #initialEstimate{grid-template-columns:repeat(3,minmax(0,1fr))}.initial-decision-panel #initialEstimate.with-stop-price{grid-template-columns:repeat(4,minmax(0,1fr))}}
@container student-trade (min-width:760px){.account-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.account-grid strong{font-size:24px}}
@media(max-width:850px){.current-task{flex-wrap:wrap}.current-task button{font-size:14px}.initial-decision-panel .initial-balances{grid-template-columns:repeat(2,minmax(0,1fr))}.initial-decision-panel .decision-help{margin-top:7px}}
@media(min-width:851px){.classroom-student.classroom-setup .masthead{padding-block:8px;min-height:0}.classroom-student.classroom-setup main{padding-top:12px}.classroom-student.classroom-setup .class-heading{margin-bottom:8px}.classroom-student.classroom-setup .class-heading .intro-meta{margin-bottom:0}.classroom-student.classroom-setup #classBanner{padding-block:8px;margin-bottom:10px}}

/* Keep contract terms beside the market heading, with room for readable controls. */
.student-chart-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--line)}.student-chart-bar h2{font-size:18px}.market-view-heading .contract-multiplier,.student-chart-bar .contract-multiplier{padding:3px 9px;gap:6px;flex-wrap:nowrap}.market-view-heading .contract-multiplier strong,.student-chart-bar .contract-multiplier strong{font-size:20px}.contract-multiplier small{font-size:14px}#tradeToggle[aria-pressed=true]{border-color:#a65e10;background:#fff1dc;color:#805416}.pause-editor-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:10px 18px 3px}.pause-editor-bar button[aria-pressed=true]{background:#f1e6f6;border-color:#8b459c;color:#783889}.pause-editor-bar p{flex:1 1 260px}.editing-pauses{outline:2px solid #b98ac8;outline-offset:-3px}.teaching-pause-marker{cursor:inherit}#pauseEditorDialog{width:480px}#pauseEditorDialog>label{margin-top:16px}#pauseMonthStatus{margin-top:12px;line-height:1.8}#pauseEditorDialog>p{line-height:1.7}.chart-navigator{height:52px;position:relative;margin:8px 34px 10px 68px}.navigator-plot{position:absolute;inset:6px 0;background:#eff3f8;border:1px solid #d4dfec;overflow:hidden;border-radius:3px}.navigator-plot svg{width:100%;height:100%}#navigatorSelection{position:absolute;top:0;bottom:0;background:#205fc715;border:1px solid #487abd}.chart-navigator input[type=range]{position:absolute;inset:0;width:100%;height:52px;margin:0;padding:0;border:0;appearance:none;background:transparent;pointer-events:none}.chart-navigator input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:44px;border:2px solid #487abd;border-radius:3px;background:white;pointer-events:auto;cursor:ew-resize;box-shadow:0 1px 4px #17283b25}.chart-navigator input[type=range]::-moz-range-thumb{width:12px;height:40px;border:2px solid #487abd;border-radius:3px;background:white;pointer-events:auto;cursor:ew-resize}.chart-navigator input[type=range]:focus-visible{outline:0}.chart-navigator input[type=range]:focus-visible::-webkit-slider-thumb{outline:3px solid #a9c6f2}.chart-navigator input[type=range]:focus-visible::-moz-range-thumb{outline:3px solid #a9c6f2}.market-reference{pointer-events:none}#chartCrosshair{pointer-events:none}
@media(max-width:600px){.student-chart-bar{padding:9px 13px;gap:8px}.student-chart-bar .contract-multiplier{gap:4px;padding:3px 6px}.student-chart-bar .contract-multiplier span{font-size:14px}.student-chart-bar .contract-multiplier strong{font-size:18px}.pause-editor-bar{padding:10px 13px 3px}.chart-navigator{margin-left:60px;margin-right:30px}}

.platform-link{color:#e4efff;font-size:16px;border:1px solid #52667e;border-radius:4px;padding:8px 10px;text-decoration:none}#unifiedTeacherLogin{display:inline-block;margin-top:10px;padding:8px 14px;text-decoration:none;border-radius:4px}

.header-right{flex-wrap:wrap;justify-content:flex-end;min-width:0}@media(max-width:600px){.header-right .platform-link{font-size:14px;padding:6px 8px}}

#joiningToggle[aria-pressed=true]{background:#e7effb;color:var(--blue);border-color:#87b1f5}.classroom-session-bar .control-note{flex-basis:100%;margin:0;line-height:1.7}.classroom-session-bar .secondary-controls{flex-wrap:wrap;max-width:100%}.classroom-session-bar .secondary-controls button{white-space:nowrap;flex:0 0 auto}

#deviceVerifyDialog{width:760px}.device-verify-hint{line-height:1.8;margin-bottom:16px}.device-verify-list{list-style:none;padding:0;margin:14px 0 0;max-height:45dvh;overflow:auto}.device-verify-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 2px;border-bottom:1px solid var(--line)}.device-verify-row>div{flex:1 1 210px;overflow-wrap:anywhere}.device-verify-row p{margin-top:5px;color:var(--muted);font-size:16px}.device-verify-row button{flex:0 0 auto;white-space:nowrap}
