body{color:#1b2420;background:#f4f6f2;margin:0;font-family:Hanken Grotesk,system-ui,sans-serif;font-size:14px;line-height:1.45}button,input,select,textarea{font-family:inherit}*{box-sizing:border-box}a{color:inherit}.vh{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{flex-wrap:wrap;min-height:100vh;display:flex}.side{color:#e6eee9;background:#14352a;flex-direction:column;flex:248px;gap:20px;padding:20px 16px 24px;display:flex}.mainarea{flex-direction:column;flex:999 560px;gap:24px;min-width:0;padding:28px 32px 48px;display:flex}.nav{color:#c9d6ce;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav:hover{color:#fff;background:#ffffff12}.nav.active{color:#fff;background:#ffffff24;font-weight:600}.nav span.grow{flex:1}.count{color:#fff;text-align:center;background:#2f6f58;border-radius:999px;min-width:22px;padding:2px 7px;font-size:12px;font-weight:600}.card{background:#fff;border:1px solid #e1e6df;border-radius:12px}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{color:#fff;background:#1f5c46}.btn-primary:hover{background:#184b39}.btn-ghost{color:#1b2420;background:#fff;border-color:#c5cec3}.btn-ghost:hover{background:#f1f4ef}.btn-danger{color:#7a1f16;background:#fff;border-color:#d9a9a3}.btn-sm{min-height:36px;padding:0 12px;font-size:13px}.badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;line-height:1.4;display:inline-block}.b-amber{color:#6b4400;background:#fbefcf}.b-blue{color:#12466f;background:#ddebf8}.b-green{color:#14502f;background:#ddf0e3}.b-teal{color:#0f5550;background:#d7efec}.b-gray{color:#3c4742;background:#e8ece7}.b-red{color:#7a1f16;background:#f8dfdc}.b-walk{color:#5e3f0a;background:#f3e8d8}.fld-label{color:#55615b;font-size:12px;font-weight:600}.num-input{color:#1b2420;font-variant-numeric:tabular-nums;background:#fff;border:1px solid #c5cec3;border-radius:8px;width:72px;min-height:40px;padding:0 10px;font-size:14px}.num-input:disabled{color:#55615b;background:#f1f4ef}.tbl{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.tbl th{color:#55615b;text-align:left;white-space:nowrap;border-bottom:1px solid #e1e6df;padding:12px 16px;font-size:12px;font-weight:600}.tbl td{vertical-align:middle;border-bottom:1px solid #eef1ec;padding:14px 16px}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover{background:#f7f9f6}.rowbtn{color:#1f5c46;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;font-weight:700;text-decoration:underline}.chip{color:#1b2420;cursor:pointer;background:#fff;border:1px solid #c5cec3;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.chip[data-on="1"]{color:#fff;background:#1f5c46;border-color:#1f5c46}.chip em{opacity:.85;font-style:normal;font-weight:500}.dot{background:#fff;border:2px solid #a9b5ab;border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.st-done{background:#1f5c46;border-color:#1f5c46}.st-now{background:#fbefcf;border-color:#c98a12}.kpi{text-align:left;cursor:pointer;min-height:44px;color:inherit;background:#fff;border:1px solid #e1e6df;border-radius:12px;flex-direction:column;gap:6px;padding:18px 20px;font-family:inherit;display:flex}.kpi:hover{border-color:#1f5c46}.tbl tr[data-open="1"]{background:#f7f9f6}.tbl tr.detail-row:hover,.detail-row .tbl tbody tr:hover{background:0 0}.slide{animation:.28s ease-out slideOpen}@keyframes slideOpen{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:900px;overflow:hidden}}.btn:disabled{opacity:.45;cursor:not-allowed}.pill-input{color:#1b2420;background:#fff;border:1px solid #c5cec3;border-radius:8px;min-width:0;min-height:44px;padding:0 14px;font-size:14px}.pill-input:disabled{color:#55615b;cursor:not-allowed;background:#f1f4ef}select.pill-input{padding-right:8px}textarea.pill-input{min-height:80px;padding:10px 14px}.wbtn{color:#1b2420;text-align:left;cursor:pointer;font-variant-numeric:tabular-nums;background:#fff;border:1px solid #c5cec3;border-radius:8px;min-width:112px;min-height:40px;padding:0 12px;font-size:13px;font-weight:600}.wbtn[data-empty="1"]{color:#5f6b64;font-weight:500}.wbtn:focus-visible,.wc-x:focus-visible{outline-offset:2px;outline:3px solid #7fb89f}.wcalc{z-index:40;white-space:normal;background:#fff;border:1.5px solid #1f5c46;border-radius:10px;flex-direction:column;gap:10px;width:250px;padding:12px;font-size:13px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #14352a2e}.wc-list{max-height:96px;margin:0;padding:0;list-style:none;overflow-y:auto}.wc-list li{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;padding:2px 0;display:flex}.wc-x{color:#7a1f16;cursor:pointer;background:0 0;border:0;min-width:32px;min-height:32px;font-size:20px;font-weight:700}.wc-total{color:#1f5c46;font-variant-numeric:tabular-nums;border-top:1px solid #e1e6df;justify-content:space-between;padding-top:8px;font-weight:700;display:flex}@media (prefers-reduced-motion:reduce){.slide{animation:none}}.bar{background:#e8ece7;border-radius:999px;height:8px;overflow:hidden}.bar i{background:#1f5c46;border-radius:999px;height:100%;display:block}.bar i.low{background:#c98a12}.pill-input:focus,.btn:focus-visible,.chip:focus-visible,.nav:focus-visible,.kpi:focus-visible,.rowbtn:focus-visible{outline-offset:2px;outline:3px solid #7fb89f}.h2{margin:0;font-size:17px}.sub{color:#55615b;margin:2px 0 0;font-size:13px}.h3{color:#55615b;margin:0 0 8px;font-size:13px}.muted{color:#55615b}.stat{flex-direction:column;flex:120px;gap:6px;min-width:0;padding:18px 20px;display:flex}.stat .l{color:#55615b;font-size:13px;font-weight:600}.stat .v{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:36px;font-weight:700;line-height:1.1}.stat .h{color:#55615b;font-size:13px}.list{margin:0;padding:0;list-style:none}.notice{color:#14502f;background:#ddf0e3;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-weight:600;display:flex}.notice.err{color:#7a1f16;background:#f8dfdc}.center{place-items:center;min-height:100vh;padding:16px;display:grid}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.sidefoot{border-top:1px solid #ffffff24;align-items:center;gap:10px;margin-top:auto;padding:12px;display:flex}.sidefoot button{color:#e6eee9;cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:6px;margin-left:auto;padding:4px 8px;font-size:12px}@media (width<=760px){.mainarea{padding:20px 16px 40px}}.sf{--main:#1f4d36;--main-ink:#fff;--tag:#e8b934;--tag-ink:#2a2200;--ground:#f6f7f2;--ink:#17211b;--soft:#4f5b54;--rule:#d9ded3;background:var(--ground);color:var(--ink);min-height:100vh;font-family:"Source Serif 4",Georgia,serif;font-size:17px;line-height:1.6}.sf h1,.sf h2,.sf h3,.sf button,.sf input,.sf select,.sf textarea,.sf .ui{font-family:Bricolage Grotesque,Hanken Grotesk,system-ui,sans-serif}.sf h1,.sf h2,.sf h3{letter-spacing:-.02em;margin:0;font-weight:800;line-height:1.05}.sf a{color:inherit}.sf .wrap{max-width:1040px;margin:0 auto;padding:0 20px}.sf .btn-primary{background:var(--main);color:var(--main-ink)}.sf .btn-primary:hover{background:var(--main);filter:brightness(.9)}.sf .btn-ghost{border-color:#9aa39a}.sf .pill-input{border-color:#9aa39a;border-radius:6px;min-height:46px;font-size:16px}.sf .fld-label{color:var(--soft);font-size:13px}.sf .btn{border-radius:6px;min-height:46px}.sf :focus-visible{outline:3px solid var(--tag);outline-offset:2px}.sf-nav{z-index:30;background:var(--main);color:var(--main-ink);position:sticky;top:0}.sf-nav .wrap{align-items:center;gap:20px;min-height:56px;display:flex}.sf-nav .name{letter-spacing:-.01em;color:inherit;margin-right:auto;font-family:Bricolage Grotesque,sans-serif;font-size:19px;font-weight:800;text-decoration:none}.sf-nav a.l{opacity:.92;font-family:Bricolage Grotesque,sans-serif;font-size:15px;font-weight:500;text-decoration:none}.sf-nav a.l:hover{text-underline-offset:4px;text-decoration:underline}.sf-nav .cart{background:var(--tag);color:var(--tag-ink);cursor:pointer;border:0;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700}@media (width<=640px){.sf-nav a.l{display:none}}.sf-hero{border-bottom:1px solid var(--rule);overflow:hidden}.sf-hero .wrap{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:center;gap:40px;padding-top:56px;padding-bottom:64px;display:grid}.sf-hero h1{max-width:15ch;font-size:clamp(2.5rem,6.4vw,4.6rem)}.sf-hero p.lead{max-width:34ch;color:var(--soft);margin:20px 0 28px;font-size:19px}.sf-hero .cta{flex-wrap:wrap;gap:12px;display:flex}.sf-art{justify-content:center;min-height:340px;display:flex;position:relative}.sf-art.photo{background-position:50%;background-size:cover;border-radius:4px;min-height:380px}.sf-art.field{background:repeating-linear-gradient(115deg,color-mix(in srgb,var(--main) 9%,transparent) 0 2px,transparent 2px 22px);border-radius:4px}.sf-tag{background:var(--tag);width:190px;color:var(--tag-ink);transform-origin:50% 0;border-radius:30px 30px 22px 22px;padding:46px 18px 22px;animation:1.6s ease-out swing;position:absolute;top:-14px;right:28px;transform:rotate(-3deg);box-shadow:0 14px 30px #0000002e}.sf-tag:before{content:"";background:var(--ground);border-radius:50%;width:22px;height:22px;margin-left:-11px;position:absolute;top:16px;left:50%;box-shadow:inset 0 2px 4px #00000040}.sf-tag.white{border:2px solid var(--ink)}.sf-tag b{letter-spacing:-.02em;overflow-wrap:anywhere;font-family:Bricolage Grotesque,sans-serif;font-size:25px;font-weight:800;line-height:1.05;display:block}.sf-tag span{margin-top:12px;font-family:Bricolage Grotesque,sans-serif;font-size:14px;font-weight:600;display:block}@keyframes swing{0%{transform:rotate(-16deg)}30%{transform:rotate(8deg)}55%{transform:rotate(-6deg)}78%{transform:rotate(-1deg)}to{transform:rotate(-3deg)}}@media (prefers-reduced-motion:reduce){.sf-tag{animation:none}}@media (width<=760px){.sf-hero .wrap{grid-template-columns:1fr;padding-top:36px;padding-bottom:44px}.sf-art{order:-1;min-height:210px}.sf-art.photo{min-height:240px}.sf-tag{margin-right:-95px;top:-10px;right:50%}}.sf-sec{border-bottom:1px solid var(--rule);padding:56px 0}.sf-sec h2{margin-bottom:8px;font-size:clamp(1.8rem,4vw,2.6rem)}.sf-sec .intro{max-width:56ch;color:var(--soft);margin:0 0 28px}.sf-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:28px 0 0;padding:0;list-style:none;display:grid}.sf-steps li{border-top:3px solid var(--main);padding-top:14px}.sf-steps .n{color:var(--main);font-family:Bricolage Grotesque,sans-serif;font-size:30px;font-weight:800;line-height:1}.sf-steps h3{margin:8px 0 6px;font-size:20px}.sf-steps p{color:var(--soft);margin:0;font-size:16px}@media (width<=760px){.sf-steps{grid-template-columns:1fr}}.sf-board{margin:0;padding:0;list-style:none}.sf-row{align-items:flex-end;gap:12px;padding:14px 0;display:flex}.sf-row .nm{font-family:Bricolage Grotesque,sans-serif;font-size:19px;font-weight:700;line-height:1.2}.sf-row .lead{border-bottom:2px dotted #8e988f;flex:1;min-width:16px;transform:translateY(-6px)}.sf-row .pr{white-space:nowrap;font-family:Bricolage Grotesque,sans-serif;font-size:19px;font-weight:800}.sf-row .pr small{color:var(--soft);font-size:13px;font-weight:500}.sf-row.out .nm,.sf-row.out .pr{color:#8a938b;text-decoration:line-through}.sf-sub{color:var(--soft);margin-top:2px;font-family:"Source Serif 4",serif;font-size:14px;font-weight:400;display:block}.sf-line{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:6px 0 12px;display:flex}.sf-line .l{flex-direction:column;display:flex}.sf-cat{color:var(--main);margin:34px 0 4px;font-size:1.5rem}.sf-step{align-items:center;gap:6px;display:flex}.sf-step button{min-width:46px;padding:0;font-size:22px}.sf-step output{text-align:center;min-width:30px;font-family:Bricolage Grotesque,sans-serif;font-size:18px;font-weight:800}.sf-sheet{background:#fff;border:2px dashed #9aa39a;border-radius:4px;flex-direction:column;gap:14px;padding:24px;display:flex}.sf-sheet h2{font-size:1.7rem}.sf-total{justify-content:space-between;font-family:Bricolage Grotesque,sans-serif;font-weight:700;display:flex}.sf-bar{z-index:40;background:var(--main);color:var(--main-ink);animation:.25s ease-out rise;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 20px #0003}.sf-bar .wrap{justify-content:space-between;align-items:center;gap:12px;min-height:64px;display:flex}.sf-bar .btn{background:var(--tag);color:var(--tag-ink)}@keyframes rise{0%{transform:translateY(100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.sf-bar{animation:none}}.sf-about{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:40px;display:grid}.sf-about p{white-space:pre-wrap;max-width:62ch;margin:0 0 1em}.sf-facts{flex-direction:column;gap:16px;margin:0;display:flex}.sf-facts dt{font-family:Bricolage Grotesque,sans-serif;font-size:15px;font-weight:700}.sf-facts dd{color:var(--soft);white-space:pre-wrap;margin:2px 0 0}@media (width<=760px){.sf-about{grid-template-columns:1fr}}.sf-foot{color:var(--soft);padding:28px 0 90px;font-size:14px}.sf-foot .wrap{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.sf-done{padding:48px 0}.sf-done h1{margin-bottom:12px;font-size:clamp(2rem,5vw,3rem)}.sf .fld-label,.sf .badge,.sf .notice{font-family:Bricolage Grotesque,Hanken Grotesk,system-ui,sans-serif}
