:root{--ink:#0d1b3e;--blue:#2563eb;--cyan:#12b7d6;--line:#e5eaf2;--muted:#65728a;--soft:#f6f8fc;--green:#12a474;--amber:#ef9e20;--shadow:0 18px 50px rgba(30,59,104,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'Be Vietnam Pro',system-ui,sans-serif;color:#18243d;background:#f8fafc}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.container-wide{width:min(1240px,calc(100% - 48px));margin-inline:auto}.site-header{box-shadow:0 1px 0 rgba(13,27,62,.03)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#2563eb,#11b6d3);color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.25)}.nav-link{display:inline-flex;align-items:center;gap:7px;padding:10px 12px;border-radius:10px;color:#60708a;font-size:13px;font-weight:600;transition:.2s}.nav-link:hover,.nav-link.is-active{color:var(--blue);background:#eef4ff}.global-search{align-items:center;gap:8px;width:205px;height:38px;border:1px solid var(--line);border-radius:10px;padding:0 11px;background:#fbfcfe}.global-search input{width:100%;border:0;outline:0;background:transparent;font-size:12px}.icon-button{display:inline-flex;align-items:center;justify-content:center;position:relative;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#53617a;transition:.2s}.icon-button:hover{border-color:#c8d7f8;color:var(--blue);background:#f5f8ff}.notification-dot{position:absolute;top:-4px;right:-3px;min-width:17px;height:17px;padding:0 4px;border:2px solid white;border-radius:20px;background:#ef5767;color:white;font-size:9px;line-height:13px;text-align:center}.stat-chip{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:11px;font-weight:700;color:#53617a}.avatar-button{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:#273754;font-size:12px;font-weight:700}.avatar-button img,.account-summary img{width:33px;height:33px;border-radius:50%;background:#e9f1ff;object-fit:cover}.dropdown-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:60;width:290px;border:1px solid var(--line);border-radius:14px;background:white;box-shadow:0 20px 45px rgba(21,46,90,.16);overflow:hidden}.notification-panel{width:335px}.notification-item{display:flex;gap:10px;padding:13px 15px;border-bottom:1px solid #f0f3f7}.notification-item.is-unread{background:#f8fbff}.notification-icon{display:flex;align-items:center;justify-content:center;flex:none;width:29px;height:29px;border-radius:9px;background:#eef4ff;color:var(--blue)}.notification-item strong{display:block;font-size:12px;color:#263654}.notification-item p{margin:3px 0;font-size:11px;line-height:1.45;color:#738098}.notification-item time{font-size:10px;color:#a2adbe}.empty-mini{padding:24px;text-align:center;color:#8995a8;font-size:12px}.account-summary{display:flex;gap:10px;padding:15px;border-bottom:1px solid #edf1f6;background:#f9fbfe}.account-summary strong{display:block;font-size:12px}.account-summary small{display:block;margin-top:3px;color:#8390a5;font-size:10px}.account-panel>a{display:flex;align-items:center;gap:9px;padding:10px 15px;color:#5c6a80;font-size:12px;font-weight:600}.account-panel>a:hover{background:#f5f8ff;color:var(--blue)}.account-panel svg{width:15px;height:15px}.dropdown-separator{height:1px;background:#edf1f6;margin:3px 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 16px;border:1px solid transparent;border-radius:10px;font-size:13px;font-weight:700;transition:.2s}.button:disabled{opacity:.55;cursor:not-allowed}.button-primary{color:#fff;background:var(--blue);box-shadow:0 8px 18px rgba(37,99,235,.2)}.button-primary:hover{background:#1d4ed8;transform:translateY(-1px)}.button-dark{color:#fff;background:var(--ink)}.button-dark:hover{background:#16295a}.button-ghost{border-color:#dce4ef;color:#40506a;background:#fff}.button-ghost:hover{border-color:#b7cdf7;color:var(--blue);background:#f7faff}.button-soft{color:#315ec6;background:#eef4ff}.button-danger{color:#c7354e;background:#fff0f2}.button-sm{min-height:34px;padding:0 12px;font-size:12px}.link-button{border:0;background:transparent;color:var(--blue);font-weight:700}.page-shell{padding:42px 0 72px}.eyebrow{display:inline-flex;align-items:center;gap:7px;color:#5274c7;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800}.eyebrow-dot{width:6px;height:6px;border-radius:50%;background:#1bc6ac}.page-title{margin:10px 0 0;color:var(--ink);font-size:clamp(27px,4vw,42px);line-height:1.1;letter-spacing:-.04em;font-weight:800}.page-subtitle{max-width:620px;margin-top:12px;color:#718098;font-size:14px;line-height:1.7}.section-heading{color:var(--ink);font-size:24px;line-height:1.2;letter-spacing:-.03em;font-weight:800}.section-caption{color:#8090a8;font-size:12px}.card{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.hero-section{padding:62px 0 54px;background:linear-gradient(180deg,#f6faff 0,#fff 80%)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(390px,.97fr);gap:52px;align-items:center}.hero-title{margin:16px 0 18px;max-width:650px;color:var(--ink);font-size:clamp(40px,5.3vw,68px);font-weight:800;letter-spacing:-.06em;line-height:1.02}.hero-title em{font-style:normal;color:#2e6cf2}.hero-copy{max-width:580px;color:#687890;font-size:16px;line-height:1.8}.hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:28px}.hero-trust{display:flex;align-items:center;gap:12px;margin-top:28px;color:#8b98a9;font-size:11px}.trust-avatars{display:flex}.trust-avatars img{width:27px;height:27px;margin-left:-7px;border:2px solid #fff;border-radius:50%;background:#e9f1ff}.trust-avatars img:first-child{margin-left:0}.hero-art{position:relative;min-height:455px;border-radius:28px;background:#eaf5ff;overflow:hidden;isolation:isolate}.hero-art:before,.hero-art:after{content:'';position:absolute;border-radius:50%;z-index:-1}.hero-art:before{width:370px;height:370px;right:-75px;top:-74px;background:#d9f4f4}.hero-art:after{width:240px;height:240px;left:-70px;bottom:-95px;background:#d9e6ff}.hero-photo{position:absolute;inset:40px 25px 0 25px;width:calc(100% - 50px);height:calc(100% - 40px);object-fit:cover;object-position:center;border-radius:23px 23px 0 0;mix-blend-mode:multiply;opacity:.82}.hero-art-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(234,245,255,.02),rgba(234,245,255,.58) 92%)}.progress-float{position:absolute;right:20px;top:25px;width:205px;padding:15px;border:1px solid rgba(255,255,255,.9);border-radius:15px;background:rgba(255,255,255,.94);box-shadow:0 17px 38px rgba(22,66,124,.14)}.progress-float small{color:#7b8aa2;font-size:10px}.progress-float strong{display:block;margin:3px 0;color:var(--ink);font-size:20px}.progress-bar{height:7px;border-radius:30px;background:#e8eef7;overflow:hidden}.progress-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#11b6d3)}.float-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:13px}.float-stats b{display:block;color:var(--ink);font-size:12px}.float-stats span{display:block;margin-top:2px;color:#97a3b4;font-size:9px}.hero-pill{position:absolute;left:22px;bottom:21px;display:flex;align-items:center;gap:8px;padding:10px 13px;border-radius:12px;color:#155d55;background:#dff8ed;font-size:10px;font-weight:800}.hero-pill i{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:#fff;color:#10a77c}.features-section{padding:22px 0 64px}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.feature-card{position:relative;min-height:184px;padding:20px;overflow:hidden;transition:.2s}.feature-card:hover{transform:translateY(-4px);box-shadow:0 22px 40px rgba(30,59,104,.12)}.feature-card h3{margin:24px 0 5px;color:var(--ink);font-size:15px}.feature-card p{margin:0;color:#77869d;font-size:11px;line-height:1.55}.feature-card a{display:inline-flex;align-items:center;gap:4px;margin-top:14px;color:#4670d1;font-size:11px;font-weight:800}.feature-icon{display:flex;align-items:center;justify-content:center;width:43px;height:43px;border-radius:13px}.feature-blue{background:#e8f0ff}.feature-blue .feature-icon{color:#356be1}.feature-mint{background:#e6faf5}.feature-mint .feature-icon{color:#0ca785}.feature-lav{background:#f1edff}.feature-lav .feature-icon{color:#8154dd}.feature-yellow{background:#fff6df}.feature-yellow .feature-icon{color:#d99516}.feature-art-dot{position:absolute;right:-15px;bottom:-18px;width:95px;height:95px;border-radius:50%;background:rgba(255,255,255,.55)}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 335px;gap:22px}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.course-card{overflow:hidden;transition:.2s}.course-card:hover{transform:translateY(-4px);box-shadow:0 25px 45px rgba(30,59,104,.12)}.course-thumb{position:relative;height:155px;overflow:hidden;background:#e8efff}.course-thumb img{width:100%;height:100%;object-fit:cover}.course-thumb:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(13,27,62,.32))}.course-chip{position:absolute;left:13px;top:13px;z-index:1;padding:5px 8px;border-radius:7px;background:rgba(255,255,255,.9);color:#4167bd;font-size:10px;font-weight:800}.course-body{padding:17px}.course-body h3{margin:0;color:var(--ink);font-size:15px;line-height:1.35}.course-meta{display:flex;align-items:center;gap:9px;margin-top:10px;color:#8290a4;font-size:10px}.course-progress{margin-top:15px}.course-progress-row{display:flex;justify-content:space-between;margin-bottom:6px;color:#8391a5;font-size:10px}.course-progress-row b{color:#3b6fe2}.filters-bar{display:flex;flex-wrap:wrap;gap:9px;margin:28px 0}.input,.select,.textarea{width:100%;min-height:42px;padding:0 12px;border:1px solid #dce4ef;border-radius:10px;outline:0;background:#fff;color:#33425d;font-size:13px;transition:.2s}.textarea{min-height:110px;padding:11px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:#6e9af2;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.filter-control{min-width:154px}.field-label{display:block;margin-bottom:7px;color:#51627b;font-size:11px;font-weight:800}.form-error{margin-top:5px;color:#c83b51;font-size:11px}.auth-page{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:50px 0;background:radial-gradient(circle at 10% 20%,#e6f3ff,transparent 33%),#f7faff}.auth-card{width:min(440px,calc(100% - 32px));padding:30px}.auth-logo{display:flex;align-items:center;gap:9px;margin-bottom:25px}.form-stack{display:grid;gap:16px}.auth-card h1{margin:0;color:var(--ink);font-size:27px;letter-spacing:-.03em}.auth-card .lead{margin:8px 0 22px;color:#8190a5;font-size:12px;line-height:1.6}.auth-foot{margin-top:20px;text-align:center;color:#8592a4;font-size:12px}.auth-foot a{color:var(--blue);font-weight:700}.dashboard-hero{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card{padding:18px}.stat-card .stat-icon{display:flex;align-items:center;justify-content:center;width:37px;height:37px;margin-bottom:17px;border-radius:11px}.stat-card strong{display:block;color:var(--ink);font-size:24px}.stat-card span{display:block;margin-top:4px;color:#8996a8;font-size:11px}.stat-icon-blue{color:#3472e7;background:#eaf1ff}.stat-icon-green{color:#0caa82;background:#e3faf3}.stat-icon-yellow{color:#d99816;background:#fff5db}.stat-icon-purple{color:#7956da;background:#f0ebff}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:20px;margin-top:20px}.panel{padding:20px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.panel-header h2{margin:0;color:var(--ink);font-size:16px}.panel-header span{color:#91a0b1;font-size:11px}.progress-ring{display:flex;align-items:center;gap:24px}.ring{position:relative;width:122px;height:122px;flex:none}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:11}.ring .track{stroke:#ecf1f7}.ring .value{stroke:#2f70ea;stroke-linecap:round;stroke-dasharray:320;stroke-dashoffset:90}.ring-label{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.ring-label strong{color:var(--ink);font-size:25px}.ring-label span{color:#8b99aa;font-size:10px}.streak-card{display:flex;align-items:center;gap:15px;padding:16px;border-radius:14px;background:linear-gradient(135deg,#eff6ff,#edfbf8)}.streak-icon{display:flex;align-items:center;justify-content:center;width:43px;height:43px;border-radius:12px;background:#fff;color:#f19a1e}.streak-card strong{display:block;color:var(--ink);font-size:16px}.streak-card span{color:#7890a4;font-size:11px}.activity-list{display:grid;gap:2px}.activity-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #f0f3f7}.activity-row:last-child{border:0}.activity-symbol{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:#f0f5ff;color:#4a73d3}.activity-row strong{display:block;color:#394864;font-size:11px}.activity-row small{display:block;margin-top:3px;color:#a0abba;font-size:10px}.leaderboard-list{display:grid;gap:3px}.leader-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:9px;padding:10px;border-radius:10px}.leader-row.is-you{background:#eef5ff}.leader-row>span:first-child{color:#98a5b8;font-size:11px;font-weight:800}.leader-avatar{width:28px;height:28px;border-radius:50%;background:#e9f1ff}.leader-name{color:#364663;font-size:11px;font-weight:700}.leader-xp{color:#6d7d95;font-size:10px}.site-footer{background:#0c1734;margin-top:70px}.site-footer a:hover{color:#fff}.mobile-menu{border-top:1px solid #edf1f5;background:#fff}.toast-root{position:fixed;right:20px;bottom:20px;z-index:100;display:grid;gap:9px}.toast{display:flex;align-items:center;gap:9px;min-width:260px;padding:13px 15px;border:1px solid #dce8f8;border-radius:11px;background:#fff;box-shadow:0 16px 40px rgba(25,59,105,.16);color:#3f4e68;font-size:12px;animation:toast-in .25s ease}.toast.success svg{color:#10a77c}.toast.error svg{color:#dc4b5c}@keyframes toast-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.empty-state{padding:42px 20px;text-align:center;border:1px dashed #d8e1ed;border-radius:15px;color:#8390a4}.empty-state svg{width:36px;height:36px;margin:0 auto 10px;color:#8eb0e8}.empty-state h3{margin:0;color:#4d5d76;font-size:14px}.empty-state p{margin:6px auto 14px;max-width:420px;font-size:11px;line-height:1.6}.course-detail-hero{padding:48px 0;background:linear-gradient(120deg,#f2f7ff,#fff)}.course-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:45px;align-items:center}.course-hero-image{height:260px;border-radius:22px;overflow:hidden;box-shadow:0 20px 40px rgba(38,79,143,.15)}.course-hero-image img{width:100%;height:100%;object-fit:cover}.course-stats{display:flex;flex-wrap:wrap;gap:18px;margin-top:22px}.course-stat{display:flex;align-items:center;gap:7px;color:#76869d;font-size:11px}.course-stat svg{color:#4c77d8}.chapter{overflow:hidden;margin-bottom:13px}.chapter-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:17px 19px;border:0;background:#fff;color:var(--ink);font-weight:800;text-align:left}.chapter-toggle small{display:block;margin-top:4px;color:#95a2b3;font-weight:500}.lesson-list{border-top:1px solid #eef2f7}.lesson-item{display:flex;align-items:center;gap:12px;padding:13px 19px;border-bottom:1px solid #f1f4f8}.lesson-item:last-child{border:0}.lesson-state{display:flex;align-items:center;justify-content:center;width:25px;height:25px;border:1px solid #d6dfeb;border-radius:50%;color:#a5b0bf}.lesson-state.completed{border-color:#95dec7;background:#e5fbf4;color:#10a77c}.lesson-info{flex:1}.lesson-info strong{display:block;color:#465671;font-size:12px}.lesson-info small{display:block;margin-top:3px;color:#98a4b4;font-size:10px}.lesson-item .lesson-link{display:inline-flex;align-items:center;gap:6px;color:#4f75cf;font-size:11px;font-weight:800}.lesson-shell{padding:28px 0 60px}.lesson-layout{display:grid;grid-template-columns:235px minmax(0,1fr) 260px;gap:20px;align-items:start}.lesson-sidebar,.lesson-ai{position:sticky;top:96px}.lesson-sidebar{padding:16px}.lesson-sidebar h2{margin:0 0 13px;color:var(--ink);font-size:14px}.lesson-sidebar a{display:flex;gap:8px;padding:9px 7px;border-radius:8px;color:#7a899f;font-size:11px}.lesson-sidebar a:hover,.lesson-sidebar a.is-active{background:#eef4ff;color:#3066d6}.lesson-main{min-width:0}.video-frame{display:grid;place-items:center;aspect-ratio:16/8.8;border-radius:18px;background:linear-gradient(135deg,#12234b,#254f94);color:#fff;overflow:hidden;position:relative}.video-frame:before{content:'';position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(56,189,248,.18);top:-100px;right:-50px}.play-button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border:0;border-radius:50%;background:#fff;color:#2563eb;box-shadow:0 9px 25px rgba(0,0,0,.23)}.lesson-content{padding:28px}.lesson-content h2{margin:0 0 12px;color:var(--ink);font-size:24px}.lesson-content p{color:#687890;line-height:1.8;font-size:14px}.lesson-callout{padding:16px;border-left:3px solid #2e71e9;border-radius:0 10px 10px 0;background:#f0f5ff;color:#60708a;font-size:13px;line-height:1.7}.lesson-actions{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.lesson-ai{padding:17px;background:linear-gradient(160deg,#f0f5ff,#f2fffc)}.ai-avatar{display:flex;align-items:center;gap:9px}.ai-avatar img{width:35px;height:35px;border-radius:11px;background:#dfeaff}.ai-avatar strong{display:block;color:var(--ink);font-size:12px}.ai-avatar small{display:block;margin-top:2px;color:#7c8ea4;font-size:10px}.ai-quick{display:grid;gap:7px;margin-top:16px}.ai-quick button{padding:9px 10px;border:1px solid #dfe8f5;border-radius:8px;background:#fff;color:#64738d;text-align:left;font-size:10px}.ai-quick button:hover{border-color:#a9c2f2;color:#3569ce}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th{padding:11px 13px;background:#f8fafd;color:#8996a8;font-size:10px;font-weight:800;text-align:left}.data-table td{padding:12px 13px;border-top:1px solid #eef2f7;color:#4a5a73;font-size:11px}.data-table tr:hover td{background:#fbfdff}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:20px;font-size:10px;font-weight:800}.badge-blue{color:#3064ca;background:#eaf1ff}.badge-green{color:#118b6f;background:#e1f8ef}.badge-yellow{color:#ac7411;background:#fff4d9}.badge-red{color:#c53b50;background:#ffedf0}.pagination{display:flex;gap:6px;margin-top:17px}.pagination a,.pagination span{display:grid;place-items:center;width:30px;height:30px;border:1px solid #e0e6ef;border-radius:8px;color:#7b899e;font-size:11px}.pagination .is-active{border-color:#2f70e8;background:#2f70e8;color:#fff}.progress-line{height:7px;border-radius:9px;background:#edf1f7;overflow:hidden}.progress-line span{display:block;height:100%;border-radius:inherit;background:#2f70e8}.lab-page{background:#071127;color:#dce7ff;min-height:calc(100vh - 72px)}.lab-page .site-header{display:none}.lab-shell{display:grid;grid-template-columns:225px minmax(0,1fr) 275px;min-height:calc(100vh - 72px)}.lab-tools,.lab-ai{padding:20px;background:#0b1833;border-right:1px solid #1c2d4d}.lab-ai{border-right:0;border-left:1px solid #1c2d4d}.lab-canvas{padding:22px 25px;background:radial-gradient(circle at 50% 5%,#162d54,#071127 62%)}.lab-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.lab-topbar h1{margin:5px 0 0;color:#fff;font-size:20px}.lab-kicker{color:#73a6ff;text-transform:uppercase;letter-spacing:.13em;font-size:9px;font-weight:800}.lab-tool-group h2{margin:0 0 12px;color:#859ac0;font-size:10px;text-transform:uppercase;letter-spacing:.13em}.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-bottom:25px}.tool-button{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px;border:1px solid #1e3456;border-radius:9px;background:#101f3b;color:#9db2d5;text-align:left;font-size:10px}.tool-button:hover,.tool-button.is-selected{border-color:#4e8df6;background:#142d55;color:#fff}.tool-button svg{width:16px;color:#65bdda}.lab-bench{position:relative;min-height:455px;border:1px solid #294467;border-radius:18px;background:linear-gradient(180deg,#102344,#0c1b35);overflow:hidden}.bench-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(109,151,208,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(109,151,208,.08) 1px,transparent 1px);background-size:36px 36px}.lab-object{position:absolute;display:grid;place-items:center;border:1px solid #4670a5;border-radius:12px;background:#142b50;color:#8fcaff;box-shadow:0 13px 25px rgba(0,0,0,.2);cursor:pointer;user-select:none}.lab-object.beaker{left:24%;bottom:18%;width:115px;height:148px;border-radius:12px 12px 23px 23px;border-top:4px solid #78a8df;background:linear-gradient(180deg,transparent 22%,rgba(58,163,214,.48) 22%)}.lab-object.salt{right:26%;bottom:22%;width:90px;height:65px;background:#eddab7;border-color:#b79868;color:#88673f}.lab-object.thermometer{left:12%;top:26%;width:33px;height:145px;border-radius:20px;background:linear-gradient(90deg,#8dd4ed 0 32%,#e8f6ff 32% 68%,#6ea9cc 68%);color:#fff}.lab-object.rod{right:13%;top:25%;width:160px;height:15px;border-radius:12px;background:#c8d4e3;transform:rotate(-25deg);color:#24395d}.liquid-label{position:absolute;bottom:12px;color:#d4f3ff;font-size:10px;font-weight:800}.lab-readouts{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:15px}.readout{padding:13px;border:1px solid #1f3659;border-radius:10px;background:#0d1c36}.readout small{display:block;color:#7f95b8;font-size:9px}.readout strong{display:block;margin-top:5px;color:#fff;font-size:16px}.lab-tabs{display:flex;gap:8px;margin-top:20px;border-bottom:1px solid #203756}.lab-tabs button{padding:9px 5px;border:0;border-bottom:2px solid transparent;background:transparent;color:#7e94b8;font-size:11px}.lab-tabs button.is-active{border-color:#52a7f6;color:#fff}.lab-panel{padding-top:16px;color:#9fb2d0;font-size:11px;line-height:1.7}.lab-panel strong{color:#e9f2ff}.lab-ai .ai-avatar strong{color:#fff}.lab-ai .ai-avatar small{color:#91a9cf}.lab-ai .ai-bubble{margin-top:18px;padding:13px;border:1px solid #1d385b;border-radius:11px;background:#102344;color:#afc3e3;font-size:11px;line-height:1.6}.lab-action-list{display:grid;gap:7px;margin-top:17px}.lab-action-list div{display:flex;gap:7px;color:#728bb3;font-size:10px}.lab-action-list time{color:#4d6c9c}.lab-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.lab-controls .button{color:#fff;background:#1e59c2}.lab-controls .button-ghost{color:#a7b9d7;border-color:#294467;background:transparent}.experiment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.experiment-card{position:relative;padding:18px;overflow:hidden;transition:.2s}.experiment-card:hover{transform:translateY(-4px)}.experiment-visual{height:135px;display:grid;place-items:center;margin:-18px -18px 16px;background:linear-gradient(135deg,#111e3a,#203f71);color:#70c6e5}.experiment-card h3{margin:0;color:var(--ink);font-size:14px}.experiment-card p{margin:7px 0 15px;color:#8090a6;font-size:11px;line-height:1.6}.game-page{background:linear-gradient(135deg,#f6fbff,#fefaff)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start}.game-board-wrap{padding:20px}.game-board{position:relative;aspect-ratio:1/1;max-width:720px;margin:auto;border:12px solid #b7d7fb;border-radius:28px;background:#e9f6ff;box-shadow:0 18px 35px rgba(76,124,185,.18)}.board-center{position:absolute;inset:22%;display:grid;place-content:center;text-align:center;border:2px dashed #b4d9ef;border-radius:50%;background:#fff;color:#1f4e86}.board-center strong{font-size:23px;letter-spacing:.1em}.board-center small{margin-top:5px;color:#79a0c3;font-size:10px}.board-tile{position:absolute;display:grid;place-content:center;width:15%;aspect-ratio:1;border:2px solid #fff;border-radius:13px;background:#fff;box-shadow:0 4px 10px rgba(72,113,155,.12);color:#5b7195;text-align:center;font-size:10px;font-weight:800}.board-tile.question{background:#eef3ff;color:#386bda}.board-tile.bonus{background:#fff4d8;color:#bf7b12}.board-tile.reward{background:#e4faf2;color:#0c9474}.pawn{position:absolute;z-index:5;display:grid;place-content:center;width:27px;height:27px;border:3px solid #fff;border-radius:50%;box-shadow:0 5px 10px rgba(0,0,0,.2);color:#fff;font-size:9px;font-weight:800;transition:all .45s cubic-bezier(.2,.7,.2,1)}.pawn-0{background:#f15d68}.pawn-1{background:#4893e8}.pawn-2{background:#f0ab35}.pawn-3{background:#8d61dc}.dice-box{display:flex;justify-content:center;gap:9px;margin:20px 0}.die{display:grid;place-items:center;width:48px;height:48px;border:1px solid #dce5ef;border-radius:12px;background:#fff;color:var(--ink);font-size:20px;font-weight:800;box-shadow:0 7px 16px rgba(71,110,155,.1)}.die.rolling{animation:shake .5s ease infinite}@keyframes shake{0%,100%{transform:rotate(0)}25%{transform:rotate(9deg) translateY(-2px)}75%{transform:rotate(-9deg) translateY(2px)}}.player-list{display:grid;gap:9px}.player-card{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid #e3e9f2;border-radius:11px;background:#fff}.player-card.active{border-color:#9fbeef;background:#f2f6ff}.player-card img{width:31px;height:31px;border-radius:50%;background:#e8f0ff}.player-card strong{display:block;color:#394864;font-size:11px}.player-card span{display:block;color:#95a1b2;font-size:10px}.player-card em{margin-left:auto;color:#cb8b1c;font-size:10px;font-style:normal;font-weight:800}.quiz-modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(9,21,50,.52)}.quiz-box{width:min(560px,100%);max-height:90vh;overflow:auto;padding:25px}.quiz-option{display:flex;align-items:flex-start;gap:10px;width:100%;padding:13px;margin-top:9px;border:1px solid #dfe6f0;border-radius:11px;background:#fff;color:#465671;text-align:left;font-size:12px}.quiz-option:hover,.quiz-option.is-selected{border-color:#6f9ced;background:#f1f6ff}.quiz-option b{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#eff3f8;color:#76859c;font-size:10px}.quiz-option.is-selected b{background:#2d6ee5;color:#fff}.quiz-result{text-align:center;padding:20px 0}.quiz-score{display:grid;place-content:center;width:112px;height:112px;margin:10px auto 18px;border-radius:50%;border:9px solid #dff5ed;color:#0b9675;font-size:27px;font-weight:800}.profile-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px}.profile-card{padding:22px;text-align:center}.profile-avatar{width:96px;height:96px;margin:0 auto 14px;border-radius:28px;background:#e8f0ff}.profile-card h2{margin:0;color:var(--ink);font-size:18px}.profile-card p{margin:5px 0;color:#8997aa;font-size:11px}.profile-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}.profile-mini-stats div{padding:10px 4px;border-radius:10px;background:#f5f8fc}.profile-mini-stats strong{display:block;color:var(--ink);font-size:15px}.profile-mini-stats span{display:block;margin-top:3px;color:#8d9bad;font-size:9px}.achievement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.achievement-card{padding:18px}.achievement-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:#fff4d8;color:#d39417}.achievement-card h3{margin:13px 0 5px;color:var(--ink);font-size:13px}.achievement-card p{margin:0;color:#8290a4;font-size:10px;line-height:1.5}.admin-shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh;background:#f6f8fc}.admin-sidebar{padding:21px 13px;background:#0c1734;color:#adbfde}.admin-sidebar .brand{padding:0 10px 28px}.admin-sidebar nav{display:grid;gap:3px}.admin-sidebar nav a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:9px;font-size:11px;font-weight:600}.admin-sidebar nav a:hover,.admin-sidebar nav a.is-active{background:#1a315b;color:#fff}.admin-sidebar nav svg{width:16px}.admin-content{padding:27px 32px}.admin-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.admin-top h1{margin:0;color:var(--ink);font-size:25px;letter-spacing:-.04em}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.admin-stat{padding:17px}.admin-stat small{display:block;color:#8997a9;font-size:10px}.admin-stat strong{display:block;margin-top:7px;color:var(--ink);font-size:25px}.admin-section{margin-top:20px}.admin-section .panel-header{margin-bottom:12px}.chart-placeholder{height:210px;display:grid;place-content:center;border:1px dashed #d9e3f1;border-radius:13px;color:#8c9aad;font-size:12px;background:linear-gradient(180deg,#fbfdff,#f6f9fd)}
.admin-page .site-header,.admin-page .site-footer{display:none}
.player-card small{display:block;color:#95a1b2;font-size:10px}.player-card small span{display:inline}.player-card div>span,.player-card div>span span{display:inline}
@media(max-width:1100px){.hero-grid{gap:28px}.lesson-layout{grid-template-columns:190px minmax(0,1fr)}.lesson-ai{grid-column:1/-1;position:static}.content-grid{grid-template-columns:1fr}.course-grid{grid-template-columns:repeat(2,1fr)}.experiment-grid{grid-template-columns:repeat(2,1fr)}.lab-shell{grid-template-columns:190px minmax(0,1fr)}.lab-ai{display:none}.game-layout{grid-template-columns:1fr}.game-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:15px}.admin-sidebar{width:210px}.admin-shell{grid-template-columns:210px 1fr}}
@media(max-width:760px){.container-wide{width:min(100% - 30px,1240px)}.page-shell{padding:30px 0 48px}.hero-section{padding:38px 0 35px}.hero-grid{grid-template-columns:1fr}.hero-title{font-size:42px}.hero-art{min-height:350px}.feature-grid{grid-template-columns:repeat(2,1fr)}.course-grid,.experiment-grid,.achievement-grid{grid-template-columns:1fr}.dashboard-hero{display:block}.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.profile-grid{grid-template-columns:1fr}.lesson-layout{grid-template-columns:1fr}.lesson-sidebar{position:static}.lesson-sidebar nav{display:flex;overflow:auto}.lesson-sidebar a{white-space:nowrap}.course-detail-grid{grid-template-columns:1fr;gap:22px}.course-hero-image{height:190px}.lab-shell{display:block}.lab-tools{display:none}.lab-canvas{padding:16px 14px}.lab-bench{min-height:390px}.lab-readouts{grid-template-columns:repeat(2,1fr)}.lab-topbar h1{font-size:16px}.game-board-wrap{padding:10px}.game-board{border-width:7px}.game-sidebar{display:block}.admin-shell{display:block}.admin-sidebar{width:auto;min-height:auto;padding:15px}.admin-sidebar .brand{padding:0 7px 13px}.admin-sidebar nav{display:flex;overflow:auto}.admin-sidebar nav a{white-space:nowrap}.admin-content{padding:20px 15px}.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.table-wrap{margin-inline:-8px}.filters-bar>*{flex:1 1 145px}.notification-panel{right:-50px}.hero-copy{font-size:14px}.lesson-content{padding:20px}.lesson-content h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.ring{box-shadow:none}
.leader-row{grid-template-columns:24px 28px minmax(0,1fr) auto}
.progress-ring .grid-cols-7>div>div>span{display:block}
.progress-ring .grid-cols-7>div:nth-child(1) span{height:36%}
.progress-ring .grid-cols-7>div:nth-child(2) span{height:49%}
.progress-ring .grid-cols-7>div:nth-child(3) span{height:60%}
.progress-ring .grid-cols-7>div:nth-child(4) span{height:74%}
.progress-ring .grid-cols-7>div:nth-child(5) span{height:88%}
.progress-ring .grid-cols-7>div:nth-child(6) span{height:54%}
.progress-ring .grid-cols-7>div:nth-child(7) span{height:28%}
.lab-tools #tool-inventory .tool-button{cursor:default}.lab-tools #tool-inventory .tool-button:hover{border-color:#1e3456;background:#101f3b;color:#9db2d5}

/* Rich learning game */
.game-experience{padding-top:34px}.game-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:22px}.game-mode-switch{display:flex;gap:7px;padding:5px;border:1px solid #dce7f4;border-radius:15px;background:#fff;box-shadow:0 8px 25px rgba(45,88,143,.08)}.game-mode-switch a{display:flex;align-items:center;gap:8px;min-width:132px;padding:9px 11px;border-radius:11px;color:#77869d;font-size:11px}.game-mode-switch a svg{width:17px}.game-mode-switch a span{display:grid;gap:2px}.game-mode-switch a b{color:#41536e;font-size:11px}.game-mode-switch a small{font-size:9px;color:#9aa7b8}.game-mode-switch a.is-active{background:#eef5ff;color:#2f6fe2}.game-mode-switch a.is-active b{color:#2f6fe2}.game-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:20px}.game-hud-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #e3ebf5;border-radius:14px;background:rgba(255,255,255,.86);box-shadow:0 7px 20px rgba(43,82,129,.05)}.hud-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px}.hud-icon svg{width:17px}.hud-blue{color:#3675e8;background:#e9f1ff}.hud-yellow{color:#c28a17;background:#fff6dc}.hud-mint{color:#0a9b7b;background:#e4faf2}.hud-orange{color:#e48328;background:#fff0df}.game-hud-item small{display:block;color:#94a1b2;font-size:9px}.game-hud-item strong{display:block;margin-top:2px;color:#30425f;font-size:12px}.game-layout-rich{grid-template-columns:minmax(0,1fr) 330px;gap:18px}.game-board-wrap{padding:17px 18px 20px}.board-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.board-kicker,.panel-eyebrow{display:block;color:#86a0bf;font-size:9px;font-weight:800;letter-spacing:.14em}.board-topline strong{display:block;margin-top:3px;color:#243b5d;font-size:14px}.board-live{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:20px;background:#eafaf4;color:#159373;font-size:9px;font-weight:800}.board-live span{width:6px;height:6px;border-radius:50%;background:#19bd8d;box-shadow:0 0 0 4px rgba(25,189,141,.14)}.board-center{inset:20%;border:1px solid #c3e8f3;background:radial-gradient(circle,#fff,#effaff);box-shadow:inset 0 0 45px rgba(55,180,218,.1)}.board-center-orbit{position:absolute;border:1px dashed rgba(58,158,215,.2);border-radius:50%;pointer-events:none}.board-center-orbit.orbit-one{inset:11%;animation:orbit 18s linear infinite}.board-center-orbit.orbit-two{inset:20%;animation:orbit 13s linear infinite reverse}.board-center-badge{display:grid;place-items:center;width:38px;height:38px;margin:0 auto 8px;border-radius:13px;background:#dff7f5;color:#0aa18e;box-shadow:0 6px 15px rgba(10,161,142,.14)}.board-center-badge svg{width:18px}.board-center strong{position:relative;font-size:clamp(13px,2vw,22px);line-height:1.1}.board-center strong em{color:#2d76da;font-style:normal}.board-center-goal{display:inline-flex;align-items:center;justify-content:center;gap:4px;margin:9px auto 0;padding:5px 8px;border-radius:20px;background:#eef5ff;color:#6482ad;font-size:8px}.board-center-goal svg{width:11px}.board-tile{width:15.2%;padding:5px 3px;transition:.18s;z-index:2}.board-tile:hover{z-index:4;transform:translateY(-3px) scale(1.04)}.board-tile svg{width:17px;margin:0 auto 3px}.board-tile strong{font-size:9px}.board-tile small{display:block;margin-top:2px;color:inherit;opacity:.62;font-size:7px;line-height:1.15}.board-tile.tile-start{background:#e6f6ff;color:#2079b8;border-color:#b7e0f4}.board-tile.tile-subject{background:#f0f4ff;color:#426ed1;border-color:#d1ddfb}.board-tile.tile-question{background:#f4edff;color:#8454cd;border-color:#e4d5fa}.board-tile.tile-bonus{background:#fff5dc;color:#b97b11;border-color:#f6dda1}.board-tile.tile-reward{background:#e5fbf1;color:#0c9473;border-color:#b8ebd9}.pawn{width:29px;height:29px;border-width:3px;font-size:9px}.dice-stage{display:grid;justify-items:center;padding:7px 0 0}.dice-caption{display:flex;align-items:center;gap:7px;color:#7690af;font-size:10px;font-weight:700}.dice-spark{width:7px;height:7px;border-radius:50%;background:#efad42;box-shadow:0 0 0 5px rgba(239,173,66,.14)}.dice-box{align-items:center;margin:13px 0}.die{width:46px;height:46px;font-size:19px}.die svg{width:19px}.die-total{width:35px;height:35px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#2672e8,#18b6ca);font-size:14px;box-shadow:0 6px 15px rgba(34,113,219,.23)}.dice-actions{display:flex;align-items:center;gap:8px}.game-roll-button{min-width:170px}.game-roll-button kbd{padding:2px 5px;border:1px solid rgba(255,255,255,.4);border-radius:5px;font-size:8px}.game-status{width:min(100%,450px);margin-top:10px;padding:9px 12px;border-radius:9px;background:#f7faff;color:#71839c;text-align:center;font-size:10px}.game-status[data-tone=success]{background:#e9faf3;color:#12886f}.game-status[data-tone=error]{background:#fff0f2;color:#c34858}.game-status[data-tone=rolling]{background:#eef5ff;color:#386fce}.game-sidebar-rich{display:grid;gap:14px}.panel{padding:16px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}.panel-header h2{margin:4px 0 0;color:#263c5d;font-size:15px}.panel-header>svg{width:18px;color:#6e92c7}.round-badge{padding:5px 8px;border-radius:20px;background:#f1f6fc;color:#7890ae;font-size:9px}.round-badge b{color:#3f73cf}.player-card{position:relative;transition:.18s}.player-card.active{box-shadow:0 7px 16px rgba(57,116,211,.1)}.player-card.active:after{content:'ĐANG ĐI';position:absolute;right:9px;top:7px;color:#3774dc;font-size:7px;font-weight:800}.player-avatar-wrap{position:relative}.player-avatar-wrap img{width:33px;height:33px;border-radius:11px}.player-status{position:absolute;right:-2px;bottom:-1px;width:8px;height:8px;border:2px solid #fff;border-radius:50%;background:#bfd0e4}.player-card.active .player-status{background:#24bb91}.player-copy{min-width:0}.player-copy span{font-size:9px}.player-copy span i{display:inline-block;width:3px;height:3px;margin:0 3px;border-radius:50%;background:#bec9d6;vertical-align:middle}.mission-panel{background:linear-gradient(135deg,#fbfdff,#f3f9ff)}.mission-progress{padding:10px;border:1px solid #e0ebf8;border-radius:10px;background:#fff}.mission-progress-top{display:flex;justify-content:space-between;color:#70839f;font-size:10px}.mission-progress-top b{color:#3774d6}.progress-line{height:6px}.mission-progress .progress-line{margin-top:8px;background:#e9f0f8}.mission-progress .progress-line span{background:linear-gradient(90deg,#4a7cf0,#1cc1af)}.mission-item{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #e5edf5}.mission-item>span{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#eaf2ff;color:#4b79d9}.mission-item>span svg{width:14px}.mission-item p{flex:1;margin:0}.mission-item p b{display:block;color:#405572;font-size:10px}.mission-item p small{display:block;margin-top:2px;color:#8e9eb1;font-size:9px}.mission-item>svg{width:13px;color:#aab8c9}.rule-panel{padding-bottom:11px}.rule-line{display:flex;gap:10px;padding:9px 0;border-top:1px solid #eef2f7;color:#77879c;font-size:10px;line-height:1.45}.rule-line b{color:#8fb0e3;font-size:10px}.game-question-box{padding:25px}.question-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}.question-subject{padding:5px 8px;border-radius:20px;background:#eef4ff;color:#4273d1;font-size:9px;font-weight:800}.question-points{color:#9b7b30;font-size:9px;font-weight:700}.game-question-box h2{margin:16px 0 0;color:#223756;font-size:19px;line-height:1.4}.question-options{margin-top:16px}.question-help{margin:15px 0 0;color:#9aa9ba;text-align:center;font-size:10px}.quiz-option.is-correct{border-color:#8ad9be;background:#eafaf4}.quiz-option.is-wrong{border-color:#ef9eaa;background:#fff0f2}

/* Virtual laboratory */
.lab-shell{grid-template-columns:250px minmax(0,1fr) 310px}.lab-tools,.lab-ai{padding:18px 17px}.lab-tools{background:linear-gradient(180deg,#0d1d3b,#0a1730)}.lab-back-link{display:flex;align-items:center;gap:7px;color:#7e98bf;font-size:10px}.lab-back-link svg{width:14px}.lab-brand{display:flex;align-items:center;gap:9px;margin:22px 0 25px}.lab-brand>span{display:grid;place-items:center;width:33px;height:33px;border-radius:11px;background:linear-gradient(135deg,#1b9eae,#4c79e7);color:#fff}.lab-brand svg{width:17px}.lab-brand small{display:block;color:#5f7ba7;font-size:8px;letter-spacing:.13em;font-weight:800}.lab-brand strong{display:block;margin-top:3px;color:#f0f6ff;font-size:13px}.lab-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;color:#859ac0;text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:800}.lab-section-title b{display:grid;place-items:center;width:19px;height:19px;border-radius:6px;background:#182e52;color:#7cb9e7;font-size:9px}.tool-grid{grid-template-columns:1fr;gap:7px;margin-bottom:22px}.lab-tool-card{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid #1c3356;border-radius:10px;background:#102344;color:#9db2d5}.lab-tool-card:hover{border-color:#3e83dc;background:#132d54}.lab-tool-icon{display:grid;place-items:center;flex:none;width:29px;height:29px;border-radius:8px;background:#173a61;color:#64c0df}.lab-tool-icon svg{width:15px}.lab-tool-copy{min-width:0}.lab-tool-name{display:block;color:#d8e7fb;font-size:10px}.lab-tool-purpose{display:block;margin-top:2px;color:#7992b5;font-size:8px;line-height:1.25}.lab-mode-switch{display:grid;gap:7px}.lab-mode-switch .tool-button{flex-direction:row;align-items:center;gap:9px;width:100%;padding:9px}.lab-mode-switch .tool-button>svg{flex:none;width:16px}.lab-mode-switch .tool-button span{display:grid;gap:2px}.lab-mode-switch .tool-button b{color:inherit;font-size:10px}.lab-mode-switch .tool-button small{color:#7189ab;font-size:8px}.lab-mode-switch .tool-button.is-selected small{color:#a6c4ea}.lab-safety-card{display:flex;gap:8px;margin-top:20px;padding:10px;border:1px solid #23506b;border-radius:10px;background:#102b43}.lab-safety-card>span{display:grid;place-items:center;flex:none;width:25px;height:25px;border-radius:7px;background:#19485a;color:#5fd6c1}.lab-safety-card svg{width:14px}.lab-safety-card strong{display:block;color:#b8e7df;font-size:9px}.lab-safety-card p{margin:3px 0 0;color:#7698aa;font-size:8px;line-height:1.4}.lab-canvas{padding:20px 25px}.lab-top-actions{display:flex;align-items:center;gap:8px}.lab-live{display:inline-flex;align-items:center;gap:5px;color:#71c7ba;font-size:9px}.lab-live i{width:6px;height:6px;border-radius:50%;background:#23c598;box-shadow:0 0 0 4px rgba(35,197,152,.13)}.lab-timer{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid #294467;border-radius:8px;color:#94acd0;font-size:9px}.lab-timer svg{width:12px}.lab-guide-card{display:flex;align-items:center;gap:11px;margin-bottom:15px;padding:12px 14px;border:1px solid #224268;border-radius:13px;background:linear-gradient(105deg,#102a4a,#0d203d)}.lab-guide-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px;background:#1c4a68;color:#68c8d8}.lab-guide-icon svg{width:17px}.lab-guide-copy{min-width:0;flex:1}.lab-guide-copy small,.lab-control-heading small{display:block;color:#6b96c2;font-size:8px;letter-spacing:.12em;font-weight:800}.lab-guide-copy strong{display:block;margin-top:3px;color:#eff7ff;font-size:11px}.lab-guide-copy p{margin:3px 0 0;color:#83a5c9;font-size:9px}.lab-guide-progress{width:155px}.lab-guide-progress>div:first-child{display:flex;justify-content:space-between;margin-bottom:6px;color:#7391b6;font-size:8px}.lab-guide-progress b{color:#70c6e5}.lab-guide-progress .progress-line{background:#1a3357}.lab-guide-progress .progress-line span{background:linear-gradient(90deg,#48a9e8,#32d0ac)}.lab-bench{min-height:455px;border-color:#2c527c;background:radial-gradient(circle at 50% 36%,#153967,#0c1d38 64%)}.lab-bench-head{position:absolute;z-index:2;left:17px;right:17px;top:14px;display:flex;justify-content:space-between;align-items:center}.lab-bench-head>div:first-child{display:flex;align-items:center;gap:6px}.bench-status-dot{width:7px;height:7px;border-radius:50%;background:#43d1ac;box-shadow:0 0 0 4px rgba(67,209,172,.12)}.lab-bench-head strong{color:#c8ddf6;font-size:10px}.lab-bench-head small{margin-left:5px;color:#6f91bb;font-size:8px}.lab-state-chips{display:flex;gap:5px}.lab-state-chips span{padding:4px 6px;border:1px solid #294b73;border-radius:6px;background:#102947;color:#7ea4cb;font-size:8px}.lab-state-chips b{color:#b5d4f1;font-weight:600}.lab-next-step{position:absolute;z-index:3;left:16px;bottom:16px;display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #2c547b;border-radius:9px;background:rgba(11,30,56,.9);box-shadow:0 8px 15px rgba(0,0,0,.16)}.lab-next-step>span{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#1b4269;color:#65c3e5}.lab-next-step svg{width:12px}.lab-next-step small{display:block;color:#6898c4;font-size:7px;letter-spacing:.1em;font-weight:800}.lab-next-step strong{display:block;margin-top:2px;color:#d6e8fb;font-size:9px}.lab-bench-legend{position:absolute;right:16px;bottom:17px;display:flex;gap:8px;color:#7898bd;font-size:8px}.lab-bench-legend span{display:inline-flex;align-items:center;gap:4px}.lab-bench-legend i{width:6px;height:6px;border-radius:50%;background:#6bcbe5}.lab-bench-legend span:nth-child(2) i{background:#e2ae57}.lab-bench-legend span:nth-child(3) i{background:#58d0a6}.lab-scene{position:absolute;inset:58px 20px 62px}.scene-beaker{position:absolute;left:28%;bottom:13%;width:115px;height:160px;border:2px solid #76b5dc;border-top:4px solid #a1daf1;border-radius:12px 12px 27px 27px;background:rgba(73,137,184,.08);box-shadow:0 15px 25px rgba(0,0,0,.2);overflow:hidden}.scene-liquid{position:absolute;left:7%;right:7%;bottom:6%;border-radius:8px 8px 20px 20px;background:linear-gradient(180deg,#64cae2aa,#347ec5cc);transition:.4s}.scene-label{position:absolute;left:0;right:0;bottom:10px;color:#d1edff;text-align:center;font-size:9px;font-weight:800}.scene-particles,.scene-bubbles{position:absolute;z-index:2;left:15%;right:15%;top:45%;color:#d7f6ff;font-size:15px;letter-spacing:5px;animation:float-particles 2.5s ease-in-out infinite}.scene-material{position:absolute;right:23%;bottom:18%;display:grid;place-items:center;width:84px;height:64px;border:1px solid #bd9b68;border-radius:10px;background:linear-gradient(140deg,#f2e2bd,#cda978);color:#7e623b;box-shadow:0 11px 20px rgba(0,0,0,.2)}.scene-material svg{width:18px}.scene-material b{font-size:12px}.scene-material small{font-size:8px}.scene-tool{position:absolute}.scene-thermo{left:13%;top:22%;display:grid;place-items:center;gap:4px;color:#8dd7ec}.scene-thermo svg{width:28px;height:96px}.scene-thermo b{padding:4px 6px;border-radius:5px;background:#14395a;color:#d1f5ff;font-size:9px}.scene-ph-meter,.scene-heat,.scene-measure,.scene-distance{position:absolute;right:15%;top:22%;display:grid;place-items:center;gap:5px;padding:10px;border:1px solid #315b84;border-radius:10px;background:#122b4b;color:#a9c8e7}.scene-ph-meter svg,.scene-heat svg,.scene-measure svg,.scene-distance svg{width:23px;color:#6ed0de}.scene-ph-meter strong,.scene-heat strong,.scene-measure strong,.scene-distance strong{font-size:13px;color:#f1fbff}.scene-ph-meter small{width:42px;height:7px;border-radius:20px}.scene-ph-beaker .scene-liquid{bottom:6%}.scene-dropper{position:absolute;left:13%;top:23%;display:grid;place-items:center;gap:5px;color:#b5cde8;font-size:8px}.scene-dropper svg{width:42px;height:42px;color:#bb8ee9}.scene-reaction-tube{position:absolute;left:32%;bottom:13%;width:78px;height:180px;border:2px solid #83b8dc;border-radius:10px 10px 25px 25px;overflow:hidden;background:rgba(80,139,185,.1)}.scene-reaction-tube .scene-liquid{left:5%;right:5%;bottom:4%;border-radius:6px 6px 20px 20px;background:linear-gradient(#d39b5f,#54afce)}.scene-reaction-tube .scene-bubbles{top:32%;left:16%;right:0}.scene-heat{right:25%;top:30%}.scene-circuit{position:absolute;inset:18px 12% 10px}.circuit-wire{position:absolute;background:#61b8da;box-shadow:0 0 7px rgba(80,189,222,.4)}.wire-top,.wire-bottom{left:16%;right:16%;height:3px}.wire-top{top:18%}.wire-bottom{bottom:16%}.wire-left,.wire-right{top:18%;bottom:16%;width:3px}.wire-left{left:16%}.wire-right{right:16%}.scene-battery,.scene-resistor,.scene-meter{position:absolute;display:grid;place-items:center;gap:3px;width:62px;height:48px;border:1px solid #3c7094;border-radius:8px;background:#163451;color:#c9ecfa;font-size:9px}.scene-battery{left:7%;top:33%}.scene-resistor{left:calc(50% - 31px);top:3%}.scene-meter{right:7%;bottom:28%}.scene-battery svg,.scene-resistor svg,.scene-meter svg{width:17px}.scene-resistor small{font-size:8px}.scene-pendulum{position:absolute;left:30%;right:30%;top:8%;bottom:4%}.pendulum-stand{position:absolute;left:50%;top:0;bottom:0;width:4px;transform:translateX(-50%);background:#7aa9ce}.pendulum-stand:before{content:"";position:absolute;left:50%;top:0;width:94px;height:4px;transform:translateX(-50%);background:#8dc7df}.pendulum-line{position:absolute;left:50%;top:4px;width:2px;height:145px;transform-origin:top center;transform:translateX(-50%) rotate(-14deg);background:#d7e8f2}.pendulum-line.is-swinging{animation:swing 1.4s ease-in-out infinite alternate}.pendulum-line span{position:absolute;bottom:-12px;left:-11px;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e6c278,#a26a3b);box-shadow:0 7px 12px rgba(0,0,0,.3)}.scene-angle{position:absolute;left:10%;top:18%;color:#e7b86b;font-size:11px}.scene-optics{position:absolute;inset:22px 9%}.optics-object,.optics-lens,.optics-screen{position:absolute;top:32%;display:grid;place-items:center;gap:4px;color:#b5d0e9;font-size:8px}.optics-object{left:5%}.optics-lens{left:49%;color:#68d1de}.optics-screen{right:4%;color:#91b5d7}.optics-object svg,.optics-lens svg,.optics-screen svg{width:28px;height:50px}.optics-screen.is-focused{color:#61d2a6}.optics-ray{position:absolute;left:13%;right:17%;height:2px;transform-origin:left center;background:#e6c26e;box-shadow:0 0 7px rgba(230,194,110,.6)}.ray-one{top:37%;transform:rotate(-11deg)}.ray-two{top:57%;transform:rotate(8deg)}.scene-distance{right:8%;top:10%}.lab-readouts{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.readout{border-color:#1e3a60;background:#0c1c35}.readout small{color:#7693b7}.readout strong{font-size:14px;color:#edf7ff}.lab-control-heading{display:flex;align-items:end;justify-content:space-between;margin-top:17px}.lab-control-heading strong{display:block;margin-top:4px;color:#dfeeff;font-size:12px}.lab-control-heading>span{color:#6887ad;font-size:9px}.lab-controls{margin-top:9px;gap:7px}.lab-action-button{min-height:34px;border-color:#2b527a!important;background:#102947!important;color:#add0ec!important;font-size:10px}.lab-action-button:hover{border-color:#55a7de!important;background:#17385e!important;color:#fff!important}.lab-action-button svg{width:14px}.lab-tabs{gap:14px;margin-top:20px}.lab-tabs button{display:inline-flex;align-items:center;gap:5px;color:#7691b6;font-size:10px}.lab-tabs button svg{width:13px}.lab-panel{min-height:94px;padding:15px 3px;color:#91a9ca;font-size:10px}.lab-panel strong{font-size:12px;color:#eaf5ff}.lab-panel p{margin:7px 0 0;line-height:1.7}.lab-measurement-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.lab-measurement-grid span{padding:9px;border:1px solid #1e3d61;border-radius:8px;background:#0d203b}.lab-measurement-grid small,.lab-measurement-grid b{display:block}.lab-measurement-grid small{color:#7591b4;font-size:8px}.lab-measurement-grid b{margin-top:4px;color:#def2ff;font-size:11px}.lab-chart-wrap{height:185px;margin-top:12px}.lab-conclusion{display:block;width:100%;min-height:80px;margin-top:10px;border-color:#294a70!important;background:#102344!important;color:#eaf5ff!important}.lab-ai{background:linear-gradient(180deg,#0d1c38,#0a172f)}.lab-ai-avatar img{width:38px;height:38px;border:1px solid #2c527c;border-radius:12px}.lab-ai .ai-bubble{background:#102745;border-color:#24476f;color:#b0c9e5}.lab-score-card{display:flex;align-items:center;gap:11px;margin-top:16px;padding:11px;border:1px solid #244a72;border-radius:12px;background:linear-gradient(135deg,#102947,#0e213d)}.lab-score-ring{--score:0deg;position:relative;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:conic-gradient(#46cfb0 var(--score),#193a5e 0);color:#fff}.lab-score-ring:after{content:'';position:absolute;inset:6px;border-radius:50%;background:#102947}.lab-score-ring strong,.lab-score-ring small{position:relative;z-index:1}.lab-score-ring strong{font-size:15px}.lab-score-ring small{margin-top:-15px;color:#87a5c8;font-size:7px}.lab-score-card>div:last-child{min-width:0}.lab-score-card>div:last-child>small{color:#6d96c1;font-size:8px;letter-spacing:.1em;font-weight:800}.lab-score-card>div:last-child>strong{display:block;margin-top:4px;color:#e3f2ff;font-size:11px}.lab-score-card p{margin:3px 0 0;color:#7593b4;font-size:8px;line-height:1.35}.lab-log-heading{display:flex;justify-content:space-between;margin-top:20px;padding-bottom:8px;border-bottom:1px solid #203d61;color:#6f8fb7;font-size:8px;font-weight:800;letter-spacing:.11em}.lab-log-heading b{color:#70c7dc}.lab-action-list{gap:6px;margin-top:11px;max-height:195px;overflow:auto}.lab-action-list div{align-items:flex-start;padding:5px 0;border-bottom:1px solid rgba(40,70,104,.45);font-size:9px}.lab-action-list time{min-width:29px;color:#4f719b}.lab-action-list span{color:#9ab3d3;line-height:1.35}.lab-ai-actions{margin-top:16px}.lab-ai-actions .button{width:100%;min-height:37px;font-size:11px}.lab-ai-actions .button-ghost{margin-top:8px;border-color:#2a4a6e!important;background:transparent!important;color:#9ab5d7!important}.lab-ai-actions svg{width:14px}
@keyframes orbit{to{transform:rotate(360deg)}}@keyframes float-particles{50%{transform:translateY(-7px);opacity:.65}}@keyframes swing{from{transform:translateX(-50%) rotate(-14deg)}to{transform:translateX(-50%) rotate(14deg)}}
@media(max-width:1100px){.game-layout-rich{grid-template-columns:1fr}.game-sidebar-rich{grid-template-columns:1fr 1fr}.lab-shell{grid-template-columns:210px minmax(0,1fr)}.lab-ai{display:none}.lab-canvas{padding-inline:20px}}
@media(max-width:760px){.game-hero{display:block}.game-mode-switch{margin-top:15px}.game-mode-switch a{flex:1;min-width:0}.game-hud{grid-template-columns:repeat(2,1fr)}.game-sidebar-rich{display:block}.game-sidebar-rich .panel{margin-top:12px}.board-center{inset:22%}.board-center strong{font-size:13px}.board-center-goal{font-size:6px}.board-tile small{display:none}.board-tile svg{width:13px}.board-tile strong{font-size:7px}.game-board-wrap{padding:12px}.dice-stage{padding-bottom:2px}.game-status{font-size:9px}.lab-shell{display:block}.lab-tools{display:none}.lab-canvas{padding:15px 13px}.lab-topbar{align-items:flex-start}.lab-top-actions{gap:5px}.lab-live{display:none}.lab-topbar h1{font-size:17px}.lab-guide-card{align-items:flex-start;flex-wrap:wrap}.lab-guide-progress{width:100%;order:3}.lab-bench{min-height:430px}.lab-state-chips{display:none}.lab-bench-legend{display:none}.lab-scene{inset-inline:8px}.lab-readouts{grid-template-columns:repeat(2,1fr)}.lab-control-heading{display:block}.lab-control-heading>span{display:block;margin-top:4px}.lab-controls{display:grid;grid-template-columns:repeat(2,1fr)}.lab-action-button{padding-inline:8px;font-size:9px}.lab-tabs{gap:8px;overflow:auto}.lab-tabs button{white-space:nowrap;padding-inline:2px;font-size:9px}.lab-measurement-grid{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){.board-center-orbit,.scene-particles,.scene-bubbles,.pendulum-line.is-swinging{animation:none!important}}

/* Admin data-entry surfaces */
.admin-form-page{width:min(1080px,calc(100% - 48px));margin:0 auto;padding:38px 0 70px}.admin-form-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.admin-form-top .page-subtitle{margin-bottom:0}.admin-form-card{padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}.admin-field{min-width:0}.admin-field-wide{grid-column:1 / -1}.admin-field sup{margin-left:3px;color:#d84d62;font-size:11px}.admin-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid #edf1f6}.admin-form-error,.admin-form-success{display:flex;align-items:center;gap:8px;margin:0 0 18px;padding:12px 14px;border-radius:10px;font-size:12px}.admin-form-error{border:1px solid #f4ccd4;background:#fff3f5;color:#bd3c54}.admin-form-success{border:1px solid #bce9da;background:#effbf6;color:#118b6f}.admin-form-error svg,.admin-form-success svg{width:16px;flex:none}.admin-form-page .button svg{width:15px;height:15px}.admin-form-page .textarea{min-height:118px}
@media(max-width:760px){.admin-form-page{width:min(100% - 30px,1080px);padding:25px 0 48px}.admin-form-top{align-items:flex-start;flex-direction:column;gap:13px}.admin-form-top .button{width:100%}.admin-form-card{padding:17px}.admin-form-grid{grid-template-columns:1fr;gap:15px}.admin-field-wide{grid-column:auto}.admin-form-actions{justify-content:stretch;flex-direction:column-reverse}.admin-form-actions .button{width:100%}}

/* Interactive laboratory apparatus */
.lab-interaction-layer{position:absolute;inset:58px 20px 62px;z-index:4;pointer-events:none}.lab-drop-zone{position:absolute;display:grid;place-items:center;width:92px;min-height:42px;padding:6px 7px;border:1px dashed #527ba6;border-radius:10px;background:rgba(12,35,63,.6);color:#7fa6cc;text-align:center;transform:translate(-50%,-50%);transition:.18s;pointer-events:auto}.lab-drop-zone small{display:block;margin-top:3px;font-size:8px;line-height:1.1}.drop-zone-icon{display:grid;place-items:center;width:17px;height:17px;border-radius:6px;background:#17395e;color:#6cc7df}.drop-zone-icon svg{width:11px}.lab-drop-zone.is-over{border-color:#6fe0c7;background:rgba(20,75,85,.85);color:#d9fff2;transform:translate(-50%,-50%) scale(1.06);box-shadow:0 0 0 4px rgba(94,211,185,.12)}.lab-drop-zone.is-filled{border-style:solid;border-color:#376b91;color:#afc9e5;background:rgba(19,51,82,.7)}.lab-drop-zone.is-filled .drop-zone-icon{background:#1e5a5e;color:#73e1bd}.lab-placed-tool{position:absolute;display:flex;align-items:center;justify-content:center;gap:5px;width:105px;min-height:32px;padding:6px 7px;border:1px solid #71c7df;border-radius:9px;background:linear-gradient(135deg,#1b5270,#173a5d);color:#e4f7ff;transform:translate(-50%,-50%);box-shadow:0 8px 18px rgba(0,0,0,.26);font-size:8px;pointer-events:auto;cursor:grab;user-select:none}.lab-placed-tool:active{cursor:grabbing}.lab-placed-tool svg{width:14px;flex:none;color:#7ce0df}.lab-placed-tool b{font-size:8px;line-height:1.1}.lab-tool-card{cursor:grab}.lab-tool-card:active{cursor:grabbing}.lab-tool-card.is-dragging{opacity:.5}.lab-tool-card.is-placed{border-color:#3e8c87;background:#123d4e}.lab-tool-card.is-placed:after{content:'Đã đặt';margin-left:auto;padding:3px 5px;border-radius:4px;background:#1f5e60;color:#8de3cc;font-size:7px}.lab-action-button:disabled{opacity:.4;filter:saturate(.4);cursor:not-allowed}.lab-action-button:disabled:hover{border-color:#2b527a!important;background:#102947!important;color:#add0ec!important}
@media(max-width:760px){.lab-interaction-layer{inset-inline:7px}.lab-drop-zone{width:78px;min-height:37px;padding:5px}.lab-drop-zone small{font-size:7px}.lab-placed-tool{width:88px;min-height:29px;font-size:7px}.lab-placed-tool b{font-size:7px}}
.lab-tool-card,.lab-placed-tool{touch-action:none}.lab-drag-ghost{position:fixed;z-index:9999;display:flex;align-items:center;gap:7px;min-width:110px;padding:9px 11px;border:1px solid #78e0dc;border-radius:10px;background:#153e60;color:#efffff;box-shadow:0 14px 30px rgba(0,0,0,.35);transform:translate(-50%,-50%);pointer-events:none}.lab-drag-ghost svg{width:16px;color:#83e8d4}.lab-drag-ghost b{font-size:9px}.lab-complete-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px;padding:12px 14px;border:1px solid #23476d;border-radius:12px;background:#0e2340}.lab-complete-bar small{display:block;color:#6c94be;font-size:8px;letter-spacing:.12em;font-weight:800}.lab-complete-bar strong{display:block;margin-top:3px;color:#cfe2f6;font-size:10px}.lab-complete-bar .button{min-height:35px;font-size:10px}
@media(max-width:760px){.lab-complete-bar{align-items:flex-start;flex-direction:column}.lab-complete-bar .button{width:100%}}
@media(max-width:760px){.lab-tools{display:block;padding:14px;border-right:0;border-bottom:1px solid #1c2d4d}.lab-tools .lab-back-link,.lab-tools .lab-brand{display:none}.lab-tools .lab-tool-group{margin:0}.lab-tools .lab-section-title{margin-bottom:8px}.lab-tools .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:12px}.lab-tools .lab-tool-card{min-height:58px;padding:7px}.lab-tools .lab-tool-purpose{font-size:7px}.lab-tools .lab-mode-switch{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}.lab-tools .lab-safety-card{display:none}}
