:root{color:#233c38;font-synthesis:none;--green:#15665e;--muted:#7b8c87;--line:#e5ece8;--paper:#fff;background:#f5f7f6;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;transition:background .15s;display:inline-flex}button:disabled{opacity:.55;cursor:not-allowed}button:hover:not(:disabled){filter:brightness(.96)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #80bfb4}input,select,textarea{color:#233c38;background:#fff;border:1px solid #dce6e1;border-radius:8px;max-width:100%;padding:11px 12px}input{min-width:0}textarea{resize:vertical;min-height:85px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--green);margin:0 8px 0 0}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.7px;margin-bottom:8px;font-size:30px;line-height:1.35}h2{margin-bottom:12px;font-size:23px;line-height:1.5}h3{margin-bottom:10px;font-size:16px}p{line-height:1.75}a{color:var(--green);text-underline-offset:4px}small{font-size:12px}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.row{align-items:center;gap:12px;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.full{width:100%}.primary{background:var(--green);color:#fff;font-weight:600;box-shadow:0 3px 6px #15665e12}.secondary{color:#355e55;background:#fff;border:1px solid #dce6e1}.danger{color:#b64139;background:#fcecea}.text-btn{color:var(--green);padding:6px 8px;font-size:13px}.icon-btn{padding:7px}.hidden{display:none}.eyebrow{letter-spacing:1.1px;color:#548478;margin-bottom:12px;font-size:12px;font-weight:600;display:block}.card{border:1px solid var(--line);background:#fff;border-radius:15px;margin-bottom:20px;padding:25px;box-shadow:0 3px 14px #183e2e03}.field{flex-direction:column;gap:8px;margin-bottom:18px;font-size:14px;display:flex}.field>span{font-weight:500}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#fff;background:0 0;border-radius:50%;place-items:center;width:46px;height:46px;display:grid}.brand-mark img{object-fit:contain;width:100%;height:100%;display:block}.school-emblem-small{object-fit:contain;width:28px;height:28px;margin-bottom:8px;display:block}.brand strong{letter-spacing:.5px;font-size:18px;display:block}.brand small{color:#81988d;margin-top:4px;font-size:11px;display:block}.badge{white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;padding:5px 9px;font-size:11px;font-weight:600;display:inline-flex}.badge.green,.metric-icon.green{color:#2b8062;background:#e8f4ed}.badge.amber,.metric-icon.amber{color:#a57423;background:#fff3dd}.badge.red{color:#bc5246;background:#fdeae7}.badge.gray{color:#7a8984;background:#eff2f1}.avatar{color:#3b7464;background:#e8f0ec;border-radius:50%;flex-shrink:0;place-items:center;width:40px;height:40px;padding:0;font-size:13px;display:grid}.small-avatar{width:35px;height:35px;font-size:11px}.loading{place-items:center;min-height:100vh;display:grid}.toast,.error-toast{color:#fff;z-index:100;background:#174e43;border-radius:11px;align-items:center;gap:12px;width:max-content;max-width:92vw;padding:15px 22px;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 5px 25px #0002}.error-toast{background:#9d3f38;bottom:90px}.error-toast button{color:#fff;padding:0 5px}.login-page{background:#fff;grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.login-story{background:#e9f1eb;flex-direction:column;justify-content:space-between;padding:60px 9%;display:flex;position:relative;overflow:hidden}.login-story:after{content:"";border:65px solid #c6daca45;border-radius:50%;width:430px;height:430px;position:absolute;bottom:-190px;right:-200px}.story-text{z-index:1;padding:80px 0;position:relative}.story-text h1{color:#19483c;letter-spacing:1px;font-size:52px;line-height:1.45}.story-text p{color:#70877b;font-size:16px}.story-cards{flex-wrap:wrap;gap:12px;margin-top:35px;display:flex}.story-cards span{color:#416657;background:#ffffff9c;border-radius:8px;align-items:center;gap:8px;padding:12px;font-size:13px;display:flex}.login-story>small{color:#81958a}.login-form{align-self:center;width:100%;max-width:440px;margin:auto;padding:40px}.login-form h2{font-size:29px}.login-form form{margin-top:32px}.login-form .primary{margin-top:8px;padding:14px}.login-note{color:#88978f;gap:10px;margin-top:28px;font-size:12px;line-height:1.9;display:flex}.login-note svg{flex-shrink:0;margin-top:4px}.mobile-brand{display:none}.password-page{border:1px solid var(--line);background:#fff;border-radius:18px;max-width:480px;margin:65px auto;padding:32px}.password-page .brand{margin-bottom:30px}.teacher-shell{max-width:720px;min-height:100vh;margin:auto}.teacher-header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;padding:25px 25px 20px;display:flex}.teacher-shell main{padding:28px 25px}.greeting h1{font-size:27px}.greet-dot{color:#55a58c}.greeting p{margin-bottom:24px;font-size:14px}.teacher-tabs{background:#eaf0ec;border-radius:11px;gap:8px;margin-bottom:22px;padding:5px;display:flex}.teacher-tabs button{color:#7d8b83;flex:1;padding:11px 3px;font-size:14px}.teacher-tabs button.active{color:var(--green);background:#fff;font-weight:600;box-shadow:0 2px 5px #102e1908}.task-top{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.task-top .eyebrow{margin:0}.submission h2{font-size:24px}.article-link{background:#f1f6f2;border-radius:12px;gap:14px;margin:20px 0;padding:17px;display:flex}.article-icon{color:#61967d;background:#e4eee6;border-radius:8px;flex-shrink:0;place-items:center;width:49px;height:58px;display:grid}.article-link small{color:#86968a;margin-bottom:5px;display:block}.article-link strong{font-size:15px;line-height:1.7;display:block}.article-link a{margin-top:7px;font-size:13px;display:inline-block}.task-description{color:#75877d;font-size:14px}.deadline{color:#826a37;background:#fbf7eb;border-radius:9px;align-items:center;gap:10px;padding:13px 15px;font-size:13px;display:flex}.deadline svg{flex-shrink:0}.deadline strong{font-weight:500;display:block}.deadline small{color:#9b8c6c;margin-top:5px;display:block}.upload-heading{justify-content:space-between;align-items:center;margin-top:28px;display:flex}.upload-heading span{color:#8b998f;font-size:12px}.upload-heading h3{margin:0}.upload-heading+p{margin:10px 0 18px}.upload-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:17px;display:grid}.upload-tile{background:#f2f6f2;border-radius:10px;min-height:160px;position:relative;overflow:hidden}.upload-tile img{object-fit:cover;object-position:top;width:100%;height:160px;display:block}.preview-button{width:100%;padding:0;display:block}.upload-tile .remove{color:#fff;background:#172e39a1;border-radius:50%;width:25px;height:25px;padding:0;font-size:19px;position:absolute;top:5px;right:5px}.upload-tile small{text-align:center;color:#72917e;padding:5px;display:block}.upload-drop{color:#699783;background:#f7faf6;border:1.5px dashed #b8cfc0;flex-direction:column;min-height:190px;font-size:13px}.upload-drop small{color:#9eada1;font-size:11px}.upload-submit{margin-top:23px;padding:14px}.submission>.center{margin:12px 0 0;font-size:11px}.success-strip{color:#4f8561;background:#eef7ed;border-radius:8px;align-items:center;gap:8px;padding:11px;font-size:12px;display:flex}.closed-note{color:#809085;text-align:center;background:#f2f4f2;border-radius:8px;margin-top:20px;padding:13px}.teacher-tip{color:#8b9b90;justify-content:center;align-items:center;gap:7px;margin:24px 0;font-size:12px;display:flex}.teacher-shell footer{color:#9da89f;text-align:center;padding:15px;font-size:11px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.section-heading h2,.section-heading h3,.history-card h3{margin:0}.history-card p{font-size:13px}.history-images{flex-wrap:wrap;gap:8px;display:flex}.history-images button{padding:0}.history-images img{object-fit:cover;object-position:top;border-radius:7px;width:86px;height:110px}.profile-card{text-align:center}.profile-card .avatar{width:60px;height:60px;margin:0 auto 15px}.other-task>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;display:flex}.other-task .submission{box-shadow:none;border:0;margin:20px 0 0;padding:0}.red-text{color:#b6483e}.admin-shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;flex-shrink:0;width:245px;padding:30px 20px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar .brand{gap:10px}.sidebar .brand strong{font-size:17px}.sidebar .brand-mark{width:40px;height:43px}.sidebar-label{letter-spacing:1.5px;color:#a1ada7;margin:45px 12px 16px;font-size:11px}.sidebar nav button{color:#87968e;justify-content:flex-start;gap:14px;width:100%;margin-bottom:9px;padding:13px 16px;font-size:14px;display:flex}.sidebar nav button.active{color:var(--green);background:#eaf3ed;font-weight:600}.nav-dot{background:#70ac8c;border-radius:50%;width:5px;height:5px;margin-left:auto}.sidebar-bottom{margin-top:auto}.sidebar-bottom>button{color:#8b9b90;justify-content:flex-start;width:100%;padding-left:16px;font-size:13px}.school-note{color:#8ca292;background:#f6f8f4;border-radius:12px;flex-direction:column;gap:10px;margin-bottom:17px;padding:20px;display:flex}.school-note strong{color:#6d8776;font-size:12px}.school-note span{font-size:11px}.admin-main{width:calc(100% - 245px);margin-left:245px}.admin-top{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:83px;padding:0 40px;font-size:13px;display:flex}.admin-top>div{align-items:center;gap:12px;display:flex}.admin-top>div:first-child>span{color:#93a198}.admin-top .avatar{width:35px;height:35px}.admin-main main{max-width:1740px;margin:auto;padding:34px 40px}.page-heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:28px;display:flex}.page-heading h1{font-size:29px}.page-heading p{margin-bottom:0;font-size:13px}.page-heading .eyebrow{letter-spacing:1.5px;font-size:10px}.page-heading .primary{padding:13px 17px;font-size:13px}.metrics{grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:25px;display:grid}.metric{border:1px solid var(--line);background:#fff;border-radius:12px;padding:22px}.metric .row>span:first-child{color:#87958e;font-size:12px}.metric-icon{border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.metric-value{color:#274e41;margin-top:13px;font-size:37px;font-weight:600;line-height:1.2}.metric-value small{color:#95a095;margin-left:7px;font-size:13px;font-weight:400}.dashboard-grid{grid-template-columns:1.45fr 1fr;gap:23px;display:grid}.current-admin h2{margin-top:22px;font-size:23px}.current-admin .deadline{margin-top:24px}.completion-track{background:#edf3ed;border-radius:5px;height:7px;margin:23px 0 12px;overflow:hidden}.completion-track>div{background:#5b9877;border-radius:5px;height:100%}.dashboard-buttons{margin-top:26px}.dashboard-buttons button{font-size:13px}.quick-actions h3{margin:4px 0 19px}.quick-actions>button{text-align:left;border-bottom:1px solid #eff3f0;border-radius:0;justify-content:flex-start;gap:15px;width:100%;padding:15px 0;display:flex}.quick-actions>button:last-child{border-bottom:0}.quick-icon{color:#6c9079;background:#f0f5ee;border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:42px;display:grid}.quick-actions strong{font-size:13px;display:block}.quick-actions small{color:#95a294;margin-top:7px;font-size:11px;display:block}.quick-actions>button>svg{color:#a8b4aa;margin-left:auto}.table-scroll{overflow-x:auto}table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%;font-size:13px}thead{color:#95a294;background:#f7f9f6}th{border-bottom:1px solid var(--line);padding:15px;font-size:11px;font-weight:500}td{color:#61766a;border-bottom:1px solid #eef2ee;padding:17px 15px}td strong{color:#365d4b;font-weight:500}td small{color:#a2aea4;margin-top:7px;font-size:11px;display:block}tr:last-child td{border-bottom:0}td button{white-space:nowrap}td pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:450px;font-size:11px}.admin-main footer{text-align:center;color:#a4afa5;padding:10px 40px 25px;font-size:10px}.wall-toolbar select:first-child{min-width:320px;max-width:600px}.wall-controls{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.wall-count{color:#8a9b8f;font-size:12px}.wall-count strong{color:#558b6d;font-size:20px}.wall-count>span{padding:0 10px}.segmented{background:#f1f5ef;border-radius:9px;padding:4px;display:flex}.segmented button{color:#899988;padding:9px 13px;font-size:12px}.segmented button.active{color:#487457;background:#fff;box-shadow:0 1px 5px #3442310b}.search{color:#a3b1a4;border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:9px;padding:0 10px;display:flex}.search input{border:0;outline:none;max-width:200px;padding-left:0;font-size:12px}.wall-controls select,.wall-controls .secondary{font-size:12px}.wall-hint{color:#7d9583;align-items:center;gap:9px;margin:22px 0;font-size:12px;display:flex}.wall-hint>.muted{margin-left:auto}.wall-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.wall-card{border:1px solid var(--line);background:#fff;border-radius:13px;min-width:0;padding:20px}.wall-card h3{margin:0 0 3px;font-size:14px}.wall-card .muted{font-size:10px}.wall-card-meta{color:#9aa89b;justify-content:space-between;margin:17px 0 12px;font-size:10px;display:flex}.wall-thumbs{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.wall-thumbs button{background:#eff3ec;border-radius:6px;min-width:0;height:155px;padding:0;position:relative;overflow:hidden}.wall-thumbs img{object-fit:cover;object-position:top;width:100%;height:100%}.wall-thumbs button>span{color:#fff;background:#1839269c;border-radius:3px;padding:2px 5px;font-size:9px;position:absolute;bottom:5px;right:5px}.wall-empty{color:#b2beaf;background:#f7f9f5;border:1px dashed #e1e8dd;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:155px;font-size:11px;display:flex}.wall-actions{border-top:1px solid #edf2e9;flex-wrap:wrap;gap:4px;margin-top:15px;padding-top:10px;display:flex}.wall-actions .text-btn{padding:4px 6px;font-size:11px}.users-toolbar .primary,.users-toolbar .secondary{font-size:12px}.file-label{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:11px 16px;display:inline-flex}.stats-controls .field{margin-bottom:15px}.form-grid{grid-template-columns:1fr 1fr;gap:17px;display:grid}.form-grid.three{grid-template-columns:1.3fr 1fr 1fr}.warning{color:#a67e30;background:#fff5de;border-radius:8px;margin-bottom:20px;padding:13px 16px;font-size:13px}.overlay{z-index:70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#10261c80;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:17px;outline:none;width:460px;max-width:100%;max-height:90vh;padding:27px;overflow:auto;box-shadow:0 20px 80px #0002}.modal.wide{width:720px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-head h2{margin:0;font-size:21px}.danger-actions{border-top:1px solid var(--line);justify-content:space-between;margin-top:20px;padding-top:20px;display:flex}.participation{margin-bottom:20px;font-size:13px}.participation>label{align-items:center;display:flex}.teacher-select{grid-template-columns:1fr 1fr;gap:10px;max-height:150px;margin:15px 0;display:grid;overflow:auto}.teacher-select label{align-items:center;display:flex}.temp-password{text-align:center;overflow-wrap:anywhere;background:#f3f6f0;margin:20px 0;padding:20px;font-size:19px;display:block}.import-list{max-height:250px;margin:20px 0;font-size:12px;line-height:2.4;overflow:auto}.gallery{z-index:80;color:#fff;background:#111d1b;outline:none;flex-direction:column;display:flex;position:fixed;inset:0}.gallery header{background:#1b2926;justify-content:space-between;align-items:center;gap:15px;padding:17px 25px;display:flex}.gallery header strong{font-size:15px;display:block}.gallery header span{color:#9baea7;margin-top:6px;font-size:12px;display:block}.gallery header button{color:#fff;background:#34413b;padding:8px 12px}.gallery-image{text-align:center;flex:1;padding:25px 65px;overflow:auto}.gallery-image img{max-width:none;margin:auto;display:block;box-shadow:0 3px 20px #0005}.gallery-prev,.gallery-next{color:#fff;background:#243f3690;padding:3px 15px;font-size:45px;position:absolute;top:50%}.gallery-prev{left:13px}.gallery-next{right:13px}.gallery footer{text-align:center;color:#a1b3aa;background:#1b2926;padding:12px;font-size:11px}progress{width:100%;height:7px;accent-color:var(--green);margin-top:12px}.empty{text-align:center;color:#94a291;padding:50px}.empty svg{color:#aac4ae;margin-bottom:17px}@media (width>=1600px){.wall-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.wall-thumbs button{height:175px}}@media (width<=1200px){.sidebar{width:210px;padding:25px 14px}.admin-main{width:calc(100% - 210px);margin-left:210px}.admin-main main{padding:25px}.admin-top{padding:0 25px}.metrics{gap:12px}.metric{padding:17px}.wall-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.quick-actions{display:none}}@media (width<=800px){.admin-shell{display:block}.sidebar{border-right:0;width:100%;padding:16px;position:static}.sidebar .brand{margin-bottom:15px}.sidebar-label,.sidebar-bottom{display:none}.sidebar nav{gap:5px;display:flex;overflow:auto}.sidebar nav button{flex-shrink:0;gap:7px;width:auto;margin:0;padding:9px 11px;font-size:12px}.sidebar nav button svg{width:17px}.admin-main{width:100%;margin:0}.admin-top{height:60px;padding:0 18px}.admin-main main{padding:22px 18px}.page-heading{align-items:flex-start}.page-heading h1{font-size:25px}.page-heading p{font-size:12px}.page-heading>.primary{white-space:nowrap;padding:10px;font-size:12px}.metrics{grid-template-columns:repeat(2,1fr)}.metric-value{font-size:32px}.card{padding:20px}.wall-toolbar select:first-child{width:100%;min-width:0;max-width:100%}.wall-hint{flex-wrap:wrap}.wall-hint>.muted{margin-left:0}.wall-controls{gap:15px}.form-grid.three{grid-template-columns:1fr}.gallery header{flex-wrap:wrap;padding:12px}.gallery-image{padding:20px 50px}.gallery-image img{max-width:calc(100vw - 100px)}.gallery header button{padding:5px 10px}.gallery .row{gap:7px}.login-page{grid-template-columns:1fr}.login-story{display:none}.login-form{max-width:450px;padding:30px}.mobile-brand{margin-bottom:60px;display:block}.login-form h2{font-size:27px}.teacher-shell main{padding:24px 18px}.teacher-header{padding:18px}.greeting h1{font-size:25px}.teacher-tabs button{font-size:12px}.teacher-tabs button svg{width:17px}.submission h2{font-size:21px}.upload-grid{gap:8px}.upload-tile img{height:130px}.upload-tile{min-height:130px}.upload-drop{min-height:157px}.upload-drop small{font-size:9px}.upload-drop strong{font-size:12px}.password-page{margin:30px 18px;padding:24px}.modal{padding:22px}.overlay{padding:15px}.form-grid,.teacher-select{grid-template-columns:1fr}.teacher-shell .card{border-radius:12px}.history-card .row{align-items:flex-start}.history-card h3{font-size:14px}.wall-card{padding:15px}.wall-card .row{gap:8px}.wall-card .badge{font-size:10px}.wall-thumbs button{height:125px}}@media (width<=520px){.wall-grid{grid-template-columns:1fr}.wall-thumbs button{height:190px}.wall-toolbar{padding:15px}.wall-controls .row{width:100%}.wall-controls .search{flex:1;min-width:0}.wall-controls .search input,.segmented{width:100%}.segmented button{flex:1;padding:9px;font-size:11px}.admin-top .badge{display:none}.greeting .eyebrow{font-size:10px}.teacher-header .brand strong{font-size:16px}.teacher-header .brand small{font-size:10px}.teacher-header .brand-mark{width:39px;height:40px}.teacher-tabs{gap:3px}.article-link{gap:11px;padding:14px}.article-link strong{font-size:14px}.deadline{padding:12px;font-size:12px}.deadline small{font-size:10px}.submission>.small{font-size:11px}.upload-grid{grid-template-columns:repeat(2,1fr)}.upload-tile img{height:160px}.upload-drop{min-height:183px}.upload-drop small{font-size:11px}.page-heading .eyebrow{font-size:9px}.page-heading .primary svg{display:none}.gallery header strong{font-size:13px}}
