@import "https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Noto+Sans+SC:wght@400;500;600;700;800&display=swap";:root{--ink:#294236;--muted:#718276;--pine:#315f50;--sage:#e8f1df;--mint:#f4f8ef;--lav:#f0e8f7;--gold:#f5e5ad;--coral:#d86455;--line:#dce5d7;--white:#fffdfa;color:var(--ink);background:#f6f6f0;font-family:Noto Sans SC,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.loading{text-align:center;min-height:100vh;color:var(--pine);background:var(--mint) url(/assets/garden-watercolor-background.png) center/cover;place-content:center;gap:14px;font-weight:700;display:grid}.spin{margin:auto;animation:1.1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.public-shell{background:#f6f6f0;min-height:100svh;overflow:hidden}.public-hero{min-height:100svh;padding:max(34px,env(safe-area-inset-top)) max(7vw,28px) max(30px,env(safe-area-inset-bottom));background:linear-gradient(90deg,#fffdfae8 0%,#fffdfab8 48%,#fffdfa42 76%),#f3f7eb url(/assets/garden-watercolor-background.png) 50%/cover no-repeat}.public-hero-inner{flex-direction:column;width:min(1280px,100%);min-height:calc(100svh - 68px);margin:auto;display:flex}.public-message{width:min(760px,100%);margin:auto 0;padding:34px 0 56px}.public-message h1{color:#2f5844;margin:18px 0;font:clamp(58px,4.7vw,68px)/1.08 DM Serif Display,Noto Sans SC,serif}.public-message h1>span{display:block}.public-actions{justify-items:start;gap:9px;margin-top:26px;display:grid}.public-actions small{color:#718276;font-size:11px}.public-login{min-height:52px}.public-error{color:#954f49;margin-top:14px;font-size:12px}.brand,.wordmark{color:var(--pine);letter-spacing:.04em;align-items:center;gap:8px;font-size:14px;font-weight:800;display:flex}.brand svg,.wordmark svg{color:#91aa82}.year{color:#607767;background:#fffdfaaa;border:1px solid #e1e9dc;border-radius:999px;margin-top:58px;padding:7px 11px;font-size:12px;font-weight:700;display:inline-block}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.05em}.coral-button,.primary-action{color:#fff;background:var(--coral);border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:14px 19px;font-weight:800;text-decoration:none;transition:transform .16s,box-shadow .16s;display:inline-flex;box-shadow:0 10px 22px #d8645530}.coral-button:hover,.primary-action:hover{transform:translateY(-2px);box-shadow:0 13px 25px #d8645545}.public-login:focus-visible{outline-offset:4px;outline:3px solid #2f5844}.public-login:active{transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.public-login{transition:none}.public-login:hover,.public-login:active{transform:none}}.overline{color:#718c75;letter-spacing:.15em;text-transform:uppercase;font-size:11px;font-weight:800}.leaderboard{border:1px solid var(--line);background:#fffdfa;border-radius:22px;padding:16px;box-shadow:0 15px 34px #34523c0c}.branch-switch{border-bottom:1px solid #e6ece1;gap:6px;padding-bottom:13px;display:flex;overflow:auto}.branch-switch button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:9px;padding:8px 10px;font-size:12px;font-weight:700}.branch-switch button.selected{background:var(--sage);color:var(--pine)}.leaderboard ol{margin:4px 0 0;padding:0;list-style:none}.leaderboard li{border-bottom:1px solid #edf0e9;align-items:center;gap:12px;min-height:58px;display:flex}.leaderboard li:last-child{border-bottom:0}.rank{color:#648168;background:#edf3e8;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:grid}.rank-1{background:var(--gold);color:#7a5e1b}.rank-2{color:#6c6c6c;background:#e9e9e9}.rank-3{color:#875d42;background:#f0d9c0}.rank-person{flex:1;min-width:0}.rank-person b,.rank-person small{display:block}.rank-person b{overflow-wrap:anywhere;font-size:14px}.rank-person small{color:var(--muted);margin-top:3px;font-size:10px}.leaderboard li>div{text-align:right}.leaderboard strong{font:22px/1 DM Serif Display,serif;display:block}.leaderboard small{color:var(--muted);margin-top:3px;font-size:10px;display:block}.garden-shell{background:#f7f8f2 url(/assets/garden-watercolor-background.png) top/1300px no-repeat fixed;min-height:100vh;padding-bottom:86px}.garden-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdfad9;border-bottom:1px solid #e6ece1;justify-content:space-between;align-items:center;height:70px;padding:0 max(5vw,20px);display:flex}.wordmark{background:0 0;border:0;min-height:44px;padding:0}.wordmark b{color:var(--coral)}.header-actions{align-items:center;gap:9px;display:flex}.branch-label{color:var(--pine);background:var(--sage);border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800}.icon-button{color:#557360;border:1px solid var(--line);background:#fff;border-radius:10px;place-items:center;width:44px;height:44px;display:grid}.garden-content{max-width:1030px;margin:auto;padding:52px max(5vw,20px)}.welcome{justify-content:space-between;align-items:start;max-width:680px;display:flex}.welcome h1,.form-panel h1,.review-panel h1,.section-heading h1{margin:8px 0;font:clamp(34px,4vw,52px)/1.08 DM Serif Display,Noto Sans SC,serif}.welcome em,.form-panel em,.review-panel em,.section-heading em{color:#738e7a;font-style:italic}.avatar{background:var(--sage);width:46px;height:46px;color:var(--pine);border-radius:50%;place-items:center;font-weight:800;display:grid}.avatar.mini{flex:none;width:32px;height:32px;font-size:12px}.balance-grid{grid-template-columns:1.15fr .85fr;gap:12px;max-width:610px;margin:24px 0 42px;display:grid}.balance{border-radius:20px;flex-direction:column;min-height:112px;padding:19px;display:flex}.balance span{align-items:center;gap:7px;font-size:11px;font-weight:700;display:flex}.balance span svg{width:15px}.balance strong{letter-spacing:-.05em;margin:13px 0 0;font:46px/1 DM Serif Display,serif}.balance.normal{color:#fff;background:var(--pine)}.balance.aplus{color:#634c19;background:var(--gold)}.form-panel h1.teacher-copy-title{margin-top:0}.section-heading h1.teacher-copy-title{margin:0}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px;display:flex}.section-heading h2{margin:8px 0 0;font:31px/1.1 DM Serif Display,serif}.text-button{color:#547a60;background:0 0;border:0;align-items:center;gap:1px;padding:8px 0;font-size:12px;font-weight:800;display:flex}.gift-count{color:#6e8174;font-size:12px}.gift-strip{grid-template-columns:repeat(3,1fr);gap:13px;display:grid}.gift-card{border:1px solid var(--line);background:#fffdfa;border-radius:19px;overflow:hidden;box-shadow:0 12px 24px #36523e0a}.gift-art{color:#799d72;background:#edf3e8;place-items:center;height:142px;display:grid;position:relative;overflow:hidden}.gift-art img{object-fit:cover;width:100%;height:100%}.gift-art span{color:#52765c;background:#fffdfae6;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:800;position:absolute;top:9px;left:9px}.gift-body{padding:14px}.gift-body h3{margin-bottom:5px;font-size:15px}.gift-body p{min-height:36px;color:var(--muted);margin-bottom:12px;font-size:11px;line-height:1.6}.gift-body>div{flex-direction:column;gap:3px;display:flex}.gift-body b{color:var(--pine);font-size:12px}.gift-body small{color:var(--muted);font-size:10px}.gift-body .gift-open-status{color:#4d8558;font-weight:800}.gift-body button{width:100%;color:var(--pine);background:#f7fbf4;border:1px solid #bfd0bd;border-radius:10px;margin-top:14px;padding:9px;font-size:12px;font-weight:800}.compact .gift-art{height:93px}.compact .gift-body{padding:11px}.compact .gift-body h3{font-size:13px}.compact .gift-body p{display:none}.distance-card{background:#edf5e7;border:1px solid #d9e7d4;border-radius:17px;align-items:center;gap:12px;max-width:710px;margin:22px 0 14px;padding:15px;display:flex}.distance-icon{color:#567b5b;background:#dcebd6;border-radius:12px;flex:none;place-items:center;width:39px;height:39px;display:grid}.distance-card div{flex:1}.distance-card b,.distance-card small{display:block}.distance-card b{font-size:12px}.distance-card small{color:var(--muted);margin-top:3px;font-size:10px}.distance-card button{color:#567a5d;background:0 0;border:0;align-items:center;font-size:12px;font-weight:800;display:flex}.primary-action{width:100%;max-width:710px;margin:0 0 20px}.garden-progress{border:1px solid var(--line);background:#fffdfad9;border-radius:16px;max-width:710px;padding:15px}.garden-progress>div:first-child{align-items:center;gap:10px;display:flex}.garden-progress svg{color:#719576}.garden-progress b,.garden-progress small{display:block}.garden-progress b{font-size:12px}.garden-progress small{color:var(--muted);margin-top:3px;font-size:10px}.progress-track{background:#e5ede0;border-radius:999px;height:6px;margin-top:14px;overflow:hidden}.progress-track i{border-radius:inherit;background:#7ca37c;height:100%;display:block}.bottom-nav{z-index:4;border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdfaf2;border-bottom:0;border-radius:18px 18px 0 0;justify-content:space-around;width:min(720px,100% - 24px);padding:9px 8px 11px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -8px 26px #27463310}.bottom-nav button{color:#859087;background:0 0;border:0;place-items:center;gap:2px;min-width:50px;min-height:44px;font-size:9px;display:grid}.bottom-nav svg{width:18px}.bottom-nav .nav-active{color:var(--pine);font-weight:800}.bottom-nav .nav-active svg{stroke-width:2.7px}.form-panel,.review-panel,.wide-panel{border:1px solid var(--line);background:#fffdfae6;border-radius:24px;max-width:720px;padding:clamp(21px,4vw,39px);box-shadow:0 18px 40px #334c3b0b}.form-panel form{gap:15px;margin-top:24px;display:grid}.form-panel label{color:#50665a;gap:7px;font-size:12px;font-weight:800;display:grid}.form-panel input,.form-panel select,.form-panel textarea,.review-controls input,.review-controls select{width:100%;color:var(--ink);background:#fff;border:1px solid #dce6d8;border-radius:11px;outline:none;padding:11px 12px;font-size:13px}.form-panel input:focus,.form-panel select:focus,.form-panel textarea:focus{border-color:#7eaa82;box-shadow:0 0 0 3px #dcebd8}.form-panel textarea{resize:vertical;min-height:104px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-panel .check{align-items:center;gap:8px;display:flex}.form-panel .check input{width:auto}.form-panel .primary-action{margin:4px 0 0}.gift-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.hq-home{gap:44px;width:100%;max-width:1030px;margin:0 auto;display:grid}.hq-home-section{gap:18px;display:grid}.hq-home-section .section-heading{margin:0}.hq-gift-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hq-empty{border:1px solid var(--line);background:#fffdfae6;border-radius:18px;padding:24px}.history-list{margin-top:25px}.history-list article{border-bottom:1px solid #e9eee7;align-items:center;gap:11px;padding:13px 0;display:flex}.activity-icon{color:#5e8b64;background:#e5f0df;border-radius:11px;place-items:center;width:35px;height:35px;display:grid}.activity-icon.gift{color:#826c9a;background:#f2e9f8}.activity-icon svg{width:17px}.history-list article>div{flex:1}.history-list b,.history-list small{display:block}.history-list b{font-size:12px}.history-list small{color:var(--muted);margin-top:3px;font-size:10px}.history-list aside{text-align:right}.status{color:#777;font-size:10px;font-style:normal;display:block}.status.approved,.status.collected{color:#4d8558}.status.pending{color:#a4792e}.status.rejected,.status.void{color:#b45c55}.review-panel{max-width:820px}.review-panel h2{margin:31px 0 12px;font:26px DM Serif Display,serif}.review-card{background:#fff;border:1px solid #dfe8da;border-radius:16px;margin:10px 0;padding:15px}.review-card header{align-items:center;gap:9px;display:flex}.review-card header>div{flex:1}.review-card b,.review-card small{display:block}.review-card b{font-size:13px}.review-card small{color:var(--muted);margin-top:3px;font-size:10px}.review-card header em{color:#637d69;font-size:10px;font-style:normal}.review-card p{color:#617168;margin:13px 0;font-size:12px;line-height:1.6}.review-card p strong{color:var(--ink)}.review-note{resize:vertical;width:100%;min-height:58px;color:var(--ink);background:#fff;border:1px solid #dce6d8;border-radius:11px;outline:none;margin:0 0 10px;padding:9px 11px;font-size:12px}.review-note:focus{border-color:#7eaa82;box-shadow:0 0 0 3px #dcebd8}.review-controls{flex-wrap:wrap;gap:8px;display:flex}.review-controls input,.review-controls select{flex:1;min-width:120px;padding:8px 9px}.review-controls button{color:#fff;border:0;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:800}.review-controls input,.review-controls select,.review-controls button{min-height:44px}.approved-gift-cost{min-width:160px;color:var(--pine);background:#f4f8ef;border:1px solid #dce6d8;border-radius:11px;flex:1;align-items:center;padding:8px 11px;font-size:12px;display:flex}.approve{background:#507d5b}.reject{background:#bc665d}.manage-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.manage-grid .form-panel{padding:25px}.manage-grid h2{margin:8px 0;font:28px DM Serif Display,serif}.empty{color:var(--muted);padding:18px 0!important;font-size:13px!important}.notice{border-radius:12px;max-width:1030px;margin:12px auto 0;padding:10px 15px;font-size:12px;font-weight:700}.notice.success{color:#416e4a;background:#e4f0e1}.notice.error{color:#954f49;background:#f9e4e1}@media (width<=600px){.public-hero{padding:24px 24px max(22px,env(safe-area-inset-bottom));background:linear-gradient(#fffdfab8 0%,#fffdfae3 42%,#fffdfa8f 70%,#fffdfa52 100%),#f3f7eb url(/assets/garden-watercolor-background.png) 46%/auto 100% no-repeat}.public-hero-inner{min-height:calc(100svh - 46px)}.public-message{margin:clamp(70px,28svh - 157px,90px) 0 0;padding:0}.public-message h1{font-size:38px;line-height:1.12}.public-slogan-final{max-width:9em}.public-actions{width:100%}.public-login{box-sizing:border-box;width:100%;min-height:52px}}@media (width>=601px) and (width<=1024px){.public-hero{padding:46px 8vw}.public-hero-inner{min-height:calc(100svh - 92px)}.public-message{width:min(620px,82vw)}.public-message h1{font-size:clamp(54px,7vw,58px)}.public-login{width:320px}}@media (width>=1025px) and (height<=950px){.garden-content{padding-top:24px}.balance-grid{margin-bottom:24px}.welcome~.section-heading{margin-bottom:12px}.home-actions{grid-template-columns:minmax(0,1fr) 300px;align-items:stretch;gap:16px;max-width:886px;margin-top:22px;display:grid}.home-action-stack{align-content:start;gap:14px;display:grid}.home-actions .distance-card,.home-actions .primary-action{width:100%;max-width:none;margin:0}.home-actions .garden-progress{flex-direction:column;justify-content:center;max-width:none;display:flex}}@media (width<=720px){.garden-content{padding-top:35px}.gift-strip{margin-right:-20px;padding-right:20px;display:flex;overflow:auto}.gift-strip .gift-card{min-width:170px}.gift-grid{grid-template-columns:1fr}.balance-grid{margin-bottom:32px}.welcome h1{font-size:39px}.header-actions .branch-label{display:none}.manage-grid{grid-template-columns:1fr}.bottom-nav{border-radius:0;width:100%}.review-controls button{flex:1}.form-row{grid-template-columns:1fr}}.supervisor-workspace{width:min(1030px,100%);margin:auto}.workspace-title h1{margin:8px 0 24px;font:clamp(38px,5vw,58px)/1.05 DM Serif Display,Noto Sans SC,serif}.workspace-title em{color:#738e7a;font-style:italic}.workspace-tabs{scrollbar-width:thin;gap:8px;margin-bottom:18px;padding:4px 2px 16px;display:flex;overflow-x:auto}.workspace-tabs button,.report-filters button,.gift-management-row button{border:1px solid var(--line);min-height:44px;color:var(--pine);white-space:nowrap;background:#fffdfa;border-radius:12px;padding:9px 14px;font-size:12px;font-weight:800}.workspace-tabs button[aria-current=page]{color:#fff;background:var(--pine);border-color:var(--pine)}.workspace-tabs button:focus-visible,.report-filters button:focus-visible,.gift-management-row button:focus-visible,.workspace-form input:focus-visible,.workspace-form select:focus-visible,.workspace-form textarea:focus-visible{outline-offset:2px;outline:3px solid #94b893}.workspace-stack{gap:14px;display:grid}.workspace-heading{margin-top:8px}.workspace-heading h2,.workspace-card h2,.workspace-grid>div>h2{margin:6px 0 0;font:29px/1.15 DM Serif Display,Noto Sans SC,serif}.workspace-card{border:1px solid var(--line);background:#fffdfae8;border-radius:18px;min-width:0;padding:20px;box-shadow:0 13px 30px #334c3b0a}.workspace-card header{justify-content:space-between;align-items:start;gap:14px;display:flex}.workspace-card header b,.workspace-card header small{display:block}.workspace-card header small{color:var(--muted);margin-top:4px;font-size:11px}.workspace-card header em{color:#637d69;font-size:11px;font-style:normal}.workspace-form,.direct-grant-card form{gap:14px;display:grid}.workspace-form header,.direct-grant-card header{margin-bottom:18px}.workspace-form label,.direct-grant-card label,.report-filters label{color:#50665a;gap:6px;font-size:12px;font-weight:800;display:grid}.workspace-form input,.workspace-form select,.workspace-form textarea,.direct-grant-card input,.direct-grant-card select,.direct-grant-card textarea,.report-filters input,.report-filters select{width:100%;min-height:44px;color:var(--ink);background:#fff;border:1px solid #dce6d8;border-radius:11px;padding:10px 12px}.workspace-form textarea,.direct-grant-card textarea{resize:vertical;min-height:92px}.workspace-form .check{align-items:center;gap:8px;min-height:44px;display:flex}.workspace-form .check input{flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:0;padding:0}.workspace-form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.workspace-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:18px;display:grid}.report-filters{border:1px solid var(--line);background:#fffdfac7;border-radius:16px;grid-template-columns:auto 1fr 1fr 1fr auto;align-items:end;gap:10px;padding:16px;display:grid}.report-filters.has-reviewer{grid-template-columns:auto repeat(4,minmax(0,1fr)) auto}.filter-presets{gap:6px;display:flex}.report-filters .apply-filter{color:#fff;background:var(--pine);border-color:var(--pine)}.stats-summary{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.metric-card{border:1px solid var(--line);background:#fffdfa;border-radius:17px;padding:17px}.metric-card small,.metric-card strong{display:block}.metric-card small{color:var(--muted);font-size:11px}.metric-card strong{margin-top:8px;font:34px/1 DM Serif Display,serif}.manager-table-wrap{border:1px solid var(--line);background:#fffdfa;border-radius:17px;overflow-x:auto}.manager-table{border-collapse:collapse;width:100%}.manager-table th,.manager-table td{text-align:left;border-bottom:1px solid #e7ede3;padding:14px;font-size:12px}.manager-table thead th{color:#6c7e72;letter-spacing:.04em;background:#f0f5eb;font-size:10px}.manager-table tbody tr:last-child th,.manager-table tbody tr:last-child td{border-bottom:0}.dispatch-list{gap:10px;display:grid}.dispatch-list p{color:var(--muted);margin:10px 0;font-size:12px}.dispatch-list footer{color:#59705f;justify-content:space-between;gap:12px;font-size:11px;display:flex}.gift-management-row{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.gift-management-content{flex:1;min-width:0}.gift-management-row b,.gift-management-row small{display:block}.gift-management-row small{color:var(--muted);margin-top:4px;font-size:10px}.gift-editor{margin-top:12px}.gift-editor summary{color:#55705f;cursor:pointer;align-items:center;width:max-content;min-height:44px;font-size:12px;font-weight:800;display:flex}.gift-editor .workspace-form{padding-top:10px}@media (width>=601px) and (width<=1024px){.hq-gift-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-filters,.report-filters.has-reviewer{grid-template-columns:repeat(3,1fr)}.filter-presets{grid-column:1/-1}.report-filters .apply-filter{width:100%}.workspace-grid{grid-template-columns:1fr}}@media (width<=600px){.garden-content{max-width:100%;padding-left:16px;padding-right:16px;overflow-x:hidden}.hq-home{gap:32px}.hq-gift-grid{grid-template-columns:1fr}.leaderboard li{align-items:center;min-height:64px}.workspace-title h1{font-size:40px}.workspace-tabs{margin-left:-2px;margin-right:-2px}.workspace-card{padding:16px}.workspace-form-row,.workspace-grid{grid-template-columns:1fr}.report-filters,.report-filters.has-reviewer{grid-template-columns:1fr 1fr}.report-filters.has-reviewer label:nth-of-type(3),.filter-presets,.report-filters label:last-of-type,.report-filters .apply-filter{grid-column:1/-1}.stats-summary{gap:7px}.metric-card{padding:12px 9px}.metric-card small{min-height:28px}.metric-card strong{font-size:27px}.manager-table-wrap{background:0 0;border:0;overflow:visible}.manager-table,.manager-table tbody,.manager-table tr,.manager-table th,.manager-table td{width:100%;display:block}.manager-table thead{display:none}.manager-table tr{border:1px solid var(--line);background:#fffdfa;border-radius:16px;margin-bottom:10px;padding:15px}.manager-table th,.manager-table td{border:0;padding:4px 0}.manager-table td{justify-content:space-between;gap:12px;display:flex}.manager-table td:before{content:attr(data-label);color:var(--muted)}.dispatch-list footer,.gift-management-row{flex-direction:column;align-items:flex-start}.gift-management-row button{width:100%}}
