:root{
  --bg:#f0f1f2; --paper:#fff; --ink:#3e4247; --muted:#8c9196;
  --green:#45dca2; --green2:#75d34a; --teal:#42cdb6; --blue:#3e81e9;
  --line:#dfe2e5; --shadow:0 12px 26px rgba(60,88,105,.14);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#e9eaeb;color:var(--ink);font-family:Arial,"Microsoft YaHei",sans-serif}
body{overflow-x:hidden}
.viewport{width:100%;min-height:100vh;overflow:auto;position:relative}
.canvas-wrap{position:relative;margin:0 auto;overflow:visible}
.artboard{position:absolute;left:0;top:0;transform-origin:top left;overflow:hidden;background:var(--bg)}
.topbar{height:96px;background:linear-gradient(110deg,#8bd01c 0%,#4bd09a 50%,#3c82e6 100%);position:relative;display:flex;align-items:center;padding:0 108px;color:#fff}
.brand{width:104px;height:36px;background:rgba(255,255,255,.85);border-radius:5px;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.nav{display:flex;gap:52px;margin:auto;font-size:18px;opacity:.95;align-items:center}
.nav a{color:#fff;text-decoration:none;cursor:pointer}
.avatar{width:36px;height:36px;border-radius:50%;background:#fff;position:relative;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.avatar:before{content:"";position:absolute;width:11px;height:11px;border-radius:50%;background:#ccd0d1;top:7px;left:12px}
.avatar:after{content:"";position:absolute;width:22px;height:11px;border-radius:14px 14px 10px 10px;background:#ccd0d1;bottom:5px;left:7px}
.page-title{font-size:44px;line-height:1.2;color:#70757a;margin:48px 0 36px;font-weight:700;letter-spacing:1px}
.pill{border-radius:22px;background:#fff;border:0;padding:10px 28px;color:#676c70;font-size:17px;box-shadow:0 2px 7px rgba(0,0,0,.05);cursor:pointer}
.pill.active{background:var(--green);color:#fff}
.underbar{height:4px;width:72px;background:linear-gradient(90deg,#7dcc39,#36cba5);border-radius:3px;margin-top:13px}
.card{background:var(--paper);border-radius:7px;box-shadow:0 3px 12px rgba(69,86,95,.09)}
.btn{background:var(--green);border:0;border-radius:7px;color:#fff;font-size:18px;padding:16px 34px;cursor:pointer;box-shadow:0 10px 18px rgba(78,207,172,.25)}
.subtle{color:#9ba0a3;font-size:16px;line-height:1.7}
.scroll-track{height:10px;border-radius:10px;background:#e5e7e8;position:relative}
.scroll-track:before{content:"";position:absolute;left:4px;top:2px;height:6px;border-radius:8px;background:#fff;width:42%}
.vscroll{width:12px;border-radius:8px;background:#dedfe0;position:absolute;right:18px;top:120px;height:68%}

/* page 1 */
.home-page{width:1922px;height:1164px}
.home-page .brand,.home-page .nav{display:none}.home-page .topbar{justify-content:flex-end}
.home-main{padding:0 125px 40px}
.home-heading{display:flex;align-items:center;justify-content:space-between}
.home-actions{display:flex;gap:20px;margin-top:32px}
.home-grid{display:grid;grid-template-columns:1fr 360px;gap:24px}
.home-left{display:flex;flex-direction:column;gap:24px}
.hero{height:392px;padding:32px 36px;display:grid;grid-template-columns:1.03fr .97fr;gap:35px}
.hero-copy h2{margin:0;font-size:30px;color:#33383d;font-weight:700}
.hero-copy p{max-width:615px;margin:27px 0 24px}
.hero-media{background:#d8d9da;border-radius:6px;position:relative;min-height:230px}
.hero-media:after{content:"";position:absolute;width:140px;height:6px;background:#e5e5e5;border-radius:4px;bottom:-28px;left:50%;transform:translateX(-50%)}
.hero-media:before{content:"";position:absolute;width:100px;height:6px;background:var(--green);border-radius:4px;bottom:-28px;left:32%}
.home-lower{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.lower-card{height:290px;padding:25px 27px;position:relative}
.section-head{display:flex;justify-content:space-between;align-items:flex-start}
.section-head h3{font-size:29px;margin:0;font-weight:700;color:#31383c}
.section-head a{font-size:15px;color:#95999d;text-decoration:none;margin-top:7px}
.class-buttons{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:25px}
.class-buttons button,.book-buttons button{height:64px;border:0;border-radius:7px;background:var(--green);color:#fff;font-size:20px;cursor:pointer;box-shadow:0 12px 18px rgba(80,211,180,.18)}
.lower-card .scroll-track{position:absolute;left:27px;right:27px;bottom:13px}
.book-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:25px}
.book-buttons button{height:130px;font-size:20px}
.profile{height:430px;padding:24px 28px}
.profile-top{display:flex;gap:18px;align-items:center}
.profile .big-avatar{width:68px;height:68px;border-radius:50%;background:#d7d9da;position:relative}
.profile .big-avatar:before{content:"";position:absolute;width:22px;height:22px;background:#fff;border-radius:50%;top:11px;left:23px}
.profile .big-avatar:after{content:"";position:absolute;width:40px;height:23px;background:#fff;border-radius:24px 24px 12px 12px;bottom:8px;left:14px}
.profile-name strong{display:block;font-size:20px;color:#333;margin-bottom:4px}.profile-name span{font-size:18px;color:#333}
.profile-links{margin:24px 0 17px;display:grid;gap:14px;font-size:17px}
.divider{height:1px;background:#767b7e;margin-bottom:14px}
.calendar{font-size:13px;color:#7b7f84}.calendar-head,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:8px}.calendar-head{font-weight:700;margin-bottom:7px}.calendar-grid span{height:23px}.calendar-grid .dim{color:#d3d5d6}.calendar-grid .today{color:#ea5d5d;font-weight:700}.calendar-note{text-align:center;margin-top:16px;color:#6c7175;font-size:16px}

/* page 2 */
.class-page{width:1232px;height:893px;background:#fff}
.class-page .topbar{height:66px;padding:0 34px}.class-page .brand{width:100px;height:28px}.class-page .nav{gap:30px;font-size:13px}.class-page .avatar{width:28px;height:28px}.class-content{padding:20px 32px 38px;background:#fff}
.class-tabs{height:42px;display:flex;gap:28px;align-items:center;margin-bottom:16px;background:#f1f2f3;padding:0 25px;border-radius:0}
.class-tabs .pill{font-size:16px;padding:8px 32px;min-width:150px}
.class-layout{display:grid;grid-template-columns:305px 1fr;gap:26px;height:706px}
.progress-card{height:660px;border-radius:7px;padding:25px 22px;background:linear-gradient(155deg,#bad72f 0%,#6fd35f 43%,#39a5de 100%);color:#fff;position:relative;box-shadow:0 5px 18px rgba(63,153,189,.22)}
.progress-card h3{text-align:center;font-size:20px;margin:0 0 16px;letter-spacing:1px}.chart{height:276px;position:relative;padding:12px 16px 22px 26px}.chart-grid{position:absolute;inset:16px 15px 28px 26px;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.25) 0,rgba(255,255,255,.25) 1px,transparent 1px,transparent 52px);border-left:1px solid rgba(255,255,255,.38);border-bottom:1px solid rgba(255,255,255,.38)}
.bars{position:absolute;left:48px;right:18px;bottom:37px;height:194px;display:flex;justify-content:space-between;align-items:flex-end}.bar{width:16px;background:#fff;border-radius:2px 2px 0 0;position:relative}.bar em{position:absolute;top:-22px;font-style:normal;font-size:11px;left:50%;transform:translateX(-50%)}.xlabels{position:absolute;left:46px;right:10px;bottom:6px;display:flex;justify-content:space-between;font-size:10px}.ylabels{position:absolute;left:0;top:18px;display:grid;gap:48px;font-size:10px}.range{height:58px;background:rgba(255,255,255,.72);border-radius:7px;color:#64bf99;display:flex;align-items:center;justify-content:center;font-size:17px;margin-top:17px}
.students{position:relative;padding-right:26px}.students-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.student-card{height:128px;border:1px solid #bfc2c4;border-radius:8px;padding:15px 18px;position:relative;background:#fff}.student-card .face{width:47px;height:47px;border-radius:50%;background:#d9dbdc;float:left;margin-right:14px}.student-card strong{display:block;font-size:18px;color:#34383b;margin-top:2px}.student-card .id{display:block;font-size:17px;margin-top:3px}.student-card .class-tag{position:absolute;right:15px;top:10px;color:#e8e8e8;font-size:15px}.student-card .stats{position:absolute;right:13px;bottom:14px;text-align:right;font-size:13px;color:#7b8082;line-height:1.6}.student-card .stats b{color:#45d9b0;font-size:16px}.students .vscroll{right:3px;top:0;height:100%}

/* page 3 left */
.wordbook-left{width:1920px;height:2407px;background:#ededee}.wordbook-left .topbar{height:92px;padding:0 95px}.wordbook-left .nav{font-size:17px;gap:42px}.wordbook-left .brand{width:95px;height:30px}.wordbook-shell{padding:26px 0 80px}.wb-panel{width:1220px;margin:0 auto;background:#fff;border-radius:6px;padding:22px 34px 34px;box-shadow:0 3px 10px rgba(65,76,84,.08);position:relative}.wb-panel + .wb-panel{margin-top:38px}.wb-tabs{display:flex;gap:20px;margin-bottom:24px}.wb-tabs .pill{font-size:15px;padding:8px 30px}.wb-panel h3{font-size:19px;font-weight:400;color:#5a5f63;margin:0 0 18px}.book-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}.book-tile{height:150px;background:var(--green);border-radius:7px;color:#fff;display:flex;align-items:flex-end;justify-content:center;padding:0 8px 15px;font-size:16px;box-shadow:0 12px 18px rgba(70,205,174,.14)}.wb-panel.first{height:680px}.wb-panel.first .book-grid-4{margin-top:35px}.wb-panel.first .book-tile{height:160px}.wb-panel.second{height:1010px}.wb-search{width:400px;height:38px;border-radius:20px;background:#d9dbdc;display:flex;align-items:center;gap:10px;padding:0 18px;color:#7f8588;font-size:16px;margin:12px auto 40px}.wb-search svg{width:16px}.second .book-grid-4{row-gap:50px}.second .book-tile{height:190px}.wordbook-left .vscroll{right:80px;top:128px;height:70%}

/* page 3 right */
.wordbook-right{width:1768px;height:693px;background:#fff;color:#3e4247;border:1px solid #d6d8d9}.right-title{height:86px;padding:30px 42px 0;font-size:21px}.right-toolbar{height:48px;background:#d8d9da;display:flex;align-items:center;padding:0 38px;gap:20px;color:#5e6265;font-size:15px}.right-search{height:29px;width:320px;background:#fff;border-radius:16px;display:flex;align-items:center;padding:0 14px;gap:9px}.right-search svg{width:14px}.right-actions{margin-left:auto;display:flex;gap:31px}.right-cols{display:grid;grid-template-columns:1fr 1fr;height:559px}.check-col{border-right:1px solid #dadcdd;padding:0 22px 24px 36px;position:relative}.result-col{padding:0 38px 24px 30px;position:relative}.check-row{height:46px;border-bottom:1px solid #e4e5e6;display:flex;align-items:center;gap:18px;font-size:16px;color:#6c7174}.check-row:first-child,.check-row:nth-child(2){box-shadow:0 6px 10px rgba(0,0,0,.14);border-radius:5px}.check{width:17px;height:17px;border:2px solid #d7dadb;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.check.checked{background:var(--green);border-color:var(--green);color:#fff;font-size:12px}.result-row{height:96px;border-bottom:1px solid #e2e3e4;padding:17px 26px 12px 26px;position:relative}.result-row .dot{width:17px;height:17px;background:var(--green);border-radius:50%;position:absolute;left:0;top:19px}.result-row p{margin:0 0 4px 23px;font-size:15px;color:#555b5e;line-height:1.45}.result-row small{display:block;margin-left:23px;color:#606568;font-size:13px;line-height:1.45}.star{position:absolute;right:9px;top:21px;font-size:22px;color:#f7d91d}.star.off{color:#cfd2d3}.wordbook-right .vscroll{right:15px;top:98px;height:72%}

@media (max-width:900px){.topbar{padding:0 28px}.nav{gap:18px;font-size:12px}.home-main{padding-left:32px;padding-right:32px}.page-title{font-size:34px}}
