@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Bricolage Grotesque Fallback;src:local("Arial");ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.00%;size-adjust:105.43%}.__className_ac3583{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.__variable_ac3583{--font-bricolage:"Bricolage Grotesque","Bricolage Grotesque Fallback"}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans Fallback;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_014e29{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_014e29{--font-jakarta:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}:root{--bg:#F3F5F1;--card:#FFFFFF;--ink:#18211D;--muted:#5B6660;--line:#E2E7E2;--line-soft:#EDF0EC;--input-line:#CBD3CD;--green:#2E6B50;--green-dark:#1F4A37;--green-soft:#E3EFE8;--blue:#1E4673;--blue-mid:#2D5F9A;--blue-soft:#E3ECF6;--amber-ink:#8A4B0F;--amber-soft:#FBEBD3;--red:#9B3328;--red-bar:#C04A3D;--red-soft:#F8E3E0;--radius:18px;--font-display:var(--font-bricolage),"Segoe UI",system-ui,sans-serif;--font-body:var(--font-jakarta),"Segoe UI",system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--green)}a:hover{color:var(--green-dark)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid #7FB79A;outline-offset:2px}h1,h2,h3{margin:0}.shell{display:flex;min-height:100dvh}.sidebar{display:none}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.page{padding:8px 20px 120px;flex-direction:column;gap:14px}.page,.page-head{width:100%;max-width:760px;margin:0 auto;display:flex}.page-head{align-items:center;justify-content:space-between;gap:12px;padding:20px 20px 8px}.page-head .sub{font-size:13px;color:var(--muted);font-weight:500}.page-head h1{font-family:var(--font-display);font-size:26px;line-height:1.15}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--card);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:2px;gap:2px;padding:6px 4px calc(10px + env(safe-area-inset-bottom))}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:12px;min-height:52px;font-size:11px;font-weight:700;color:var(--muted);text-decoration:none}.tab:hover{color:var(--ink)}.tab.active{background:var(--green-soft);color:var(--green-dark)}.fab{position:fixed;right:20px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:21;width:56px;height:56px;border-radius:28px;border:none;background:var(--ink);color:#fff;font-size:28px;line-height:1;box-shadow:0 6px 16px rgba(24,33,29,.25)}@media (min-width:900px){.tabbar{display:none}.sidebar{display:flex;flex-direction:column;gap:4px;width:236px;flex:none;padding:24px 14px;background:var(--card);border-right:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;height:100dvh}.sidebar .brand{gap:10px;font-family:var(--font-display);font-size:20px;font-weight:700;padding:0 8px 18px}.side-link,.sidebar .brand{display:flex;align-items:center}.side-link{gap:12px;padding:11px 12px;border-radius:12px;font-weight:600;font-size:15px;color:var(--muted);text-decoration:none}.side-link:hover{color:var(--ink);background:var(--bg)}.side-link.active{background:var(--green-soft);color:var(--green-dark)}.fab{bottom:28px;right:28px}.page{padding-bottom:60px}}.card{background:var(--card);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:10px}.card.tight{padding:4px 14px;gap:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.card-head h2{font-size:16px;font-weight:700}.hero{border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:10px;color:#fff}.hero.green{background:var(--green)}.hero.blue{background:var(--blue)}.hero .label{font-size:13px;font-weight:600;opacity:.85}.hero .big{font-size:32px;line-height:1.1}.hero .big,.hero .title{font-family:var(--font-display);font-weight:700}.hero .title{font-size:22px;line-height:1.2}.hero-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.hero-tile{background:rgba(0,0,0,.14);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.hero-tile span:first-child{font-size:12px;opacity:.85}.hero-tile span:last-child{font-size:16px;font-weight:700}.hero .bar{background:rgba(255,255,255,.25)}.hero .bar-fill{background:#fff}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.stat{background:var(--card);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px;min-width:0}.stat .k{font-size:12px;color:var(--muted);font-weight:600}.stat .v{font-size:15px;font-weight:700;overflow-wrap:anywhere}.stat .s{font-size:12px;color:var(--muted)}.pos{color:#1F5A3F}.neg{color:var(--red)}.row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line-soft);min-height:48px}.card .row.first,.card.tight .row:first-child{border-top:none}.row .grow{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.row .t{font-size:15px;font-weight:600;overflow-wrap:anywhere}.row .d{font-size:13px;color:var(--muted)}.row.button{width:100%;background:transparent;border-left:none;border-right:none;border-bottom:none;text-align:left;padding-left:0;padding-right:0}.strike{text-decoration:line-through;color:var(--muted)}.dot{width:10px;height:10px;border-radius:5px;flex:none}.muted{color:var(--muted)}.small{font-size:13px}.empty{text-align:center;color:var(--muted);font-size:15px;padding:18px 0}.bar{height:8px;background:var(--line-soft);overflow:hidden}.bar,.bar-fill{border-radius:4px}.bar-fill{height:100%;background:var(--green)}.bar-fill.over{background:var(--red-bar)}.bar-fill.blue{background:var(--blue-mid)}.tag{font-size:12px;font-weight:700;padding:3px 9px;border-radius:9px;white-space:nowrap}.badge-warn{background:var(--amber-soft);color:var(--amber-ink)}.badge-ok{background:var(--green-soft);color:var(--green-dark)}.badge-red{background:var(--red-soft);color:#7E2A21}.badge-gray{background:var(--line-soft);color:var(--muted)}.check{width:26px;height:26px;border-radius:8px;flex:none;display:flex;align-items:center;justify-content:center;border:2px solid #9aa59e;background:#fff;color:#fff;font-size:15px;font-weight:700}.check.on{background:var(--green);border-color:var(--green)}.check.on.blue{background:var(--blue);border-color:var(--blue)}.avatar{width:44px;border-radius:22px;flex:none;display:flex;font-size:15px;color:#fff}.avatar,.btn{height:44px;align-items:center;justify-content:center;font-weight:700}.btn{padding:0 16px;border-radius:12px;border:1px solid var(--input-line);background:#fff;color:var(--ink);font-size:14px;display:inline-flex;gap:6px;white-space:nowrap;text-decoration:none}.btn:hover{border-color:#9AA59E}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover{background:var(--green-dark)}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.danger{color:var(--red);border-color:#E7C3BE}.btn.ghost{border-color:transparent;background:transparent;color:var(--green);padding:0 8px}.btn.small{height:36px;padding:0 12px;font-size:13px;border-radius:10px}.btn.block{width:100%;height:52px;font-size:16px}.btn:disabled{opacity:.55;cursor:default}.icon-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--input-line);background:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;min-width:0}.input,.select,.textarea{width:100%;height:48px;border-radius:12px;border:1px solid var(--input-line);padding:0 14px;font-size:16px;background:#fff;color:var(--ink)}.textarea{height:auto;min-height:84px;padding:12px 14px;resize:vertical}.check-line{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;min-height:40px}.check-line input{width:20px;height:20px;accent-color:var(--green)}.add-row{display:flex;gap:8px}.add-row .input{flex:1 1;min-width:0}.seg{display:grid;grid-gap:6px;gap:6px;background:#E4E9E4;padding:4px;border-radius:14px}.seg button{height:40px;border:none;border-radius:10px;font-size:14px;font-weight:700;background:transparent;color:var(--muted)}.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chip{height:40px;padding:0 16px;border-radius:20px;border:1px solid var(--input-line);background:#fff;font-size:14px;font-weight:700;flex:none}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;border-radius:12px;background:#fff;border:none}.day .w{font-size:11px;font-weight:600}.day .n{font-size:17px;font-weight:700}.day.today{background:var(--green);color:#fff}.day .dots{display:flex;gap:2px;height:6px}.day .dots i{width:5px;height:5px;border-radius:3px;display:block}.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:4px;gap:4px}.month .wd{font-size:11px;font-weight:700;color:var(--muted);text-align:center;padding:4px 0}.mday{min-height:54px;border-radius:10px;background:#fff;border:none;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:14px;font-weight:600}.mday.out{background:transparent;color:#A5AEA8}.mday.today{outline:2px solid var(--green)}.swatches{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:36px;height:36px;border-radius:18px;border:3px solid transparent}.swatch.on{border-color:var(--ink)}.sheet-back{position:fixed;inset:0;z-index:50;background:rgba(24,33,29,.45);display:flex;align-items:flex-end;justify-content:center}.sheet{background:#fff;width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;border-radius:22px 22px 0 0;padding:20px 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.sheet h2{font-family:var(--font-display);font-size:22px}.sheet-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;padding-top:4px}.sheet-actions .right{display:flex;gap:10px;margin-left:auto}@media (min-width:900px){.sheet-back{align-items:center}.sheet{border-radius:22px}}.alert{border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.45}.alert.err{background:var(--red-soft);color:#7E2A21}.alert.info{background:var(--blue-soft);color:var(--blue)}.alert.ok{background:var(--green-soft);color:var(--green-dark)}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(100px + env(safe-area-inset-bottom));z-index:60;background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;font-size:14px;font-weight:600;max-width:calc(100% - 40px)}.skeleton{background:linear-gradient(90deg,#E8ECE8,#F1F3F0,#E8ECE8);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:14px;height:72px}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}