@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-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:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/f196b1e65fee88ed-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:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/61a7a85bb72f3355-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:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/cc95fdb254242a42-s.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:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/f196b1e65fee88ed-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:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/61a7a85bb72f3355-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:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/cc95fdb254242a42-s.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:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/f196b1e65fee88ed-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:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/61a7a85bb72f3355-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:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/cc95fdb254242a42-s.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:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/f196b1e65fee88ed-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:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/61a7a85bb72f3355-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:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/cc95fdb254242a42-s.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:Noto Sans Thai Fallback;src:local("Arial");ascent-override:99.79%;descent-override:42.32%;line-gap-override:0.00%;size-adjust:106.33%}.__className_a4b65b{font-family:Noto Sans Thai,Noto Sans Thai Fallback;font-style:normal}.__variable_a4b65b{--font-thai:"Noto Sans Thai","Noto Sans Thai Fallback"}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98848575513c9742-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:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7b0b24f36b1a6d0b-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:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/98848575513c9742-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:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7b0b24f36b1a6d0b-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:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/98848575513c9742-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:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/7b0b24f36b1a6d0b-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:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/98848575513c9742-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:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/7b0b24f36b1a6d0b-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:Outfit Fallback;src:local("Arial");ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.00%;size-adjust:99.82%}.__className_f8fef5{font-family:Outfit,Outfit Fallback;font-style:normal}.__variable_f8fef5{--font-heading:"Outfit","Outfit Fallback"}:root{--page-gradient:radial-gradient(1100px 760px at 0% 0%,#d9d0fb 0%,transparent 62%),radial-gradient(1000px 720px at 100% 0%,#cfe2fb 0%,transparent 60%),radial-gradient(1000px 760px at 70% 100%,#f7d6e8 0%,transparent 62%),radial-gradient(800px 600px at 0% 100%,#e3dcfb 0%,transparent 60%),#f1eefa;--background:#f3f1fa;--surface:#ffffff;--surface-sunken:#f4f2fb;--text:#17161f;--text-muted:#6c6a7d;--text-faint:#a8a6b8;--border:#ebe8f5;--border-strong:#dcd8ea;--hover:#f1eefb;--primary:#17161f;--primary-light:#8b7cf6;--primary-soft:#eeeafd;--on-primary:#ffffff;--violet:#6a5ae0;--secondary:#e0789f;--secondary-light:#f2a9c7;--secondary-soft:#fbe6ef;--accent:#d14b5a;--accent-soft:#fce4e8;--success:#2f8f5b;--success-soft:#e2f4e8;--warning:#b7791f;--warning-soft:#fbf0dc;--pastel-purple:#ddd5fc;--pastel-blue:#d4e4fc;--pastel-green:#d6f0dc;--pastel-pink:#f9d9e9;--pastel-peach:#fde3cf;--pastel-yellow:#f6ecc6;--chart-1:#7c6cf0;--chart-2:#d9558f;--chart-grid:#ebe8f5;--cat-food:#2a78d6;--cat-transport:#eb6834;--cat-hotel:#1baf7a;--cat-activity:#eda100;--cat-shopping:#e87ba4;--cat-emergency:#008300;--cat-other:#a8a6b8;--shadow-sm:0 1px 2px rgba(60,48,120,0.05);--shadow-md:0 1px 2px rgba(60,48,120,0.05),0 10px 28px rgba(60,48,120,0.09);--shadow-lg:0 2px 4px rgba(60,48,120,0.05),0 24px 56px rgba(60,48,120,0.16);--shadow-card:0 1px 2px rgba(60,48,120,0.04),0 8px 26px rgba(60,48,120,0.06);--shadow-hover:0 2px 4px rgba(60,48,120,0.06),0 18px 40px rgba(60,48,120,0.14);--hero-from:#ddd5fc;--hero-to:#f9d9e9;--hero-third:#d4e4fc;--hero-text:#17161f;--hero-muted:#5d5a70;--hero-highlight:#6a5ae0;--hero-highlight-bg:rgba(255,255,255,0.75);--hero-tile:rgba(255,255,255,0.62);--hero-tile-border:rgba(255,255,255,0.95);--hero-grid:rgba(255,255,255,0.35);--glass-bg:rgba(255,255,255,0.7);--glass-border:rgba(255,255,255,0.9);--glass-shadow:var(--shadow-sm);--nav-height:64px;--header-height:56px;--safe-bottom:env(safe-area-inset-bottom,0px);--gutter:20px;--container:1160px;--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-pill:999px;--font-family:var(--font-inter),var(--font-thai),ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:var(--font-heading),var(--font-thai),ui-sans-serif,system-ui,sans-serif;--transition-fast:0.15s ease;--transition-normal:0.25s cubic-bezier(0.2,0,0,1);--ease-out:cubic-bezier(0.22,1,0.36,1)}@media (prefers-color-scheme:dark){:root{--page-gradient:radial-gradient(1200px 700px at 0% 0%,#241f40 0%,transparent 60%),radial-gradient(1000px 700px at 100% 10%,#182540 0%,transparent 55%),radial-gradient(900px 700px at 40% 100%,#2e1d33 0%,transparent 60%),#13121c;--background:#13121c;--surface:#1e1c2a;--surface-sunken:#191724;--text:#eeedf6;--text-muted:#a3a0b8;--text-faint:#6f6c85;--border:#2e2b3e;--border-strong:#3b3850;--hover:#27243a;--primary:#eeedf6;--primary-light:#a99cf8;--primary-soft:rgba(169,156,248,0.16);--on-primary:#17161f;--violet:#b3a8ff;--secondary:#f09cc0;--secondary-light:#f6bfd6;--secondary-soft:rgba(240,156,192,0.14);--accent:#f27c8a;--accent-soft:rgba(242,124,138,0.14);--success:#6fcf98;--success-soft:rgba(111,207,152,0.14);--warning:#e8b765;--warning-soft:rgba(232,183,101,0.14);--pastel-purple:#2e2656;--pastel-blue:#1f2c52;--pastel-green:#193a36;--pastel-pink:#3b2144;--pastel-peach:#40243a;--pastel-yellow:#2c2f4f;--chart-1:#8a7af0;--chart-2:#d9608f;--chart-grid:#2e2b3e;--cat-food:#3987e5;--cat-transport:#d95926;--cat-hotel:#199e70;--cat-activity:#c98500;--cat-shopping:#d55181;--cat-emergency:#008300;--cat-other:#8f8ca6;--shadow-sm:0 1px 2px rgba(0,0,0,0.35);--shadow-md:0 1px 2px rgba(0,0,0,0.35),0 10px 28px rgba(0,0,0,0.3);--shadow-lg:0 2px 4px rgba(0,0,0,0.35),0 24px 56px rgba(0,0,0,0.5);--shadow-card:0 1px 2px rgba(0,0,0,0.3);--shadow-hover:0 2px 4px rgba(0,0,0,0.35),0 18px 40px rgba(0,0,0,0.45);--hero-from:#2c2650;--hero-to:#3a2234;--hero-third:#1f2d48;--hero-text:#ffffff;--hero-muted:rgba(255,255,255,0.75);--hero-highlight:#c9bfff;--hero-highlight-bg:rgba(255,255,255,0.08);--hero-tile:rgba(255,255,255,0.06);--hero-tile-border:rgba(255,255,255,0.12);--hero-grid:rgba(255,255,255,0.04);--glass-bg:rgba(19,18,28,0.72);--glass-border:rgba(255,255,255,0.06)}}*,:after,:before{box-sizing:border-box;padding:0;margin:0;-webkit-tap-highlight-color:transparent}body,html{max-width:100vw;overflow-x:hidden;background-color:var(--background);background-image:var(--page-gradient);background-attachment:fixed;color:var(--text);font-family:var(--font-family);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;min-height:-webkit-fill-available;display:flex;flex-direction:column}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;letter-spacing:-.015em;color:var(--text);line-height:1.2}p{color:var(--text-muted);line-height:1.6}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}::selection{background:var(--primary-soft)}.app-container{width:100%;min-height:100vh;display:flex;flex-direction:column;background:transparent;position:relative;padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 32px)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}.lift:active,.lift:hover{transform:none}}.desktop-only{display:none!important}@media (min-width:900px){:root{--gutter:40px;--header-height:72px}.app-container{padding-bottom:56px}.desktop-only{display:flex!important}.mobile-only{display:none!important}}.page{width:100%;max-width:calc(var(--container) + var(--gutter) * 2);margin:0 auto;padding:24px var(--gutter) 0;display:flex;flex-direction:column;gap:24px;animation:page-in .45s var(--ease-out)}@media (min-width:900px){.page{padding-top:36px;gap:32px}}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.lift{transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out),border-color var(--transition-fast);will-change:transform}@media (hover:hover){.lift:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover)}}.lift:active{transform:translateY(-1px) scale(.99)}.stagger>*{animation:rise-in .5s var(--ease-out) both}.stagger>:nth-child(2){animation-delay:.05s}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.15s}.stagger>:nth-child(5){animation-delay:.2s}.stagger>:nth-child(6){animation-delay:.25s}.stagger>:nth-child(n+7){animation-delay:.3s}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.page-header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px}.page-title{font-family:var(--font-display);font-weight:700;font-size:28px;line-height:1.15;letter-spacing:-.02em}.page-subtitle{font-size:15px;color:var(--text-muted);margin-top:6px}@media (min-width:900px){.page-title{font-size:34px}}.accent-text{color:var(--primary)}.eyebrow{display:block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.section{display:flex;flex-direction:column;gap:12px;min-width:0}.section-title{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.015em}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.split{display:grid;grid-template-columns:1fr;grid-gap:24px;gap:24px;align-items:start}@media (min-width:900px){.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}.split-wide-left{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}}.stack{display:flex;flex-direction:column;gap:24px;min-width:0}.muted{color:var(--text-muted)}.tabular{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero{position:relative;overflow:hidden;border-radius:var(--radius-lg);padding:28px 22px;color:var(--hero-text);border:1px solid var(--hero-tile-border);box-shadow:var(--shadow-card);background:linear-gradient(var(--hero-grid) 1px,transparent 1px) 0 0 /32px 32px,linear-gradient(90deg,var(--hero-grid) 1px,transparent 1px) 0 0 /32px 32px,linear-gradient(135deg,var(--hero-from) 0,var(--hero-third) 55%,var(--hero-to) 100%);display:flex;flex-direction:column;gap:24px}@media (min-width:900px){.hero{padding:44px 40px;gap:32px}}.hero-title{font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1.15;letter-spacing:-.02em;color:var(--hero-text)}@media (min-width:900px){.hero-title{font-size:40px}}.hero-highlight{color:var(--hero-highlight);background:var(--hero-highlight-bg);border-radius:8px;padding:0 10px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.hero-text{max-width:560px;font-size:15px;line-height:1.6;color:var(--hero-muted);margin-top:10px}@media (min-width:900px){.hero-text{font-size:17px}}.hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}@media (min-width:900px){.hero-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}}.hero-stat{background:var(--hero-tile);border:1px solid var(--hero-tile-border);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:8px;min-width:0}@media (min-width:900px){.hero-stat{padding:20px 22px 24px}}.hero-stat-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--hero-muted)}.hero-stat-value{font-family:var(--font-display);font-weight:700;font-size:28px;line-height:1.1;color:var(--hero-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:900px){.hero-stat-value{font-size:34px}}.hero-stat-value.highlight{color:var(--hero-highlight)}.hero-stat-sub{font-size:12px;color:var(--hero-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.num-tile{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary);font-family:var(--font-display);font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.card{padding:20px;gap:12px}.card,.list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);display:flex;flex-direction:column}.list{overflow:hidden}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;min-height:56px}.list-row+.list-row{border-top:1px solid var(--border)}.list-title{font-size:14px;font-weight:500;color:var(--text)}.list-sub{font-size:12px}.empty,.list-sub{color:var(--text-muted)}.empty{padding:40px 16px;text-align:center;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:10px}.empty svg{color:var(--text-faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 18px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:14px;font-weight:600;white-space:nowrap;text-decoration:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.btn:hover{background:var(--hover)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary);filter:brightness(1.08)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover{background:var(--hover);color:var(--text)}.btn-danger{background:transparent;border-color:var(--border);color:var(--accent)}.btn-danger:hover{background:var(--accent-soft)}.btn-sm{height:34px;padding:0 14px;font-size:13px}.btn-block{width:100%}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-pill);border:none;background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color var(--transition-fast),color var(--transition-fast)}.btn-icon:hover{background:var(--hover);color:var(--text)}.btn-icon.danger:hover{background:var(--accent-soft);color:var(--accent)}.btn-row{display:flex;gap:10px}.btn-row>.btn{flex:1 1}.btn-row>.btn-primary{flex:2 1}.chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 10px;border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-muted);font-size:12px;font-weight:500;white-space:nowrap}.chip-accent{background:var(--primary-soft);color:var(--primary)}.chip-success{background:var(--success-soft);color:var(--success)}.chip-danger{background:var(--accent-soft);color:var(--accent)}.status{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 12px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;white-space:nowrap;border:1px solid var(--border-strong);color:var(--text-muted);background:var(--surface)}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}.status-success{background:var(--success);border-color:var(--success);color:var(--surface)}.status-accent{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.status-warning{background:var(--warning);border-color:var(--warning);color:var(--surface)}.pill-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--gutter) * -1);padding:2px var(--gutter)}.pill-tabs::-webkit-scrollbar{display:none}.pill-tab{flex-shrink:0;height:36px;padding:0 16px;border-radius:var(--radius-pill);border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;transition:all var(--transition-fast)}.pill-tab:hover{color:var(--text);border-color:var(--border-strong)}.pill-tab.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.pill-tab.dashed{border-style:dashed}.segmented{display:flex;padding:3px;border-radius:var(--radius-pill);background:var(--surface-sunken);border:1px solid var(--border)}.segmented button{flex:1 1;height:32px;padding:0 12px;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;transition:all var(--transition-fast)}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.form{gap:16px}.field,.form{display:flex;flex-direction:column}.field{gap:6px;position:relative;min-width:0}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:500;color:var(--text-muted)}.input{width:100%;min-width:0;height:44px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:15px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::placeholder{color:var(--text-faint)}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.input:disabled{background:var(--surface-sunken);color:var(--text-muted)}textarea.input{height:auto;min-height:88px;padding:12px 14px;resize:vertical}select.input{padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a877f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.input-sm{height:34px;font-size:13px;padding:0 12px}select.input-sm{padding-right:30px;background-position:right 10px center}.checkbox{width:18px;height:18px;accent-color:var(--primary);flex-shrink:0}.form-error{font-size:13px;color:var(--accent);background:var(--accent-soft);padding:10px 14px;border-radius:var(--radius-sm)}.sheet-overlay{position:fixed;inset:0;background:rgba(18,20,18,.4);z-index:2000;display:flex;align-items:flex-end;justify-content:center;animation:overlay-in .2s ease}.sheet{width:100%;max-width:560px;max-height:88vh;overflow-y:auto;background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:8px var(--gutter) calc(24px + var(--safe-bottom));display:flex;flex-direction:column;gap:20px;box-shadow:var(--shadow-lg);animation:sheet-in .3s var(--transition-normal)}.sheet:before{content:"";display:block;width:36px;height:4px;border-radius:2px;background:var(--border-strong);margin:4px auto 0;flex-shrink:0}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-title{font-family:var(--font-display);font-weight:700;font-size:22px;line-height:1.2;letter-spacing:-.015em}@media (min-width:640px){.sheet-overlay{align-items:center;padding:24px}.sheet{border-radius:var(--radius-lg);max-width:480px;padding-bottom:24px}.sheet:before{display:none}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--surface-sunken);border:1px solid var(--border);flex-shrink:0}.avatar-sm{width:22px;height:22px}.avatar-lg{width:44px;height:44px}.leaflet-container{font-family:var(--font-family)!important;background:var(--surface-sunken)!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--surface)!important;color:var(--text)!important;box-shadow:var(--shadow-md)!important}.leaflet-popup-content-wrapper{border-radius:var(--radius-sm)!important}.leaflet-bar a{background:var(--surface)!important;color:var(--text)!important;border-color:var(--border)!important}.leaflet-control-attribution{font-size:9px!important;background:color-mix(in srgb,var(--surface) 80%,transparent)!important;color:var(--text-muted)!important}