@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700;800&display=swap');
:root{--ink:#242c26;--muted:#788179;--green:#3e7c56;--green-dark:#286240;--pale:#f2f6ed;--line:#e7ebe4;--yellow:#f3df9c;--blue:#cce5e5;--paper:#fff;--bg:#fafbf8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans','Noto Sans SC',sans-serif;font-size:14px}.topbar{height:72px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(calc((100% - 1120px)/2),32px);border-bottom:1px solid #f1f2ef}.brand{text-decoration:none;color:var(--ink);font-size:16px;font-weight:800;display:flex;align-items:center;gap:9px}.brand-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#ecf3e7;color:var(--green);font-size:21px}.brand-sub{color:#879087;font-weight:500;font-size:12px;border-left:1px solid #e1e5df;padding-left:10px;margin-left:2px}.top-actions{display:flex;align-items:center;gap:22px}.signed-in,.logout{font-size:12px;color:#687269;text-decoration:none}.nav{height:54px;background:white;display:flex;justify-content:center;gap:42px;border-bottom:1px solid var(--line)}.nav a{color:#788078;text-decoration:none;padding:17px 5px 14px;font-size:13px}.nav a.active{color:var(--green);border-bottom:2px solid var(--green);font-weight:700}.container{max-width:1120px;margin:0 auto;padding:44px 24px 72px;min-height:calc(100vh - 185px)}footer{border-top:1px solid var(--line);background:#fff;padding:23px max(calc((100% - 1072px)/2),32px);font-size:12px;color:#788179}footer span{float:right;color:#a1a9a1}.hero{display:grid;grid-template-columns:1fr .9fr;align-items:center;min-height:400px;gap:44px}.hero-copy{padding:28px 0}.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700;color:var(--green)}h1{font-size:36px;line-height:1.45;letter-spacing:-.04em;margin:12px 0;color:var(--ink)}.hero h1{font-size:46px}.hero h1 span,.page-head h1 span,.student-welcome h1 span{color:var(--green)}.hero-copy>p,.page-head p,.student-welcome p{font-size:14px;line-height:1.8;color:#818981}.hero-actions{display:flex;gap:12px;margin:27px 0 25px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:7px;padding:12px 19px;font:600 13px 'DM Sans','Noto Sans SC',sans-serif;text-decoration:none;cursor:pointer;transition:transform .15s,background .15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--green);color:#fff}.btn.primary:hover{background:var(--green-dark)}.btn.outline{background:#fff;border:1px solid #dfe5dd;color:#48524a}.btn.full{width:100%;margin-top:15px}.small-btn{padding:9px 13px;font-size:12px;margin:8px 0 18px}.trust-note{display:flex;align-items:center;gap:10px;font-size:11px;color:#929991}.avatars{color:#84a77b;letter-spacing:-4px;font-size:12px;margin-right:4px}.hero-art{position:relative;height:348px;border-radius:15px;background:#edf3e7;overflow:hidden}.hero-art:after{content:'';position:absolute;bottom:-57px;left:-6%;width:112%;height:142px;border-radius:50% 50% 0 0;background:#d9e7d2}.sun{position:absolute;top:50px;right:74px;width:57px;height:57px;background:#f3dc97;border-radius:50%}.planet{position:absolute;left:43%;top:38%;font-size:76px;color:var(--green);z-index:2;transform:rotate(-20deg)}.orbit{position:absolute;border:1px solid #a8c49e;border-radius:50%;z-index:1;top:30%;left:22%;width:57%;height:47%;transform:rotate(-29deg)}.orbit-two{transform:rotate(31deg);border-color:#c0cfb7}.plant{position:absolute;bottom:43px;z-index:2;color:#628451;font-size:58px}.plant-one{left:18%}.plant-two{right:15%;font-size:45px;bottom:57px}.art-label{position:absolute;z-index:3;background:#fff;border-radius:30px;padding:10px 15px;font-size:10px;color:#57725a;box-shadow:0 5px 18px #6479531a}.label-top{top:34px;left:25px}.label-bottom{right:20px;bottom:43px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:12px}.feature-grid article,.panel,.stat-card,.homework-card{background:#fff;border:1px solid var(--line);border-radius:10px}.feature-grid article{padding:22px 23px}.feature-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:17px;margin-bottom:14px}.feature-icon.green{background:#eaf2e5;color:#4c7e53}.feature-icon.yellow{background:#faf1d7;color:#ac8734}.feature-icon.blue{background:#e5f1f0;color:#4e8a83}.feature-grid h3{font-size:14px;margin:0 0 7px}.feature-grid p{font-size:11px;color:#89918a;line-height:1.7;margin:0}.login-wrap{display:grid;grid-template-columns:1fr 1fr;gap:55px;max-width:850px;margin:10px auto 0;align-items:center}.login-art{position:relative;border-radius:14px;min-height:370px;background:#edf3e7;padding:45px 38px;overflow:hidden}.login-art h1{font-size:31px;max-width:320px}.login-art p{color:#768276;line-height:1.8;max-width:290px}.login-spark{position:absolute;right:43px;bottom:-36px;font-size:174px;color:#d3e2cc;line-height:1}.login-card{padding:30px 30px 28px;border:1px solid var(--line);background:#fff;border-radius:12px}.login-card h2{font-size:21px;margin:0}.muted{font-size:12px;color:#929991;margin:6px 0 25px}.login-card label,.assignment-form label,.builder-card label,.answer-input{display:block;font-weight:600;font-size:12px;margin:15px 0;color:#525d53}.login-card input,.assignment-form input,.builder-card input,.answer-input input{display:block;width:100%;height:41px;border:1px solid #e1e6df;border-radius:6px;padding:0 12px;margin-top:7px;font:400 12px inherit;color:var(--ink);outline:none;background:#fff}.login-card input:focus,.assignment-form input:focus,.builder-card input:focus,.answer-input input:focus{border-color:#75a47d;box-shadow:0 0 0 3px #eaf2e8}.back-link{font-size:12px;color:#738077;text-decoration:none;display:inline-block;margin:13px 0}.page-head,.student-welcome{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.page-head h1,.student-welcome h1{font-size:29px;margin:5px 0}.page-head p,.student-welcome p{margin:0;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:20px}.stat-card{padding:18px 19px}.stat-label{font-size:11px;color:#7a847b;display:flex;justify-content:space-between;align-items:center}.stat-label span{display:grid;place-items:center;width:26px;height:26px;background:#f0f5ec;color:var(--green);border-radius:8px;font-size:14px}.stat-card strong{display:block;font-size:29px;margin:9px 0 2px}.stat-card>small{font-size:10px;color:#9aa19a}.stat-card.accent{background:#edf3e9}.stat-card.warm .stat-label span{background:#faf1d8;color:#ad8938}.stat-card .of{font-size:17px;color:#788179}.panel{padding:21px 23px;margin-bottom:18px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-heading h2,.panel h2{font-size:15px;margin:0 0 5px}.section-heading p,.panel>p{font-size:11px;color:#919991;margin:0}.section-heading>a{font-size:11px;color:var(--green);text-decoration:none}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:11px}th{font-size:10px;font-weight:600;color:#9aa19a;background:#fafbf9}th,td{padding:12px 10px;border-bottom:1px solid #eff1ee}td{color:#5f685f}td strong{color:#353e37}tbody tr:last-child td{border-bottom:0}.cell-sub{display:block;color:#a0a69f;font-size:10px;margin-top:4px}.grade-tag{display:inline-block;border-radius:4px;background:#eff4eb;color:#58745a;padding:5px 8px;font-size:10px}.progress-line{width:90px;height:5px;border-radius:9px;background:#eef0ed;display:inline-block;vertical-align:middle;margin-right:7px}.progress-line span{display:block;height:100%;border-radius:9px;background:#7b9f6a}.badge{display:inline-block;border-radius:20px;padding:5px 9px;font-size:9px;font-weight:600}.badge.done{background:#edf4e8;color:#568047}.badge.warn{background:#fff3db;color:#b1842d}.badge.pending{background:#f1f3f0;color:#7c867d}.empty{text-align:center;padding:38px 20px;color:#7f897e}.empty>span{display:grid;place-items:center;margin:auto;width:45px;height:45px;border-radius:14px;background:#eff4ea;color:#6b9561;font-size:22px}.empty h3{font-size:15px;color:var(--ink);margin:13px 0 5px}.empty p{font-size:11px;color:#939b93;margin:0 0 15px}.upload-panel{display:flex;align-items:center;justify-content:space-between;gap:20px}.upload-panel h2{font-size:15px;margin:0 0 6px}.upload-panel p{font-size:11px;color:#89918a;margin:0 0 10px}.format-note{font-size:10px;color:#758075;line-height:1.8;background:#f7f9f5;padding:9px 11px;border-radius:6px}.format-note code{background:#e9efe6;color:#4f7154;border-radius:3px;padding:2px 4px}.upload-form{display:flex;align-items:center;gap:10px}.upload-form input[type=file]{max-width:200px;font-size:10px;color:#777}.two-col{display:grid;grid-template-columns:1.5fr .8fr;gap:18px}.assignment-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.assignment-form label,.builder-card label{margin:12px 0}.assignment-form input,.builder-card input{height:37px}.question-builder{margin-top:15px}.builder-card{background:#fafbf9;border:1px solid #edf0ea;border-radius:7px;padding:9px 13px;margin-bottom:10px}.builder-head{display:flex;justify-content:space-between;align-items:center;color:#667364;font-size:11px}.remove-question{background:transparent;border:0;color:#a1a9a0;font-size:19px;cursor:pointer}.csv-help{background:#f7faf6}.csv-help .feature-icon{margin-bottom:12px}.csv-help h2{margin:0 0 7px}.csv-help>p{line-height:1.8;margin-bottom:15px}.csv-help pre{white-space:pre-wrap;font-size:9px;background:#edf2e9;padding:8px;margin:6px 0 0}.upload-form.vertical{display:block;margin-top:15px}.upload-form.vertical input{display:block;margin-bottom:13px}.student-welcome{padding:24px 0}.welcome-icon{width:65px;height:65px;display:grid;place-items:center;border-radius:20px;background:#edf3e7;color:#72966a;font-size:33px;transform:rotate(7deg)}.student-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.homework-card{padding:20px;display:flex;flex-direction:column;min-height:205px}.homework-card.waiting{border-color:#ead9ac}.homework-top{display:flex;align-items:center;justify-content:space-between}.subject-label{font-size:10px;color:#789071}.homework-card h2{font-size:17px;margin:18px 0 6px}.homework-card>p{font-size:11px;color:#909890;margin:0 0 17px}.homework-card .btn{margin-top:auto}.homework-completed{margin-top:auto;color:#66865a;font-size:11px;padding:10px 0}.retry-hint{font-size:10px;color:#a77b29;background:#fff8e8;padding:9px;border-radius:5px;line-height:1.5}.assignment-title{margin:15px 0 20px}.question-count{background:#eff4eb;color:#64805f;border-radius:20px;padding:8px 12px;font-size:11px}.question-sheet{max-width:780px}.question-card{display:grid;grid-template-columns:38px 1fr;gap:15px;background:white;border:1px solid var(--line);border-radius:9px;padding:20px;margin-bottom:13px}.question-number{width:34px;height:34px;border-radius:10px;background:#eff4ea;display:grid;place-items:center;color:#62845e;font-size:11px;font-weight:700}.question-content h3{font-size:14px;margin:6px 0 15px}.answer-options{display:flex;flex-wrap:wrap;gap:8px}.option{cursor:pointer;position:relative}.option input{position:absolute;opacity:0}.option span{display:inline-block;padding:9px 15px;background:#fafbf9;border:1px solid #eaede8;border-radius:6px;font-size:11px;color:#69736a}.option input:checked+span{border-color:#7ca37b;background:#eef4e9;color:#456c49}.answer-input{grid-column:2;margin:0}.answer-input input{max-width:430px}.submit-btn{margin:7px 0 35px;min-width:150px}.retry-banner{display:flex;align-items:center;gap:18px;background:#f8f1df;padding:23px;border-radius:10px;margin:20px 0;position:relative}.retry-banner>span{width:47px;height:47px;display:grid;place-items:center;background:#f1e3bd;border-radius:13px;color:#a58035;font-size:23px}.retry-banner h1{font-size:25px;margin:4px 0}.retry-banner p{font-size:11px;color:#867d67;margin:0}.retry-banner>strong{margin-left:auto;background:#fff9e9;border-radius:20px;color:#a78137;font-size:10px;padding:7px 11px}.retry-question{border-color:#eee8d8}.hint-box{background:#f6f8f2;border-radius:6px;padding:11px 13px;margin-top:15px}.hint-box strong{font-size:10px;color:#647e59}.hint-box p{font-size:11px;color:#7b8478;margin:5px 0 0;line-height:1.7}.flash{max-width:100%;padding:12px 15px;border-radius:7px;margin-bottom:16px;font-size:12px;position:relative;padding-right:40px}.flash.success{background:#edf5e9;color:#4e7748}.flash.error{background:#fff4e2;color:#99702c}.flash button{position:absolute;right:12px;top:8px;border:0;background:transparent;color:inherit;font-size:18px;cursor:pointer}
@media(max-width:800px){.hero{grid-template-columns:1fr;gap:10px}.hero-art{height:270px}.feature-grid,.stats{grid-template-columns:repeat(2,1fr)}.login-wrap{grid-template-columns:1fr;gap:20px}.login-art{min-height:250px}.student-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.container{padding-top:30px}.topbar{padding:0 20px}.nav{gap:20px}.page-head h1,.student-welcome h1{font-size:25px}}
@media(max-width:520px){.container{padding:25px 15px 45px}.hero h1{font-size:37px}.hero-art{height:230px}.feature-grid,.stats,.student-grid{grid-template-columns:1fr}.feature-grid article{padding:17px}.page-head{align-items:flex-start;gap:10px;flex-direction:column}.page-head>.btn{align-self:flex-start}.nav{justify-content:space-around;gap:2px}.nav a{font-size:10px}.topbar{height:60px}.brand-sub{display:none}.signed-in{display:none}.upload-panel{align-items:flex-start;flex-direction:column}.upload-form{width:100%;flex-wrap:wrap}.assignment-form .form-row{grid-template-columns:1fr;gap:0}.question-card{grid-template-columns:30px 1fr;gap:10px;padding:15px}.question-number{width:28px;height:28px}.option span{padding:8px 10px}.retry-banner{padding:17px;gap:11px}.retry-banner>strong{position:absolute;right:14px;top:13px}.retry-banner>div{padding-top:7px}.retry-banner h1{font-size:21px}.retry-banner p{max-width:200px}footer{padding:18px 15px}footer span{display:none}.hero-actions{flex-wrap:wrap}}
