@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";:root{--bg-app:#eff2f0;--ink:#101614;--ink-muted:#667069;--ink-faint:#98a19c;--green:#0e7b55;--green-dark:#0b6144;--green-bright:#3ecf8e;--green-deep:#0b2f22;--chip-bg:#f1f4f2;--chip-fg:#3f4844;--chip-green-bg:#e7f4ee;--chip-green-fg:#0b6144;--soft:#f7f9f8;--soft-2:#f4f7f5;--border:#f1f4f2;--border-2:#e4eae7;--border-dashed:#dce3df;--danger-bg:#fbece9;--danger-fg:#a33320;--danger-strong:#c8412c;--warning-bg:#fdf6ec;--warning-fg:#8a5b08;--warning-strong:#c4820e}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg-app);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Manrope,system-ui,sans-serif;overflow-x:hidden}a{color:var(--green);text-decoration:none}a:hover{color:var(--green-dark)}input,select,button{font-family:inherit}button{cursor:pointer;background:0 0;border:none}h1,h2,h3,p{margin:0}@keyframes riseIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes popIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.shell{align-items:flex-start;gap:14px;min-height:100vh;padding:14px;display:flex}.sidebar{background:var(--green-deep);color:#fff;border-radius:22px;flex-direction:column;flex:none;width:238px;padding:24px 16px;display:flex;position:sticky;top:14px}.sidebar-brand{align-items:center;gap:10px;padding:4px 8px 26px;display:flex}.sidebar-brand-mark{background:var(--green-bright);width:28px;height:28px;color:var(--green-deep);border-radius:10px;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:800;display:flex}.sidebar-brand-name{letter-spacing:-.02em;font-size:16px;font-weight:700}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.nav-item{cursor:pointer;color:#a9c8bc;text-align:left;background:0 0;border-radius:12px;width:100%;padding:11px 14px;font-size:13.5px;font-weight:500;display:block}.nav-item:hover{background:#ffffff14}.nav-item.active{color:#fff;background:#ffffff1f;font-weight:700}.sidebar-achievement{background:#ffffff14;border-radius:16px;margin-bottom:16px;padding:16px}.sidebar-achievement-tag{color:#8fbfab;margin-bottom:6px;font-size:12px;font-weight:600}.sidebar-achievement-title{font-size:13.5px;font-weight:700;line-height:1.4}.sidebar-user{border-top:1px solid #ffffff1f;align-items:center;gap:10px;padding-top:14px;display:flex}.sidebar-user-avatar{background:var(--green-bright);width:34px;height:34px;color:var(--green-deep);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.sidebar-user-name{font-size:13px;font-weight:700}.sidebar-user-sub{color:#8fbfab;cursor:pointer;background:0 0;padding:0;font-size:11px}.sidebar-user-sub:hover{color:#fff}.main{flex-direction:column;flex:1;gap:14px;min-width:0;display:flex}.page{flex-direction:column;gap:14px;animation:.35s both riseIn;display:flex}.mobile-header{z-index:20;box-shadow:0 1px 0 var(--border);background:#fff;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:none;position:sticky;top:0}.mobile-header-btn{background:var(--chip-bg);border-radius:12px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.mobile-header-title{letter-spacing:-.01em;font-size:16px;font-weight:800}.mobile-header-dot{background:var(--danger-strong);border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:5px;right:5px}@keyframes drawerIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.mobile-drawer-overlay{z-index:60;background:#0822196b;display:flex;position:fixed;inset:0}.mobile-drawer{background:var(--green-deep);color:#fff;flex-direction:column;width:260px;max-width:82vw;height:100%;padding:20px 16px;animation:.22s both drawerIn;display:flex;overflow-y:auto}.card{background:#fff;border-radius:22px;padding:26px 28px}.card-tight{background:#fff;border-radius:18px;padding:20px 22px}.card-soft{background:var(--soft);border-radius:16px;padding:18px}.grid{gap:14px;display:grid}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.grid-2-14{grid-template-columns:1.4fr 1fr}.grid-2{grid-template-columns:1fr 1fr}.grid-auto-170{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.grid-auto-180{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.grid-auto-230{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.grid-auto-260{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid-auto-280{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}@media (width<=900px){.grid-2-14,.grid-2{grid-template-columns:1fr}}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:18px;display:flex}.section-head h2{letter-spacing:-.01em;font-size:17px;font-weight:800}.link-action{color:var(--green);cursor:pointer;background:0 0;padding:0;font-size:13px;font-weight:700}.link-action:hover{color:var(--green-dark)}.btn{cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;font-weight:700;display:inline-flex}.btn-primary{background:var(--green);color:#fff;padding:11px 20px;font-size:13.5px}.btn-primary:hover{background:var(--green-dark)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-dark{background:var(--green-deep);color:#fff;padding:10px 18px;font-size:13px}.btn-dark:hover{background:var(--green)}.btn-ghost{background:var(--chip-bg);color:var(--chip-fg);padding:10px 18px;font-size:13px}.btn-ghost:hover{background:var(--chip-green-bg);color:var(--chip-green-fg)}.btn-danger{background:var(--danger-bg);color:var(--danger-fg);padding:11px 18px;font-size:13px}.btn-danger:hover{background:#f6dcd6}.chip{cursor:pointer;background:var(--chip-bg);color:var(--chip-fg);border-radius:999px;align-items:center;gap:7px;padding:8px 15px;font-size:12.5px;font-weight:700;display:inline-flex}.chip:hover{opacity:.85}.chip.active{background:var(--green-deep);color:#fff}.chip-sm{padding:7px 14px;font-size:12.5px}.chip-clear{color:var(--green);background:0 0;padding:8px 15px;font-size:12.5px;font-weight:700}.chip-clear:hover{color:var(--green-dark)}.badge{border-radius:8px;align-items:center;gap:6px;padding:4px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.badge-green{background:var(--chip-green-bg);color:var(--chip-green-fg)}.badge-neutral{background:var(--chip-bg);color:var(--chip-fg)}.progress-track{background:var(--border);border-radius:6px;height:9px;overflow:hidden}.progress-fill{background:var(--green);border-radius:6px;height:100%;transition:width .3s}.icon-tile{background:var(--soft-2);border-radius:13px;flex:none;justify-content:center;align-items:center;display:flex}.empty-state{text-align:center;padding:60px 20px}.empty-state-icon{background:var(--chip-bg);border-radius:20px;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 18px;font-size:26px;display:flex}.empty-state h3{margin:0 0 8px;font-size:18px;font-weight:800}.empty-state p{color:var(--ink-muted);max-width:34ch;margin:0 auto 20px;font-size:14px}.modal-overlay{z-index:40;background:#0822196b;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:26px;width:100%;max-width:480px;max-height:90vh;padding:28px 30px;animation:.25s both popIn;overflow-y:auto}.modal-card--sm{max-width:440px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.modal-head h2{letter-spacing:-.02em;font-size:21px;font-weight:800}.modal-close{background:var(--chip-bg);width:32px;height:32px;color:var(--ink-muted);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:800;display:flex}.modal-close:hover{background:var(--danger-bg);color:var(--danger-fg)}.field-label{color:var(--ink-muted);margin-bottom:7px;font-size:12px;font-weight:700}.field-input{background:var(--soft);border:2px solid var(--soft);width:100%;color:var(--ink);border-radius:14px;outline:none;padding:13px 15px;font-size:14.5px;font-weight:600}.field-input:focus{border-color:var(--green);background:#fff}.field-static{background:var(--soft);border-radius:14px;padding:13px 15px;font-size:14.5px;font-weight:600}.tabs-pill{background:var(--chip-bg);border-radius:999px;padding:4px;display:flex}.tabs-pill-item{text-align:center;cursor:pointer;color:var(--ink-muted);background:0 0;border-radius:999px;flex:1;padding:11px;font-size:14px;font-weight:800}.tabs-pill-item.active{color:var(--ink);background:#fff}.toast{background:var(--green-deep);color:#fff;z-index:50;border-radius:999px;align-items:center;gap:12px;padding:15px 24px;font-size:14px;font-weight:700;animation:.28s both toastIn;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #08221947}.toast-check{background:var(--green-bright);width:22px;height:22px;color:var(--green-deep);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.bottom-nav{z-index:30;background:#fff;border-radius:24px;justify-content:space-between;align-items:flex-end;padding:12px 18px 16px;display:none;position:fixed;bottom:12px;left:12px;right:12px;box-shadow:0 -6px 18px #0b2f221f}.bottom-nav-item{text-align:center;color:var(--ink-faint);cursor:pointer;background:0 0;padding:0}.bottom-nav-item.active{color:var(--green)}.bottom-nav-item-icon{font-size:17px}.bottom-nav-item-label{font-size:10.5px;font-weight:700}.bottom-nav-add{background:var(--green);color:#fff;cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;width:54px;height:54px;margin-bottom:6px;font-size:26px;font-weight:700;display:flex;box-shadow:0 6px 16px #0e7b5559}@media (width<=860px){.shell{flex-direction:column;gap:0;padding:0}.sidebar{display:none}.main{gap:12px;padding:14px 14px 96px}.mobile-header,.bottom-nav{display:flex}.grid-auto-170,.grid-auto-180,.grid-auto-230,.grid-auto-260,.grid-auto-280,.grid-stats{grid-template-columns:1fr 1fr}}@media (width<=520px){.grid-auto-170,.grid-auto-180,.grid-auto-230,.grid-auto-260,.grid-auto-280,.grid-stats{grid-template-columns:1fr}.card,.modal-card{padding:20px}}
