:root{
  --ink:#27463a;
  --muted:#708079;
  --paper:#fffdf3;
  --cream:#f6f1dd;
  --green:#30b965;
  --green-dark:#16894c;
  --green-soft:#e4f8d8;
  --yellow:#ffd757;
  --orange:#ff8c3b;
  --pink:#ff7fa5;
  --blue:#65c9e8;
  --line:#dfe9cf;
  --shadow:0 18px 45px rgba(48,83,55,.12);
  --round:26px;
  font-family:"LXGW WenKai","STKaiti","KaiTi","Microsoft YaHei",sans-serif;
  color:var(--ink);
  background:#f5f2df;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{min-width:320px;background:#f5f2df}
body{min-height:100vh;margin:0;overflow-x:hidden;background:
  radial-gradient(circle at 8% 8%,rgba(255,218,91,.23) 0 120px,transparent 121px),
  radial-gradient(circle at 92% 18%,rgba(101,201,232,.18) 0 150px,transparent 151px),
  linear-gradient(115deg,#faf7e8 0%,#f1f5df 100%);font-size:16px}
button,input,textarea{font:inherit}
button{color:inherit}
.paper-noise{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.22;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}
.doodle{position:fixed;z-index:-1;color:#d6e4bd;user-select:none}.doodle-sun{top:130px;left:-18px;font-size:104px;transform:rotate(-13deg)}.doodle-cloud{right:3%;top:220px;color:#dceff1;font-size:110px;transform:rotate(5deg)}
.topbar{display:grid;grid-template-columns:auto minmax(190px,1fr) auto;align-items:center;gap:28px;max-width:1500px;margin:0 auto;padding:22px 34px}
.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:54px;height:54px;border:2px solid var(--ink);border-radius:17px 17px 17px 5px;background:var(--yellow);font-size:29px;transform:rotate(-3deg);box-shadow:4px 5px 0 rgba(39,70,58,.12)}.brand>span:last-child{display:flex;align-items:baseline;gap:8px}.brand b{font-size:25px;letter-spacing:.03em}.brand small{padding:3px 8px;border-radius:99px;background:var(--pink);color:#fff;font-size:11px;font-weight:900;transform:rotate(2deg)}
.class-name-wrap{display:flex;align-items:center;justify-self:start;gap:7px;padding:8px 13px;border:1px dashed #a6c892;border-radius:14px;background:rgba(255,255,255,.65)}.class-name-wrap input{width:120px;border:0;border-bottom:1px solid transparent;background:transparent;color:#3b6b46;font-weight:900;outline:none}.class-name-wrap input:focus{border-bottom-color:var(--green)}.edit-tip{color:#95a092;font-size:11px}
.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.soft-button{display:inline-flex;align-items:center;gap:6px;padding:10px 13px;border:1px solid #d9e1d2;border-radius:13px;background:rgba(255,255,255,.75);color:#496357;font-weight:800;cursor:pointer;transition:.18s ease}.soft-button:hover{transform:translateY(-2px);border-color:#8fd289;background:#fff;box-shadow:0 7px 16px rgba(50,88,53,.1)}.import-label{position:relative}.import-label input{position:absolute;width:1px;height:1px;opacity:0}
.sync-button{min-width:112px}.sync-button[data-state="synced"]{border-color:#a8d996;background:#f2ffe9;color:#278746}.sync-button[data-state="syncing"]{border-color:#a8d9e8;background:#eefbff;color:#277f9d}.sync-button[data-state="offline"],.sync-button[data-state="error"]{border-color:#efc78d;background:#fff8e8;color:#a56514}.sync-button[data-state="syncing"]::first-letter{animation:twinkle 1s ease-in-out infinite}.account-button{max-width:170px}.account-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-shell{max-width:1500px;margin:0 auto;padding:0 34px 36px}
.hero{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.6fr);min-height:310px;padding:45px 55px 88px;overflow:hidden;border:2px solid rgba(39,70,58,.9);border-radius:36px 36px 36px 10px;background:
  linear-gradient(120deg,rgba(255,255,255,.52),transparent 45%),
  repeating-linear-gradient(0deg,transparent 0 31px,rgba(39,70,58,.038) 32px),
  #dff2bf;box-shadow:8px 10px 0 rgba(39,70,58,.12)}
.hero::before{content:"";position:absolute;right:22%;top:-90px;width:310px;height:310px;border:50px solid rgba(255,255,255,.28);border-radius:50%}.hero::after{content:"GOOD JOB!";position:absolute;right:36px;bottom:75px;padding:7px 14px;border:2px solid rgba(39,70,58,.22);border-radius:50%;color:rgba(39,70,58,.28);font:900 13px/1 "Microsoft YaHei";letter-spacing:.14em;transform:rotate(-12deg)}
.eyebrow{display:inline-block;margin-bottom:14px;color:#39744a;font:800 12px/1.2 "Microsoft YaHei";letter-spacing:.18em}.hero h1{margin:0;color:#244a36;font-size:clamp(38px,5vw,68px);font-weight:900;line-height:1.12;letter-spacing:-.05em}.hero h1 em{position:relative;color:var(--green-dark);font-style:normal}.hero h1 em::after{content:"";position:absolute;right:0;bottom:-6px;left:0;height:10px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='12' viewBox='0 0 200 12'%3E%3Cpath d='M2 8 C45 2 75 11 110 6 S165 3 198 7' fill='none' stroke='%23ff8c3b' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat}.hero-copy p{max-width:680px;margin:24px 0 0;color:#5a7266;font-size:18px;line-height:1.8}
.hero-plant{position:relative;align-self:end;justify-self:center;width:260px;height:220px}.hero-leaves{position:absolute;z-index:2;right:48px;bottom:65px;font-size:130px;filter:drop-shadow(0 10px 7px rgba(30,80,36,.15));transform-origin:bottom center;animation:sway 4s ease-in-out infinite}.hero-pot{position:absolute;right:54px;bottom:0;width:130px;height:85px;border:3px solid #6f3c28;border-radius:16px 16px 45px 45px;background:linear-gradient(90deg,#e76c3c,#ff9b59 55%,#dc5a35);box-shadow:inset 12px 0 0 rgba(255,255,255,.12),0 13px 0 rgba(67,58,33,.1)}.hero-pot::before{content:"";position:absolute;top:-14px;left:-12px;width:148px;height:27px;border:3px solid #6f3c28;border-radius:50%;background:#ff9552}.hero-pot::after{content:"";position:absolute;top:-7px;left:7px;width:111px;height:16px;border-radius:50%;background:#663b27}.hero-pot i{position:absolute;z-index:2;top:29px;left:49px;width:28px;height:28px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cg fill='none' stroke='%23ffd89d' stroke-width='2'%3E%3Cpath d='M15 2v26M2 15h26M6 6l18 18M24 6L6 24'/%3E%3C/g%3E%3C/svg%3E")}.hero-note{position:absolute;left:-12px;top:28px;padding:10px 15px;border:2px solid var(--ink);border-radius:17px 17px 3px 17px;background:#fff;color:#39704b;font-weight:900;line-height:1.4;transform:rotate(-6deg);box-shadow:4px 5px 0 rgba(39,70,58,.12)}.spark{position:absolute;z-index:3;color:#ff8b36;font-size:23px;animation:twinkle 1.8s ease-in-out infinite}.spark-one{right:18px;top:24px}.spark-two{left:42px;top:106px;animation-delay:.7s}
.summary-strip{position:absolute;right:36px;bottom:18px;left:36px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.summary-strip>div{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:7px;padding:11px 15px;border:1px solid rgba(39,70,58,.13);border-radius:17px;background:rgba(255,253,243,.82);backdrop-filter:blur(5px)}.summary-strip span{font-size:21px}.summary-strip b{font:900 24px/1 "Microsoft YaHei"}.summary-strip small{color:#708077;font-weight:700}
.workspace{display:grid;grid-template-columns:minmax(320px,.7fr) minmax(570px,1.3fr);gap:22px;margin-top:28px}.task-board,.roster-board{min-height:520px;border:1px solid var(--line);background:rgba(255,253,243,.86);box-shadow:var(--shadow)}.task-board{padding:23px;border-radius:var(--round) 8px var(--round) var(--round)}.roster-board{padding:25px;border-radius:8px var(--round) var(--round) var(--round)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.section-heading>div{display:flex;align-items:center;gap:11px}.section-heading h2{margin:0;font-size:22px}.section-heading p{margin:3px 0 0;color:var(--muted);font-size:12px}.number-sticker{display:grid;place-items:center;width:43px;height:43px;border:2px solid var(--ink);border-radius:50%;background:var(--yellow);font:900 13px/1 "Microsoft YaHei";transform:rotate(-7deg)}
.primary-button{padding:12px 17px;border:2px solid var(--ink);border-radius:15px 15px 15px 5px;background:var(--green);color:#fff;font-weight:900;cursor:pointer;box-shadow:3px 4px 0 var(--ink);transition:.15s ease}.primary-button:hover{transform:translate(2px,2px);box-shadow:1px 2px 0 var(--ink)}.primary-button:active{transform:translate(3px,4px);box-shadow:0 0 0 var(--ink)}
.task-list{display:grid;gap:11px}.task-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:15px;border:1px solid #dce8ce;border-radius:18px;background:#fff;text-align:left;cursor:pointer;transition:.18s ease}.task-card:hover{transform:translateX(3px);border-color:#84ce78}.task-card.active{border:2px solid var(--green-dark);background:#f2fde8;box-shadow:4px 5px 0 rgba(42,129,63,.12)}.task-card-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:#fff0b5;font-size:23px}.task-card-copy{display:grid;gap:5px;min-width:0}.task-card-copy b{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.task-card-copy small{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.mini-progress{height:6px;overflow:hidden;border-radius:99px;background:#e8efdf}.mini-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),#8bd345)}.task-card-score{display:grid;place-items:center;min-width:50px;padding:7px;border-radius:14px;background:#f5f1df;color:#5d7065;font:900 13px/1 "Microsoft YaHei"}.task-card-score strong{color:var(--green-dark);font-size:19px}.task-list-empty{display:grid;justify-items:center;gap:7px;padding:38px 18px;border:2px dashed #cadfba;border-radius:20px;background:#fbfdf2;text-align:center}.task-list-empty span{font-size:38px}.task-list-empty b{font-size:17px}.task-list-empty small{color:var(--muted)}
.hidden{display:none!important}.empty-stage{display:grid;place-content:center;justify-items:center;min-height:470px;text-align:center}.empty-illustration{position:relative;display:grid;place-items:center;width:120px;height:105px;margin-bottom:15px;border:2px dashed #afd393;border-radius:47% 53% 55% 45%;background:#eef9da}.empty-illustration>span{font-size:49px}.empty-illustration i{position:absolute;right:-8px;bottom:2px;font-size:34px;font-style:normal}.empty-stage h2{margin:0 0 8px}.empty-stage p{margin:0 0 20px;color:var(--muted)}
.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.detail-label{display:inline-block;padding:4px 9px;border-radius:6px;background:var(--pink);color:#fff;font-size:11px;font-weight:900;transform:rotate(-2deg)}.detail-head h2{margin:9px 0 4px;font-size:28px}.detail-head p{margin:0;color:var(--muted);line-height:1.5}.progress-badge{display:grid;place-items:center;flex:0 0 90px;height:82px;border:2px solid var(--ink);border-radius:24px 24px 8px 24px;background:var(--yellow);transform:rotate(2deg);box-shadow:4px 5px 0 rgba(39,70,58,.12)}.progress-badge b{font:900 29px/1 "Microsoft YaHei"}.progress-badge small{font-size:11px;font-weight:800}.progress-track{height:9px;margin:17px 0;overflow:hidden;border-radius:99px;background:#e9efdf}.progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--orange),var(--yellow),var(--green));transition:width .35s cubic-bezier(.2,.8,.2,1)}
.detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.filter-tabs{display:flex;gap:5px;padding:4px;border-radius:14px;background:#eef1e5}.filter-tabs button{padding:8px 11px;border:0;border-radius:10px;background:transparent;color:#718078;font-weight:800;cursor:pointer}.filter-tabs button.active{background:#fff;color:var(--green-dark);box-shadow:0 3px 8px rgba(36,70,43,.09)}.filter-tabs span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:4px;padding:0 5px;border-radius:99px;background:#e6f5d9;font:800 11px/1 "Microsoft YaHei"}.search-box{display:flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid #dce4d7;border-radius:13px;background:#fff}.search-box input{width:120px;border:0;background:transparent;outline:0}.reward-note{display:flex;align-items:center;gap:10px;margin-bottom:13px;padding:10px 13px;border:1px dashed #9dd798;border-radius:14px;background:#f5ffec}.reward-note>span{font-size:24px}.reward-note p{display:grid;gap:2px;margin:0}.reward-note b{font-size:13px}.reward-note small{color:#6f806f;font-size:11px}
.student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;max-height:480px;padding:2px;overflow:auto}.student-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-height:94px;padding:12px;border:1px solid #dfe6da;border-radius:19px;background:#fff;cursor:pointer;transition:.16s ease}.student-card:hover{transform:translateY(-2px);border-color:#8ed787;box-shadow:0 8px 18px rgba(46,93,49,.08)}.student-card.done{border:2px solid #68ca66;background:linear-gradient(135deg,#f6ffed,#e8f9d9)}.student-card.just-watered{animation:waterPop .65s cubic-bezier(.2,.9,.3,1)}.student-check{display:grid;place-items:center;width:29px;height:29px;border:2px solid #cbd8c4;border-radius:9px;background:#fff;color:#fff;font-weight:900}.student-card.done .student-check{border-color:var(--green);background:var(--green)}.student-info{display:grid;gap:3px;min-width:0}.student-info b{font-size:16px}.student-info small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.student-water{display:flex;align-items:center;gap:5px;margin-top:3px}.water-dots{display:flex;gap:3px}.water-dots i{width:8px;height:8px;border-radius:50%;background:#dde6d6}.water-dots i.filled{background:var(--blue);box-shadow:0 0 0 2px rgba(101,201,232,.16)}.student-water em{color:#4d8797;font:800 11px/1 "Microsoft YaHei";font-style:normal}.mini-plant{position:relative;display:grid;place-items:end center;width:56px;height:65px}.mini-plant .plant{position:absolute;z-index:2;bottom:28px;font-size:var(--plant-size,23px);transform-origin:bottom center;animation:sway 3s ease-in-out infinite}.mini-plant .pot{position:relative;width:40px;height:31px;border:2px solid #8c4e32;border-radius:5px 5px 13px 13px;background:#f08048}.mini-plant .pot::before{content:"";position:absolute;top:-6px;left:-5px;width:46px;height:10px;border:2px solid #8c4e32;border-radius:50%;background:#ff9b5f}.completion-stamp{position:absolute;right:8px;top:6px;padding:2px 5px;border:1px solid #62bd5f;border-radius:5px;color:#32a449;font:900 9px/1.2 "Microsoft YaHei";transform:rotate(5deg)}.student-empty{grid-column:1/-1;padding:35px;border:1px dashed #cad9c2;border-radius:18px;color:var(--muted);text-align:center}
.detail-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:17px;padding-top:14px;border-top:1px dashed #d7dfd1}.text-button{padding:8px 11px;border:1px solid #dae2d5;border-radius:11px;background:#fff;color:#5e7065;font-weight:800;cursor:pointer}.text-button:hover{border-color:#8ac982;color:var(--green-dark)}.text-button:disabled{opacity:.4;cursor:not-allowed}.text-button.danger:hover{border-color:#f2b2b2;background:#fff3f3;color:#c44d4d}
.modal-layer{position:fixed;inset:0;z-index:50;display:none;place-items:center;padding:20px;background:rgba(27,48,39,.55);backdrop-filter:blur(5px)}.modal-layer.open{display:grid}.modal{width:min(620px,100%);max-height:min(760px,92vh);overflow:hidden;border:2px solid var(--ink);border-radius:26px 26px 26px 8px;background:var(--paper);box-shadow:8px 10px 0 rgba(19,42,32,.26);animation:modalIn .24s ease}.modal>header{display:flex;align-items:center;justify-content:space-between;padding:18px 21px;border-bottom:1px solid #e8e5d6;background:#f6f6e9}.modal>header>div{display:flex;align-items:center;gap:10px}.modal>header span{font-size:26px}.modal h2{margin:0;font-size:21px}.close-button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:#e9eadf;color:#728078;font-size:24px;cursor:pointer}.modal-body{max-height:calc(92vh - 76px);padding:20px;overflow:auto}.form-stack{display:grid;gap:12px}.form-stack label{display:grid;gap:7px;color:#466052;font-weight:900}.form-stack label small{color:#859087;font-weight:500}.input,.textarea{width:100%;padding:12px 14px;border:1px solid #d3dcd0;border-radius:13px;background:#fff;color:var(--ink);outline:0}.input:focus,.textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(48,185,101,.12)}.textarea{min-height:90px;resize:vertical}.form-note{display:flex;gap:10px;padding:12px;border:1px dashed #abd699;border-radius:14px;background:#f5ffed}.form-note span{font-size:23px}.form-note p{margin:0;color:#68806b;font-size:12px;line-height:1.55}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:8px}.muted-button{padding:11px 15px;border:1px solid #d9dfd5;border-radius:13px;background:#fff;color:#66766c;font-weight:800;cursor:pointer}
.student-manage-list{display:grid;gap:7px;margin-bottom:14px}.manage-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px;border:1px solid #e0e6dc;border-radius:13px;background:#fff}.manage-row .avatar{font-size:22px}.manage-row b{font-size:14px}.mini-delete{width:31px;height:31px;border:0;border-radius:9px;background:#fff0f0;cursor:pointer}.bulk-add{display:grid;gap:8px;padding-top:14px;border-top:1px dashed #d6ded1}.bulk-add p{margin:0;color:#617268;font-size:12px;line-height:1.5}.danger-zone{margin-top:15px;padding-top:13px;border-top:1px dashed #e6caca}.danger-button{padding:9px 12px;border:1px solid #f0bcbc;border-radius:11px;background:#fff4f4;color:#b94949;font-weight:800;cursor:pointer}
.toast{position:fixed;z-index:80;right:24px;bottom:24px;max-width:min(440px,calc(100vw - 48px));padding:13px 18px;border:2px solid var(--ink);border-radius:16px 16px 5px 16px;background:#263f34;color:#fff;font-weight:800;box-shadow:5px 6px 0 rgba(0,0,0,.16);opacity:0;pointer-events:none;transform:translateY(20px);transition:.22s ease}.toast.show{opacity:1;transform:translateY(0)}.celebration{position:fixed;inset:0;z-index:70;display:none;pointer-events:none}.celebration.show{display:block}.celebration span{position:absolute;left:50%;top:48%;font-size:34px;animation:burst 1s ease-out forwards}.celebration span:nth-child(1){--x:-140px;--y:-160px}.celebration span:nth-child(2){--x:-70px;--y:-210px;animation-delay:.05s}.celebration span:nth-child(3){--x:0px;--y:-190px;animation-delay:.1s}.celebration span:nth-child(4){--x:85px;--y:-205px;animation-delay:.15s}.celebration span:nth-child(5){--x:145px;--y:-135px;animation-delay:.2s}
footer{display:flex;align-items:center;justify-content:space-between;gap:15px;max-width:1500px;margin:0 auto;padding:18px 34px 28px;color:#77857d;font-size:12px}footer span{font-weight:900}footer p{margin:0}

.auth-gate{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:22px;overflow:auto;background:radial-gradient(circle at 10% 12%,rgba(255,215,87,.32) 0 160px,transparent 161px),radial-gradient(circle at 92% 85%,rgba(101,201,232,.28) 0 190px,transparent 191px),linear-gradient(135deg,#f8f3da,#dff4d1)}.auth-gate::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(#315a46 .7px,transparent .7px);background-size:17px 17px}.auth-card{position:relative;display:grid;grid-template-columns:minmax(260px,.76fr) minmax(390px,1fr);width:min(920px,100%);overflow:hidden;border:2px solid var(--ink);border-radius:34px 34px 34px 9px;background:#fffdf4;box-shadow:13px 16px 0 rgba(39,70,58,.14),0 26px 80px rgba(39,70,58,.18);animation:modalIn .35s ease}.auth-art{position:relative;display:grid;place-items:end center;min-height:590px;overflow:hidden;background:linear-gradient(160deg,#ffd958 0 39%,#ffbd51 39% 43%,#72ca70 43%);border-right:2px solid var(--ink)}.auth-art::before,.auth-art::after{content:"";position:absolute;width:270px;height:270px;border:42px solid rgba(255,255,255,.25);border-radius:50%}.auth-art::before{left:-115px;top:-90px}.auth-art::after{right:-155px;bottom:-110px}.auth-leaf{position:absolute;z-index:2;bottom:177px;font-size:166px;filter:drop-shadow(0 11px 8px rgba(24,75,33,.18));animation:sway 4s ease-in-out infinite}.auth-pot{position:absolute;z-index:3;bottom:98px;width:164px;height:105px;border:3px solid #713c29;border-radius:15px 15px 51px 51px;background:linear-gradient(90deg,#df6339,#ff9c59 55%,#d85734);box-shadow:inset 16px 0 rgba(255,255,255,.12),0 16px 0 rgba(42,80,45,.12)}.auth-pot::before{content:"";position:absolute;top:-17px;left:-14px;width:186px;height:32px;border:3px solid #713c29;border-radius:50%;background:#ff9550}.auth-pot::after{content:"";position:absolute;top:-9px;left:10px;width:138px;height:19px;border-radius:50%;background:#603625}.auth-pot i{position:absolute;z-index:2;top:34px;left:64px;width:32px;height:32px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cg fill='none' stroke='%23ffd89d' stroke-width='2'%3E%3Cpath d='M15 2v26M2 15h26M6 6l18 18M24 6L6 24'/%3E%3C/g%3E%3C/svg%3E")}.auth-art p{position:relative;z-index:4;margin:0 0 27px;padding:11px 17px;border:2px solid var(--ink);border-radius:18px 18px 4px 18px;background:#fff;color:#39704b;font-weight:900;line-height:1.45;text-align:center;transform:rotate(-3deg);box-shadow:4px 5px 0 rgba(39,70,58,.14)}.auth-sun{position:absolute;right:30px;top:30px;color:#fff;font-size:43px;animation:twinkle 1.8s ease-in-out infinite}.auth-panel{display:flex;flex-direction:column;justify-content:center;padding:48px 54px}.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:28px}.auth-brand>span{display:grid;place-items:center;width:49px;height:49px;border:2px solid var(--ink);border-radius:15px 15px 15px 5px;background:var(--yellow);font-size:25px;box-shadow:3px 4px 0 rgba(39,70,58,.12)}.auth-brand div{display:grid}.auth-brand b{font-size:20px}.auth-brand small{color:#7f8c84;font-weight:800}.auth-panel h1{margin:0;color:#244a36;font-size:32px;line-height:1.2}.auth-intro{margin:11px 0 22px;color:#718078;line-height:1.65}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border-radius:15px;background:#edf1e4}.auth-tabs button{padding:10px;border:0;border-radius:11px;background:transparent;color:#758178;font-weight:900;cursor:pointer}.auth-tabs button.active{background:#fff;color:var(--green-dark);box-shadow:0 4px 13px rgba(39,70,58,.1)}.auth-form{display:grid;gap:12px;margin-top:17px}.auth-form label{display:grid;gap:7px;color:#456052;font-size:13px;font-weight:900}.auth-form input{width:100%;padding:13px 14px;border:1px solid #ced9ca;border-radius:13px;background:#fff;color:var(--ink);font-size:15px;outline:0}.auth-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(48,185,101,.13)}.auth-message{min-height:20px;margin:0;color:#cb4d4d;font-size:12px;font-weight:800}.auth-submit{padding:13px 18px;border:2px solid var(--ink);border-radius:15px 15px 15px 5px;background:var(--green);color:#fff;font-size:16px;font-weight:900;cursor:pointer;box-shadow:4px 5px 0 var(--ink);transition:.15s ease}.auth-submit:hover{transform:translate(2px,2px);box-shadow:2px 3px 0 var(--ink)}.auth-submit:disabled{opacity:.6;cursor:wait}.auth-safe{display:flex;gap:10px;margin-top:22px;padding:11px 13px;border:1px dashed #a9d697;border-radius:14px;background:#f5ffed}.auth-safe>span{font-size:22px}.auth-safe p{display:grid;gap:2px;margin:0}.auth-safe b{font-size:12px}.auth-safe small{color:#728174;font-size:10px;line-height:1.5}.account-card{display:grid;gap:14px}.account-identity{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #dfe7da;border-radius:16px;background:#fff}.account-identity>span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#e8f8db;font-size:24px}.account-identity p{display:grid;gap:2px;margin:0}.account-identity small{color:var(--muted)}.cloud-detail{display:grid;gap:8px;padding:13px;border:1px dashed #9dcf91;border-radius:15px;background:#f7ffef;color:#5a6f60;font-size:12px}.account-actions{display:flex;justify-content:flex-end;gap:9px}
@keyframes sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(3deg)}}
@keyframes twinkle{0%,100%{opacity:.35;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.1) rotate(25deg)}}
@keyframes waterPop{0%{transform:scale(1)}35%{transform:scale(1.045) rotate(-1deg)}70%{transform:scale(.99)}100%{transform:scale(1)}}
@keyframes modalIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@keyframes burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}30%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1.15) rotate(30deg)}}
@media(max-width:1050px){.topbar{grid-template-columns:auto 1fr}.top-actions{grid-column:1/-1;justify-content:flex-start}.workspace{grid-template-columns:1fr}.task-board,.roster-board{min-height:auto}.task-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.topbar{display:flex;flex-wrap:wrap;padding:15px}.brand{flex:1}.brand b{font-size:20px}.brand-mark{width:45px;height:45px}.class-name-wrap{order:3;width:100%}.class-name-wrap input{flex:1}.top-actions{width:100%;overflow:auto}.soft-button{flex:0 0 auto}.app-shell{padding:0 12px 24px}.hero{grid-template-columns:1fr;min-height:440px;padding:32px 24px 105px;border-radius:26px 26px 26px 8px}.hero h1{font-size:40px}.hero-copy p{font-size:15px}.hero-plant{position:absolute;right:-15px;bottom:83px;transform:scale(.72);transform-origin:bottom right}.hero-note{display:none}.summary-strip{right:10px;bottom:10px;left:10px;grid-template-columns:repeat(2,1fr)}.summary-strip>div{padding:8px 10px}.summary-strip b{font-size:19px}.summary-strip small{font-size:10px}.workspace{margin-top:18px}.task-board,.roster-board{padding:16px;border-radius:20px}.section-heading{align-items:flex-start}.section-heading .primary-button{padding:10px 12px}.task-list{grid-template-columns:1fr}.student-grid{grid-template-columns:1fr;max-height:none}.detail-head h2{font-size:22px}.progress-badge{flex-basis:72px;height:67px}.detail-toolbar{align-items:stretch;flex-direction:column}.filter-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.search-box input{width:100%}.detail-footer{display:grid;grid-template-columns:1fr 1fr}.detail-footer .text-button:first-child{grid-column:1/-1}.modal-layer{padding:8px}.modal{max-height:96vh;border-radius:20px}.modal-body{max-height:calc(96vh - 72px)}footer{align-items:flex-start;flex-direction:column;padding:15px}.auth-gate{padding:8px}.auth-card{display:block;max-width:520px;border-radius:25px 25px 25px 8px}.auth-art{display:none}.auth-panel{min-height:calc(100vh - 16px);padding:31px 25px}.auth-panel h1{font-size:27px}.auth-brand{margin-bottom:23px}.auth-safe{margin-top:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
