.teacher-home{--home-ink: #eef5ee;--home-muted: #9aa8a0;--home-line: rgba(218, 239, 225, .13);--home-panel: rgba(19, 28, 25, .82);min-height:100vh;color:var(--home-ink);background:radial-gradient(circle at 82% 2%,rgba(89,190,139,.13),transparent 34rem),linear-gradient(150deg,#111a17,#0b110f 55%,#070b0a);overflow-x:hidden}.teacher-home:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);background-size:28px 28px}.teacher-home-header{position:relative;z-index:2;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,5vw,78px);border-bottom:1px solid var(--home-line);background:#090e0cb8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.teacher-home-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.teacher-home-brand>span:last-child{display:grid;gap:2px}.teacher-home-brand strong{font-size:18px;letter-spacing:.02em}.teacher-home-brand small{color:var(--home-muted);font-size:11px}.teacher-home-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:#082016;background:#89e7b5;font:800 20px/1 Georgia,serif;box-shadow:0 0 28px #6de0a02e}.teacher-home-header-actions{display:flex;align-items:center;gap:10px}.teacher-header-link,.teacher-section-action{min-height:48px;padding:0 18px;border:1px solid var(--home-line);border-radius:12px;background:transparent;color:var(--home-ink);cursor:pointer}.teacher-header-link:hover,.teacher-section-action:hover{border-color:#89e7b580;background:#89e7b512}.teacher-home-content{position:relative;z-index:1;width:min(1480px,calc(100% - 48px));margin:0 auto;padding:58px 0 72px}.teacher-home-hero{min-height:330px;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);align-items:center;gap:clamp(36px,7vw,120px);padding:24px 0 70px}.teacher-home-kicker{margin:0 0 10px;color:#89e7b5;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.teacher-home-hero h1{margin:0;max-width:800px;font-size:clamp(42px,5.2vw,76px);line-height:1.06;letter-spacing:-.055em;font-weight:650}.teacher-home-hero-copy>p:last-child{max-width:660px;margin:28px 0 0;color:#aebbb4;font-size:clamp(16px,1.4vw,20px);line-height:1.8}.emergency-board-action{min-height:132px;display:flex;align-items:center;gap:22px;padding:26px 30px;border:1px solid rgba(142,240,185,.34);border-radius:24px;text-align:left;color:#082016;background:linear-gradient(135deg,#a1f0c4,#6fd89e);box-shadow:0 24px 70px #218f5433;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.emergency-board-action:hover{transform:translateY(-3px);box-shadow:0 28px 80px #218f5447}.emergency-board-action:active{transform:translateY(0)}.emergency-board-action>span:last-child{display:grid;gap:8px}.emergency-board-action strong{font-size:clamp(22px,2vw,30px)}.emergency-board-action small{color:#082016b8;font-size:14px}.emergency-board-icon{flex:0 0 auto;width:58px;height:58px;display:grid;place-items:center;border-radius:18px;font-size:30px;background:#ffffff6b}.teacher-home-local-warning{padding:13px 16px;border:1px solid rgba(240,191,95,.35);border-radius:12px;color:#f1ca7e;background:#62461426}.teacher-home-section{padding:44px 0;border-top:1px solid var(--home-line)}.teacher-section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}.teacher-section-heading h2{margin:0;font-size:clamp(24px,2vw,34px);letter-spacing:-.03em}.teacher-section-heading>p,.teacher-local-state{max-width:480px;margin:0;color:var(--home-muted);font-size:13px;line-height:1.6}.recent-lesson-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.lesson-card{overflow:hidden;border:1px solid var(--home-line);border-radius:18px;background:var(--home-panel);box-shadow:inset 0 1px #ffffff06}.lesson-card-main{width:100%;min-height:174px;display:flex;flex-direction:column;align-items:flex-start;padding:22px;border:0;text-align:left;color:inherit;background:transparent;cursor:pointer}.lesson-card-main:hover{background:#89e7b50b}.lesson-card-meta{width:100%;display:flex;align-items:center;gap:8px;margin-bottom:22px;color:var(--home-muted);font-size:12px;white-space:nowrap;overflow:hidden}.lesson-card-meta>span:last-child{overflow:hidden;text-overflow:ellipsis}.lesson-state{padding:4px 7px;border-radius:6px;color:#c4d0ca;background:#ffffff12}.lesson-state-live{color:#081c12;background:#89e7b5}.lesson-card-main strong{font-size:20px;line-height:1.4}.lesson-card-action{margin-top:auto;padding-top:20px;color:#89e7b5;font-size:13px}.lesson-card-quick-actions{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--home-line)}.lesson-card-quick-actions button{min-height:48px;border:0;color:#aebbb4;background:transparent;cursor:pointer}.lesson-card-quick-actions button+button{border-left:1px solid var(--home-line)}.lesson-card-quick-actions button:hover{color:var(--home-ink);background:#ffffff09}.teacher-empty-state{min-height:160px;display:flex;align-items:center;justify-content:center;gap:24px;border:1px dashed rgba(211,231,219,.18);border-radius:18px;color:var(--home-muted);background:#ffffff05}.teacher-empty-state strong{color:var(--home-ink);font-size:17px}.teacher-empty-state p{margin:8px 0 0}.teacher-empty-board{width:82px;height:58px;padding:9px;border:2px solid rgba(137,231,181,.5);border-radius:8px;transform:rotate(-2deg)}.teacher-empty-board span{display:block;width:60%;height:2px;margin:10px 0 0 8px;background:#89e7b5a6;box-shadow:12px 10px #89e7b559}.course-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.course-summary-card{min-height:82px;display:flex;align-items:center;gap:16px;padding:15px 18px;border:1px solid var(--home-line);border-radius:16px;text-align:left;color:inherit;background:#0f1714b8;cursor:pointer}.course-summary-card:hover{border-color:#89e7b56b;transform:translateY(-1px)}.course-summary-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;color:#9ce9bb;background:#89e7b51a}.course-summary-copy{min-width:0;display:grid;flex:1;gap:6px}.course-summary-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-summary-copy small{color:var(--home-muted)}.subject-capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.subject-capability{min-height:118px;display:grid;align-content:start;gap:16px;padding:18px;border:1px solid var(--home-line);border-radius:16px;text-align:left;color:inherit;background:#ffffff06}.subject-capability:not(:disabled){cursor:pointer}.subject-capability:not(:disabled):hover{border-color:#89e7b570;background:#89e7b50d}.subject-capability:disabled{opacity:.58}.subject-capability-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.subject-capability-topline strong{font-size:17px}.subject-capability-topline span{padding:4px 7px;border-radius:999px;color:var(--home-muted);background:#ffffff0e;font-size:10px}.subject-classroom-ready .subject-capability-topline span,.subject-board-ready .subject-capability-topline span{color:#9ce9bb;background:#89e7b51a}.subject-capability small{color:var(--home-muted);line-height:1.65}.teacher-home-footer{position:relative;z-index:1;padding:26px 24px;border-top:1px solid var(--home-line);text-align:center;color:#76827c;font-size:12px}@media (max-width: 980px){.teacher-home-hero{grid-template-columns:1fr}.recent-lesson-grid,.subject-capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 680px){.teacher-home-header{padding:0 18px}.teacher-home-brand small,.teacher-local-state{display:none}.teacher-home-content{width:min(100% - 28px,1480px);padding-top:34px}.teacher-home-hero{padding-bottom:48px}.recent-lesson-grid,.course-summary-grid,.subject-capability-grid{grid-template-columns:1fr}.teacher-section-heading{align-items:flex-start;flex-direction:column}}@media (prefers-reduced-motion: reduce){.emergency-board-action,.course-summary-card{transition:none}}.course-page{min-height:100vh;color:#edf5ef;background:radial-gradient(circle at 75% 0,rgba(91,193,139,.13),transparent 34rem),#0b110f}.course-page-header{min-height:250px;display:grid;grid-template-columns:170px 1fr auto;align-items:center;gap:28px;padding:34px clamp(28px,6vw,90px);border-bottom:1px solid rgba(220,240,227,.12)}.course-back{align-self:start;min-height:48px;border:0;color:#9dac9f;background:transparent;text-align:left;cursor:pointer}.course-page-header>div>span,.course-lesson-section>div>span,.course-create-sheet>div>span{color:#8ce5b3;font-size:11px;font-weight:750;letter-spacing:.14em}.course-page-header h1{margin:10px 0;font-size:clamp(34px,4vw,58px);letter-spacing:-.045em}.course-page-header p{margin:0;color:#93a299}.course-create-action{min-height:56px;padding:0 22px;border:1px solid #80dfa9;border-radius:14px;color:#092217;background:#8ce5b3;font-weight:750;cursor:pointer}.course-class-binding{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.course-class-binding label{display:flex;align-items:center;gap:8px;color:#9dac9f;font-size:12px}.course-class-binding select{min-height:48px;padding:0 34px 0 12px;border:1px solid rgba(220,240,227,.16);border-radius:11px;color:#edf5ef;background:#0d1512}.course-class-binding small{color:#8f9d95}.course-class-binding select:disabled{opacity:.65}.course-page-body{width:min(1100px,calc(100% - 48px));margin:0 auto;padding:48px 0 80px}.course-lesson-section{padding:28px 0 42px}.course-lesson-section>div{margin-bottom:18px}.course-lesson-section h2{margin:8px 0 0;font-size:26px}.course-lesson-section>p{padding:26px;border:1px dashed rgba(220,240,227,.15);border-radius:14px;color:#7f8e85}.course-lesson-row{width:100%;min-height:78px;display:flex;align-items:center;gap:16px;margin-bottom:9px;padding:12px 16px;border:1px solid rgba(220,240,227,.12);border-radius:14px;text-align:left;color:inherit;background:#131d19c2;cursor:pointer}.course-lesson-row:hover{border-color:#8ce5b36b}.course-lesson-row>span:nth-child(2){min-width:0;display:grid;flex:1;gap:6px}.course-lesson-row small{color:#86958c}.course-lesson-state{min-width:46px;padding:6px;border-radius:8px;text-align:center;color:#9ba9a0;background:#ffffff0d;font-size:11px}.course-lesson-state.state-live{color:#0a2117;background:#86dfad}.course-archive{padding:18px 0;border-top:1px solid rgba(220,240,227,.12)}.course-archive summary{min-height:48px;color:#89988f;cursor:pointer}.course-create-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#010503b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.course-create-sheet{width:min(520px,100%);display:grid;gap:18px;padding:30px;border:1px solid rgba(220,240,227,.16);border-radius:22px;background:#131d19;box-shadow:0 30px 90px #00000073}.course-create-sheet h2{margin:8px 0;font-size:28px}.course-create-sheet p{margin:0;color:#93a299;line-height:1.6}.course-create-sheet label{display:grid;gap:8px;color:#b6c3bb;font-size:12px}.course-create-sheet input,.course-create-sheet select{min-height:50px;padding:0 13px;border:1px solid rgba(220,240,227,.16);border-radius:11px;color:#edf5ef;background:#0d1512}.course-create-buttons{display:flex;justify-content:flex-end;gap:9px;margin-top:8px}.course-create-buttons button{min-height:48px;padding:0 17px;border:1px solid rgba(220,240,227,.15);border-radius:11px;color:#dce8e0;background:transparent;cursor:pointer}.course-create-buttons button.primary{color:#092217;border-color:#80dfa9;background:#8ce5b3;font-weight:750}.course-page-missing{display:grid;place-content:center;gap:18px;text-align:center}.course-page-missing button{min-height:50px}@media (max-width: 760px){.course-page-header{grid-template-columns:1fr}.course-back{align-self:auto}.course-create-action{justify-self:start}}.course-context-card{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(260px,1fr) auto;align-items:center;gap:22px;margin-bottom:20px;padding:24px;border:1px solid rgba(220,240,227,.13);border-radius:18px;background:linear-gradient(135deg,#1a2a23eb,#0e1814e0)}.course-context-copy>span{color:#8ce5b3;font-size:11px;font-weight:750;letter-spacing:.14em}.course-context-copy h2{margin:7px 0;font-size:21px}.course-context-copy p{margin:0;color:#93a299;font-size:13px;line-height:1.6}.course-context-summary{display:flex;flex-wrap:wrap;gap:8px}.course-context-summary span{padding:7px 10px;border:1px solid rgba(140,229,179,.18);border-radius:999px;color:#bfead1;background:#8ce5b312;font-size:12px}.course-context-summary em{color:#7f8e85;font-size:13px;font-style:normal}.course-context-edit{min-height:48px;padding:0 15px;border:1px solid rgba(140,229,179,.35);border-radius:12px;color:#ccebdd;background:transparent;cursor:pointer}.course-context-form{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:14px;padding-top:20px;border-top:1px solid rgba(220,240,227,.1)}.course-context-form label{display:grid;gap:7px;color:#afbbb3;font-size:12px}.course-context-form input,.course-context-form select,.course-context-form textarea{min-height:48px;padding:10px 12px;border:1px solid rgba(220,240,227,.16);border-radius:11px;color:#edf5ef;background:#0d1512;font:inherit}.course-context-form textarea{min-height:78px;resize:vertical}.course-context-wide{grid-column:span 2}.course-context-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:9px}.course-context-actions button{min-height:48px;padding:0 17px;border:1px solid rgba(220,240,227,.16);border-radius:11px;color:#dce8e0;background:transparent;cursor:pointer}.course-context-actions button[type=submit]{color:#092217;border-color:#80dfa9;background:#8ce5b3;font-weight:750}.course-context-notice{grid-column:1 / -1;margin:0;color:#9fd9b8;font-size:12px}@media (max-width: 900px){.course-context-card,.course-context-form{grid-template-columns:1fr}.course-context-wide{grid-column:auto}.course-context-edit{justify-self:start}}.course-reuse-note{margin:-4px 0 0;padding:12px 14px;border:1px solid rgba(140,229,179,.18);border-radius:11px;color:#b8d8c6!important;background:#8ce5b312;font-size:12px;line-height:1.65!important}.course-create-error{margin:-4px 0 0!important;color:#ffb6a8!important;font-size:12px}.course-create-buttons button:disabled,.course-create-sheet select:disabled{cursor:progress;opacity:.62}.classroom-launcher{--launcher-ink: #eef6f1;--launcher-muted: #9baba2;--launcher-line: rgba(219, 239, 227, .14);min-height:calc(100vh - 64px);padding:clamp(28px,4vw,64px);color:var(--launcher-ink);background:radial-gradient(circle at 84% 0%,rgba(106,222,158,.13),transparent 36rem),linear-gradient(145deg,#101915,#080d0b 64%)}.classroom-launcher-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,540px);align-items:center;gap:clamp(32px,7vw,110px);min-height:280px;padding:10px 0 52px}.classroom-launcher-heading>div>span,.classroom-section-title span{color:#89e7b5;font-size:12px;font-weight:750;letter-spacing:.16em;text-transform:uppercase}.classroom-launcher-heading h1{margin:10px 0 18px;font-size:clamp(44px,5vw,76px);line-height:1;letter-spacing:-.05em}.classroom-launcher-heading p{max-width:680px;margin:0;color:var(--launcher-muted);font-size:clamp(16px,1.35vw,21px);line-height:1.75}.classroom-emergency{min-height:136px;display:flex;align-items:center;gap:22px;padding:26px 30px;border:0;border-radius:24px;color:#092117;text-align:left;background:linear-gradient(135deg,#a5f2c8,#6bd79b);box-shadow:0 26px 72px #29995b38;cursor:pointer}.classroom-emergency>span:first-child{width:60px;height:60px;display:grid;place-items:center;flex:0 0 auto;border-radius:18px;background:#ffffff6b;font-size:30px}.classroom-emergency>span:last-child{display:grid;gap:8px}.classroom-emergency strong{font-size:clamp(22px,2vw,30px)}.classroom-emergency small{color:#092117b3;font-size:14px}.classroom-launcher-section{padding:38px 0;border-top:1px solid var(--launcher-line)}.classroom-section-title{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:20px}.classroom-section-title h2{margin:7px 0 0;font-size:clamp(25px,2.2vw,36px)}.classroom-section-title>small{max-width:520px;color:var(--launcher-muted);line-height:1.6}.classroom-recent-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.classroom-recent-grid button{min-height:132px;display:grid;align-content:start;gap:11px;padding:20px;border:1px solid var(--launcher-line);border-radius:18px;color:inherit;text-align:left;background:#ffffff06;cursor:pointer}.classroom-recent-grid button:hover{border-color:#89e7b57a;background:#89e7b50e}.classroom-recent-grid span{color:var(--launcher-muted);font-size:12px}.classroom-recent-grid strong{font-size:18px;line-height:1.4}.classroom-recent-grid small{margin-top:auto;color:#89e7b5}.classroom-empty{padding:24px;border:1px dashed var(--launcher-line);border-radius:16px;color:var(--launcher-muted)}.classroom-code-section form{max-width:920px}.classroom-code-section label{display:block;margin-bottom:9px;color:#c7d4cc;font-size:13px}.classroom-code-section form>div{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px}.classroom-code-section input,.classroom-code-section button,.classroom-management-entry button{min-height:58px;border:1px solid var(--launcher-line);border-radius:13px;font:inherit}.classroom-code-section input{padding:0 18px;color:var(--launcher-ink);background:#0000003d;font-size:18px;letter-spacing:.06em}.classroom-code-section button{padding:0 24px;color:#092117;background:#89e7b5;font-weight:750;cursor:pointer}.classroom-code-section form>p{margin:10px 0 0;color:#efb276}.classroom-management-entry{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 20px;border:1px solid var(--launcher-line);border-radius:18px;background:#ffffff05}.classroom-management-entry p{margin:5px 0 0;color:var(--launcher-muted)}.classroom-management-entry button{padding:0 22px;color:var(--launcher-ink);background:transparent;cursor:pointer}.classroom-management-surface{margin-top:22px;overflow:hidden;border:1px solid var(--launcher-line);border-radius:18px}@media (max-width: 1050px){.classroom-launcher-heading{grid-template-columns:1fr}.classroom-recent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 680px){.classroom-launcher{padding:24px 16px}.classroom-recent-grid{grid-template-columns:1fr}.classroom-section-title{align-items:flex-start;flex-direction:column}.classroom-code-section form>div{grid-template-columns:1fr}.classroom-management-entry{align-items:flex-start;flex-direction:column}}.login-overlay{--login-ink: #eef5ee;--login-muted: #9aa8a0;--login-line: rgba(218, 239, 225, .13);position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:auto;color:var(--login-ink);background:radial-gradient(ellipse at 15% 38%,rgba(89,190,139,.1),transparent 50%),linear-gradient(150deg,#111a17,#0b110f 55%,#070b0a);font-family:inherit;color-scheme:dark}.login-overlay::backdrop{background:#0b110f}.login-overlay *,.login-overlay *:before,.login-overlay *:after{box-sizing:border-box}.login-overlay button,.login-overlay input{font:inherit}.login-overlay button{cursor:pointer}.login-overlay button:disabled{cursor:wait;opacity:.55}.login-overlay button:focus-visible,.login-overlay a:focus-visible{outline:2px solid #89e7b5;outline-offset:4px}.login-header{height:88px;padding:0 clamp(24px,5vw,78px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--login-line)}.login-brand{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:650;letter-spacing:-.03em}.login-brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#89e7b5;color:#082016;font:800 20px Georgia,serif}.login-brand small{display:block;margin-top:3px;color:var(--login-muted);font-size:10px;font-weight:400;letter-spacing:.035em}.login-back{padding:9px 0 9px 12px;border:0;background:transparent;color:var(--login-muted);font-size:12px!important}.login-back span{margin-left:10px}.login-back:hover,.login-guest:hover{color:var(--login-ink)}.login-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;align-items:center;gap:clamp(40px,7vw,104px);max-width:1152px;min-height:calc(100% - 88px);margin:auto;padding:48px 40px}.login-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 24px;color:#b1c4b8;font-size:12px;letter-spacing:.12em}.login-eyebrow>span{width:6px;height:6px;border-radius:50%;background:#89e7b5}.login-intro h1{margin:0;font-size:clamp(35px,4.2vw,54px);font-weight:650;line-height:1.3;letter-spacing:-.055em}.login-intro h1 em{color:#89e7b5;font-style:normal}.login-description{margin:22px 0 32px;color:var(--login-muted);font-size:14px;line-height:1.9}.login-board{max-width:444px;overflow:hidden;border:1px solid var(--login-line);border-radius:16px;background:linear-gradient(rgba(218,239,225,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(218,239,225,.025) 1px,transparent 1px),#131c1980;background-size:24px 24px,24px 24px,auto}.login-board-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px 0;font-size:10px;color:#81958a}.login-board-heading>span:first-child{color:#b1c4b8}.login-board-heading i{display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:#89e7b5}.login-board svg{display:block;width:100%}.login-board-footer{display:flex;justify-content:space-between;padding:0 18px 16px;color:#81958a;font-size:10px}.login-card{width:100%;min-width:0;padding:32px;border:1px solid var(--login-line);border-radius:24px;background:#131c19e0;box-shadow:0 24px 80px #00000029}.login-tabs{display:flex;gap:4px;padding:4px;margin-bottom:30px;border:1px solid rgba(218,239,225,.07);border-radius:11px;background:#0c1410}.login-tab{flex:1;border:0;border-radius:7px;padding:9px 12px;background:transparent;color:var(--login-muted);font-size:13px!important}.login-tab:hover{color:var(--login-ink)}.login-tab.active{background:#23372c;color:#b4edcb}.login-card h2{margin:0 0 9px;font-size:25px;font-weight:600;letter-spacing:-.035em}.login-card-description{margin:0 0 26px;color:var(--login-muted);font-size:12px;line-height:1.7}.login-fields{display:flex;flex-direction:column;gap:18px;min-width:0;padding:0;margin:0;border:0}.login-field{display:flex;flex-direction:column;gap:9px;color:#c2cec6;font-size:12px}.login-input{width:100%;height:46px;padding:0 14px;border:1px solid rgba(218,239,225,.16);border-radius:9px;outline:none;background:#0e1813;color:var(--login-ink);font-size:14px!important;transition:border-color .15s,background-color .15s}.login-input::placeholder{color:#75867c}.login-input:hover{border-color:#daefe14d}.login-input:focus{border-color:#89e7b5;box-shadow:0 0 0 3px #89e7b517}.login-role{display:flex;gap:10px}.login-role-btn{flex:1;padding:9px;border:1px solid var(--login-line);border-radius:9px;background:transparent;color:var(--login-muted);font-size:12px!important}.login-role-btn.active{color:#b4edcb;border-color:#567e65;background:#23372c}.login-error{padding:10px 12px;border-radius:8px;background:#e8776f14;color:#f1aaa3;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.login-submit{display:flex;justify-content:space-between;align-items:center;margin-top:6px;min-height:46px;padding:12px 16px;border:1px solid transparent;border-radius:9px;background:#89e7b5;color:#082016;font-size:13px!important;font-weight:650!important;transition:background-color .15s}.login-submit:hover{background:#a1f0c4}.login-consent{margin:16px 0 0;text-align:center;font-size:11px;color:var(--login-muted);line-height:1.7}.login-consent a{color:#b4d8c2;text-underline-offset:3px}.login-guest-wrap{margin-top:24px;padding-top:17px;border-top:1px solid var(--login-line);text-align:center}.login-guest{min-height:36px;padding:6px 12px;border:0;background:transparent;color:var(--login-muted);font-size:12px!important}.login-guest span{margin-left:10px}@media (max-width: 800px){.login-header{height:76px;padding:0 24px}.login-layout{display:flex;flex-direction:column;justify-content:center;gap:28px;min-height:calc(100% - 76px);max-width:470px;padding:32px 24px}.login-intro{width:100%}.login-eyebrow{margin-bottom:0;font-size:11px;letter-spacing:.08em}.login-intro h1,.login-description,.login-board{display:none}.login-card{padding:28px 24px;border-radius:18px}.login-back{font-size:11px!important}.login-input{font-size:16px!important}}@media (prefers-reduced-motion: reduce){.login-input,.login-submit{transition:none}}.board-route-loading,.product-message-page{min-height:100vh;display:grid;place-items:center;padding:28px;color:#e9f2ed;background:radial-gradient(circle at 50% 0,#182a23,#080d0b 62%)}.board-route-loading{color:#9eaea6;font-size:14px}.product-message-card{width:min(620px,100%);padding:clamp(30px,5vw,60px);border:1px solid rgba(220,242,228,.14);border-radius:24px;background:#111a17db;box-shadow:0 32px 90px #00000042}.product-message-code,.product-message-eyebrow{color:#88e4b1;font-size:12px;font-weight:750;letter-spacing:.16em;text-transform:uppercase}.product-message-card h1{margin:16px 0;font-size:clamp(30px,4vw,48px);letter-spacing:-.04em}.product-message-card p{margin:0 0 28px;color:#9eaea6;font-size:16px;line-height:1.75}.product-message-actions{display:flex;flex-wrap:wrap;gap:10px}.product-message-card button{min-height:52px;padding:0 22px;border:1px solid #80dba9;border-radius:13px;color:#082016;background:#8ce7b5;font-weight:700;cursor:pointer}.product-message-card button.quiet{color:#dce9e1;border-color:#dcf2e42e;background:transparent}.classroom-route-shell{min-height:100vh;background:#0d1210}.classroom-route-back{position:fixed;z-index:20;top:14px;left:16px;min-height:48px;padding:0 16px;border:1px solid rgba(255,255,255,.14);border-radius:12px;color:#eef5ee;background:#0a0f0dd1;cursor:pointer}:root{--bg: #14161b;--bg-panel: #1c2027;--bg-panel-2: #21262f;--border: #2e3440;--text: #cdd6e4;--text-dim: #7c8698;--accent: #4da3ff;--green: #5fd068;--danger: #d65d5d;--canvas-bg: #171a20;--input-bg: #14171d;--hover: #2a313d;--overlay-bg: rgba(22, 25, 31, .94);--scroll-thumb: rgba(255, 255, 255, .14);--scroll-thumb-hover: rgba(255, 255, 255, .26);--float-bg: rgba(24, 27, 33, .97);--accent-fill: #1f4068;--accent-fill-fg: #d8eaff;--danger-bg: #4a2426;--danger-border: #6e3437;--danger-fg: #f0b9b9;--notice-bg: #2c2418;--notice-border: #4a3c20;--notice-fg: #e0b96a;--glass-bg: rgba(28, 32, 40, .55);--glass-border: rgba(255, 255, 255, .14);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-pill: 999px;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 13px;--fs-lg: 15px;--fs-xl: 18px}:root[data-theme=light]{--bg: #eef1f5;--bg-panel: #ffffff;--bg-panel-2: #f0f3f7;--border: #d7dce4;--text: #1f2733;--text-dim: #687385;--accent: #2f7ad6;--green: #2e9e4f;--danger: #cf463f;--canvas-bg: #f7f8fa;--input-bg: #ffffff;--hover: #e9edf3;--overlay-bg: rgba(255, 255, 255, .92);--scroll-thumb: rgba(0, 0, 0, .18);--scroll-thumb-hover: rgba(0, 0, 0, .32);--float-bg: rgba(255, 255, 255, .98);--accent-fill: #2f7ad6;--accent-fill-fg: #ffffff;--danger-bg: #fcebea;--danger-border: #f0b3ae;--danger-fg: #c0392b;--notice-bg: #fff6e0;--notice-border: #f0d79a;--notice-fg: #8a5a12;--glass-bg: rgba(255, 255, 255, .6);--glass-border: rgba(255, 255, 255, .7)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{overflow-x:hidden;background:var(--bg);color:var(--text);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:13px}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:8px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.empty-hint{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);z-index:30;pointer-events:none;text-align:center;color:var(--text-dim);-webkit-user-select:none;user-select:none}.empty-hint-title{font-size:17px;font-weight:600;color:var(--text);margin-bottom:6px;opacity:.75}.empty-hint-text{font-size:13px;line-height:1.7}.empty-hint-arrow{margin-top:10px;font-size:28px;color:var(--accent);opacity:.6;animation:empty-arrow 1.4s ease-in-out infinite}@keyframes empty-arrow{0%,to{transform:translate(0)}50%{transform:translate(8px)}}.intro-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;display:flex;align-items:center;justify-content:center;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:palette-preview-in .15s ease-out}.intro-card{width:380px;max-width:calc(100vw - 40px);background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px #00000080;padding:24px 24px 20px}.ai-build-mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;align-items:flex-start;justify-content:center;padding-top:34px;background:#00000075;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:background .5s ease,backdrop-filter .5s ease;animation:palette-preview-in .2s ease-out}.ai-build-mask.revealing{background:#0000001f;-webkit-backdrop-filter:none;backdrop-filter:none}.ai-build-mask.done{animation:ai-build-fade .5s ease forwards;pointer-events:none}@keyframes ai-build-fade{to{opacity:0}}.ai-build-card{min-width:280px;max-width:420px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:0 16px 48px #00000073;backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);padding:var(--space-4) var(--space-5)}.ai-build-title{font-size:var(--fs-lg);font-weight:700;color:var(--text);margin-bottom:var(--space-4)}.ai-build-name{color:var(--accent);font-weight:600}.ai-build-steps{list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.ai-build-step{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--fs-base)}.ai-build-step.pending{opacity:.4}.ai-build-step.active .ai-build-label{color:var(--text);font-weight:600}.ai-build-step.done .ai-build-label{color:var(--text-dim)}.ai-build-ico{width:18px;height:20px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--text-dim)}.ai-build-step.done .ai-build-ico{color:var(--green)}.ai-build-parts{display:block;margin-top:3px;color:var(--accent);font-size:var(--fs-sm)}.ai-build-spin{width:12px;height:12px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:ai-build-spin .7s linear infinite}@keyframes ai-build-spin{to{transform:rotate(360deg)}}.palette-item.ai-pick{border-color:var(--accent);background:var(--accent-fill);animation:ai-pick-pulse .9s ease-in-out infinite}@keyframes ai-pick-pulse{0%,to{box-shadow:0 0 #4da3ff80}50%{box-shadow:0 0 0 5px #4da3ff00}}.ai-fly-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;pointer-events:none}.ai-fly-chip{position:fixed;left:0;top:0;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-md);background:var(--glass-bg);border:1px solid var(--accent);color:var(--accent);font-size:22px;line-height:1;box-shadow:0 4px 16px #4da3ff66;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transform:translate(var(--fromX),var(--fromY));animation:ai-fly .95s cubic-bezier(.45,0,.15,1) forwards}@keyframes ai-fly{0%{transform:translate(var(--fromX),var(--fromY)) scale(.7);opacity:0}18%{opacity:.85}82%{transform:translate(var(--toX),var(--toY)) scale(.96);opacity:.8}to{transform:translate(var(--toX),var(--toY)) scale(1.3);opacity:0}}.help-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;display:flex;align-items:center;justify-content:center;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:palette-preview-in .15s ease-out}.help-card{width:460px;max-width:calc(100vw - 40px);max-height:calc(100vh - 80px);overflow-y:auto;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:0 20px 60px #00000080;padding:var(--space-5)}.help-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.help-title{font-size:var(--fs-xl);font-weight:700;color:var(--accent)}.help-close{background:none;border:none;color:var(--text-dim);font-size:var(--fs-lg);cursor:pointer;padding:var(--space-1);line-height:1}.help-close:hover{color:var(--text)}.help-section-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin:var(--space-4) 0 var(--space-2)}.help-keys{width:100%;border-collapse:collapse}.help-keys td{padding:5px 0;vertical-align:top}.help-keys td:first-child{width:42%;white-space:nowrap}.help-kbd{display:inline-block;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px var(--space-2);font-size:var(--fs-sm);font-family:inherit;color:var(--text)}.help-key-desc{color:var(--text-dim)}.help-tips{margin:0;padding-left:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);color:var(--text-dim);line-height:1.5}.help-replay{margin-top:var(--space-5);width:100%}.intro-logo{font-size:24px;font-weight:800;color:var(--accent);letter-spacing:.5px}.intro-sub{color:var(--text-dim);font-size:13px;margin-top:2px;margin-bottom:16px}.intro-head{display:flex;align-items:center;justify-content:space-between}.intro-skip{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px;padding:2px 4px}.intro-skip:hover{color:var(--text)}.intro-stage{display:flex;align-items:flex-start;gap:14px;min-height:92px}.intro-step-k{flex-shrink:0;height:46px;min-width:46px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:var(--accent);color:#fff;font-weight:700;font-size:15px;white-space:nowrap}.intro-step-body{flex:1;min-width:0}.intro-step-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:6px}.intro-step-text{font-size:13px;line-height:1.65;color:var(--text);opacity:.85}.intro-dots{display:flex;align-items:center;justify-content:center;gap:7px;margin:18px 0 16px}.intro-dot{width:7px;height:7px;padding:0;border:none;border-radius:999px;background:var(--border);cursor:pointer;transition:width .18s,background .18s}.intro-dot.active{width:18px;background:var(--accent)}.intro-nav{display:flex;align-items:center;justify-content:space-between;gap:10px}.tour-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:700}.tour-catch{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:auto}.tour-dim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;pointer-events:none}.tour-hole{position:fixed;border-radius:12px;box-shadow:0 0 0 9999px #0000008c;outline:2px solid var(--accent);outline-offset:0;pointer-events:none;transition:left .3s ease,top .3s ease,width .3s ease,height .3s ease}.tour-tip{position:fixed;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 50px #00000073;padding:16px 18px 14px;pointer-events:auto;animation:palette-preview-in .16s ease-out}.tour-tip-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:6px}.tour-tip-body{font-size:13px;line-height:1.65;color:var(--text);opacity:.85}.tour-dots{display:flex;gap:7px;margin:14px 0}.tour-dot{width:7px;height:7px;padding:0;border:none;border-radius:999px;background:var(--border);cursor:pointer;transition:width .18s,background .18s}.tour-dot.active{width:18px;background:var(--accent)}.tour-nav{display:flex;align-items:center;justify-content:space-between;gap:10px}.tour-nav-r{display:flex;gap:8px}.tour-skip{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px;padding:2px 4px}.tour-skip:hover{color:var(--text)}.toolbar{display:flex;align-items:center;gap:16px;padding:8px 14px;background:var(--bg-panel);border-bottom:1px solid var(--border)}.toolbar-brand{display:flex;align-items:baseline;gap:8px}.brand-mark{font-size:17px;font-weight:700;color:var(--accent);letter-spacing:.5px}.brand-sub{color:var(--text-dim);font-size:12px}.toolbar-group{display:flex;gap:6px;align-items:center}.toolbar-sep{width:1px;align-self:stretch;margin:4px 2px;background:var(--border)}.toolbar-scene-name{margin-left:auto;color:var(--text-dim);font-size:12px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{background:var(--bg-panel-2);color:var(--text);border:1px solid var(--border);border-radius:var(--r-sm);padding:5px var(--space-3);cursor:pointer;font-size:var(--fs-base);transition:background .12s,border-color .12s}.btn-icon{display:inline-flex;align-items:center;gap:5px}.btn:hover:not(:disabled){background:var(--hover);border-color:#3c4554}.btn:disabled{opacity:.4;cursor:default}.btn-primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--accent-fill-fg)}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-danger{width:100%;margin-top:var(--space-3);background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-fg)}.btn-danger:hover{filter:brightness(1.08)}.btn-mini{padding:1px 7px;font-size:var(--fs-xs)}.btn-ico{display:inline-flex;align-items:center;gap:5px}.btn-speed{padding:3px var(--space-2);font-size:var(--fs-sm)}.btn-speed.active{background:var(--accent-fill);border-color:var(--accent);color:var(--accent-fill-fg)}.menu-wrap{position:relative}.menu{position:absolute;top:calc(100% + 4px);left:0;z-index:100;min-width:260px;max-height:60vh;overflow-y:auto;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:0 8px 24px #00000073;padding:var(--space-1)}.menu-item{padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);cursor:pointer}.menu-item:hover{background:var(--hover)}.menu-item-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.menu-item-name{font-weight:600}.menu-item-desc{color:var(--text-dim);font-size:var(--fs-sm);margin-top:2px}.subject-capability-trigger{display:inline-flex;align-items:center;gap:7px;min-width:142px;justify-content:space-between}.subject-capability-kicker{color:var(--text-dim);font-size:11px}.subject-capability-trigger.btn-primary .subject-capability-kicker{color:inherit;opacity:.8}.subject-capability-popover{min-width:330px;padding:8px}.subject-capability-heading{display:flex;flex-direction:column;gap:3px;padding:8px 9px 10px;border-bottom:1px solid var(--border);margin-bottom:4px}.subject-capability-heading strong{font-size:13px}.subject-capability-heading span,.subject-domain-option small,.subject-plane-label{color:var(--text-dim);font-size:11px}.subject-domain-option{width:100%;display:grid;grid-template-columns:18px 1fr;align-items:start;gap:4px;border:0;border-radius:7px;background:transparent;color:var(--text);padding:8px 9px;text-align:left;cursor:pointer}.subject-domain-option:hover,.subject-domain-option.is-active{background:var(--hover)}.subject-domain-check{color:var(--accent);font-weight:700}.subject-domain-option strong,.subject-domain-option small{display:block}.subject-domain-option small{margin-top:2px}.subject-plane-section{display:flex;flex-direction:column;gap:6px;margin-top:5px;padding:9px;border-top:1px solid var(--border)}.subject-plane-section .plane-seg{width:100%}.subject-plane-section .plane-seg button{flex:1;padding-inline:8px}.main{flex:1;display:flex;min-height:0}.canvas-wrap{flex:1;position:relative;min-width:0}.canvas-wrap.board-input-active,.canvas-wrap.board-input-active *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.canvas-wrap.board-input-active :is(input,textarea,select,[contenteditable]:not([contenteditable=false]),[contenteditable]:not([contenteditable=false]) *){user-select:text;-webkit-user-select:text}.canvas-container{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--canvas-bg);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.canvas-container .konvajs-content,.canvas-container canvas{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.canvas-wrap.running:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:2px solid var(--accent);box-shadow:inset 0 0 16px #4da3ff2e;opacity:.75;z-index:60}.plane-badge{position:absolute;top:12px;right:14px;z-index:60;padding:4px 12px;border-radius:20px;background:var(--overlay-bg);border:1px solid #5bbfa0;color:#5bbfa0;font-size:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none}.run-badge{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:61;display:inline-flex;align-items:center;gap:7px;padding:4px 14px;border-radius:20px;background:var(--overlay-bg);border:1px solid var(--accent);color:var(--text);font-size:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.run-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);animation:run-pulse 1.1s ease-in-out infinite}.run-badge.paused:before{background:var(--notice-fg);animation:none}@keyframes run-pulse{0%,to{opacity:1;box-shadow:0 0 #5fd06880}50%{opacity:.6;box-shadow:0 0 0 5px #5fd06800}}.side-dock{position:absolute;right:0;top:50%;transform:translateY(-50%);height:min(82vh,760px);width:30px;z-index:47;transition:width .18s ease}.side-dock.open{width:300px}.side-tab{position:absolute;right:0;top:0;height:100%;width:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--float-bg);border:1px solid var(--border);border-right:none;border-radius:10px 0 0 10px;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:-2px 0 10px #00000040;transition:opacity .14s ease,background .14s ease}.side-tab:hover{background:var(--hover)}.side-dock.open .side-tab{opacity:0;pointer-events:none}.side-tab-icon{font-size:14px;color:var(--accent)}.side-tab-text{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:2px;font-size:12px;color:var(--text-dim)}.side-flyout{position:absolute;right:0;top:0;height:100%;width:300px;display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border);border-right:none;border-radius:12px 0 0 12px;box-shadow:-6px 0 24px #0006;transform:translate(100%);opacity:0;pointer-events:none;transition:transform .18s ease,opacity .18s ease;overflow:hidden}.side-dock.open .side-flyout{transform:translate(0);opacity:1;pointer-events:auto}.side-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;font-size:12px;font-weight:600;color:var(--text-dim);border-bottom:1px solid var(--border)}.side-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.sidebar-pane{flex-shrink:0;min-height:0;display:flex;flex-direction:column}.sidebar-pane-grow{flex:1}.sidebar-divider{height:6px;flex-shrink:0;cursor:ns-resize;background:var(--border);position:relative}.sidebar-divider:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:28px;height:2px;border-radius:2px;background:var(--text-dim);opacity:.5}.sidebar-divider:hover{background:var(--accent)}.palette{flex:1;padding:10px;overflow-y:auto;min-height:0}.palette-group{margin-bottom:10px}.palette-group-title{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}.palette-items{display:grid;grid-template-columns:1fr 1fr;gap:6px}.palette-item{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:6px;cursor:grab;-webkit-user-select:none;user-select:none;transition:border-color .12s,background .12s}.palette-item:hover{border-color:var(--accent);background:var(--hover)}.palette-item:active{cursor:grabbing}.palette-icon{width:20px;display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--accent)}.palette-tip{color:var(--text-dim);font-size:11px;line-height:1.5;padding-top:4px;border-top:1px dashed var(--border)}.palette-preview{position:fixed;z-index:300;pointer-events:none;background:var(--float-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 40px #0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:10px 12px 12px;animation:palette-preview-in .08s ease-out}@keyframes palette-preview-in{0%{opacity:0}to{opacity:1}}.palette-preview-demo{height:116px;border-radius:8px;background:radial-gradient(ellipse at 50% 40%,#1a1f29,#0f1218);border:1px solid #262c38;overflow:hidden;display:flex;align-items:center;justify-content:center}.palette-demo-svg{width:100%;height:100%;display:block}.palette-preview-title{margin-top:9px;font-size:13px;font-weight:600;color:var(--text)}.palette-preview-desc{margin-top:3px;font-size:11.5px;line-height:1.55;color:var(--text-dim)}.palette-dim{opacity:.4}.plane-seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.plane-seg button{border:none;background:transparent;color:var(--text-dim);padding:4px 14px;font-size:12px;cursor:pointer}.plane-seg button.on{background:var(--accent-fill);color:var(--accent-fill-fg, #fff)}.prop-panel{flex:1;overflow-y:auto;position:relative;min-height:0}.prop-panel-locked .prop-body{opacity:.55;pointer-events:none}.prop-locked-hint{position:sticky;top:0;z-index:5;background:var(--notice-bg);color:var(--notice-fg);font-size:12px;padding:6px 12px;border-bottom:1px solid var(--notice-border)}.prop-body{padding:10px 12px 20px}.prop-section{margin-bottom:14px}.prop-section-title{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;border-bottom:1px solid var(--border);color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:1px;padding:2px 0 5px;margin-bottom:8px;cursor:pointer;text-align:left}.prop-section-title:hover{color:var(--text)}.prop-section-caret{display:inline-flex;transition:transform .15s}.prop-section-title.collapsed{margin-bottom:0}.prop-section-title.collapsed .prop-section-caret{transform:rotate(-90deg)}.prop-hint{color:var(--text-dim);font-size:12px;line-height:1.5;margin-top:4px}.field{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.field-label{color:var(--text-dim);flex-shrink:0}.field-scrub{cursor:ew-resize;user-select:none;-webkit-user-select:none;border-bottom:1px dotted transparent}.field-scrub:hover{color:var(--text);border-bottom-color:var(--text-dim)}.field-input{display:flex;align-items:center;gap:5px}.field input[type=number],.field input[type=text]{width:110px;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);padding:var(--space-1) var(--space-2);font-size:var(--fs-base)}.field input[type=text]{width:150px}.field input:focus{outline:none;border-color:var(--accent)}.field-select{width:150px;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);padding:var(--space-1) var(--space-2);font-size:var(--fs-base);cursor:pointer}.field-select:focus{outline:none;border-color:var(--accent)}.field input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.field input[type=number]::-webkit-outer-spin-button,.field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field-unit{color:var(--text-dim);font-size:var(--fs-xs);width:34px}.field-check{justify-content:flex-start;cursor:pointer}.field-check input{accent-color:var(--accent)}.field-toggle{cursor:pointer}.field-toggle .field-label{color:var(--text)}.toggle{position:relative;flex-shrink:0;width:38px;height:21px;border-radius:21px;background:var(--input-bg);border:1px solid var(--border);transition:background .16s,border-color .16s}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle input{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer}.toggle-knob{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000059;transition:transform .16s ease}.toggle.on .toggle-knob{transform:translate(17px)}.attached-probe{background:#181c23;border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin-bottom:8px}.attached-probe-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.attached-probe-head span{font-weight:600;color:#9fd0ff}.attached-add{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.playback-bar{display:flex;align-items:center;gap:18px;padding:8px 14px;background:var(--bg-panel);border-top:1px solid var(--border)}.playback-controls{display:flex;gap:6px}.playback-time{font-variant-numeric:tabular-nums;color:var(--text-dim);min-width:90px}.playback-time strong{color:var(--text);font-size:14px}.playback-speed{display:flex;align-items:center;gap:4px;color:var(--text-dim)}.playback-status{margin-left:auto;color:var(--text-dim);font-size:12px}.overlay{position:absolute;background:var(--overlay-bg);border:1px solid var(--border);border-radius:var(--r-md);padding:10px var(--space-3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay-title{color:var(--text-dim);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-2)}.energy-overlay{left:46px;bottom:56px;width:260px}.newton-card{top:60px;right:46px;width:188px;font-size:var(--fs-sm)}.newton-row+.newton-row{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border)}.newton-name{font-weight:600;margin-bottom:var(--space-1)}.newton-line{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);color:var(--text-dim);padding:1px 0}.newton-val{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.newton-verdict{margin-top:var(--space-1);font-weight:600}.newton-verdict.ok{color:var(--green)}.newton-verdict.off{color:var(--notice-fg)}.newton-hint{margin-top:var(--space-1);color:var(--text-dim);font-size:var(--fs-xs)}.timer-panel{top:60px;left:50%;margin-left:-108px;width:216px;text-align:center}.timer-title{display:flex;align-items:center;justify-content:space-between}.timer-title-label{display:inline-flex;align-items:center;gap:5px}.timer-close{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:var(--fs-sm);line-height:1;padding:0 2px}.timer-close:hover{color:var(--text)}.timer-stepper{display:flex;align-items:center;justify-content:center;gap:var(--space-1);margin:var(--space-1) 0 var(--space-3)}.timer-unit{display:flex;flex-direction:column;align-items:center}.timer-arrow{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:2px 10px;line-height:0;border-radius:var(--r-sm)}.timer-arrow:hover{color:var(--accent)}.timer-num{font-size:46px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.05;min-width:66px;text-align:center}.timer-colon{font-size:40px;font-weight:700;color:var(--text-dim);align-self:center;padding:0 2px}.timer-stepper.low .timer-num,.timer-stepper.done .timer-num{color:var(--danger)}.timer-presets{display:flex;gap:5px;justify-content:center;margin-bottom:var(--space-2)}.timer-chip{flex:1;border:1px solid var(--border);background:transparent;color:var(--text-dim);border-radius:var(--r-sm);padding:6px 0;font-size:var(--fs-sm);cursor:pointer}.timer-chip:hover{color:var(--text)}.timer-chip.on{background:var(--accent-fill);color:var(--accent-fill-fg, #fff);border-color:transparent}.timer-controls{display:flex;gap:var(--space-2)}.timer-controls .btn{flex:1}.timer-done{animation:timer-flash .7s ease-in-out 4}.lesson-share-panel{top:60px;left:50%;margin-left:-150px;width:300px}.share-section{margin-bottom:var(--space-2)}.share-section-label{color:var(--text-dim);font-size:var(--fs-sm);margin-bottom:var(--space-2)}.share-code-row{display:flex;gap:var(--space-2)}.share-code-input{flex:1;min-width:0;background:transparent;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);padding:6px 10px;font-size:var(--fs-lg);letter-spacing:2px;font-variant-numeric:tabular-nums;text-transform:uppercase}.share-title-input{width:100%;background:transparent;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);padding:6px 10px;font-size:var(--fs-base);margin-bottom:var(--space-2)}.share-check{display:flex;align-items:center;gap:6px;color:var(--text-dim);font-size:var(--fs-sm);margin-bottom:var(--space-2);cursor:pointer}.share-create{width:100%}.share-issued{font-size:30px;font-weight:700;letter-spacing:3px;color:var(--accent);text-align:center;font-variant-numeric:tabular-nums;margin:var(--space-2) 0 var(--space-3);-webkit-user-select:all;user-select:all}.share-hint{color:var(--text-dim);font-size:var(--fs-xs);margin-top:var(--space-2);line-height:1.5}.share-divider{border-top:1px solid var(--border);margin:var(--space-3) 0}.lesson-source-banner{position:absolute;top:52px;left:50%;margin-left:-220px;max-width:440px;display:flex;align-items:center;gap:var(--space-2);background:var(--overlay-bg);border:1px solid var(--border);border-radius:var(--r-pill);padding:4px 12px;font-size:var(--fs-sm);color:var(--text-dim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:30}.lesson-source-text{color:var(--text);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tutor-panel{top:60px;right:46px;width:320px;display:flex;flex-direction:column;max-height:70vh}.tutor-body{flex:1;overflow-y:auto;min-height:120px;max-height:46vh;display:flex;flex-direction:column;gap:8px;padding:4px 2px}.tutor-empty{color:var(--text-dim);font-size:var(--fs-sm);line-height:1.6;padding:12px 4px}.tutor-turn{font-size:var(--fs-sm);line-height:1.55;padding:7px 10px;border-radius:var(--r-md);max-width:92%;white-space:pre-wrap;word-break:break-word}.tutor-user{align-self:flex-end;background:var(--accent-fill);color:var(--accent-fill-fg, #fff)}.tutor-assistant{align-self:flex-start;background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text)}.tutor-action{align-self:center;color:var(--text-dim);font-size:var(--fs-xs);padding:2px 8px}.tutor-suggests{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.tutor-chip{border:1px solid var(--border);background:transparent;color:var(--text-dim);border-radius:var(--r-pill);padding:4px 10px;font-size:var(--fs-xs);cursor:pointer}.tutor-chip:hover{color:var(--text);border-color:var(--accent)}.tutor-input-row{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.tutor-input{flex:1;min-width:0;background:transparent;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);padding:7px 10px;font-size:var(--fs-sm)}.review-board-panel{top:60px;left:50%;margin-left:-160px;width:320px;max-height:72vh;overflow-y:auto}.review-code-row{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);padding:8px 10px;margin-bottom:6px;cursor:pointer;font-size:var(--fs-sm)}.review-code-row:hover{border-color:var(--accent)}.review-code-code{color:var(--text-dim);font-variant-numeric:tabular-nums;letter-spacing:1px}.review-h{font-weight:600;margin:8px 0}.review-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:var(--space-3)}.review-kpi{text-align:center;border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 2px}.review-kpi b{display:block;font-size:var(--fs-lg);color:var(--accent)}.review-kpi span{font-size:10px;color:var(--text-dim)}.review-sub{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;margin:10px 0 6px}.review-hot,.review-stu{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.review-hot-n{color:var(--accent);font-variant-numeric:tabular-nums}.review-stu-name{color:var(--text)}.review-stu-meta{color:var(--text-dim);font-size:var(--fs-xs)}@keyframes timer-flash{0%,to{box-shadow:0 0 0 0 transparent;border-color:var(--border)}50%{box-shadow:0 0 0 3px var(--danger);border-color:var(--danger)}}.energy-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}.energy-label{width:78px;flex-shrink:0;color:var(--text-dim);font-size:12px}.energy-row.emph .energy-label,.energy-row.emph .energy-value{color:var(--accent);font-weight:600}.energy-row.emph .energy-track{outline:1px solid var(--accent);outline-offset:1px}.energy-track{flex:1;height:8px;background:var(--input-bg);border-radius:4px;overflow:hidden}.energy-fill{height:100%;border-radius:4px;transition:width .08s linear}.energy-value{width:58px;text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.chart-overlay{right:46px;bottom:40px}.chart-resize{position:absolute;right:3px;bottom:3px;width:16px;height:16px;cursor:nwse-resize;touch-action:none;border-radius:0 0 4px;background:repeating-linear-gradient(-45deg,transparent 0 2px,var(--text-dim) 2px 3px);opacity:.5}.chart-resize:hover{opacity:.9}.theory-overlay{right:46px;bottom:250px;min-width:200px;max-width:280px}.theory-row{margin-top:6px}.theory-row:first-of-type{margin-top:2px}.theory-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.theory-name{font-size:12px;color:var(--text)}.theory-val{font-size:13px;font-weight:600;color:#5e9af0}.theory-formula{font-size:10px;color:#7c8698;margin-top:1px;word-break:break-all}.theory-meas{display:inline-block;font-size:11px;margin-top:2px;color:#7c8698}.theory-meas.ok{color:#5fd068}.chart-reset{margin-left:auto;padding:1px 7px;font-size:11px;line-height:1.5;color:var(--text);background:var(--glass-bg);border:1px solid var(--border);border-radius:4px;cursor:pointer}.chart-reset:hover{border-color:var(--accent)}.ai-toggle{position:absolute;bottom:56px;left:50%;transform:translate(-50%);z-index:51;min-height:48px;padding:10px 18px;border-radius:999px;background:var(--glass-bg);border-color:var(--glass-border);box-shadow:0 8px 28px #00000047}.ai-toggle:hover:not(:disabled){border-color:var(--accent)}.ai-toggle.active{background:var(--accent-fill)}.ai-bar{position:absolute;bottom:116px;left:50%;transform:translate(-50%);display:flex;flex-wrap:nowrap;align-items:center;gap:8px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:10px;padding:8px 10px;z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:min(720px,calc(100% - 28px))}.ai-bar .ai-badge,.ai-bar .ai-grip,.ai-bar .btn{flex-shrink:0;white-space:nowrap}.ai-bar .btn{display:inline-flex;align-items:center;gap:5px}.ai-grip{cursor:move;color:var(--text-dim);font-size:15px;padding:0 2px;-webkit-user-select:none;user-select:none;flex-shrink:0}.ai-grip:hover{color:var(--text)}.ai-badge{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-weight:700;font-size:12px;flex-shrink:0}.ai-bar input[type=text]{flex:1 1 auto;min-width:120px;background:var(--input-bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 10px;font-size:13px}.ai-bar input[type=text]:focus{outline:none;border-color:var(--accent)}.ai-status{position:absolute;bottom:calc(100% + 6px);left:0;color:var(--text-dim);font-size:12px;white-space:nowrap;background:var(--overlay-bg);border:1px solid var(--border);border-radius:6px;padding:4px 10px}.ai-settings{position:absolute;bottom:calc(100% + 6px);right:0;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:8px;padding:12px;box-shadow:0 8px 24px #00000073;width:330px}.ai-settings select{background:var(--input-bg);border:1px solid var(--border);border-radius:5px;color:var(--text);padding:4px 8px}.zoom-control{position:absolute;right:14px;bottom:14px;z-index:48;display:flex;align-items:center;gap:4px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:8px;padding:4px 7px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.zoom-readout{font-size:12px;color:var(--text-dim);min-width:34px;text-align:center;font-variant-numeric:tabular-nums}.canvas-tools-tl{position:absolute;top:14px;left:14px;z-index:48;display:flex;gap:8px}.force-btn{position:relative;width:52px;height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.force-btn:hover{border-color:#3c4554;background:var(--hover)}.force-btn.active{border-color:var(--accent);background:var(--accent-fill);color:var(--accent-fill-fg)}.force-btn-icon{font-size:18px;line-height:1}.force-btn-key{position:absolute;top:4px;right:6px;font-size:9.5px;font-weight:600;line-height:1;color:inherit;opacity:.4}.force-btn-label{font-size:11px}.edit-tools{position:absolute;top:14px;right:14px;z-index:48;display:flex;align-items:center;gap:4px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:8px;padding:5px 8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tool-btn{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:5px;color:var(--text);padding:3px 9px;font-size:12px;cursor:pointer}.tool-btn:hover{background:var(--hover)}.tool-btn.active{background:var(--accent-fill);border-color:var(--accent);color:var(--accent-fill-fg)}.tool-btn.ink-toggle{display:inline-flex;align-items:center;gap:5px}.tool-divider{width:1px;height:18px;background:var(--border);margin:0 4px}.tool-label{color:var(--text-dim);font-size:12px}.tool-anchor{position:relative;display:inline-flex;align-items:center}.board-panel{position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%);z-index:500;display:flex;flex-direction:column;gap:8px;padding:9px 10px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #00000052;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap}.board-panel:before{content:"";position:absolute;top:-5px;left:50%;transform:translate(-50%) rotate(45deg);width:9px;height:9px;background:var(--overlay-bg);border-left:1px solid var(--border);border-top:1px solid var(--border)}.board-panel-row{display:flex;align-items:center;gap:5px}.board-panel-sub{display:flex;flex-direction:column;gap:7px;padding-top:8px;border-top:1px solid var(--border)}.board-sub-label{width:28px;color:var(--text-dim);font-size:11px}.board-tool{display:inline-flex;align-items:center;gap:4px;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:4px 11px;font-size:12px;cursor:pointer}.board-tool:hover{background:var(--hover)}.board-tool.active{background:var(--accent-fill);border-color:var(--accent);color:var(--accent-fill-fg)}.board-tool:disabled{opacity:.4;cursor:default}.board-width{display:inline-flex;align-items:center;justify-content:center;width:28px;height:26px;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:6px;cursor:pointer}.board-width:hover{background:var(--hover)}.board-width.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.board-width-dot{display:inline-block;border-radius:50%;background:var(--text)}.board-swatch{width:20px;height:20px;padding:0;border-radius:50%;border:1px solid var(--border);cursor:pointer}.board-swatch.active{box-shadow:0 0 0 2px var(--overlay-bg),0 0 0 3px var(--accent)}.board-swatch-auto{display:inline-flex;align-items:center;justify-content:center;background:var(--bg-panel-2);color:var(--text-dim);font-size:11px}.ink-choice{background:var(--overlay-bg);border:1px solid var(--accent);border-radius:10px;padding:8px 10px;box-shadow:0 6px 24px #00000059;-webkit-user-select:none;user-select:none}.ink-choice-title{color:var(--text-dim);font-size:11px;margin-bottom:6px;text-align:center}.ink-choice-row{display:flex;gap:6px}.ink-choice-btn{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:56px;padding:8px 10px;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:13px;cursor:pointer}.ink-choice-btn:hover{background:var(--accent-fill);border-color:var(--accent);color:var(--accent-fill-fg)}.ink-choice-glyph{font-size:20px;line-height:1}.ink-correct{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0000004d;white-space:nowrap;-webkit-user-select:none;user-select:none;animation:ink-correct-in .12s ease-out}@keyframes ink-correct-in{0%{opacity:0;transform:translate(-50%,-150%)}}.ink-correct-label{color:var(--text-dim);font-size:12px}.ink-correct-chips{display:inline-flex;gap:4px}.ink-chip{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:5px;padding:3px 9px;font-size:12px;color:var(--text);cursor:pointer}.ink-chip:hover{border-color:var(--accent)}.ink-chip.active{background:var(--accent-fill);border-color:var(--accent);color:var(--accent-fill-fg, #fff)}.ink-correct-btn{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:5px;color:var(--text);padding:2px 8px;font-size:12px;cursor:pointer}.ink-correct-btn:hover{background:var(--accent-fill);border-color:var(--accent);color:var(--accent-fill-fg)}.ink-correct-btn.danger:hover{background:#e5484d;border-color:#e5484d;color:#fff}.ink-correct-btn:disabled{opacity:.4;cursor:default}.ink-param-chip .ink-param-val{font-weight:600;color:var(--text);font-size:13px}.ink-param-chip .ink-param-arrow{color:var(--text-dim)}.ink-param-chip .ink-param-target{max-width:200px;overflow:hidden;text-overflow:ellipsis}.knob-tune-chip .knob-param{max-width:160px;overflow:hidden;text-overflow:ellipsis;font-size:12px}.knob-tune-chip .knob-step{min-width:28px;font-size:15px;line-height:1;padding:3px 6px}.knob-tune-chip .knob-val{min-width:58px;text-align:center;font-weight:700;font-size:14px;color:var(--text);padding:3px 8px;border-radius:5px;cursor:ew-resize;touch-action:none;background:var(--bg-panel-2);border:1px solid transparent}.knob-tune-chip .knob-val:hover{border-color:var(--border)}.knob-tune-chip .knob-val-input{width:64px;font-size:14px;padding:3px 6px;border-radius:5px;border:1px solid var(--accent);background:var(--bg-panel-2);color:var(--text);text-align:center}.admin-app{height:100vh;display:flex;flex-direction:column;background:var(--canvas-bg);color:var(--text)}.admin-app-bar{height:48px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border)}.admin-app-title{font-weight:600;color:var(--text)}.admin-app-user{display:flex;align-items:center;gap:10px;color:var(--text-dim);font-size:14px}.admin-boot{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-dim);background:var(--canvas-bg)}.admin-login{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--canvas-bg)}.admin-login-card{display:flex;flex-direction:column;gap:12px;width:300px;padding:28px;background:var(--input-bg);border:1px solid var(--border);border-radius:14px}.admin-login-card h2{margin:0 0 6px;color:var(--text);font-size:18px;text-align:center}.admin-login-card input{padding:9px 12px;border-radius:8px;border:1px solid var(--border);background:var(--canvas-bg);color:var(--text)}.admin-login-err{color:#e5484d;font-size:13px}.admin-console{flex:1;display:flex;min-height:0;background:var(--canvas-bg)}.admin-gate{margin:auto;color:var(--text-dim)}.admin-nav{width:140px;flex:none;border-right:1px solid var(--border);padding:12px 8px;display:flex;flex-direction:column;gap:4px}.admin-nav-btn{text-align:left;padding:8px 12px;border-radius:8px;border:none;background:transparent;color:var(--text);cursor:pointer;font-size:14px}.admin-nav-btn:hover{background:var(--hover)}.admin-nav-btn.active{background:var(--accent-fill);color:var(--accent-fill-fg, #fff)}.admin-main{flex:1;overflow:auto;padding:20px 24px}.admin-loading,.admin-empty{color:var(--text-dim);padding:16px 0;text-align:center}.admin-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.admin-kpi{background:var(--input-bg);border:1px solid var(--border);border-radius:12px;padding:18px}.admin-kpi-v{font-size:28px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.admin-kpi-l{color:var(--text-dim);font-size:13px;margin-top:4px}.admin-section{max-width:900px}.admin-create{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}.admin-roster{width:100%;background:transparent;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);padding:8px 10px;font-size:var(--fs-sm);font-family:inherit;resize:vertical;margin-bottom:10px}.admin-hint{color:var(--text-dim);font-size:var(--fs-xs);line-height:1.6;margin:6px 0 14px}.admin-create input{padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--input-bg);color:var(--text)}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;color:var(--text-dim);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--border);font-size:12px}.admin-table td{padding:9px 10px;border-bottom:1px solid var(--border);color:var(--text)}.admin-section-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.admin-section-hint{font-size:12.5px;color:var(--text-dim)}.admin-row-click{cursor:pointer}.admin-row-click:hover td{background:var(--hover)}.admin-cell-msg{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-stack{margin:0;padding:10px 12px;background:var(--bg-panel-2, rgba(0, 0, 0, .25));border-radius:8px;font-size:12px;line-height:1.6;color:var(--text-dim);white-space:pre-wrap;word-break:break-all;max-height:260px;overflow:auto}.admin-status{padding:1px 8px;border-radius:999px;font-size:12px}.admin-status.active{background:#2ea06929;color:#3fb27f}.admin-status.suspended{background:#e5484d29;color:#e5484d}.admin-over{color:#e5484d;font-weight:600}.admin-risk-warn{color:#d9962a;font-weight:600;font-size:12px}.admin-alerts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.admin-alert{padding:6px 12px;border-radius:8px;font-size:13px;background:#d9962a24;color:#d9962a;border:1px solid rgba(217,150,42,.4)}.admin-h3{margin:10px 0;color:var(--text)}.admin-h4{margin:18px 0 8px;color:var(--text-dim);font-size:13px}.admin-org-edit{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:12px;background:var(--input-bg);border-radius:10px}.admin-org-edit label{color:var(--text-dim);font-size:13px;display:inline-flex;align-items:center;gap:6px}.admin-org-edit input{width:90px;padding:5px 8px;border-radius:6px;border:1px solid var(--border);background:var(--canvas-bg);color:var(--text)}.admin-org-usage{color:var(--text);font-size:13px}.admin-usage-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.admin-usage-total{color:var(--text-dim);font-size:13px}.admin-usage-chart{display:flex;align-items:flex-end;gap:3px;height:160px;padding:8px;background:var(--input-bg);border-radius:10px;overflow-x:auto}.admin-bar-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:20px}.admin-bar{width:14px;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px}.admin-bar-x{font-size:9px;color:var(--text-dim);margin-top:3px;white-space:nowrap}.admin-feature-list{display:flex;flex-direction:column;gap:8px;max-width:480px}.admin-feature-row{display:flex;align-items:center;gap:10px}.admin-feature-name{width:80px;color:var(--text-dim);font-size:13px}.admin-feature-track{flex:1;height:10px;background:var(--input-bg);border-radius:5px;overflow:hidden}.admin-feature-fill{height:100%;background:var(--accent);border-radius:5px}.admin-feature-val{width:80px;text-align:right;color:var(--text);font-size:13px;font-variant-numeric:tabular-nums}.voice-fab-wrap{position:fixed;right:16px;bottom:88px;z-index:350;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.voice-fab{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid var(--border);background:var(--overlay-bg);color:var(--text);cursor:pointer;box-shadow:0 4px 16px #0000004d;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:14px}.voice-fab:hover{border-color:var(--accent)}.voice-fab.listening{background:#e5484d;color:#fff;border-color:#e5484d;animation:voice-pulse 1s ease-in-out infinite}@keyframes voice-pulse{0%,to{box-shadow:0 0 #e5484d80}50%{box-shadow:0 0 0 8px #e5484d00}}.voice-transcript{max-width:280px;padding:6px 12px;border-radius:10px;background:var(--overlay-bg);border:1px solid var(--border);color:var(--text);font-size:13px;box-shadow:0 2px 8px #00000040}.ocr-busy{transform:translate(-50%,-170%);display:inline-flex;align-items:center;gap:6px;pointer-events:none}.ocr-busy-ring{width:14px;height:14px;border-radius:50%;border:2px solid var(--accent);border-top-color:transparent;animation:ocr-spin .7s linear infinite}.ocr-busy-text{font-size:12px;color:var(--text);background:var(--overlay-bg);padding:2px 8px;border-radius:6px;box-shadow:0 2px 8px #00000040;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}@keyframes ocr-spin{to{transform:rotate(360deg)}}.bound-param-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0}.bound-param-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:12px;color:var(--accent-fill-fg, var(--text));background:var(--accent-fill);border:1px solid var(--accent)}.board-live{display:inline-flex;align-items:center;gap:5px;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;box-shadow:0 2px 8px #00000040;transition:color .15s,background .15s}.board-live-dot{width:6px;height:6px;border-radius:50%;flex:none}.board-live.synced{background:#2ea06929;color:#3fb27f;border:1px solid rgba(63,178,127,.5)}.board-live.synced .board-live-dot{background:#3fb27f}.board-live.diverged{background:var(--accent-fill);color:var(--accent-fill-fg, #fff);border:1px solid var(--accent);animation:board-live-pulse 1.4s ease-in-out infinite}.board-live.diverged .board-live-dot{background:currentColor}@keyframes board-live-pulse{0%,to{box-shadow:0 2px 8px #00000040}50%{box-shadow:0 0 0 4px #4da3ff2e,0 2px 8px #00000040}}.board-predict{display:inline-flex;align-items:center;gap:5px;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;box-shadow:0 2px 8px #00000040;transition:color .15s,background .15s}.board-predict.pending{background:var(--bg-panel);color:var(--fg-muted, #9aa4b2);border:1px dashed rgba(150,160,175,.55)}.board-predict.hit{background:#2ea06929;color:#3fb27f;border:1px solid rgba(63,178,127,.5)}.board-predict.miss{background:#f0ad4e24;color:#e8a33d;border:1px solid rgba(232,163,61,.55)}.board-predict-make{border:none;background:transparent;color:inherit;cursor:pointer;font-size:12px;line-height:1;padding:0 1px;pointer-events:auto}.board-predict-make:hover{color:var(--accent, #4da3ff)}.context-chip{position:absolute;top:48px;left:50%;transform:translate(-50%);z-index:60;display:inline-flex;align-items:center;gap:7px;padding:3px 6px 3px 10px;border-radius:20px;font-size:12px;background:var(--overlay-bg);border:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap;-webkit-user-select:none;user-select:none}.context-chip-tag{font-size:11px;padding:1px 7px;border-radius:10px;background:var(--accent-fill, rgba(77, 163, 255, .18));color:var(--accent, #4da3ff);flex:none}.context-chip-topic{color:var(--text)}.context-chip-progress{color:var(--fg-muted, #9aa4b2);font-size:11.5px;max-width:260px;overflow:hidden;text-overflow:ellipsis}.context-chip-x{border:none;background:transparent;color:inherit;cursor:pointer;opacity:.55;padding:1px 4px;font-size:11px}.context-chip-x:hover{opacity:1;color:#e05656}.context-chip-body{display:inline-flex;align-items:center;gap:7px;background:none;border:none;padding:0;color:inherit;font:inherit;cursor:pointer}.context-pop{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:240px;max-width:340px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:normal;text-align:left;z-index:61}.context-pop-title{font-size:12px;color:var(--text-dim);margin-bottom:6px}.context-pop-syms{margin:0;padding-left:18px;font-size:13px;line-height:1.7}.context-pop-empty{font-size:12px;color:var(--text-dim)}.context-pop-concepts{margin-top:6px;font-size:12px;color:var(--text-dim)}.context-pop-note{margin-top:8px;font-size:11px;color:var(--text-dim);opacity:.75}.ink-ctx-tag{font-size:10px;padding:1px 6px;border-radius:8px;border:1px solid var(--accent);color:var(--accent);white-space:nowrap;flex:none}.stage-rail{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-panel);border-top:1px solid var(--border);overflow-x:auto}.stage-rail-title{font-size:12px;color:var(--fg-muted, #9aa4b2);flex:none}.stage-chip{display:inline-flex;align-items:center;border-radius:8px;background:var(--bg-panel-2);border:1px solid var(--border);white-space:nowrap;flex:none}.stage-chip.active{border-color:var(--accent, #4da3ff)}.stage-chip-load{border:none;background:transparent;color:inherit;cursor:pointer;padding:5px 10px;font-size:12px}.stage-chip-x{border:none;background:transparent;color:inherit;cursor:pointer;padding:5px 6px;opacity:.55}.stage-chip-x:hover{opacity:1;color:#e05656}.stage-chip-add{padding:5px 10px;cursor:pointer;border-style:dashed;background:transparent;color:var(--fg-muted, #9aa4b2);font-size:12px}.stage-chip-add:hover{color:inherit;border-color:var(--accent, #4da3ff)}html[data-posture=class] .playback-bar{padding:12px 18px;gap:24px}html[data-posture=class] .playback-bar button{font-size:17px;padding:10px 18px}html[data-posture=class] .stage-chip-load{font-size:15px;padding:9px 16px}html[data-posture=class] .kf-chip{font-size:14px;padding:8px 14px}html[data-posture=class] .ink-dock .tool-btn{font-size:15px;padding:9px 16px}html[data-posture=class] .ink-dock .board-width,html[data-posture=class] .ink-dock .board-swatch{transform:scale(1.25);margin:0 3px}.kf-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-panel);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.kf-nav{flex:none;width:28px;height:28px;border-radius:7px;background:var(--bg-panel-2);border:1px solid var(--border);color:var(--text);font-size:16px;cursor:pointer}.kf-nav:hover:not(:disabled){background:var(--hover)}.kf-nav:disabled{opacity:.35;cursor:default}.kf-strip{display:flex;gap:6px;overflow-x:auto;flex:1;padding-bottom:2px}.kf-chip{flex:none;display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;white-space:nowrap}.kf-chip:hover{background:var(--hover)}.kf-chip.active{background:linear-gradient(135deg,var(--accent),#6db3ff);border-color:transparent;color:#fff}.kf-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#7f7f7f40;font-size:11px;font-weight:700}.kf-chip.active .kf-num{background:#ffffff4d}.kf-chip-text{display:flex;flex-direction:column;line-height:1.2}.kf-label{font-size:12px;font-weight:600}.kf-detail{font-size:10px;opacity:.85}.kf-now{flex:none;font-size:12px;color:var(--text-dim)}.kf-close{flex:none;background:none;border:none;color:var(--text-dim);font-size:14px;cursor:pointer;padding:2px 6px;border-radius:5px}.kf-close:hover{background:var(--hover);color:var(--text)}.explore-cap{position:absolute;z-index:47;transform:translate(-50%);display:inline-flex;align-items:center;gap:5px;background:linear-gradient(135deg,var(--accent),#6db3ff);border:none;color:#fff;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px #4da3ff73;white-space:nowrap;transition:transform .1s ease,box-shadow .1s ease;animation:explore-pop-in .14s ease-out}.explore-cap:hover{transform:translate(-50%) translateY(-1px);box-shadow:0 6px 18px #4da3ff8c}.explore-pop{position:absolute;z-index:47;width:232px;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:0 0 10px;box-shadow:0 12px 40px #00000080;overflow:hidden;animation:explore-pop-in .14s ease-out}@keyframes explore-pop-in{0%{opacity:0;transform:translateY(4px)}}.explore-pop-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:linear-gradient(135deg,#4da3ff2e,#4da3ff0d);border-bottom:1px solid var(--border);cursor:move;-webkit-user-select:none;user-select:none}.explore-pop-title{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--text)}.explore-pop-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent)}.explore-pop-x{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;line-height:1;padding:2px 4px;border-radius:5px}.explore-pop-x:hover{background:var(--hover);color:var(--text)}.explore-pop-params{display:flex;flex-wrap:wrap;gap:7px;padding:12px 12px 4px}.explore-q{flex:1 1 calc(50% - 4px);background:var(--bg-panel-2);border:1px solid var(--border);border-radius:9px;color:var(--text);padding:9px 8px;font-size:13px;font-weight:500;cursor:pointer;transition:transform .08s ease,background .1s ease}.explore-q:hover{background:var(--hover);transform:translateY(-1px)}.explore-q.active{background:linear-gradient(135deg,var(--accent),#6db3ff);border-color:transparent;color:#fff}.explore-adjust-toggle{display:block;width:calc(100% - 24px);margin:8px 12px 0;background:none;border:none;color:var(--accent);font-size:12px;text-align:left;cursor:pointer;padding:2px 0}.explore-adjust-toggle:hover{text-decoration:underline}.explore-adjust{margin:6px 12px 0;padding-top:8px;border-top:1px solid var(--border)}.explore-metric{display:flex;align-items:center;gap:6px;margin:6px 0}.explore-metric-label{font-size:12px;color:var(--text-dim)}.explore-metric select{flex:1;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:4px 6px;font-size:12px}.explore-rerun{width:100%;margin-top:6px;background:var(--accent-fill);border:1px solid var(--accent);color:var(--accent-fill-fg);border-radius:8px;padding:6px;font-size:13px;font-weight:600;cursor:pointer}.explore-rerun:hover{filter:brightness(1.08)}.explore-tabs{display:flex;gap:4px;padding:8px 12px 0}.explore-tab{flex:1;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:7px;color:var(--text-dim);padding:5px;font-size:12px;cursor:pointer}.explore-tab.active{background:linear-gradient(135deg,var(--accent),#6db3ff);border-color:transparent;color:#fff;font-weight:600}.explore-pop-hint{padding:7px 12px 0;font-size:11px;color:var(--text-dim)}.solve-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:18;pointer-events:none}.solve-target{position:absolute;width:34px;height:34px;transform:translate(-50%,-50%);cursor:grab;pointer-events:auto;touch-action:none}.solve-target:active{cursor:grabbing}.solve-target-ring,.solve-target-dot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%}.solve-target-ring{width:30px;height:30px;border:2px solid var(--accent);box-shadow:0 0 10px #4da3ff99;animation:solve-pulse 1.6s ease-in-out infinite}.solve-target-dot{width:7px;height:7px;background:var(--accent)}.solve-target.miss .solve-target-ring{border-color:#e5484d;box-shadow:0 0 10px #e5484d99}.solve-target.miss .solve-target-dot{background:#e5484d}@keyframes solve-pulse{50%{box-shadow:0 0 16px #4da3ffd9}}.solve-card{position:absolute;transform:translate(24px,-50%);pointer-events:auto;background:var(--overlay-bg);border:1px solid var(--border);border-radius:10px;padding:8px 10px;box-shadow:0 6px 22px #0006;white-space:nowrap}.solve-card-val{font-size:13px;color:var(--text)}.solve-card-val b{color:var(--accent);font-size:15px}.solve-card-goal{font-size:12px;font-weight:600;color:var(--text-dim);margin-bottom:4px}.solve-theory{margin-top:4px;font-size:12px;color:var(--text-dim)}.solve-theory.ok{color:#5fd068}.explore-goal{flex:1 1 100%;display:inline-flex;align-items:center;gap:6px;text-align:left}.solve-card-miss{font-size:13px;color:#e5484d;margin-bottom:6px}.solve-sols{display:flex;gap:5px;margin:6px 0}.solve-sol{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text-dim);padding:3px 7px;font-size:11px;cursor:pointer}.solve-sol.active{border-color:var(--accent);color:var(--accent)}.solve-card-actions{display:flex;gap:6px;margin-top:6px;align-items:center}.solve-apply{flex:1;background:var(--accent-fill);border:1px solid var(--accent);color:var(--accent-fill-fg);border-radius:7px;padding:5px 10px;font-size:13px;font-weight:600;cursor:pointer}.solve-apply:hover{filter:brightness(1.08)}.solve-x{background:none;border:none;color:var(--text-dim);font-size:13px;cursor:pointer;padding:2px 5px;border-radius:5px}.solve-x:hover{background:var(--hover);color:var(--text)}.sweep-meta{left:calc(50% - 140px);bottom:48px}.tb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#00000080;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tb-modal{width:min(760px,92vw);max-height:86vh;display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 48px #00000073;overflow:hidden}.tb-header{display:flex;align-items:baseline;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.tb-title{font-size:16px;font-weight:700;color:var(--text)}.tb-sub{font-size:12px;color:var(--text-dim)}.tb-close{margin-left:auto;background:none;border:none;color:var(--text-dim);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:5px}.tb-close:hover{background:var(--hover);color:var(--text)}.tb-tabs{display:flex;gap:6px;padding:10px 18px 0}.tb-tab{padding:6px 16px;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:8px 8px 0 0;color:var(--text);font-size:14px;cursor:pointer}.tb-tab.active{background:var(--accent-fill);border-color:var(--accent);color:var(--accent-fill-fg);font-weight:600}.tb-body{padding:12px 18px 18px;overflow-y:auto}.tb-chapter{margin-top:12px}.tb-chapter-title{font-size:13px;font-weight:700;color:var(--accent);padding:4px 0;border-bottom:1px solid var(--border);margin-bottom:4px}.tb-section{display:flex;align-items:flex-start;gap:12px;padding:5px 4px;border-radius:6px}.tb-section:hover{background:var(--hover)}.tb-section-title{flex:0 0 200px;font-size:13px;color:var(--text);line-height:1.5}.tb-section-title b{color:var(--text-dim);margin-right:4px}.tb-scenes{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tb-scene{background:var(--bg-panel-2);border:1px solid var(--accent);border-radius:6px;color:var(--text);padding:4px 10px;font-size:12px;cursor:pointer}.tb-scene:hover{background:var(--accent-fill);color:var(--accent-fill-fg)}.tb-empty{font-size:12px;color:var(--text-dim);opacity:.6}.fatal-mask{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg, #0f1218);z-index:9999}.fatal-card{max-width:420px;padding:28px 32px;border-radius:12px;background:var(--bg-panel, #171c26);border:1px solid var(--border, #2a3240);text-align:center}.fatal-title{font-size:17px;color:var(--text, #e8ecf2);margin-bottom:10px}.fatal-desc{font-size:13px;color:var(--text-dim, #9aa4b2);line-height:1.7;margin-bottom:18px}.tb-ctx{background:transparent;border:1px dashed var(--border);border-radius:6px;color:var(--text-dim);padding:4px 10px;font-size:12px;cursor:pointer}.tb-ctx:hover{border-color:var(--accent);color:var(--text)}.photo-preview{position:absolute;top:70px;left:14px;z-index:40;width:300px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:8px;overflow:hidden;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.photo-preview-head{display:flex;align-items:center;justify-content:space-between;padding:5px 8px 5px 12px;color:var(--text-dim);font-size:12px;border-bottom:1px solid var(--border)}.photo-preview img{display:block;width:100%;background:#fff}.solution-fab{position:absolute;top:70px;right:14px;z-index:45;display:inline-flex;align-items:center;gap:5px}.solution-fab.active{border-color:var(--accent);color:var(--accent-fill-fg)}.solution-panel{position:absolute;top:108px;right:14px;z-index:45;width:360px;max-height:calc(100% - 180px);display:flex;flex-direction:column;background:var(--float-bg);border:1px solid var(--border);border-radius:10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 10px 30px #00000080}.solution-head{display:flex;align-items:center;justify-content:space-between;padding:9px 10px 9px 14px;border-bottom:1px solid var(--border);font-weight:600;font-size:13px}.solution-body{overflow-y:auto;padding:12px 14px;flex:1}.solution-step{margin-bottom:12px;animation:step-in .25s ease-out}@keyframes step-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.solution-step-title{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--accent);margin-bottom:4px}.solution-step-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--accent-fill);color:var(--accent-fill-fg);font-size:11px;flex-shrink:0}.solution-step-content{color:var(--text);line-height:1.7;font-size:13px;padding-left:26px;white-space:pre-wrap}.solution-answer{margin-top:4px;padding:10px 12px;background:#22301f;border:1px solid #3f5a3a;border-radius:8px;color:#9fd58f;font-weight:600;animation:step-in .25s ease-out}.solution-foot{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border)}.toast{position:fixed;top:56px;left:50%;transform:translate(-50%);z-index:300;display:flex;align-items:center;gap:var(--space-2);background:var(--notice-bg);color:var(--notice-fg);border:1px solid var(--notice-border);border-radius:var(--r-md);padding:var(--space-2) var(--space-4);z-index:200;animation:toast-in .18s ease-out}.toast-success{background:color-mix(in srgb,var(--green) 16%,var(--bg-panel));color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,transparent)}.toast-error{background:var(--danger-bg);color:var(--danger-fg);border-color:var(--danger-border)}.toast-icon{font-size:var(--fs-base);line-height:1}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.layer-dock{position:absolute;left:0;top:50%;transform:translateY(-50%);height:min(64vh,540px);width:30px;z-index:49;transition:width .18s ease}.layer-dock.open{width:232px}.layer-tab{position:absolute;left:0;top:0;height:100%;width:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--float-bg);border:1px solid var(--border);border-left:none;border-radius:0 10px 10px 0;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:2px 0 10px #00000040;transition:opacity .14s ease,background .14s ease}.layer-tab:hover{background:var(--hover)}.layer-dock.open .layer-tab{opacity:0;pointer-events:none}.layer-tab-icon{font-size:14px;color:var(--accent)}.layer-tab-text{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:2px;font-size:12px;color:var(--text-dim)}.layer-tab-count{font-size:10px;color:var(--text);background:var(--accent);border-radius:8px;min-width:16px;text-align:center;padding:0 4px}.layer-flyout{position:absolute;left:0;top:0;height:100%;width:232px;display:flex;flex-direction:column;background:var(--float-bg);border:1px solid var(--border);border-left:none;border-radius:0 12px 12px 0;box-shadow:6px 0 24px #0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transform:translate(-100%);opacity:0;pointer-events:none;transition:transform .18s ease,opacity .18s ease;overflow:hidden}.layer-dock.open .layer-flyout{transform:translate(0);opacity:1;pointer-events:auto}.layer-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;font-size:12px;font-weight:600;color:var(--text-dim);border-bottom:1px solid var(--border)}.layer-pin{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:3px;border-radius:6px;color:var(--text-dim);transition:color .12s,background .12s}.layer-pin:hover{background:var(--bg-panel-2);color:var(--text)}.layer-pin.on{color:var(--accent)}.layer-list{flex:1;overflow-y:auto;padding:4px}.layer-empty{color:var(--text-dim);font-size:12px;text-align:center;padding:16px 8px}.layer-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:5px;cursor:pointer;font-size:12px}.layer-row:hover{background:var(--bg-panel-2)}.layer-row.selected{background:#4da3ff2e;outline:1px solid var(--accent)}.layer-row.hidden-row{opacity:.5}.layer-row[draggable=true]{cursor:grab}.layer-row.dragging{opacity:.45}.layer-row.drop-above{box-shadow:inset 0 2px 0 0 var(--accent)}.layer-row.drop-below{box-shadow:inset 0 -2px 0 0 var(--accent)}.layer-kind{flex-shrink:0;color:var(--text-dim);font-size:10px;background:var(--bg-panel-2);padding:1px 5px;border-radius:3px}.layer-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-rename{flex:1;min-width:0;background:var(--bg);border:1px solid var(--accent);border-radius:3px;color:var(--text);font-size:12px;padding:1px 4px}.layer-actions{display:flex;gap:1px;flex-shrink:0}.layer-row:not(:hover):not(.selected) .layer-actions{opacity:0}.layer-actions button{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:3px;border-radius:4px;color:var(--text-dim);transition:color .12s,background .12s}.layer-actions button:hover:not(:disabled){background:var(--bg);color:var(--text)}.layer-actions button:disabled{opacity:.3;cursor:default}.layer-actions button.on{color:var(--accent)}.layer-actions button.del:hover{color:var(--danger)}.context-menu{position:fixed;z-index:500;min-width:170px;background:var(--bg-panel);border:1px solid var(--border);border-radius:7px;box-shadow:0 8px 28px #00000080;padding:4px;-webkit-user-select:none;user-select:none}.context-menu-group{padding:2px 0}.context-menu-group:not(:last-child){border-bottom:1px solid var(--border)}.context-menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;color:var(--text);font-size:12.5px;padding:6px 10px;border-radius:4px;text-align:left}.context-menu-item:hover:not(:disabled){background:var(--accent);color:#fff}.context-menu-item:disabled{color:var(--text-dim);opacity:.5;cursor:default}.context-menu-shortcut{font-size:10.5px;opacity:.7;margin-left:16px}.spring-btn-row{display:flex;flex-direction:column;gap:6px;margin:8px 0 4px}.prop-action{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;font-size:12.5px;text-align:left;transition:background .12s,border-color .12s,color .12s}.prop-action:hover{border-color:var(--accent)}.prop-action-ico{display:inline-flex;width:16px;justify-content:center;color:var(--text-dim)}.prop-action:hover .prop-action-ico{color:var(--accent)}.prop-action.active{background:#5fd06824;border-color:var(--green);color:var(--green)}.prop-action.active .prop-action-ico{color:var(--green)}.account-loading{color:var(--text-dim);padding:0 8px}.account-login-btn{border-color:var(--accent);color:var(--accent)}.account-chip{display:flex;align-items:center;gap:7px;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:18px;padding:3px 10px 3px 3px;cursor:pointer;color:var(--text)}.account-chip:hover{border-color:var(--accent)}.account-avatar{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#7c5cff);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.account-name{font-size:12px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-role{font-size:10px;color:var(--text-dim);border:1px solid var(--border);border-radius:4px;padding:0 4px}.account-menu{right:0;left:auto}.share-page{display:flex;flex-direction:column;height:100%}.share-page .main{flex:1;min-height:0;display:flex}.share-page .canvas-wrap{position:relative;flex:1;min-width:0}.share-header{display:flex;align-items:center;gap:16px;padding:8px 14px;background:var(--bg-panel);border-bottom:1px solid var(--border)}.share-brand{display:flex;align-items:baseline;gap:8px}.share-title{margin-left:auto;display:flex;align-items:baseline;gap:10px;color:var(--text);font-size:14px;font-weight:600;overflow:hidden}.share-author{color:var(--text-dim);font-size:12px;font-weight:400}.share-center{align-items:center;justify-content:center;gap:16px}.share-msg{color:var(--text-dim);font-size:14px}.share-page a.btn,.share-center a.btn{text-decoration:none;display:inline-flex;align-items:center}.force-btn,.edit-tools,.layer-flyout,.layer-tab,.ai-bar{background:var(--glass-bg);border-color:var(--glass-border);backdrop-filter:blur(16px) saturate(170%);-webkit-backdrop-filter:blur(16px) saturate(170%)}.force-btn:hover{background:var(--glass-bg);border-color:var(--accent)}.layer-tab:hover{background:var(--glass-bg)}.text-edit{position:absolute;z-index:70;margin:0;padding:0 1px;border:none;outline:2px solid var(--accent);border-radius:2px;background:var(--canvas-bg);color:var(--text);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.2;resize:none;overflow:hidden}.classroom{flex:1;min-height:0;overflow-y:auto;background:var(--bg)}.classroom-inner{max-width:920px;margin:0 auto;padding:28px 24px 56px}.cr-gate{text-align:center;padding:84px 20px}.cr-gate-title{font-size:20px;font-weight:700;margin-bottom:8px}.cr-gate-sub{color:var(--text-dim);margin-bottom:20px}.cr-section{margin-bottom:28px}.cr-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cr-section-head h3{font-size:15px;font-weight:600}.cr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.cr-card{text-align:left;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:16px;cursor:pointer;color:var(--text);transition:border-color .12s,transform .08s}.cr-card:hover{border-color:var(--accent)}.cr-card:active{transform:translateY(1px)}.cr-card-name{font-size:15px;font-weight:600;margin-bottom:6px}.cr-card-sub{font-size:12px;color:var(--text-dim)}.cr-join{display:flex;gap:6px}.cr-code-input{width:130px;background:var(--input-bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:5px 10px;font-size:13px;letter-spacing:2px;text-transform:uppercase}.cr-code-input:focus{outline:none;border-color:var(--accent)}.cr-empty{color:var(--text-dim);font-size:13px;padding:14px 0}.cr-error{color:var(--danger-fg);background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:8px;padding:8px 12px;margin-bottom:16px;font-size:13px}.cr-detail-head{display:flex;align-items:center;justify-content:space-between;margin:8px 0 20px}.cr-detail-head h2{font-size:20px;font-weight:700}.cr-back{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:13px;padding:4px 0}.cr-back:hover{color:var(--text)}.cr-code-chip{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:8px;padding:6px 12px;cursor:pointer;color:var(--text);font-size:13px}.cr-code-chip:hover{border-color:var(--accent)}.cr-code-chip b{color:var(--accent);letter-spacing:2px;margin:0 3px}.cr-roster{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden}.cr-roster-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-panel)}.cr-roster-name{font-weight:600;min-width:80px}.cr-roster-email{color:var(--text-dim);font-size:12px;flex:1}.cr-roster-del{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px}.cr-roster-del:hover{color:var(--danger)}.cr-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 8px;border-radius:999px;background:var(--bg-panel-2);color:var(--text-dim);border:1px solid var(--border);white-space:nowrap}.cr-badge.ok{color:var(--ok-fg, #15803d);background:var(--ok-bg, rgba(22, 163, 74, .13));border-color:transparent}.cr-badge.no{color:var(--danger-fg);background:var(--danger-bg);border-color:var(--danger-border)}.cr-asg-list{display:flex;flex-direction:column;gap:8px}.cr-asg-row{display:flex;align-items:center;gap:10px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:10px 14px}.cr-asg-main{flex:1;text-align:left;background:none;border:none;cursor:pointer;color:var(--text);min-width:0}.cr-asg-title{font-weight:600;font-size:14px;margin-bottom:4px}.cr-asg-stats{font-size:12px;color:var(--text-dim)}.cr-asg-stats b{color:var(--text)}.cr-asg-stats b.ok{color:var(--ok-fg, #15803d)}.cr-asg-del{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px}.cr-asg-del:hover{color:var(--danger)}.cr-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000006b;display:flex;align-items:center;justify-content:center;padding:24px}.cr-modal-card{width:460px;max-width:100%;max-height:86vh;overflow-y:auto;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:20px 22px;box-shadow:0 18px 50px #00000059}.cr-modal-title{font-size:17px;font-weight:700;margin-bottom:14px}.cr-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.cr-field>span{font-size:12px;color:var(--text-dim)}.cr-input{background:var(--input-bg);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:7px 10px;font-size:13px;font-family:inherit}.cr-input:focus{outline:none;border-color:var(--accent)}.cr-check{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:12px;cursor:pointer}.cr-kind-hint{font-size:12px;color:var(--text-dim);margin:-4px 0 10px}.cr-params{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.cr-param{display:flex;flex-direction:column;gap:4px}.cr-param>span{font-size:12px;color:var(--text-dim)}.cr-try{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.cr-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.cr-sub-list{display:flex;flex-direction:column;gap:8px}.cr-sub-row{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:10px 14px}.cr-sub-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.cr-sub-name{font-weight:600;font-size:14px}.cr-sub-tag{font-size:11px;color:var(--text-dim)}.cr-sub-grade{display:flex;align-items:center;gap:8px}.cr-mini{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text-dim);cursor:pointer;font-size:12px;padding:5px 8px;white-space:nowrap}.cr-mini:hover{border-color:var(--accent);color:var(--text)}.cr-score{width:64px}.cr-fb{flex:1;min-width:0}.cr-submit-bar{position:fixed;top:56px;left:0;right:0;margin:0 auto;width:fit-content;max-width:92vw;z-index:90;display:flex;align-items:center;gap:14px;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:8px 14px;box-shadow:0 8px 28px #00000047}.cr-submit-info{display:flex;align-items:center;gap:10px;min-width:0;-webkit-user-select:none;user-select:none}.cr-submit-tag{font-size:11px;font-weight:700;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:1px 8px;white-space:nowrap}.cr-submit-title{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.cr-submit-goal{font-size:12px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.cr-submit-actions{display:flex;gap:8px;margin-left:auto}.cr-review-bar{gap:8px;flex-wrap:wrap}.cr-submit-tag.review{background:var(--accent);color:#fff;border-color:var(--accent)}.cr-review-bar .cr-fb{width:150px;flex:none}.cr-view{color:var(--accent);border-color:var(--accent)}.meter-cap{position:absolute;z-index:47;display:inline-flex;align-items:center;gap:5px;background:linear-gradient(135deg,var(--accent),#6db3ff);border:none;color:#fff;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px #4da3ff73;white-space:nowrap;animation:explore-pop-in .14s ease-out}.meter-cap:hover{transform:translateY(-1px);box-shadow:0 6px 18px #4da3ff8c}.meter-panel{position:absolute;z-index:47;width:256px;min-width:210px;min-height:232px;max-width:460px;max-height:460px;display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 40px #00000080;overflow:hidden;resize:both;animation:explore-pop-in .14s ease-out}.meter-panel-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:linear-gradient(135deg,#4da3ff2e,#4da3ff0d);border-bottom:1px solid var(--border);cursor:move;-webkit-user-select:none;user-select:none;flex:0 0 auto}.meter-panel-title{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--text)}.meter-panel-x{display:inline-flex;background:none;border:none;color:var(--text-dim);cursor:pointer;padding:2px 4px;border-radius:5px}.meter-panel-x:hover{background:var(--hover);color:var(--text)}.meter-fault{margin:8px 10px 0;padding:5px 9px;border-radius:8px;background:#7a1c1cd9;color:#ffdad6;font-size:12px;font-weight:600}.meter-face-wrap{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 10px 2px}.meter-svg{width:100%;height:100%;display:block}.meter-plate{fill:#f4f1e6;stroke:#cbb98c;stroke-width:1.5}.meter-arc{stroke:#2b3038;stroke-width:2}.meter-tick{stroke:#5a6472;stroke-width:1}.meter-tick-major{stroke:#2b3038;stroke-width:2}.meter-num-active{fill:#1c2027;font-size:12px;font-weight:700}.meter-num-dim{fill:#9aa3ad;font-size:10px;font-weight:500}.meter-unit{fill:#2b3038;font-size:16px;font-weight:800}.meter-needle{stroke:#c0392b;stroke-width:2.4;stroke-linecap:round;transition:all .35s cubic-bezier(.34,1.56,.64,1)}.meter-needle.over{stroke:#e53935;stroke-width:3}.meter-hub{fill:#2b3038}.meter-flag{font-size:10px;font-weight:700}.meter-flag.over{fill:#c0392b}.meter-flag.dead{fill:#7a1c1c}.meter-panel-foot{flex:0 0 auto;padding:6px 12px 12px;border-top:1px solid var(--border)}.meter-value{text-align:center;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);margin:4px 0 8px}.meter-value.over{color:#e5734a}.meter-value.dead{color:var(--text-dim)}.meter-range{display:flex;align-items:center;gap:6px}.meter-range-label{font-size:12px;color:var(--text-dim);margin-right:2px}.meter-range-btn{flex:1 1 0;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:6px 4px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .1s ease}.meter-range-btn:hover{background:var(--hover)}.meter-range-btn.active{background:linear-gradient(135deg,var(--accent),#6db3ff);border-color:transparent;color:#fff}html{overscroll-behavior:none}body{-webkit-touch-callout:none}.toolbar-class{gap:12px;padding:8px 16px;min-height:56px}.toolbar-class .toolbar-scene-name{font-size:14px;max-width:42vw}.toolbar-class .btn{min-width:56px;min-height:56px;font-size:15px;padding:8px 14px}html[data-posture=class] .ink-dock-auto .tool-btn{min-height:56px;padding:9px 14px}html[data-posture=class] .voice-fab{min-height:56px}html[data-posture=class] .ink-dock-auto .board-panel{right:0;left:auto;transform:none}html[data-posture=class][data-handedness=left] .toolbar-class{flex-direction:row-reverse}html[data-posture=class][data-handedness=left] .ink-dock-auto{right:auto;left:14px}html[data-posture=class][data-handedness=left] .ink-dock-auto .board-panel{right:auto;left:0}html[data-posture=class][data-handedness=left] .voice-fab-wrap{right:auto;left:16px;align-items:flex-start}html[data-posture=class] .live-primary-action{right:16px;left:auto;transform:none}html[data-posture=class][data-handedness=left] .live-primary-action{right:auto;left:16px}.live-primary-action{position:fixed;left:50%;bottom:22px;z-index:32;display:flex;align-items:center;gap:10px;transform:translate(-50%);padding:8px;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--bg-panel) 88%,transparent);box-shadow:0 10px 30px #00000038;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.live-action-primary,.live-action-secondary{min-height:56px;border:1px solid var(--border);border-radius:12px;padding:0 22px;font-size:18px;font-weight:600;cursor:pointer;transition:filter .12s,background .12s}.live-action-primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--accent-fill-fg)}.live-action-secondary{background:var(--bg-panel-2);color:var(--text)}.live-action-primary:hover,.live-action-secondary:hover{filter:brightness(1.1)}.live-action-whisper{position:fixed;left:50%;bottom:28px;z-index:31;transform:translate(-50%);padding:10px 16px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--bg-panel) 84%,transparent);color:var(--text-dim);font-size:15px;pointer-events:none;box-shadow:0 8px 24px #0000002e}html[data-posture=class] .ai-toggle{right:16px;bottom:24px;left:auto;transform:none}:root{color-scheme:dark;--bg: #09100d;--bg-panel: #101915;--bg-panel-2: #16231d;--border: rgba(218, 239, 225, .14);--text: #eef5ee;--text-dim: #9aa8a0;--text-muted: var(--text-dim);--accent: #89e7b5;--accent-strong: #58cb8d;--accent-soft: rgba(137, 231, 181, .12);--green: #69d99d;--canvas-bg: #0b1511;--input-bg: #0c1511;--hover: rgba(137, 231, 181, .09);--overlay-bg: rgba(12, 20, 17, .94);--scroll-thumb: rgba(159, 213, 180, .22);--scroll-thumb-hover: rgba(159, 213, 180, .38);--float-bg: rgba(14, 23, 19, .97);--accent-fill: #89e7b5;--accent-fill-fg: #082016;--glass-bg: rgba(16, 27, 22, .76);--glass-border: rgba(199, 238, 215, .17);--surface: #101915;--surface-2: #16231d;--surface-3: #1c2d25;--line: var(--border)}:root[data-theme=light]{color-scheme:light;--bg: #edf3ef;--bg-panel: #fbfdfb;--bg-panel-2: #eef5f0;--border: rgba(30, 83, 57, .17);--text: #17251d;--text-dim: #607168;--text-muted: var(--text-dim);--accent: #2f8f60;--accent-strong: #23784e;--accent-soft: rgba(47, 143, 96, .11);--green: #2f8f60;--canvas-bg: #f4f8f5;--input-bg: #ffffff;--hover: rgba(47, 143, 96, .08);--overlay-bg: rgba(251, 253, 251, .95);--scroll-thumb: rgba(31, 86, 58, .22);--scroll-thumb-hover: rgba(31, 86, 58, .36);--float-bg: rgba(251, 253, 251, .98);--accent-fill: #2f8f60;--accent-fill-fg: #ffffff;--glass-bg: rgba(250, 253, 251, .8);--glass-border: rgba(30, 83, 57, .17);--surface: #fbfdfb;--surface-2: #eef5f0;--surface-3: #e3efe7;--line: var(--border)}body{background:var(--bg)}.canvas-container{background:radial-gradient(circle at 78% 0,color-mix(in srgb,var(--accent) 7%,transparent),transparent 34rem),var(--canvas-bg)}.toolbar{position:relative;z-index:200;min-height:60px;gap:12px;padding:8px 14px;border-color:var(--border);background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 10px 34px #00000021;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-mark{color:var(--accent);letter-spacing:.02em}.brand-sub,.toolbar-scene-name{color:var(--text-muted)}.toolbar-sep{background:var(--border)}.btn{border-color:var(--border);border-radius:10px;color:var(--text);background:color-mix(in srgb,var(--surface-2) 86%,transparent)}.toolbar:not(.toolbar-class) .btn{min-height:40px;padding-inline:13px}.btn-mini{min-height:30px}.btn:hover:not(:disabled),.tool-btn:hover,.force-btn:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--border));background:var(--hover)}.btn-primary,.btn-speed.active,.tool-btn.active,.force-btn.active,.ai-toggle.active{border-color:var(--accent);color:var(--accent-fill-fg);background:var(--accent-fill)}.menu,.ai-settings{border-color:var(--border);background:color-mix(in srgb,var(--surface-2) 97%,transparent);box-shadow:0 18px 52px #00000052;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.menu-item:hover{background:var(--accent-soft)}.side-flyout,.overlay,.timer-panel,.tutor-panel,.review-board-panel,.solution-panel,.meter-panel,.prop-panel,.ai-bar,.zoom-control,.edit-tools,.board-panel,.context-chip{border-color:var(--border);background:color-mix(in srgb,var(--overlay-bg) 96%,transparent);box-shadow:0 18px 54px #0000003d;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.force-btn,.tool-btn,.zoom-control button,.edit-tools button{border-color:var(--border);border-radius:9px;background:color-mix(in srgb,var(--surface-2) 84%,transparent)}.ai-toggle{color:var(--text);border-color:var(--glass-border);background:var(--glass-bg);box-shadow:0 14px 42px #0000003d;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.ai-bar input[type=text],.ai-settings select,input,textarea,select{border-color:var(--border);color:var(--text);background:var(--input-bg)}.ai-bar input[type=text]:focus,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 38%,transparent);outline-offset:1px;border-color:var(--accent)}.studio-dock-tab{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,var(--border));background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:-12px 14px 38px #00000038;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.studio-dock-tab:hover{color:var(--accent-fill-fg);background:var(--accent)}.studio-dock-panel{border-color:color-mix(in srgb,var(--accent) 18%,var(--border));background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent) 10%,transparent),transparent 24rem),color-mix(in srgb,var(--surface) 97%,transparent);box-shadow:-28px 24px 80px #00000052;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.studio-dock-header{border-color:var(--border);background:color-mix(in srgb,var(--surface-2) 52%,transparent)}.studio-dock-header>div>span,.studio-section-heading>div>span,.studio-resource-status.status-ready,.studio-readiness li.readiness-ready span{color:var(--accent)}.studio-dock-header button:hover,.studio-section-heading>button:hover,.studio-row-actions button:hover:not(:disabled){color:var(--accent);background:var(--accent-soft)}.studio-overview-strip{border-color:var(--border);background:color-mix(in srgb,var(--surface-2) 34%,transparent)}.studio-overview-strip span+span,.studio-section,.studio-dock-footer{border-color:var(--border)}.studio-resource-row,.studio-context-chips span,.studio-lineage-origin,.studio-lineage-group li{border-color:var(--border);background:color-mix(in srgb,var(--surface-2) 82%,transparent)}.studio-outline-list li:hover,.studio-path-list li:hover,.studio-path-list li.current{border-color:color-mix(in srgb,var(--accent) 30%,var(--border));background:var(--accent-soft)}.studio-ai-action{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--accent) 5%,transparent)}.studio-ai-action:hover{border-color:var(--accent);background:var(--accent-soft)}.studio-path-list li.current .studio-path-main>span:first-child,.studio-dock-footer button,.studio-lineage-state.is-live{color:var(--accent-fill-fg);border-color:var(--accent);background:var(--accent)}.studio-dock-footer{background:color-mix(in srgb,var(--surface) 96%,transparent)}.kf-chip.active,.focus-jump,.explore-q.active,.explore-tab.active,.account-avatar,.surface-snap-chip,.meter-range-btn.active{border-color:transparent;color:var(--accent-fill-fg);background:linear-gradient(135deg,var(--accent),var(--accent-strong))}:where(button,[role=button],a):focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 72%,white);outline-offset:2px}@media (min-width: 1800px) and (min-height: 1000px){.toolbar{min-height:76px;padding-inline:20px}.toolbar:not(.toolbar-class) .btn{min-height:48px;font-size:15px}}.app.runtime-active .toolbar,.app.runtime-active .run-badge,.app.runtime-active .ink-dock,.app.runtime-active .live-primary-action,.app.runtime-active .overlay,.app.runtime-active .motion-point-tools{background:var(--bg-panel);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.app.runtime-active .canvas-wrap.running:after,.app.runtime-active .run-badge:before{box-shadow:none}.review-question-graph{display:grid;gap:12px;margin:14px 0 18px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--accent) 7%,var(--bg-panel-2))}.review-question-graph-title{display:grid;gap:4px}.review-question-graph-title strong{color:var(--text);font-size:14px}.review-question-graph-title span{color:var(--text-dim);font-size:12px;line-height:1.55}.review-question-node-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}.review-question-node{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--bg-panel) 88%,transparent)}.review-question-node>i{display:grid;flex:0 0 30px;width:30px;height:30px;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);font-style:normal;font-weight:800}.review-question-node>div{display:grid;min-width:0;gap:3px}.review-question-node strong{overflow-wrap:anywhere;color:var(--text);font-size:13px;line-height:1.45}.review-question-node span{overflow-wrap:anywhere;color:var(--text-dim);font-size:11px;line-height:1.45}.lg-observer{min-height:100vh;padding:30px;background:#0a121b;color:#dce7f0;font:14px/1.6 Inter,Microsoft YaHei,sans-serif;box-sizing:border-box;color-scheme:dark}.lg-observer *{box-sizing:border-box}.lg-observer h1,.lg-observer h2,.lg-observer p{margin:0}.lg-observer h1{font-size:27px;font-weight:650;letter-spacing:.02em}.lg-observer h2{font-size:16px}.lg-observer h2 small{font-size:11px;font-weight:400;color:#91a6b8;margin-left:10px}.lg-observer-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.lg-observer-eyebrow{color:#73dcca;font-size:10px;letter-spacing:.2em;margin-bottom:5px}.lg-observer-header p,.lg-observer-header label{color:#91a6b8;font-size:12px}.lg-observer-header form{width:330px;flex-shrink:0}.lg-observer input,.lg-observer select,.lg-observer button{color:inherit;font:inherit;border:1px solid #324351;border-radius:7px;padding:7px 11px;background:#15232f}.lg-observer button{cursor:pointer;white-space:nowrap}.lg-observer button:hover,.lg-observer button[aria-pressed=true]{background:#24453f;border-color:#67c8b5}.lg-observer button:disabled{opacity:.35;cursor:default}.lg-observer :focus-visible{outline:2px solid #73dcca;outline-offset:3px}.lg-observer input{min-width:0;width:100%}.lg-observer-inline{display:flex;gap:7px}.lg-observer-status{display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px;border:1px solid #2c4352;background:#112330;padding:11px 16px;border-radius:9px;color:#aac0d0;font-size:12px}.lg-observer-status strong{color:#dce7f0}.lg-observer-dot{width:7px;height:7px;background:#8aa5ba;border-radius:50%}.lg-observer-meta{display:grid;grid-template-columns:repeat(3,1fr) 200px;gap:16px;margin:18px 0}.lg-observer-meta div,.lg-observer-stats div{display:grid;gap:3px;min-width:0}.lg-observer-meta span,.lg-observer-stats span{font-size:11px;color:#879daf}.lg-observer-meta code{overflow-wrap:anywhere;font-size:11px}.lg-observer-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.lg-observer-toolbar span,.lg-observer-toolbar label{color:#a5b8c8;font-size:12px}.lg-observer-toolbar select{margin-left:8px;max-width:320px}.lg-observer-toolbar>button:last-child{margin-left:auto}.lg-observer-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}.lg-observer-stats div{padding:12px 16px;background:#111e2a;border:1px solid #273946;border-radius:9px}.lg-observer-stats strong{color:#bce9df;font-size:21px;overflow-wrap:anywhere}.lg-observer-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,360px);gap:18px;align-items:start}.lg-observer-panel{min-width:0;border:1px solid #2b3d4b;border-radius:12px;padding:17px;background:#101b26}.lg-observer-note{color:#8fa7ba;font-size:12px;margin-top:9px!important}.lg-observer-graph-scroll{max-height:600px;overflow:auto;margin:10px 0;border-radius:8px;background:#0c1721}.lg-observer-canvas svg{width:100%;min-width:1000px;display:block}.lg-observer-node,.lg-observer-edge{cursor:pointer}.lg-observer-list-controls{display:flex;gap:12px;padding:12px 0;border-top:1px solid #2b3d4b}.lg-observer-list{max-height:350px;overflow:auto}.lg-observer-list>button{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(100px,1fr) 65px;gap:12px;width:100%;text-align:left;border:none;border-bottom:1px solid #233542;border-radius:0;background:transparent}.lg-observer-list>button.is-selected{background:#203b38}.lg-observer-list span,.lg-observer-list code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lg-observer-list code,.lg-observer-list small{color:#8fa7ba;font-size:11px}.lg-observer-pagination{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px}.lg-observer-pagination span{margin-right:auto;color:#8fa7ba}.lg-observer-inspector{max-height:calc(100vh - 30px);overflow:auto;position:sticky;top:15px}.lg-observer-json{margin-top:15px;border-top:1px solid #2b3d4b;padding-top:12px}.lg-observer-json summary{cursor:pointer;font-size:12px;color:#a7ddd2;overflow-wrap:anywhere}.lg-observer-json pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.65;color:#a9bdcf;margin:10px 0 0;padding:12px;background:#0a151f;border-radius:7px;max-height:480px;overflow:auto}.lg-observer-empty{max-width:640px;margin:100px auto;padding:40px;text-align:center;border:1px dashed #385060;border-radius:16px}.lg-observer-empty p{margin-top:12px;color:#8fa7ba}@media (max-width: 1000px){.lg-observer{padding:18px}.lg-observer-workspace{grid-template-columns:1fr}.lg-observer-inspector{position:static;max-height:none}.lg-observer-meta{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.lg-observer-header{align-items:flex-start;flex-direction:column}.lg-observer-header form{width:100%}.lg-observer-stats{grid-template-columns:repeat(3,1fr)}.lg-observer-list-controls{flex-direction:column}.lg-observer-toolbar select{max-width:220px}}.lg-evidence-workbench{margin:18px 0;padding:20px}.lg-evidence-workbench textarea{display:block;width:100%;min-height:280px;box-sizing:border-box;margin:12px 0;background:#101b25;color:#dfebf5;border:1px solid #42566a;border-radius:8px;padding:12px;font:12px/1.5 monospace}.lg-evidence-workbench .lg-observer-inline{flex-wrap:wrap;margin:10px 0}.lg-evidence-workbench p{color:#b8c9d8;line-height:1.6}.lg-model-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media (max-width: 800px){.lg-model-comparison{grid-template-columns:1fr}}.board-decision-inspector{margin:20px 0}.board-decision-inspector p{color:#acbecd;line-height:1.6}.board-decision-layout{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,2fr);gap:20px}.board-decision-list{display:flex;flex-direction:column;gap:8px;max-height:660px;overflow:auto}.board-decision-list button{text-align:left;display:flex;flex-direction:column;gap:7px;padding:12px;border:1px solid #344857;border-radius:8px;background:#172531;color:#dae7ee;cursor:pointer;overflow-wrap:anywhere}.board-decision-list button[aria-pressed=true]{border-color:#75caff;background:#20394b}.board-decision-list button:focus-visible{outline:2px solid #a5d8ff;outline-offset:2px}.board-decision-details{min-width:0}.board-decision-details dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;font-size:13px}.board-decision-details dt{color:#9bafbe}.board-decision-details dd{margin:0;overflow-wrap:anywhere}.board-decision-details svg{display:block;width:100%;height:160px;background:#0c1720;color:#8ee1fa;border:1px solid #344857;border-radius:8px}.board-decision-details details{margin-top:12px;overflow-wrap:anywhere}.board-decision-source-status{font-weight:600;color:#f3c778!important}@media (max-width: 800px){.board-decision-layout{grid-template-columns:1fr}.board-decision-list{max-height:240px}.board-decision-details dl{grid-template-columns:110px minmax(0,1fr)}}.board-decision-context{margin:18px 0;padding:14px;border:1px solid #344857;border-radius:8px;background:#13212d}.board-decision-context h4{margin:0 0 8px}.board-decision-context-status{color:#f3c778!important;font-weight:600}.board-decision-context ul{margin:8px 0;padding-left:20px}
