:root{color:#183f34;font-synthesis:none;background:#fbf8ee;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}body{background:#fbf8ee;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{color:inherit}.app-shell{flex-direction:column;width:min(1280px,100% - 40px);min-height:100vh;margin:auto;display:flex}.topbar{border-bottom:1px solid #d8dfd7;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;height:70px;display:grid}.brand{text-align:left;cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:10px;padding:0;display:flex}.brand-mark{color:#fff;background:#167052;border-radius:3px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.08em;font-size:17px}.brand small{color:#75867e;letter-spacing:.1em;font-size:9px}nav{align-self:stretch;gap:28px;display:flex}nav button{color:#64766e;cursor:pointer;background:0 0;border:0;padding:3px 2px 0;position:relative}nav button.active{color:#135f49;font-weight:700}nav button.active:after{content:"";background:#e4a145;height:3px;position:absolute;bottom:0;left:0;right:0}.health-badge{color:#64766e;justify-self:end;align-items:center;gap:7px;font-size:12px;display:flex}.health-badge i{background:#d4a43f;border-radius:50%;width:8px;height:8px}.health-ready i{background:#3b9a69}.health-error i{background:#c85d4d}main{flex:1;padding:24px 0 42px}footer{color:#7a8882;border-top:1px solid #d8dfd7;justify-content:space-between;padding:18px 0 24px;font-size:11px;display:flex}h1,h2,p{margin-top:0}h1{margin-bottom:10px;font-size:34px;line-height:1.2}h2{margin-bottom:8px;font-size:22px}.section-kicker,.paper-kicker{color:#a8652d;letter-spacing:.13em;margin-bottom:7px;font-size:11px;font-weight:800}.student-intro{border-bottom:1px solid #d7dfd6;grid-template-columns:1fr 1.25fr 180px;align-items:center;min-height:150px;display:grid;position:relative;overflow:hidden}.student-copy p:last-child,.teacher-heading p,.locker-heading p{color:#647970;margin:0;font-size:14px}.campus-scene{border-bottom:4px solid #80a981;align-self:end;height:125px;position:relative}.building,.tree,.sun{display:block;position:absolute}.building{background:#efad72;border:3px solid #48705f;bottom:0}.building:after{content:"";background:repeating-linear-gradient(90deg,#fff4d1 0 11px,#0000 11px 24px);position:absolute;inset:14px}.building-one{width:110px;height:75px;left:22%}.building-two{background:#f2c873;width:150px;height:100px;left:50%}.tree{border-left:6px solid #87613c;width:26px;height:54px;bottom:0}.tree:after{content:"";background:#76aa75;border-radius:50%;width:45px;height:45px;position:absolute;top:-8px;left:-25px}.tree-one{left:6%}.tree-two{right:6%}.sun{background:#f4c44e;border-radius:50%;width:27px;height:27px;top:8px;right:2%}.points-board{text-align:center;background:repeating-linear-gradient(4deg,#e5ad68 0 5px,#dfa560 6px 10px);border:5px solid #835126;justify-self:end;width:160px;padding:13px 12px;transform:rotate(1deg);box-shadow:3px 4px #d7c19d}.points-board span,.points-board small{font-size:11px;display:block}.points-board strong{color:#173f34;font-size:36px;line-height:1}.points-board small{margin-top:3px}.student-actions{border-bottom:1px solid #d7dfd6;grid-template-columns:repeat(3,1fr);display:grid}.student-actions button{text-align:left;cursor:pointer;background:0 0;border:0;border-right:1px solid #d7dfd6;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;min-height:92px;padding:14px 22px;display:grid}.student-actions button:last-child{border-right:0}.student-actions button:hover{background:#f2f6ed}.student-actions strong,.student-actions small{display:block}.student-actions small{color:#75867f;margin-top:4px;font-size:12px}.student-actions b{color:#c37936;font-size:20px}.action-icon{background:#e8f2df;border:2px solid #226b53;place-items:center;width:42px;height:42px;font-weight:800;display:grid;transform:rotate(-2deg)}.inline-notice{color:#76552f;background:#fff5d9;border-left:3px solid #e0a044;margin:12px 0 0;padding:9px 12px;font-size:12px}.preview-section{padding-top:24px}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px;display:flex}.section-heading h2{margin:0}.section-heading>span{color:#718078;font-size:12px}.filter-row{flex-wrap:wrap;gap:4px;display:flex}.filter-row button{cursor:pointer;background:0 0;border:1px solid #0000;padding:5px 9px;font-size:12px}.filter-row button.active{background:#e8f1e5;border-color:#2f715c}.item-strip{border-top:1px solid #cfd8d0;border-bottom:1px solid #cfd8d0;grid-template-columns:repeat(4,1fr);display:grid}.preview-item{text-align:left;cursor:pointer;background:#fffdf7;border:0;border-right:1px solid #cfd8d0;align-items:center;gap:12px;min-height:112px;padding:12px;display:flex}.preview-item:last-child{border-right:0}.preview-item:hover{background:#f2f7ed}.preview-art{background:#dfeeda;place-items:center;width:78px;height:78px;font-size:38px;display:grid}.art-lamp{background:#fff0bf}.art-ball{background:#f7d7c0}.art-bag{background:#dceaf0}.preview-copy strong,.preview-copy small{display:block}.preview-copy small{color:#718078;margin-top:7px;font-size:11px}.teacher-heading{border-bottom:3px double #ccd6cd;justify-content:space-between;align-items:end;gap:24px;padding:8px 0 20px;display:flex}.teacher-summary{gap:26px;display:flex}.teacher-summary span{border-left:3px solid #deb16d;min-width:90px;padding-left:12px}.teacher-summary small,.teacher-summary strong{display:block}.teacher-summary small{color:#77877f;font-size:10px}.teacher-summary strong{margin-top:4px;font-size:22px}.teacher-workspace{grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:28px;padding-top:22px;display:grid}.review-section{min-width:0}.review-list{border-top:1px solid #ccd6cd}.review-row{border-bottom:1px solid #dce2dc;grid-template-columns:48px minmax(130px,1fr) auto 112px;align-items:center;gap:14px;min-height:86px;padding:12px 0;display:grid}.review-thumb{background:#eac181;border:2px solid #87562f;place-items:center;width:42px;height:42px;display:grid}.review-main strong,.review-main small{display:block}.review-main small{color:#75857e;margin-top:5px;font-size:11px}.review-row dl{gap:18px;margin:0;display:flex}.review-row dl div{text-align:center}.review-row dt{color:#7a8982;font-size:10px}.review-row dd{margin:4px 0 0;font-size:13px;font-weight:700}.review-row button,.student-results button{color:#78837e;background:#f3f3ed;border:1px solid #aebbb4;padding:7px 10px;font-size:11px}.teacher-side{border-left:1px solid #ccd6cd;padding-left:24px}.teacher-side section+section{border-top:1px solid #ccd6cd;margin-top:28px;padding-top:22px}.student-search label{margin:18px 0 6px;font-size:11px;font-weight:700;display:block}.student-search input{background:#fffdf7;border:1px solid #879d92;border-radius:2px;outline:none;width:100%;padding:10px}.student-search input:focus{border-color:#176b50;box-shadow:0 0 0 2px #dcebdd}.student-results{margin-top:8px}.student-results>div{border-bottom:1px dashed #d2dad3;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.student-results strong,.student-results small{display:block}.student-results small{color:#7b8983;margin-top:3px;font-size:10px}.student-results>p{color:#7b8983;font-size:12px}.mini-cabinet{grid-template-columns:28px 1fr 1fr auto;align-items:center;gap:8px;padding:7px 0;display:grid}.mini-cabinet b{color:#fff;background:#a46937;place-items:center;height:25px;display:grid}.mini-cabinet span,.mini-cabinet small{font-size:11px}.mini-cabinet i{background:repeating-linear-gradient(90deg,#bd814a 0 14px,#8c592f 14px 17px);height:6px}.locker-heading{border-bottom:1px solid #d4ddd5;justify-content:space-between;align-items:end;gap:20px;min-height:88px;padding-bottom:14px;display:flex}.locker-heading h1{font-size:30px}.status-legend{gap:13px;margin:0;padding:0;font-size:10px;list-style:none;display:flex}.status-legend li:before{content:"";background:#80a886;border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.status-legend .reserved:before{background:#6ea6c4}.status-legend .review:before{background:#e0a13f}.status-legend .disabled:before{background:#9a9a91}.zone-switch{display:none}.cabinet-wall-grid{grid-template-columns:1.35fr 1.08fr .8fr;align-items:start;gap:18px;padding:38px 0 18px;display:grid}.cabinet-panel{min-width:0;position:relative}.cabinet-sign{z-index:2;text-align:center;white-space:nowrap;background:#d9954e;border:3px solid #794622;min-width:145px;padding:6px 12px;position:absolute;top:-25px;left:50%;transform:translate(-50%)rotate(-1deg);box-shadow:2px 3px #c8af87}.cabinet-sign strong{margin-right:6px;font-size:18px}.cabinet-sign span{font-size:9px}.cabinet-top{background:repeating-linear-gradient(3deg,#bd7940 0 8px,#a96734 9px 15px);border:2px solid #6e4228;height:13px;margin:0 -5px;box-shadow:0 3px #5e3923}.cabinet-frame{background:repeating-linear-gradient(87deg,#b8753d 0 13px,#9b5f31 14px 18px);border:3px solid #694027;padding:10px;box-shadow:inset 5px 0 #ce8c4c,inset -5px 0 #86502d,5px 7px #d8c5a2}.cabinet-grid{grid-template-columns:repeat(var(--cabinet-columns),1fr);grid-template-rows:repeat(var(--cabinet-rows),1fr);background:repeating-linear-gradient(2deg,#a76635 0 7px,#7d492b 8px 11px);gap:7px;min-height:330px;display:grid}.cabinet-slot{background:repeating-linear-gradient(92deg,#f0dfbd 0 20px,#ead5ad 21px 22px);border:0;border-radius:0;justify-content:center;align-items:flex-end;min-width:0;min-height:0;padding:18px 3px 20px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 8px 9px #502b163d}.cabinet-slot.has-item{cursor:pointer}.cabinet-slot.has-item:hover .slot-object,.cabinet-slot.has-item:focus-visible .slot-object{animation:.24s ease-out item-hop}.cabinet-slot:focus-visible{outline-offset:-3px;outline:3px solid #1b6c52}.slot-object{transform-origin:bottom;width:min(68%,72px);display:block}.slot-object svg{filter:drop-shadow(1px 3px 1px #41271833);width:100%;display:block}.slot-state{color:#66786e;background:#fff9e9;border-left:3px solid #75a27f;padding:2px 4px;font-size:7px;position:absolute;top:5px;left:5px}.state-available{border-color:#4b9b65}.state-reserved{border-color:#68a1bf}.state-review{border-color:#dda03e}.state-disabled{background:#e6e3db;border-color:#888}.state-empty{opacity:.52}.slot-label{color:#4e4034;background:#fffaf0;border:1px solid #cbb790;min-width:31px;padding:2px 4px;font:700 8px/1.1 Consolas,monospace;position:absolute;bottom:3px;left:50%;transform:translate(-50%)rotate(-1deg);box-shadow:1px 1px #a88a62}.slot-filler{background:#9c6338;box-shadow:inset 0 0 20px #4b291740}.cabinet-base{background:repeating-linear-gradient(4deg,#b9763e 0 9px,#92572e 10px 14px);border:2px solid #694027;height:15px;margin:0 -9px;box-shadow:5px 7px #d8c5a2}.cabinet-pager{color:#65756e;border:0;grid-template-columns:28px auto 1fr 28px;align-items:center;gap:8px;padding:12px 0 0;font-size:10px;display:grid}.cabinet-pager button{cursor:pointer;background:#fffdf7;border:1px solid #8ca097;height:26px}.cabinet-pager button:disabled{opacity:.35}.page-dots{justify-content:center;gap:4px;display:flex}.page-dots i{background:#d4d8d1;width:14px;height:3px}.page-dots i.active{background:#237158}.cabinet-note{color:#78867f;text-align:center;margin:4px 0 0;font-size:11px}@keyframes item-hop{50%{transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.cabinet-slot.has-item:hover .slot-object,.cabinet-slot.has-item:focus-visible .slot-object{animation:none}}.dialog-backdrop{z-index:20;background:#1a2e2685;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.demo-dialog{background:#fffaf0;border:3px solid #7b4b2c;width:min(430px,100%);padding:28px;position:relative;box-shadow:8px 9px #37291d38}.dialog-close{cursor:pointer;background:0 0;border:0;font-size:25px;position:absolute;top:8px;right:10px}.dialog-illustration{background:#e7f0dd;place-items:center;height:105px;font-size:58px;display:grid}.demo-dialog h2{margin:17px 0}.demo-dialog dl{border-top:1px solid #d7d5c8;grid-template-columns:1fr 1fr;margin:0;display:grid}.demo-dialog dl div{border-bottom:1px solid #d7d5c8;padding:9px 0}.demo-dialog dt{color:#7a837d;font-size:10px}.demo-dialog dd{margin:3px 0 0;font-size:13px;font-weight:700}.demo-dialog>p:not(.paper-kicker){color:#687770;font-size:12px;line-height:1.7}.primary-action{color:#727b76;background:#d9ddd5;border:0;width:100%;padding:10px}@media (width<=980px){.topbar{grid-template-columns:1fr auto}.health-badge{grid-area:1/2}nav{grid-area:2/1/auto/-1;justify-content:center;height:42px}.topbar{align-content:center;height:108px}.student-intro{grid-template-columns:1fr 1fr}.campus-scene{display:none}.teacher-workspace{grid-template-columns:1fr}.teacher-side{border-top:1px solid #ccd6cd;border-left:0;padding:22px 0 0}.item-strip{grid-template-columns:repeat(2,1fr)}.preview-item:nth-child(2){border-right:0}.cabinet-wall-grid{display:block}.zone-switch{border-bottom:1px solid #ccd6cd;margin-top:18px;display:flex}.zone-switch button{background:0 0;border:0;border-bottom:3px solid #0000;flex:1;padding:9px}.zone-switch button.active{border-color:#d48a42;font-weight:700}.cabinet-panel{max-width:620px;margin:32px auto 0;display:none}.cabinet-panel.mobile-active{display:block}}@media (width<=620px){.app-shell{width:calc(100% - 28px)}.brand small,.health-badge{display:none}.topbar{grid-template-columns:1fr;height:104px}.brand{justify-self:center}nav{justify-content:flex-start;gap:14px;overflow:auto}.student-intro{grid-template-columns:1fr 125px;min-height:135px}.points-board{width:120px}.student-actions{grid-template-columns:1fr}.student-actions button{border-bottom:1px solid #d7dfd6;border-right:0;min-height:72px}.item-strip{grid-template-columns:1fr}.preview-item{border-bottom:1px solid #cfd8d0;border-right:0}.teacher-heading{flex-direction:column;align-items:start}.teacher-summary{gap:10px;width:100%}.teacher-summary span{flex:1;min-width:0}.review-row{grid-template-columns:42px 1fr}.review-row dl,.review-row>button{grid-column:2}.review-row dl{justify-content:space-between}.locker-heading{flex-direction:column;align-items:start}.status-legend{flex-wrap:wrap}.cabinet-grid{min-height:315px}footer{flex-direction:column;gap:7px}.student-intro{grid-template-columns:minmax(0,1fr) 108px;gap:8px;overflow:visible}.student-copy{min-width:0}.student-copy h1{white-space:nowrap;font-size:28px}.student-copy p:last-child{font-size:12px;line-height:1.6}.points-board{width:104px;padding:10px 7px;transform:none;box-shadow:2px 3px #d7c19d}.points-board strong{font-size:30px}.section-heading{flex-direction:column;align-items:flex-start}.filter-row{flex-wrap:nowrap;width:100%;padding-bottom:3px;overflow-x:auto}.filter-row button{flex:none}.teacher-summary span{overflow-wrap:anywhere;flex:1 1 0}.teacher-summary small{line-height:1.35}}.auth-panel{border-bottom:1px solid #d7dfd6;grid-template-columns:minmax(220px,.8fr) minmax(0,1.4fr);align-items:end;gap:28px;padding:22px 0;display:grid}.auth-panel p{color:#667970;margin:0;font-size:13px;line-height:1.7}.auth-panel form{grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;display:grid}.auth-panel label,.reward-form label,.search-field{color:#586b62;gap:5px;font-size:11px;font-weight:700;display:grid}.auth-panel input,.reward-form input,.search-field input{color:#183f34;background:#fffdf7;border:1px solid #879d92;border-radius:2px;outline:none;width:100%;min-height:38px;padding:8px 10px}.auth-panel input:focus,.reward-form input:focus,.search-field input:focus{border-color:#176b50;box-shadow:0 0 0 2px #dcebdd}.real-action{color:#fff;cursor:pointer;background:#176b50;border:1px solid #155d47;border-radius:2px;min-height:38px;padding:8px 15px;font-weight:700}.real-action:disabled{cursor:not-allowed;background:#cdd4ce;border-color:#aab4ad}.compact-auth{grid-template-columns:1fr auto;align-items:center}.compact-auth button,.text-action{cursor:pointer;background:0 0;border:1px solid #789085;padding:7px 10px}.account-panel{border-bottom:1px solid #d7dfd6;padding:20px 0}.account-panel>header{justify-content:space-between;align-items:end;gap:16px;display:flex}.account-panel>header button{cursor:pointer;background:0 0;border:1px solid #9aa9a1;padding:6px 9px}.ledger-list{border-top:1px solid #d2dad3;border-bottom:1px solid #d2dad3;grid-template-columns:repeat(3,1fr);margin-top:12px;display:grid}.ledger-list article{border-right:1px solid #d2dad3;grid-template-columns:48px 1fr;align-items:center;gap:10px;min-height:68px;padding:10px 12px;display:grid}.ledger-list article:nth-child(3n){border-right:0}.ledger-list>p{color:#75857e;padding:10px;font-size:12px}.ledger-list article>span{background:#e5f0e5;border:2px solid #37765f;place-items:center;height:40px;font-weight:800;display:grid}.ledger-list article strong,.ledger-list article small{display:block}.ledger-list article small{color:#74837c;margin-top:4px;font-size:9px;line-height:1.5}.m2-workspace{grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr);gap:28px;padding-top:22px;display:grid}.student-admin{min-width:0}.search-field{margin:12px 0}.real-student-list{border-top:1px solid #ccd6cd}.real-student-list>button{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #dce2dc;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:11px 10px;display:flex}.real-student-list>button:hover,.real-student-list>button.active{background:#eef4e9}.real-student-list strong,.real-student-list small{display:block}.real-student-list small{color:#73837b;margin-top:3px;font-size:10px}.real-student-list b{white-space:nowrap;color:#176b50}.real-student-list>p{color:#75857e;padding:18px 8px;font-size:12px}.reward-form{background:#fff8e7;border:2px solid #d3b078;grid-template-columns:110px minmax(180px,1fr) auto;align-items:end;gap:10px;margin-top:16px;padding:16px;display:grid}.reward-form>p{grid-column:1/-1;margin:0;font-size:13px}.reward-form>small{color:#7c7467;grid-column:1/-1;font-size:9px}.m2-side{border-left:1px solid #ccd6cd;padding-left:24px}.csv-import>p:not(.section-kicker){color:#65776f;font-size:12px;line-height:1.7}.file-input{margin-top:8px;display:block}.csv-import>small{color:#78867f;margin:7px 0 12px;display:block}.csv-import .real-action{width:100%}.m2-side .mini-cabinets{border-top:1px solid #ccd6cd;margin-top:28px;padding-top:20px}.pending-review{border-top:3px double #ccd6cd;margin-top:26px;padding-top:18px}.teacher-login{margin-top:24px}.teacher-heading>.text-action{align-self:center}@media (width<=900px){.auth-panel,.m2-workspace{grid-template-columns:1fr}.auth-panel form{grid-template-columns:1fr 1fr auto}.m2-side{border-top:1px solid #ccd6cd;border-left:0;padding:22px 0 0}.ledger-list{grid-template-columns:repeat(2,1fr)}.ledger-list article:nth-child(3n){border-right:1px solid #d2dad3}.ledger-list article:nth-child(2n){border-right:0}}@media (width<=620px){.auth-panel{gap:14px}.auth-panel form,.compact-auth,.ledger-list{grid-template-columns:1fr}.ledger-list article,.ledger-list article:nth-child(3n){border-right:0}.reward-form{grid-template-columns:1fr}.reward-form>p,.reward-form>small{grid-column:1}.student-intro{grid-template-columns:1fr;min-height:135px;padding:18px 0 16px;display:grid}.points-board{justify-self:start;width:118px;margin-top:10px;position:static}.teacher-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.teacher-summary span{padding-left:7px}.teacher-summary small{font-size:8px}.teacher-summary span:last-child{grid-column:1/-1}}.status-legend .returned:before{background:#c96555}.state-returned{background:#fff0e7;border-color:#c96555}.dialog-photo{object-fit:contain;background:#eee9dc;border:1px solid #d4c8af;width:100%;height:180px;display:block}.donation-workspace{border-bottom:1px solid #d7dfd6;padding:26px 0;scroll-margin-top:12px}.donation-grid{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:28px;display:grid}.donation-form{background:#fff8e7;border:2px solid #b7834b;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;padding:18px;display:grid}.donation-form label,.review-controls label{color:#586b62;gap:5px;font-size:11px;font-weight:700;display:grid}.donation-form input,.donation-form select,.donation-form textarea,.review-controls input{color:#183f34;background:#fffdf7;border:1px solid #879d92;border-radius:2px;outline:none;width:100%;min-height:39px;padding:8px 10px}.donation-form textarea{resize:vertical;min-height:76px}.donation-form .wide-field{grid-column:1/-1}.photo-picker input{padding:6px}.photo-picker small{color:#6f7f77;font-weight:400;line-height:1.5}.rule-estimate{color:#755733;background:#fff2cf;border-left:3px solid #df9e40;margin:0;padding:9px 11px;font-size:11px;line-height:1.6}.donation-success{text-align:center;grid-column:1/-1;padding:14px}.donation-success strong{background:#e4ac65;border:4px solid #81502a;width:130px;margin:12px auto;padding:12px;font-size:28px;display:block}.donation-success p{color:#60736a;font-size:12px;line-height:1.7}.donation-records{min-width:0}.donation-records>h3{margin:0 0 10px}.donation-record{border-top:1px solid #d2dad3;grid-template-columns:90px 1fr;gap:12px;padding:12px 0;display:grid}.donation-record>img{object-fit:cover;background:#eee8d9;width:90px;height:80px}.donation-record strong,.donation-record small{display:block}.donation-record small{color:#6f7f77;margin-top:3px;font-size:10px}.donation-record p{color:#6d7a74;margin:5px 0;font-size:10px;line-height:1.5}.record-actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.record-actions button,.secondary-action{cursor:pointer;background:#fffdf7;border:1px solid #8a9b92;padding:6px 9px}.record-actions span{color:#38725d;font-size:10px;font-weight:700}.m3-review-section{border-bottom:3px double #ccd6cd;padding:24px 0}.m3-review-list{border-top:1px solid #ccd6cd}.m3-review-card{border-bottom:1px solid #d6ded7;grid-template-columns:130px minmax(250px,1fr) minmax(230px,.7fr);gap:18px;padding:16px 0;display:grid}.m3-review-card>img{object-fit:contain;background:#eee9dc;border:1px solid #d1c5ae;width:130px;height:120px}.review-info>strong,.review-info>small{display:block}.review-info>small{color:#6e7e76;margin-top:4px;font-size:10px}.review-info dl{gap:18px;margin:12px 0;display:flex}.review-info dt{color:#7b8882;font-size:9px}.review-info dd{margin:3px 0 0;font-size:11px;font-weight:700}.review-info p{color:#687770;margin:0;font-size:11px;line-height:1.5}.review-controls{grid-template-columns:1fr 1fr;align-content:start;gap:8px;display:grid}.review-controls label{grid-column:1/-1}.review-controls .real-action,.review-controls .secondary-action{min-height:38px}.returned-controls{grid-template-columns:1fr}.returned-controls p{color:#885647;font-size:11px}.empty-state{color:#75857e;padding:22px 4px;font-size:12px}.live-lockers{border-top:1px solid #ccd6cd;margin-top:28px;padding-top:20px}.free-counts{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.free-counts span{background:#edf3e9;align-items:center;gap:5px;padding:7px;font-size:10px;display:flex}.free-counts b{color:#fff;background:#a46937;place-items:center;width:22px;height:22px;display:grid}.locker-content-list{border-top:1px solid #d5ddd6;max-height:270px;margin-top:10px;overflow:auto}.locker-content-list>div{border-bottom:1px solid #e0e4df;grid-template-columns:42px 1fr;gap:8px;padding:8px 0;font-size:11px;display:grid}.locker-content-list>div>b{color:#a05f2d}.locker-content-list span,.locker-content-list small{display:block}.locker-content-list small{color:#78867f;margin-top:2px;font-size:9px}.locker-content-list>p{color:#78867f;font-size:11px}@media (width<=960px){.donation-grid{grid-template-columns:1fr}.m3-review-card{grid-template-columns:110px 1fr}.m3-review-card>img{width:110px;height:105px}.review-controls{grid-column:2}}@media (width<=620px){.donation-form{grid-template-columns:1fr}.donation-form .wide-field{grid-column:1}.donation-record{grid-template-columns:72px 1fr}.donation-record>img{width:72px;height:70px}.m3-review-card{grid-template-columns:78px 1fr;gap:10px}.m3-review-card>img{width:78px;height:78px}.review-controls{grid-column:1/-1}.review-info dl{grid-template-columns:1fr 1fr;gap:8px;display:grid}.m3-review-section .section-heading>span{line-height:1.5}}.dialog-redeem{width:100%}.redemption-confirm{background:#fff4d3;border:2px solid #b7834b;gap:8px;padding:12px;display:grid}.redemption-confirm p{color:#405d51;margin:0}.dialog-error{color:#a84438!important}.redemption-success{color:#244f3f;background:#e7f3df;border:3px solid #558466;gap:6px;padding:14px;display:grid}.redemption-success small{line-height:1.5}.redemption-history,.m4-admin-section{border-top:3px double #ccd6cd;padding:26px 0}.redemption-history>p,.m4-admin-section p{color:#687770;font-size:11px}.redemption-list{gap:8px;display:grid}.redemption-list article{background:#fffdf7;border:1px solid #ccd6cd;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.redemption-list img,.claim-row img{object-fit:contain;background:#eee9dc;width:78px;height:70px}.redemption-list strong,.redemption-list small,.redemption-list time,.claim-row strong,.claim-row small{display:block}.redemption-list small,.redemption-list time,.claim-row small{color:#6e7e76;margin-top:4px;font-size:10px}.issue-form{gap:5px;display:grid}.issue-form textarea{border:1px solid #879d92;border-radius:2px;min-height:58px;padding:7px}.m4-admin-grid{grid-template-columns:1fr 1fr;gap:28px;display:grid}.claim-row,.issue-row{border-top:1px solid #d2dad3;align-items:center;gap:10px;padding:9px 0;display:flex}.claim-row span,.issue-row span{flex:1;min-width:0}.issue-row p{margin:4px 0}.issue-row .real-action{white-space:nowrap}@media (width<=700px){.redemption-list article{grid-template-columns:64px 1fr}.redemption-list img{width:64px;height:60px}.redemption-list article>button,.issue-form{grid-column:1/-1}.m4-admin-grid{grid-template-columns:1fr}}.welcome-page{align-items:center;min-height:650px;padding:34px 0 70px;display:grid;position:relative}.welcome-hero{grid-template-columns:minmax(0,1.15fr) minmax(320px,.65fr);align-items:center;gap:9vw;display:grid}.welcome-copy{max-width:610px}.welcome-copy h1{letter-spacing:-.05em;color:#174b3b;font-size:clamp(42px,6vw,76px)}.welcome-copy>p:last-of-type{color:#60756b;max-width:520px;line-height:1.9}.welcome-sketch{color:#276a52;border-bottom:5px solid #8b5a32;align-items:end;gap:24px;height:115px;margin-top:30px;display:flex}.welcome-sketch span{font-size:64px}.welcome-sketch i{color:#d58a3e;font-size:42px;font-style:normal}.welcome-sketch b{color:#315d49;background:repeating-linear-gradient(5deg,#dfa660 0 7px,#e7b46f 8px 14px);border:8px solid #7d4d29;place-items:center;width:88px;height:80px;display:grid}.welcome-sketch em{font-size:48px;font-style:normal}.welcome-login{background:#fffaf0;border:3px solid #80502d;gap:14px;padding:28px 30px;display:grid;box-shadow:8px 9px #e0ceb0}.welcome-login h2{margin-bottom:5px}.welcome-login label{gap:6px;font-size:12px;font-weight:700;display:grid}.welcome-login input{background:#fffef9;border:1px solid #7e958a;border-radius:2px;min-height:44px;padding:10px 12px}.welcome-login small{color:#718078;line-height:1.6}.welcome-error{color:#a84438;margin:0;font-size:12px}.teacher-entry{color:#526a60;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #6e7f76;padding:7px 0;position:absolute;bottom:28px;right:0}.student-help-row{border-bottom:1px solid #d7dfd6;justify-content:flex-end;padding:9px 0;display:flex}.student-help-row button{color:#356e5b;cursor:pointer;background:0 0;border:0;font-size:12px}.tutorial-backdrop{z-index:30;background:#1a302894;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.tutorial-panel{background:#fffaf0;border:4px solid #754626;flex-direction:column;width:min(680px,100%);min-height:490px;padding:25px 30px;display:flex;box-shadow:10px 12px #281f1640}.tutorial-panel>header,.tutorial-panel>footer{justify-content:space-between;align-items:center;display:flex}.tutorial-panel>header{font-size:12px;font-weight:800}.tutorial-panel>header button,.tutorial-panel>footer>button:first-child{cursor:pointer;background:0 0;border:0;border-bottom:1px solid #78877f;padding:6px 0}.tutorial-progress{background:#d9dfd7;height:4px;margin:14px 0 22px}.tutorial-progress i{background:#dc9347;height:100%;transition:width .18s;display:block}.tutorial-content{text-align:center;flex:1;animation:.2s ease-out tutorial-in}.tutorial-art{letter-spacing:.12em;background:repeating-linear-gradient(3deg,#e7b573 0 7px,#dda565 8px 14px);border-top:7px solid #84522d;border-bottom:7px solid #84522d;place-items:center;min-height:155px;font-size:48px;display:grid}.tutorial-content .paper-kicker{margin-top:20px}.tutorial-content h2{outline:none;font-size:29px}.tutorial-copy{color:#5b7066;max-width:510px;margin:auto;line-height:1.9}.tutorial-copy strong{color:#245b48;margin-top:10px;display:block}.tutorial-panel>footer{margin-top:25px}.tutorial-panel>footer .real-action{min-width:120px}.onboarding-admin{border-top:3px double #ccd6cd;grid-template-columns:1fr auto auto;align-items:center;gap:18px;padding:18px 0;display:grid}.onboarding-admin h2,.onboarding-admin p{margin-bottom:4px}.onboarding-admin>strong{border-left:4px solid;padding:7px 10px}.tutorial-done{color:#2d7354;border-color:#3d8a64}.tutorial-pending{color:#9b612d;border-color:#d58a3e}.onboarding-admin>button{cursor:pointer;background:#fffdf7;border:1px solid #80958a;padding:8px 10px}.onboarding-admin>small{color:#718078;grid-column:1/-1}@keyframes tutorial-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.tutorial-content{animation:none}.tutorial-progress i{transition:none}}@media (width<=700px){.welcome-page{min-height:0;padding:10px 0 55px}.welcome-hero{grid-template-columns:1fr;gap:28px}.welcome-copy h1{font-size:42px}.welcome-sketch{gap:12px;height:78px}.welcome-sketch span{font-size:42px}.welcome-sketch i{font-size:28px}.welcome-sketch b{width:65px;height:58px}.welcome-sketch em{font-size:34px}.welcome-login{padding:22px 18px}.tutorial-panel{min-height:560px;padding:18px 16px}.tutorial-art{min-height:145px;font-size:32px}.tutorial-content h2{font-size:24px}.onboarding-admin{grid-template-columns:1fr auto}.onboarding-admin>button{grid-column:1/-1}.teacher-entry{bottom:15px}.topbar nav{gap:13px}}.ai-state{border-left:3px solid #8ca196;padding-left:8px}.ai-succeeded{border-color:#4b8b68}.ai-failed{border-color:#c16d54}.ai-review{background:#f1f4e9;border-left:4px solid #6c9478;grid-column:1/-1;padding:10px}.ai-review p,.ai-review small{color:#52685d;margin:4px 0;font-size:10px;line-height:1.5;display:block}.ai-review button{background:#fffdf7;border:1px solid #80958a;margin-top:5px;padding:5px 8px}.ai-admin-section{border-top:3px double #ccd6cd;border-bottom:1px solid #ccd6cd;margin:24px 0;padding:18px 0}.ai-admin-section>header{justify-content:space-between;align-items:center;display:flex}.ai-admin-section>header b{color:#8f5f43;border-left:4px solid #b27652;padding:5px 8px}.ai-admin-section>header b.configured{color:#327153;border-color:#4d8967}.ai-admin-section dl{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.ai-admin-section dl>div{border-bottom:1px solid #d9dfd8;padding:8px 0}.ai-admin-section dt{color:#718078;font-size:9px}.ai-admin-section dd{overflow-wrap:anywhere;margin:3px 0;font-size:11px}.ai-admin-section button{background:#fffdf7;border:1px solid #80958a;padding:7px 10px}.ai-admin-section small{color:#985643;margin:6px 0;display:block}.ai-assistant{z-index:24;justify-items:end;gap:8px;display:grid;position:fixed;bottom:20px;right:20px}.assistant-trigger{color:#214d3c;background:#f5e7bf;border:2px solid #315f4c;border-radius:2px;padding:11px 15px;font-weight:800;box-shadow:4px 4px #b6824d}.assistant-panel{background:#fffaf0;border:3px solid #76502e;flex-direction:column;width:min(370px,100vw - 28px);height:490px;display:flex;box-shadow:7px 8px #352d2038}.assistant-panel header{background:#efe6c7;border-bottom:4px solid #9a6a3c;justify-content:space-between;padding:12px 14px;display:flex}.assistant-panel header button{background:0 0;border:0;font-size:22px}.assistant-messages{flex:1;padding:12px;overflow:auto}.assistant-messages p{white-space:pre-wrap;max-width:88%;margin:7px 0;padding:8px 10px;font-size:11px;line-height:1.5}.assistant-messages .assistant{background:#edf4e8;border-left:3px solid #4f8269}.assistant-messages .user{background:#fff0cd;border-right:3px solid #c78845;margin-left:auto}.assistant-panel form{border-top:1px solid #d2d8d1;grid-template-columns:1fr auto;gap:6px;padding:10px;display:grid}.assistant-panel input{border:1px solid #80958a;min-width:0;padding:9px}.assistant-panel form button{color:#fff;background:#2d6951;border:0;padding:8px 12px}.assistant-panel>small{color:#76827c;padding:0 10px 10px}.slot-object img{object-fit:contain;filter:drop-shadow(0 4px 3px #432d1738);width:80%;height:80%}.cabinet-slot.has-item:hover .slot-object{animation:.42s item-hop}@media (prefers-reduced-motion:reduce){.cabinet-slot.has-item:hover .slot-object{animation:none}}@media (width<=700px){.ai-admin-section dl{grid-template-columns:1fr}.ai-assistant{bottom:10px;right:10px}.assistant-panel{height:min(560px,100vh - 100px)}.assistant-trigger{padding:9px 11px}}
