@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/db9bfcd87f1d73a3-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:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4e2312c98e240c05-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/feed52454563c595-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f83e5507ec3854fa-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:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8934311971e59087-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:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/bfdf244a9384e8b2-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b10e9fa1144bb4fb-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d13ab8ed065835e4-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:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d8c0f620f258dcc1-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:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5fcb63deed33aab6-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e595057e1ab84c19-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/861fabf8a4ffc042-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:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/2b32cc5cb75c7a84-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:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/0d4277ce62acaedf-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/942c4903ae74b0f3-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/66c5464579bf95d1-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:IBM Plex Sans Thai Fallback;src:local("Arial");ascent-override:110.31%;descent-override:52.78%;line-gap-override:0.00%;size-adjust:101.17%}.__className_218bf9{font-family:IBM Plex Sans Thai,IBM Plex Sans Thai Fallback;font-style:normal}.__variable_218bf9{--font-sans:"IBM Plex Sans Thai","IBM Plex Sans Thai Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-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:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_595324{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_595324{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}:root{--bg:#0d1117;--surface:#151b23;--surface-2:#1c242e;--surface-3:#232d3a;--line:#2b3645;--text:#e7ebf0;--dim:#94a0af;--faint:#7b8796;--accent:#f5b62e;--accent-ink:#1a1405;--go:#41c977;--go-bg:#12301f;--risk:#f5b62e;--risk-bg:#332a10;--no:#f06a5d;--no-bg:#371a17;--info:#5aa7f0;--info-bg:#14283d;--fs-1:12px;--fs-2:14px;--fs-3:16px;--fs-4:20px;--fs-5:25px;--fs-6:31px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--r:10px;--r-lg:14px;--sans:var(--font-sans,"IBM Plex Sans Thai",system-ui,sans-serif);--mono:var(--font-mono,"IBM Plex Mono",ui-monospace,monospace)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--fs-3);line-height:1.55;padding-bottom:76px}.num{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}h1{font-size:var(--fs-4);font-weight:700}h2{font-size:var(--fs-3);font-weight:600;color:var(--text)}.sub{font-size:var(--fs-2);color:var(--dim)}.hint{font-size:var(--fs-1);color:var(--faint)}.card{background:var(--surface);border-radius:var(--r-lg)}.card,.screen{padding:var(--s4)}.screen{display:none;max-width:1280px;margin:0 auto}.screen.is-active{display:block}.screen-head{margin-bottom:var(--s4)}.screen-head .sub{margin-top:var(--s1)}.stack>*+*{margin-top:var(--s4)}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:44px;padding:0 var(--s4);border-radius:var(--r);font-weight:600;font-size:var(--fs-2);transition:background .12s,transform .05s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:#ffc94f}.btn-ghost{background:var(--surface-3);color:var(--text)}.btn-ghost:hover{background:#2c3847}.btn-danger-ghost{background:none;color:var(--no)}.btn-danger-ghost:hover{background:var(--no-bg)}.btn-block{width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:var(--fs-1);font-weight:600;white-space:nowrap}.pill-lost{background:var(--no-bg);color:var(--no)}.pill-pending{background:var(--risk-bg);color:var(--risk)}.pill-upcoming{background:var(--info-bg);color:var(--info)}.pill-go{background:var(--go-bg);color:var(--go)}.pill-skip{background:var(--surface-3);color:var(--dim)}.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 calc(var(--s4) * -1);padding:0 var(--s4)}table{width:100%;border-collapse:collapse;font-size:var(--fs-2);min-width:560px}th{color:var(--dim);font-weight:500;font-size:var(--fs-1);text-align:left;padding:var(--s2) var(--s3)}td{padding:var(--s3);border-top:1px solid var(--line)}td.r,th.r{text-align:right}td.r{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}tbody tr{transition:background .1s}tbody tr:hover{background:var(--surface-2)}tfoot td{border-top:2px solid var(--line);font-weight:600}label{display:block;font-size:var(--fs-1);color:var(--dim);margin-bottom:var(--s1)}input,select{width:100%;min-height:44px;padding:0 var(--s3);background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:var(--r);font:inherit;font-size:var(--fs-3)}input.num{text-align:right}input:focus,select:focus{border-color:var(--accent);outline:none}.field+.field{margin-top:var(--s3)}.field .hint{margin-top:var(--s1)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:baseline;gap:var(--s3);background:rgba(13,17,23,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}.topbar .logo{font-weight:700;font-size:var(--fs-3)}.topbar .logo em{color:var(--accent);font-style:normal}.topbar .scope{font-size:var(--fs-1);color:var(--faint)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tab{flex:1 1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--dim);font-size:var(--fs-1);font-weight:500}.tab .ic{font-size:var(--fs-3);line-height:1}.tab:hover{color:var(--text)}.tab[aria-current=page]{color:var(--accent)}.tab[aria-current=page] .ic{transform:translateY(-1px)}.kpis{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--s3);gap:var(--s3)}.kpi{background:var(--surface);border-radius:var(--r-lg);padding:var(--s3) var(--s4)}.kpi .v{font-size:var(--fs-5);font-weight:700;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi .k{color:var(--dim)}.kpi .d,.kpi .k{font-size:var(--fs-1)}.kpi .d{color:var(--faint)}.callout{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;background:var(--info-bg);border-radius:var(--r-lg);padding:var(--s3) var(--s4)}.callout .when{font-weight:700;color:var(--info)}.callout .spacer{flex:1 1}.calib .track{position:relative;height:10px;border-radius:99px;margin:var(--s5) var(--s2) var(--s6);background:linear-gradient(90deg,var(--go) 0,var(--risk) 60%,var(--no) 100%);opacity:.9}.calib .mark{position:absolute;top:-7px;width:2px;height:24px;background:var(--text);border-radius:2px}.calib .mark span{top:26px;color:var(--dim);font-family:var(--mono)}.calib .mark b,.calib .mark span{position:absolute;left:50%;transform:translateX(-50%);font-size:var(--fs-1);white-space:nowrap}.calib .mark b{top:-20px;color:var(--text)}.calib .mark.low b{top:30px;color:var(--dim)}.orgrow{display:grid;grid-gap:var(--s4);gap:var(--s4)}.org-hist li{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--s2) 0;border-top:1px solid var(--line);font-size:var(--fs-2)}.org-hist li:first-child{border-top:none}.org-stats{display:flex;gap:var(--s5);margin:var(--s3) 0}.org-stats .v{font-family:var(--mono);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.org-stats .k{display:block;font-size:var(--fs-1);color:var(--dim)}.proj-head{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:baseline}.proj-meta{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s3);gap:var(--s3);margin-top:var(--s4)}.meta .k{font-size:var(--fs-1);color:var(--dim)}.meta .v{font-family:var(--mono);font-weight:600;font-size:var(--fs-4);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.margin-pos{color:var(--go)}.margin-thin{color:var(--risk)}.margin-neg{color:var(--no)}.verdict{border-radius:var(--r-lg);padding:var(--s4)}.verdict.no{background:var(--no-bg)}.verdict.risk{background:var(--risk-bg)}.verdict .tag{font-size:var(--fs-4);font-weight:700;color:var(--no)}.verdict.risk .tag{color:var(--risk)}.verdict p{font-size:var(--fs-2);color:var(--text);margin-top:var(--s1)}.decision-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s3);gap:var(--s3)}.dec .k{font-size:var(--fs-1);color:var(--dim)}.dec .v{font-family:var(--mono);font-weight:700;font-size:var(--fs-4);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dec .d{font-size:var(--fs-1);color:var(--faint)}.docs li{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--line)}.docs li:first-child{border-top:none}.docs .name{flex:1 1;font-size:var(--fs-2)}.docs .kind{font-size:var(--fs-1);color:var(--faint);font-family:var(--mono)}.doclink{color:var(--info);font-size:var(--fs-2);font-weight:600;min-height:44px;display:inline-flex;align-items:center}.doclink:hover{text-decoration:underline}.zone{position:relative;height:14px;border-radius:99px;overflow:hidden;margin:var(--s6) 0 var(--s6)}.zone .seg{position:absolute;top:0;bottom:0}.zone .seg.loss{left:0;background:var(--no);opacity:.75}.zone .seg.profit{right:0;background:var(--go);opacity:.75}.zwrap{position:relative}.zmark{position:absolute;top:-8px;width:2px;height:30px;background:var(--text)}.zmark b{top:-22px;font-weight:600;color:var(--text)}.zmark b,.zmark span{position:absolute;left:50%;transform:translateX(-50%);font-size:var(--fs-1);white-space:nowrap}.zmark span{top:32px;font-family:var(--mono);color:var(--dim)}.zlegend{display:flex;gap:var(--s4);font-size:var(--fs-1);color:var(--dim);margin-top:var(--s5)}.dot{display:inline-block;width:8px;height:8px;border-radius:99px;margin-right:4px}.calc-grid{display:grid;grid-gap:var(--s4);gap:var(--s4)}.presets{display:flex;gap:var(--s2);margin-top:var(--s2)}.preset{flex:1 1;min-height:44px;border-radius:var(--r);background:var(--surface-2);color:var(--dim);font-weight:600;font-size:var(--fs-2)}.preset:hover{background:var(--surface-3);color:var(--text)}.preset[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.preset small{display:block;font-weight:400;font-size:var(--fs-1)}.hero{padding:var(--s5) var(--s4);text-align:center}.hero .k{font-size:var(--fs-2);color:var(--dim)}.hero .v{font-size:var(--fs-6);font-weight:700;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:var(--s1) 0}.hero .d{color:var(--faint)}.break li,.hero .d{font-size:var(--fs-2)}.break li{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--s2) 0}.break li .num{color:var(--text)}.break li.subline{padding-left:var(--s4);font-size:var(--fs-1)}.break li.subline,.break li.subline .num{color:var(--faint)}.break li.total{border-top:2px solid var(--line);margin-top:var(--s2);padding-top:var(--s3);font-weight:700;font-size:var(--fs-3)}.matgroup+.matgroup{margin-top:var(--s5)}.matgroup h2{margin-bottom:var(--s2);color:var(--dim);font-size:var(--fs-1);text-transform:none;letter-spacing:.4px}.mat{display:flex;align-items:center;gap:var(--s3);background:var(--surface);border-radius:var(--r-lg);padding:var(--s3) var(--s4)}.mat+.mat{margin-top:var(--s2)}.mat .info{flex:1 1;min-width:0}.mat .name{font-weight:600;font-size:var(--fs-2)}.mat .price{font-family:var(--mono);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.mat .price small{color:var(--dim);font-family:var(--sans);font-weight:400}.chips{display:flex;flex-wrap:wrap;gap:var(--s1);margin-top:var(--s1)}.chip{font-size:var(--fs-1);font-family:var(--mono);background:var(--surface-3);border-radius:6px;padding:1px 6px}.chip,.editbtn{color:var(--dim)}.editbtn{min-width:44px;min-height:44px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;background:var(--surface-2);font-size:var(--fs-2)}.editbtn:hover{background:var(--surface-3);color:var(--text)}.seg-ctrl{display:flex;background:var(--surface-2);border-radius:var(--r);padding:var(--s1)}.seg-ctrl button{flex:1 1;min-height:40px;border-radius:8px;font-size:var(--fs-2);font-weight:600;color:var(--dim)}.seg-ctrl button[aria-pressed=true]{background:var(--surface);color:var(--text)}.drop{border:2px dashed var(--line);border-radius:var(--r-lg);padding:var(--s6) var(--s4);text-align:center;color:var(--dim);transition:border-color .12s,background .12s;cursor:pointer}.drop.pulse,.drop:hover{border-color:var(--accent);background:var(--surface)}.drop .big{font-size:var(--fs-4);font-weight:600;color:var(--text)}.kv{display:grid;grid-template-columns:1fr;grid-gap:var(--s3);gap:var(--s3)}.kv .field input{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kv .field input.text-th{font-family:var(--sans)}.conf{font-size:var(--fs-1);color:var(--go);font-family:var(--mono)}.conf.low{color:var(--risk)}.field.warn input{border-color:var(--risk)}.actions{display:flex;gap:var(--s3);margin-top:var(--s4)}.actions .btn-primary{flex:1 1}.skel{border-radius:8px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:sh 1.4s infinite}@keyframes sh{to{background-position:-200% 0}}.skelrow{height:14px;margin-top:var(--s3)}.statelabel{font-size:var(--fs-1);color:var(--faint);text-transform:uppercase;letter-spacing:.6px}.backdrop{position:fixed;inset:0;z-index:100;background:rgba(13,17,23,.75);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;padding:0}@media(min-width:600px){.backdrop{align-items:center}}.modal{background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;padding:var(--s5) var(--s4);display:flex;flex-direction:column;gap:var(--s4)}@media(min-width:600px){.modal{border-radius:var(--r-lg)}}.modal-head{display:flex;flex-direction:column;gap:var(--s1)}.modal-head h2{font-size:var(--fs-3);font-weight:700}.modal-actions{display:flex;gap:var(--s3)}.modal-actions .btn{flex:1 1}.zonegrid{display:grid;grid-template-columns:auto 1fr 1fr;grid-gap:var(--s1) var(--s3);gap:var(--s1) var(--s3);align-items:center;font-size:var(--fs-2)}.zonegrid .zgh{font-size:var(--fs-1);color:var(--dim);font-weight:500;padding-bottom:var(--s1)}.zonegrid input{min-height:36px;font-size:var(--fs-2)}.plantrow{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;padding:var(--s2) 0;border-top:1px solid var(--line);font-size:var(--fs-2)}.plantrow:first-child{border-top:none}.plantrow .pname{flex:1 1;font-weight:500}.plantrow .pprice{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:70px;text-align:right}.plantrow input{min-height:36px;font-size:var(--fs-2);width:100px;text-align:right}@media(min-width:768px){body{padding-bottom:0;padding-top:0}.tabbar{position:-webkit-sticky;position:sticky;top:0;bottom:auto;border-top:none;border-bottom:1px solid var(--line);max-width:none;justify-content:center}.tab,.tabbar{gap:var(--s2)}.tab{flex:0 0 auto;flex-direction:row;padding:0 var(--s4);min-height:52px}.topbar{position:static;border-bottom:none;max-width:1280px;margin:0 auto;padding-bottom:0}.screen{padding:var(--s5)}.orgrow{grid-template-columns:1.6fr 1fr}.calc-grid{grid-template-columns:1fr 1.2fr;align-items:start}.proj-meta{grid-template-columns:repeat(4,1fr)}.decision-grid{grid-template-columns:repeat(3,1fr)}.kv{grid-template-columns:1fr 1fr}}.back-btn{display:inline-flex;align-items:center;gap:var(--s2);color:var(--dim);font-size:var(--fs-2);font-weight:500;padding:var(--s2) 0;margin-bottom:var(--s3)}.back-btn:hover{color:var(--text)}.proj-row{display:grid;grid-template-columns:1fr auto auto auto;grid-gap:var(--s2) var(--s3);gap:var(--s2) var(--s3);align-items:center;padding:var(--s3) var(--s4);background:var(--surface);border-radius:var(--r-lg);cursor:pointer;transition:background .1s}.proj-row+.proj-row{margin-top:var(--s2)}.proj-row:hover{background:var(--surface-2)}.proj-row .pname{font-weight:600;font-size:var(--fs-2)}.proj-row .porg{font-size:var(--fs-1);color:var(--dim)}.filter-row{display:flex;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s4)}.filter-row input,.filter-row select{flex:1 1;min-width:120px;max-width:220px;min-height:40px;font-size:var(--fs-2)}.mapwrap{position:relative;height:calc(100dvh - 190px);min-height:420px;border-radius:var(--r-lg);overflow:hidden}.map-chips{position:absolute;top:12px;left:12px;z-index:1000;display:flex;gap:var(--s2);overflow-x:auto;white-space:nowrap;max-width:calc(100% - 80px);-webkit-overflow-scrolling:touch;scrollbar-width:none}.map-chips::-webkit-scrollbar{display:none}.map-chip{flex-shrink:0;min-height:36px;padding:0 var(--s3);border-radius:var(--r);font-size:var(--fs-1);font-weight:600;background:var(--surface);color:var(--dim);border:1px solid var(--line);box-shadow:0 1px 4px rgba(0,0,0,.4);transition:background .12s,color .12s}.map-chip:hover{background:var(--surface-2);color:var(--text)}.map-chip-active{border-color:var(--accent)}.map-chip-active,.map-fab{background:var(--accent);color:var(--accent-ink)}.map-fab{position:absolute;bottom:100px;right:10px;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:56px;min-height:56px;padding:var(--s1);border-radius:var(--r-lg);box-shadow:0 2px 8px rgba(0,0,0,.5);transition:background .12s,transform .05s;font-weight:700}.map-fab:hover{background:#ffc94f}.map-fab:active{transform:translateY(1px)}.map-sheet{position:absolute;bottom:0;left:0;right:0;z-index:1001;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.6);display:flex;flex-direction:column;max-height:60%}.map-sheet-head{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);flex-shrink:0}.map-sheet-body{overflow-y:auto;flex:1 1;padding:var(--s2) var(--s4);-webkit-overflow-scrolling:touch}.map-sheet-footer{padding:var(--s3) var(--s4);border-top:1px solid var(--line);flex-shrink:0}.map-sheet-row{display:grid;grid-template-columns:44px 28px 1fr auto;align-items:center;grid-gap:var(--s2);gap:var(--s2);padding:var(--s2) 0;border-bottom:1px solid var(--line);position:relative}.map-sheet-row:last-child{border-bottom:none}.map-sheet-label{min-height:36px;padding:0 var(--s2);background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:var(--r);font:inherit;font-size:var(--fs-2);width:100%}.map-sheet-label:focus{border-color:var(--accent);outline:none}.map-sheet-count{font-family:var(--mono);font-size:var(--fs-1);color:var(--faint);min-width:28px;text-align:right}.map-toggle{display:flex;align-items:center;cursor:pointer;min-height:44px;min-width:44px;justify-content:center}.map-toggle input{position:absolute;opacity:0;width:0;height:0}.map-toggle-track{position:relative;width:36px;height:20px;border-radius:10px;background:var(--surface-3);transition:background .15s;flex-shrink:0}.map-toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s}.map-toggle input:checked+.map-toggle-track{background:var(--accent)}.map-toggle input:checked+.map-toggle-track:after{transform:translateX(16px)}.map-color-dot{width:24px;height:24px;border-radius:50%;border:2px solid rgba(255,255,255,.3);flex-shrink:0;cursor:pointer;transition:transform .1s,box-shadow .1s}.map-color-dot:hover{transform:scale(1.15);box-shadow:0 0 0 2px var(--accent)}.map-palette{position:absolute;top:100%;left:44px;z-index:10;display:grid;grid-template-columns:repeat(4,28px);grid-gap:var(--s1);gap:var(--s1);background:var(--surface-2);border-radius:var(--r);padding:var(--s2);box-shadow:0 4px 12px rgba(0,0,0,.5);border:1px solid var(--line)}.map-palette-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .1s}.map-palette-swatch:hover{transform:scale(1.15)}.map-palette-swatch-active{border-color:#fff}.map-card{position:absolute;bottom:12px;left:12px;right:12px;z-index:1000;background:var(--surface);border-radius:var(--r-lg);padding:var(--s4);box-shadow:0 4px 16px rgba(0,0,0,.6)}.map-card-close{position:absolute;top:var(--s3);right:var(--s3);min-width:36px;min-height:36px;border-radius:var(--r);color:var(--faint);font-size:var(--fs-2);display:flex;align-items:center;justify-content:center}.map-card-close:hover{background:var(--surface-2);color:var(--text)}.toast{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:1000;padding:10px 16px;border-radius:var(--r);font-size:var(--fs-2);font-weight:600;pointer-events:none;box-shadow:0 4px 16px rgba(0,0,0,.45);animation:toast-in .18s ease-out;white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis}.toast-ok{background:var(--go-bg);color:var(--go);border:1px solid var(--go)}.toast-err{background:var(--no-bg);color:var(--no);border:1px solid var(--no)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.title-clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}