@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-vietnamese-wght-normal.qRpaaN48.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-ext-wght-normal.DmpS2jIq.woff2) format("woff2-variations");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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-wght-normal.eXO_dkmS.woff2) format("woff2-variations");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}:root{--bg:#f4f6f1;--surface:#fff;--surface-warm:#fbfcf8;--surface-strong:#ecefeb;--ink:#1d231f;--ink-soft:#303a34;--muted:#667067;--soft:#929c91;--line:rgba(60,76,64,.13);--line-strong:rgba(60,76,64,.22);--accent:#2f715f;--accent-strong:#1f5144;--accent-soft:#dfeee7;--accent-faint:rgba(47,113,95,.1);--danger:#a94337;--danger-soft:#f6e2df;--warning:#986b23;--warning-soft:#f7ead2;--success:#2f6f46;--success-soft:#dcebdd;--info:#3b6076;--info-soft:#deebf1;--shadow:0 28px 80px -50px rgba(29,35,31,.48);--shadow-soft:0 18px 46px -34px rgba(47,81,67,.38);--inset:inset 0 1px 0 hsla(0,0%,100%,.78);--radius:24px;--ease:cubic-bezier(.32,.72,0,1);color-scheme:light;font-family:Plus Jakarta Sans Variable,Plus Jakarta Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;min-width:320px;background:radial-gradient(circle at 12% 8%,rgba(47,113,95,.14),transparent 28rem),radial-gradient(circle at 82% 18%,rgba(152,107,35,.12),transparent 24rem),linear-gradient(180deg,#ffffffc7,#f4f6f100),var(--bg);color:var(--ink);text-rendering:geometricPrecision}body:before{position:fixed;inset:0;z-index:8;pointer-events:none;background-image:linear-gradient(rgba(29,35,31,.025) 1px,transparent 0),linear-gradient(90deg,rgba(29,35,31,.02) 1px,transparent 0);background-size:42px 42px;content:"";-webkit-mask-image:linear-gradient(180deg,#000,transparent 78%);mask-image:linear-gradient(180deg,#000,transparent 78%)}body,button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid rgba(47,113,95,.28);outline-offset:3px}button{cursor:pointer}button:disabled{cursor:not-allowed}.page{width:min(1440px,calc(100% - 48px))}.page,.page-narrow{margin:0 auto;padding:38px 0 72px}.page-narrow{width:min(1080px,calc(100% - 48px))}.eyebrow{display:inline-flex;width:-moz-fit-content;width:fit-content;align-items:center;gap:8px;margin:0 0 12px;border:1px solid rgba(47,113,95,.18);border-radius:999px;background:#fff9;color:var(--accent-strong);padding:5px 10px;font-size:.66rem;font-weight:840;letter-spacing:.16em;text-transform:uppercase;box-shadow:var(--inset)}.title-lg,.title-md,.title-xl{margin:0;color:var(--ink);font-weight:780;letter-spacing:0}.title-xl{max-width:920px;font-size:clamp(3rem,6vw,6.4rem);line-height:.88;text-wrap:balance}.title-lg{font-size:clamp(2.25rem,4vw,4.65rem);line-height:.94;text-wrap:balance}.title-md{font-size:clamp(1.35rem,2vw,2rem);line-height:1.08}.lede{max-width:68ch;color:var(--muted);font-size:1.02rem;line-height:1.72;text-wrap:pretty}.app-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:9px;border:1px solid rgba(47,113,95,.18);border-radius:999px;background:linear-gradient(180deg,#fffffff2,#f8faf5e6);color:var(--ink);padding:11px 17px;box-shadow:var(--inset),0 10px 28px -24px #1d231fbf;font-weight:800;transition:transform .26s var(--ease),border-color .26s var(--ease),background .26s var(--ease),color .26s var(--ease),box-shadow .26s var(--ease)}.app-button:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--inset),0 18px 38px -30px #1d231fdb}.app-button:active{transform:translateY(0) scale(.98)}.app-button.primary{border-color:var(--accent);background:linear-gradient(180deg,#398570,#245b4c);color:#fff;box-shadow:inset 0 1px #ffffff38,0 20px 46px -30px #2f715fe6}.app-button.ghost{background:transparent}.app-button.danger{border-color:#a9433761;color:var(--danger)}.app-button.block{width:100%}.icon-button{display:inline-grid;width:46px;height:46px;place-items:center;border:1px solid var(--line);border-radius:999px;background:#ffffffd6;color:var(--ink);box-shadow:var(--inset);transition:transform .26s var(--ease),border-color .26s var(--ease)}.icon-button:hover{transform:translateY(-2px);border-color:var(--accent)}.panel{border:1px solid hsla(0,0%,100%,.72);border-radius:var(--radius);background:linear-gradient(180deg,#ffffffeb,#fafbf7c7);box-shadow:var(--shadow)}.plain-panel{border:1px solid hsla(0,0%,100%,.74);border-radius:var(--radius);background:linear-gradient(180deg,#fffffff5,#f9faf6db);box-shadow:var(--inset),0 1px #1d231f0a,var(--shadow-soft)}.bezel{border:1px solid rgba(47,73,58,.08);border-radius:calc(var(--radius) + 8px);background:#ffffff70;padding:7px;box-shadow:inset 0 1px #ffffffd1,0 28px 80px -58px #1d231fb8}.bezel>.panel,.bezel>.plain-panel{height:100%}.section-band{border-top:1px solid var(--line);padding-top:24px}.grid-2{grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr)}.grid-2,.grid-aside{display:grid;gap:28px}.grid-aside{grid-template-columns:minmax(0,1fr) 380px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;overflow:hidden;border:1px solid rgba(47,73,58,.08);border-radius:calc(var(--radius) + 10px);background:#ffffff61;padding:8px;box-shadow:var(--shadow-soft)}.metric{position:relative;min-height:138px;overflow:hidden;border:1px solid hsla(0,0%,100%,.74);border-radius:22px;background:radial-gradient(circle at 90% 18%,rgba(47,113,95,.12),transparent 7rem),linear-gradient(180deg,#fff,#f9faf6e6);padding:24px;box-shadow:var(--inset)}.metric:after{position:absolute;right:18px;bottom:18px;width:38px;height:38px;border:1px solid rgba(47,113,95,.14);border-radius:50%;background:#2f715f0f;content:""}.metric span{display:block;color:var(--muted);font-size:.82rem;font-weight:760}.metric strong{display:block;margin-top:14px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:clamp(2.1rem,3.5vw,3.4rem);font-weight:780;letter-spacing:0}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.field{display:grid;gap:8px}.field label{color:var(--ink);font-size:.86rem;font-weight:760}.field span{color:var(--muted);font-size:.82rem}.input,.select,.textarea{width:100%;border:1px solid rgba(47,73,58,.16);border-radius:16px;background:#ffffffdb;color:var(--ink);padding:13px 14px;outline:none;box-shadow:var(--inset);transition:border-color .24s var(--ease),box-shadow .24s var(--ease),background .24s var(--ease)}.textarea{min-height:120px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);background:#fff;box-shadow:var(--inset),0 0 0 5px #2f715f1f}.row-list{display:grid;gap:12px}.data-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid hsla(0,0%,100%,.74);border-radius:22px;background:linear-gradient(180deg,#fffffff0,#f9faf6d1);padding:18px;box-shadow:var(--inset);transition:transform .26s var(--ease),border-color .26s var(--ease),background .26s var(--ease),box-shadow .26s var(--ease)}.data-row:hover{transform:translateY(-3px);border-color:#2f715f33;background:#fff;box-shadow:var(--inset),0 24px 54px -44px #1d231fb8}.data-row h3,.data-row h4{margin:0}.meta-line{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:8px;color:var(--muted);font-size:.88rem}.divider-list>*+*{border-top:1px solid var(--line)}.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(47,73,58,.12);border-radius:999px;background:#ffffffad;padding:8px 12px;color:var(--muted);font-size:.82rem;font-weight:780;box-shadow:var(--inset)}.dot{width:8px;height:8px;border-radius:50%;background:currentColor}.empty-state{border:1px dashed rgba(47,73,58,.22);border-radius:calc(var(--radius) + 4px);background:radial-gradient(circle at 100% 0,rgba(47,113,95,.11),transparent 12rem),#ffffff94;padding:32px;box-shadow:var(--inset)}.empty-state p{margin:8px 0 0;color:var(--muted);line-height:1.55}.skeleton{position:relative;overflow:hidden;border-radius:14px;background:#e7ebe3}.skeleton:after{position:absolute;inset:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.62),transparent);content:"";transform:translate(-100%);animation:shimmer 1.45s infinite}@keyframes shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:1040px){.grid-2,.grid-aside{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.page,.page-narrow{width:min(100% - 28px,1400px);padding-top:24px}.data-row,.metric-grid{grid-template-columns:1fr}.toolbar{align-items:stretch}.toolbar>*{flex:1 1 auto}}.route-content[data-v-fa1e1815]{display:contents}.route-loading[data-v-fa1e1815]{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:12px;background:var(--canvas,#f4f2ec);color:var(--ink,#1f2a25)}.route-loading__mark[data-v-fa1e1815]{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;background:var(--ink,#1f2a25);color:#fff;font-size:.76rem;font-weight:900;letter-spacing:.04em}.route-loading__text[data-v-fa1e1815]{color:var(--muted,#68736d);font-size:.82rem;font-weight:760}
