:root{--blue:#3268e8;--ink:#203450;--muted:#78869a;--line:#e0e7f0;--bg:#f4f7fb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}input,select,textarea{width:100%;border:1px solid #cfd9e7;border-radius:9px;padding:12px 14px;color:var(--ink);background:#fff;min-width:0}input:focus,select:focus,textarea:focus{outline:3px solid #dce8ff;border-color:var(--blue)}button:disabled{cursor:default;opacity:.5}label{display:block;font-weight:600}label input,label select,label textarea{margin-top:7px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border:1px solid #d6e0ef;border-radius:9px;background:#fff;color:#385375;font-weight:600;line-height:1.4;cursor:pointer;white-space:nowrap}.button:hover{background:#edf3ff;border-color:#9eb9ef}.button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.button.primary:hover{background:#2457d2}.button.danger{color:#bd4a55}.button.small{min-height:34px;padding:7px 12px;font-size:13px}.page{max-width:1200px;margin:auto;padding:0 32px}.topbar{height:96px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:750;letter-spacing:1px;color:var(--ink)}.brand-icon{display:inline-grid;place-content:center;width:39px;height:39px;border-radius:12px;background:var(--blue);color:#fff;font-size:27px}.hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:80px;padding:56px 0 65px}.eyebrow{color:#6a85b0;font-size:12px;font-weight:700;letter-spacing:2px}.hero h1{font-size:48px;line-height:1.4;letter-spacing:-1.5px;margin:20px 0}.hero-copy>p{font-size:17px;color:#657990;line-height:1.9}.hero-chips{display:flex;gap:9px;margin:22px 0}.hero-chips span{padding:4px 11px;color:#5272a0;border:1px solid #dbe5f3;border-radius:6px;font-size:12px}.login-card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:32px;box-shadow:0 20px 48px #22497b08}.login-card h2{font-size:23px;margin:12px 0 24px}.login-card .primary{width:100%;margin-top:17px;min-height:48px}.login-card label{margin-bottom:8px}.login-foot{display:grid;gap:10px;border-top:1px solid var(--line);margin-top:15px;padding-top:19px;font-size:12px;color:var(--muted)}#message{font-size:13px;color:#ba4758;min-height:16px;margin-bottom:0}.feature-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:27px 0;gap:40px}.feature-strip article{padding-right:25px}.feature-strip article+article{padding-left:32px;border-left:1px solid var(--line)}.feature-strip span{float:left;margin-right:16px;color:#9aaccc;font-size:13px}.feature-strip h2{font-size:17px;margin:0 0 4px}.feature-strip p{color:var(--muted);font-size:13px;margin:0 0 0 32px}.pricing{padding:65px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:26px;gap:20px}.section-heading h2{font-size:27px;margin:7px 0 0}.section-heading p{color:var(--muted);font-size:13px}.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.plan-card{border:1px solid var(--line);border-radius:15px;padding:27px;background:#fff;display:flex;flex-direction:column;align-items:start}.plan-card.featured{border:1.5px solid #79a0f1;background:linear-gradient(170deg,#eff5ff,#fff 55%)}.badge{display:inline-flex;align-items:center;border-radius:6px;background:#ebf2ff;color:#4270bb;padding:4px 10px;font-size:12px;white-space:nowrap}.badge.green{background:#e8f7f0;color:#29826a}.badge.red{background:#fff0f1;color:#b14e5a}.plan-card h3{font-size:21px;margin:17px 0 0}.price{font-size:39px;font-weight:750;line-height:1;margin:22px 0}.price>span{font-size:23px;margin-right:4px}.price small{font-size:14px;font-weight:400;color:var(--muted);margin-left:5px}.plan-card ul{list-style:none;padding:0;margin:4px 0 22px;color:#64768e;font-size:13px;line-height:2.1;flex:1}.plan-card li:before{content:'✓';margin-right:9px;color:#658aca}.plan-card .button{width:100%}.subtle{color:var(--muted);font-size:12px}.support{display:flex;justify-content:space-between;align-items:center;gap:24px;background:#eaf0f9;border-radius:15px;padding:28px 34px}.support h2{font-size:20px;margin:0 0 7px}.support p{color:var(--muted);font-size:13px;margin:0 0 15px}.support img{background:white;padding:6px;border:1px solid #d9e2f1;border-radius:10px}.site-footer{display:flex;justify-content:space-between;padding:30px 0;color:#8c9bb0;font-size:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:28px}.guide{max-width:980px}.guide h1{margin:25px 0}.guide .panel{padding:20px 40px 30px}.guide h2{font-size:20px;margin:28px 0 10px}.guide p{color:#66788e}.error-card{max-width:520px;margin:15vh auto;padding:40px;border:1px solid var(--line);background:#fff;border-radius:16px}.error-card h1{font-size:26px}.error-card p{color:var(--muted);margin-bottom:28px}.student-shell{max-width:1240px;margin:auto;padding:35px 32px}.student-header{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);padding:27px 32px;border-radius:14px}.student-header h1{font-size:30px;line-height:1.4;margin:8px 0 0}.student-header p{color:var(--muted);margin:8px 0 0}.vote-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:20px 0;color:#6d7f96;font-size:13px}.student-options{display:flex;flex-wrap:wrap;margin:0 -9px}.student-card{width:calc(33.333% - 18px);margin:0 9px 18px;border:1px solid var(--line);border-top:4px solid var(--blue);background:#fff;border-radius:12px;overflow:hidden}.option-image{width:100%;height:215px;object-fit:contain;background:#f8fafc;display:block}.student-card-body{padding:22px}.option-number{font-size:12px;color:#97a8c1}.student-card h2{font-size:22px;margin:5px 0 10px;word-break:break-word}.vote-count{display:flex;align-items:baseline;gap:7px;color:#8a9ab0;margin-bottom:18px}.vote-count strong{font-size:33px;color:var(--blue);font-variant-numeric:tabular-nums}.vote-submit{width:100%;min-height:46px}.student-footer{display:flex;justify-content:space-between;color:#8a9ab0;font-size:12px}.notice{background:#e6f4ee;padding:13px 17px;color:#2e8067;border-radius:9px}.admin-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.admin-sidebar{background:#fff;border-right:1px solid var(--line);padding:25px 17px;position:sticky;top:0;height:100vh}.admin-sidebar .brand{font-size:20px;margin:4px 15px 35px}.admin-nav{display:grid;gap:8px}.admin-nav button{text-align:left;border:0;background:transparent;color:#7487a0;padding:13px 18px;border-radius:9px;font-weight:600}.admin-nav button.active{background:#eaf1ff;color:var(--blue)}.admin-main{padding:35px 40px;max-width:1700px;width:100%;margin:auto;align-self:start}.admin-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.admin-top h1{margin:0;font-size:27px}.admin-top .actions{margin:0}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:18px}.admin-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:24px}.metric{border:1px solid var(--line);border-radius:12px;background:#fff;padding:22px}.metric span{font-size:13px;color:var(--muted);display:block}.metric strong{display:block;font-size:29px;margin-top:7px}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}th{text-align:left;white-space:nowrap;font-weight:500;color:#7c8ea6;background:#f7f9fc}th,td{padding:15px 16px;border-bottom:1px solid #e8edf4}td small{display:block;color:var(--muted);margin-top:4px}td code{white-space:nowrap;font-size:14px}td .actions{margin:0}details.panel{padding:0;margin-top:24px}details.panel>summary{padding:18px 24px;cursor:pointer;color:#607797;font-weight:600;list-style:none}details.panel>summary:before{content:'›';display:inline-block;margin-right:12px}details[open].panel>summary:before{transform:rotate(90deg)}.admin-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.admin-plan{padding:24px;min-width:0}.admin-plan h2{font-size:20px;margin:14px 0}.admin-plan p{color:var(--muted);font-size:13px}.admin-plan .price{font-size:32px;color:var(--blue)}.admin-plan .price small{font-size:12px}.empty{padding:50px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #d7e1f0;border-radius:12px}.admin-notice{padding:15px 20px;border-radius:9px;background:#eaf1ff;color:#5977a5;font-size:13px;margin-bottom:20px}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:15px;margin-top:18px;font-size:13px}.search-row{display:flex;gap:10px;margin-bottom:20px}.search-row input{max-width:420px}.modal{position:fixed;inset:0;background:#1b2e4b55;display:flex;justify-content:center;align-items:center;z-index:20;padding:25px}.modal[hidden],[hidden]{display:none!important}.dialog{background:#fff;border-radius:16px;max-width:670px;width:100%;max-height:90vh;overflow:auto;padding:29px}.dialog h2{font-size:22px;margin:0 0 24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}.form-grid label{font-size:13px}.check{display:flex;align-items:center;gap:9px;font-weight:500;margin:10px 0}.check input{width:17px;height:17px;margin:0}.dialog .actions{justify-content:flex-end;padding-top:15px;border-top:1px solid var(--line);margin-top:24px}.output-codes{white-space:pre-wrap;overflow-wrap:anywhere;font-size:17px;background:#f2f6fc;padding:20px;border-radius:10px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;background:#203450;color:#fff;border-radius:9px;padding:12px 24px;z-index:30}.admin-login{max-width:450px;margin:15vh auto}.admin-login h1{font-size:25px;margin:0 0 22px}.admin-login label{margin:16px 0}.admin-login .button{width:100%;margin-top:14px}.error-text{color:#bd4a55;font-size:13px;white-space:pre-wrap}
@media(max-width:1050px){.hero{gap:35px}.hero h1{font-size:38px}.admin-main{padding:28px 25px}.admin-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.page{padding:0 22px}.topbar{height:76px}.hero{grid-template-columns:1fr;padding:25px 0 40px;gap:30px}.hero h1{font-size:34px}.hero-copy p{font-size:15px}.login-card{padding:25px}.feature-strip{gap:14px}.feature-strip article+article{padding-left:12px}.feature-strip article{padding-right:0}.feature-strip span{display:none}.feature-strip h2{font-size:15px}.feature-strip p{font-size:12px;margin:0}.section-heading{display:block}.section-heading h2{font-size:24px}.plans{grid-template-columns:1fr}.pricing{padding:35px 0}.support{padding:23px}.support img{width:92px;height:92px}.student-shell{padding:20px 16px}.student-header{padding:20px;align-items:start}.student-header h1{font-size:24px}.student-card{width:calc(50% - 18px)}.student-card-body{padding:17px}.student-card h2{font-size:19px}.option-image{height:170px}.admin-shell{display:block}.admin-sidebar{position:static;height:auto;padding:15px;border-bottom:1px solid var(--line)}.admin-sidebar .brand{margin:0 0 14px 4px}.admin-nav{display:flex;overflow:auto;gap:5px}.admin-nav button{white-space:nowrap;padding:10px 14px}.admin-main{padding:23px 15px}.admin-top h1{font-size:22px}.admin-plan-grid{grid-template-columns:1fr}.admin-metrics{gap:10px}.metric{padding:17px}.metric strong{font-size:25px}.panel{padding:18px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.dialog{padding:24px}.admin-login{margin:10vh 20px}.guide .panel{padding:12px 24px}}@media(max-width:420px){.student-card{width:calc(100% - 18px)}.student-header{display:block}.student-header .badge{margin-top:14px}.vote-toolbar{align-items:start}.vote-toolbar .button{padding:9px 12px}.admin-top{align-items:start}}
/* Activity library, student selection, and teacher result board share the same palette. */
.teacher-workspace{max-width:1400px;padding-bottom:50px}.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:20px 0 25px}.workspace-heading h1{font-size:29px;line-height:1.4;margin:8px 0 0}.workspace-heading .actions{margin:0}.back-link,.activity-back{font-size:13px;color:#6b82a4}.activity-back{padding:18px 1px 0}.activity-meta{display:flex;align-items:center;flex-wrap:wrap;gap:14px;font-size:13px;color:#8091aa;margin-bottom:22px}.activity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.activity-card header,.content-card header{display:flex;justify-content:space-between;gap:15px;align-items:center}.activity-card h2{font-size:23px;margin:18px 0 12px}.activity-card h2 a{color:var(--ink)}.activity-card>p{color:#7c8ca3;font-size:13px}.activity-content-names{display:flex;flex-wrap:wrap;gap:7px;min-height:35px;margin:18px 0}.activity-content-names span{font-size:12px;padding:4px 10px;background:#f2f6fb;border-radius:5px;color:#6e839f}.content-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:17px;border-top:1px solid #e5ebf3}.content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.content-card h2{font-size:21px;margin:0}.option-previews{display:grid;gap:9px;margin:20px 0}.option-preview{display:flex;align-items:center;gap:10px;font-size:13px;padding:8px 10px;border-radius:7px;background:#f7f9fc}.option-preview>span{flex:1;min-width:0;overflow-wrap:anywhere}.option-preview i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:9px}.option-preview img{width:42px;height:38px;object-fit:contain;border:1px solid var(--line);border-radius:5px;background:#fff}.option-preview strong{font-size:13px;color:#627fa9;font-variant-numeric:tabular-nums}.content-rules{font-size:12px;color:#7b8da5;padding:10px 12px;background:#eff4fc;border-radius:7px;margin:18px 0}.content-more{position:relative}.content-more>summary{list-style:none;cursor:pointer}.content-more>div{position:absolute;top:44px;right:0;z-index:4;min-width:145px;display:grid;gap:7px;padding:10px;background:white;border:1px solid var(--line);box-shadow:0 10px 35px #20345015;border-radius:10px}.activity-qr{display:flex;justify-content:center;align-items:center;margin:25px auto;background:#fff;padding:15px}.activity-qr img{max-width:100%}.activity-menu{max-width:1100px}.activity-choices{display:grid;gap:16px;margin-bottom:30px}.student-content-choice{display:flex;align-items:center;gap:20px;padding:25px 28px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);transition:border-color .2s,background .2s}.student-content-choice:hover{border-color:#7ca5f1;background:#fafdff}.choice-number{font-size:21px;color:#a6b8d4;align-self:flex-start;padding-top:3px}.choice-body{flex:1;min-width:0}.choice-body h2{font-size:23px;margin:0 0 5px;overflow-wrap:anywhere}.choice-body>p{font-size:13px;margin:0 0 14px;color:#7b8ea8}.choice-meta{display:flex;gap:14px;flex-wrap:wrap;color:#8192aa;font-size:12px}.choice-end .badge{font-size:14px;padding:9px 13px}.board-page{background:#edf3fa}.board-shell{max-width:1800px;margin:auto;padding:25px 30px}.board-header{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:25px}.board-header h1{font-size:29px;margin:5px 0 0}.board-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.board-content-nav{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}.board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.board-grid.single{grid-template-columns:1fr;max-width:1250px;margin:0 auto}.ballot-board{display:flex;flex-direction:column;padding:25px;min-height:300px}.ballot-board>header{display:flex;justify-content:space-between;align-items:start;gap:10px}.ballot-board h2{font-size:23px;margin:0;overflow-wrap:anywhere}.ballot-board header p{margin:8px 0 0}.board-options{display:grid;gap:17px;padding:25px 0;flex:1;align-content:start}.board-option{display:flex;align-items:center;gap:13px}.board-option img{width:65px;height:57px;object-fit:contain;border:1px solid var(--line);border-radius:7px;background:#fafcff}.board-option-main{flex:1;min-width:0}.board-option-label{display:flex;justify-content:space-between;align-items:baseline;gap:15px;font-size:16px;margin-bottom:8px}.board-option-label>span{overflow-wrap:anywhere}.board-option-label strong{white-space:nowrap;font-size:24px;color:var(--blue);font-variant-numeric:tabular-nums}.board-option-label small{font-size:12px;font-weight:400;color:#8494a9}.result-track{height:12px;border-radius:5px;background:#eef2f8;overflow:hidden}.result-track span{display:block;min-width:0;height:100%;border-radius:5px;transition:width .35s}.ballot-board>footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:17px;color:#8897ac;font-size:13px}.ballot-board>footer .actions{margin:0}.board-next{display:flex;justify-content:center;align-items:center;gap:25px;margin:25px 0;color:#7b8ea8}.board-grid.single .ballot-board{min-height:500px;padding:35px 45px}.board-grid.single h2{font-size:32px}.board-grid.single .board-options{gap:26px;padding:35px 0}.board-grid.single .board-option-label{font-size:23px}.board-grid.single .board-option-label strong{font-size:36px}.board-grid.single .result-track{height:20px}.board-grid.single .board-option img{width:100px;height:84px}
@media(min-width:1100px){.board-grid:not(.single){grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:950px){.workspace-heading,.board-header{align-items:start;flex-direction:column;gap:18px}.workspace-heading .button{padding:9px 14px;min-height:40px;font-size:13px}.content-grid{grid-template-columns:1fr}.teacher-workspace .topbar .button{font-size:12px}.board-shell{padding:20px}}@media(max-width:680px){.activity-grid,.board-grid{grid-template-columns:1fr}.student-content-choice{padding:20px 17px;gap:12px;flex-wrap:wrap}.choice-number{font-size:16px}.choice-body h2{font-size:21px}.choice-end{width:100%;padding-left:30px}.choice-meta{gap:7px 12px}.activity-menu .student-header{display:block}.activity-menu .student-header .badge{margin-top:15px}.board-grid.single .ballot-board{padding:25px;min-height:390px}.board-grid.single h2{font-size:25px}.board-grid.single .board-option-label{font-size:18px}.board-grid.single .board-option-label strong{font-size:29px}.board-header h1{font-size:25px}.workspace-heading h1{font-size:25px}}
