@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-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 Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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 Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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 Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_4eeef7{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_4eeef7{--font-plex:"IBM Plex Sans","IBM Plex Sans Fallback"}@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-20c4,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.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-20c4,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.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-20c4,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.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-20c4,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.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_348ea2{font-family:IBM Plex Sans Thai,IBM Plex Sans Thai Fallback;font-style:normal}.__variable_348ea2{--font-plex-thai:"IBM Plex Sans Thai","IBM Plex Sans Thai Fallback"}:root{--bg:#f2f4f7;--surface:#ffffff;--surface-2:#f7f8fa;--ink:#1b2130;--muted:#5b6475;--line:#dde2ea;--shell:#22262d;--shell-2:#2b3038;--shell-ink:#e9ebef;--shell-muted:#9aa1ad;--primary:#3a6bd6;--primary-ink:#ffffff;--primary-soft:#e6edfb;--brand:#e8662a;--good:#17784f;--good-soft:#e1f3ea;--warn:#a86f00;--warn-soft:#fdf2d8;--bad:#c0362c;--bad-soft:#fde8e6;--radius:6px;--topbar-h:52px;--side-w:248px;--side-w-collapsed:60px;--font:var(--font-plex),var(--font-plex-thai),system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;line-height:1.2;text-wrap:balance}h1{font-size:1.15rem}h1,h2{font-weight:600}h2{font-size:1rem}p{margin:0}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tabular{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.mono{font-family:ui-monospace,Consolas,monospace;font-size:.92em}.topbar{position:fixed;inset:0 0 auto 0;height:var(--topbar-h);z-index:20;display:flex;align-items:center;gap:16px;padding:0 16px;background:var(--shell);color:var(--shell-ink)}.topbar .logo{font-weight:700;font-size:1.15rem;letter-spacing:.01em;white-space:nowrap}.topbar .logo span{color:var(--brand)}.env-badge{background:#2f9e4f;color:#fff;font-size:.68rem;font-weight:700;padding:2px 7px;border-radius:3px;letter-spacing:.06em}.topbar .spacer{flex:1 1}.lang-switch{display:flex;gap:2px;background:var(--shell-2);border-radius:4px;padding:2px}.lang-switch button{background:transparent;border:0;color:var(--shell-muted);padding:4px 9px;border-radius:3px;font:inherit;font-size:.8rem;cursor:pointer}.lang-switch button[aria-pressed=true]{background:var(--shell-ink);color:var(--shell);font-weight:600}.user-menu{position:relative}.user-menu summary{list-style:none;cursor:pointer}.user-menu summary::-webkit-details-marker{display:none}.user-pop{position:absolute;right:0;top:42px;width:240px;color:var(--ink);box-shadow:0 8px 24px rgba(0,0,0,.18);overflow:hidden}.user-pop .card-body{border-bottom:1px solid var(--line);overflow-wrap:anywhere}.pop-item{display:block;width:100%;text-align:left;padding:10px 16px;background:none;border:0;font:inherit;color:var(--ink);cursor:pointer}.pop-item:hover{background:var(--surface-2);text-decoration:none}.login-wrap{min-height:100%;display:grid;place-items:center;background:var(--shell);padding:24px max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px))}.login-card{width:100%;max-width:400px;padding:28px;display:grid;grid-gap:18px;gap:18px}.login-card h1{font-size:1.25rem}.login-brand{display:flex;justify-content:space-between;align-items:center}.login-brand .logo{font-weight:700;font-size:1.3rem}.login-brand .logo span{color:var(--brand)}.login-brand .lang-switch{background:var(--surface-2)}.login-brand .lang-switch button{color:var(--muted)}.login-brand .lang-switch button[aria-pressed=true]{background:var(--shell);color:var(--shell-ink)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:600;font-size:.8rem}.sidebar{position:fixed;top:var(--topbar-h);bottom:0;left:0;width:var(--side-w);z-index:10;background:var(--shell);color:var(--shell-ink);overflow-y:auto;overflow-x:hidden;padding:8px 0 24px;transition:width .15s ease;border-top:1px solid var(--shell-2)}.sidebar[data-collapsed=true]{width:var(--side-w-collapsed)}.sidebar .toggle{display:flex;align-items:center;gap:12px;width:100%;padding:8px 18px;margin-bottom:4px;background:none;border:0;color:var(--shell-muted);cursor:pointer;font:inherit;text-align:left}.sidebar .toggle svg{width:18px;height:18px}.sidebar .toggle:hover{color:var(--shell-ink)}.sidebar .grp{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--shell-muted);padding:14px 20px 4px;white-space:nowrap;opacity:.8}.sidebar[data-collapsed=true] .grp{visibility:hidden;height:10px;padding:0}.nav-item{display:flex;align-items:center;gap:12px;padding:7px 18px;color:var(--shell-muted);white-space:nowrap;border-left:3px solid transparent;font-size:.88rem}.nav-item svg{flex:0 0 18px;width:18px;height:18px}a.nav-item:hover{text-decoration:none}.nav-item[aria-current=page],a.nav-item:hover{background:var(--shell-2);color:var(--shell-ink)}.nav-item[aria-current=page]{border-left-color:var(--brand)}.nav-item.disabled{opacity:.45;cursor:default}.nav-item .soon{margin-left:auto;font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--shell-muted);border-radius:3px;padding:0 4px}.sidebar[data-collapsed=true] .label,.sidebar[data-collapsed=true] .soon{display:none}.main{padding:calc(var(--topbar-h) + 20px) max(16px,env(safe-area-inset-right,0px)) 40px calc(var(--side-w) + 20px);transition:padding-left .15s ease;min-width:0}body[data-side=collapsed] .main{padding-left:calc(var(--side-w-collapsed) + 20px)}@media (max-width:800px){.sidebar{width:var(--side-w-collapsed)}.sidebar .label,.sidebar .soon{display:none}.sidebar .grp{visibility:hidden;height:10px;padding:0}.main,body[data-side=collapsed] .main{padding-left:calc(var(--side-w-collapsed) + 16px)}.topbar .env-badge{display:none}}.page{display:grid;grid-gap:16px;gap:16px;max-width:1240px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.page-head .lede{color:var(--muted);max-width:70ch;margin-top:4px}.breadcrumb{font-size:.82rem;color:var(--muted);margin-bottom:2px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:12px;gap:12px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;justify-content:space-between;align-items:flex-start}.tile .n{font-size:1.6rem;font-weight:700;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile .l{color:var(--muted);font-size:.82rem;margin-top:2px}.tile .ic{width:28px;height:28px;border-radius:6px;display:grid;place-items:center}.tile .ic svg{width:16px;height:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.card-body{padding:16px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.toolbar .grow{flex:1 1 220px}.btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:4px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:500;cursor:pointer;white-space:nowrap}.btn,.btn:hover{text-decoration:none}.btn:hover{color:var(--primary)}.btn.primary,.btn:hover{border-color:var(--primary)}.btn.primary{background:var(--primary);color:var(--primary-ink)}.btn.primary:hover{filter:brightness(1.07);color:var(--primary-ink)}.btn.danger:hover{border-color:var(--bad);color:var(--bad)}.btn[disabled]{opacity:.6;cursor:progress}.btn svg{width:15px;height:15px}.input,select.input,textarea.input{width:100%;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--ink);font:inherit}textarea.input{height:auto;min-height:84px;padding:8px 10px;resize:vertical}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.input[aria-invalid=true]{border:2px solid var(--bad);background:var(--bad-soft)}.input[aria-invalid=true]:focus{box-shadow:0 0 0 3px var(--bad-soft)}.field:has([aria-invalid=true])>label{color:var(--bad)}.field .err{font-weight:500}.error-summary{display:grid;grid-gap:6px;gap:6px}.error-summary:focus{outline:2px solid var(--bad);outline-offset:2px}.error-summary ul{margin:0;padding-left:1.2em}.error-summary .linklike{color:var(--bad);font-size:inherit;font-weight:600;text-decoration:underline}.search{position:relative}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted)}.search .input{padding-left:32px}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.88rem}table.data th{text-align:left;font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-2);padding:9px 14px;white-space:nowrap}table.data td,table.data th{border-bottom:1px solid var(--line)}table.data td{padding:11px 14px;vertical-align:middle}table.data tr:last-child td{border-bottom:0}table.data tbody tr:hover td{background:var(--surface-2)}table.data .sub{display:block;color:var(--muted);font-size:.8rem}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap}.pill.good{background:var(--good-soft);color:var(--good)}.pill.muted{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.info{background:var(--primary-soft);color:var(--primary)}:root{--st-acquire:#e8662a;--st-design:#3a6bd6;--st-procure:#8a63d2;--st-build:#a86f00;--st-deliver:#17784f}.stage-pill{display:inline-block;padding:2px 9px;border-radius:4px;font-size:.74rem;font-weight:600;white-space:nowrap;border-left:3px solid;background:var(--surface-2)}.stage-pill.stage-acquire{border-color:var(--st-acquire)}.stage-pill.stage-design{border-color:var(--st-design)}.stage-pill.stage-procure{border-color:var(--st-procure)}.stage-pill.stage-build{border-color:var(--st-build)}.stage-pill.stage-deliver{border-color:var(--st-deliver)}.stage-bar{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(11,minmax(88px,1fr));min-width:980px}.stage-bar li{padding:10px 8px;border-top:4px solid var(--line);display:grid;grid-gap:2px;gap:2px;color:var(--muted);font-size:.76rem;line-height:1.25}.stage-bar li .code{font-family:ui-monospace,Consolas,monospace;font-size:.72rem}.stage-bar li.done{color:var(--ink)}.stage-bar li.current.stage-acquire,.stage-bar li.done.stage-acquire{border-top-color:var(--st-acquire)}.stage-bar li.current.stage-design,.stage-bar li.done.stage-design{border-top-color:var(--st-design)}.stage-bar li.current.stage-procure,.stage-bar li.done.stage-procure{border-top-color:var(--st-procure)}.stage-bar li.current.stage-build,.stage-bar li.done.stage-build{border-top-color:var(--st-build)}.stage-bar li.current.stage-deliver,.stage-bar li.done.stage-deliver{border-top-color:var(--st-deliver)}.stage-bar li.done{opacity:.75}.stage-bar li.current{background:var(--surface-2);color:var(--ink);font-weight:600;border-top-width:6px}.pct-bar{position:relative;display:inline-block;width:100px;height:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:3px;overflow:hidden;vertical-align:middle}.pct-bar span{position:absolute;inset:0 auto 0 0;opacity:.35}.pct-bar em{position:relative;font-style:normal;font-size:.72rem;font-weight:600;line-height:16px;display:block;text-align:center}.role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:8px;gap:8px}.role-grid .check-card{background:var(--surface)}.company-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:6px;gap:6px;padding:8px 0 0 24px}.temp-pw{font-family:ui-monospace,Consolas,monospace;font-size:1.15rem;padding:6px 12px;background:var(--surface);border:1px dashed var(--good);border-radius:4px;-webkit-user-select:all;-moz-user-select:all;user-select:all}tr.code-heading td{background:var(--surface-2)}table.data td.num,table.data th.num{text-align:right;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}tr.subtotal td{background:var(--surface-2);font-weight:600}tr.grand td{font-weight:700;border-top:2px solid var(--ink)}.version-tabs{display:flex;gap:6px;flex-wrap:wrap}.version-tab{display:inline-flex;gap:8px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:.86rem}.version-tab:hover{border-color:var(--primary);text-decoration:none}.version-tab.on{border-color:var(--primary);box-shadow:inset 0 -3px 0 var(--primary);font-weight:600}.loc-panel{margin:0 16px 16px;padding:16px;border:1px solid var(--primary);border-radius:var(--radius);background:var(--primary-soft);display:grid;grid-gap:12px;gap:12px}.loc-panel h3{font-size:.95rem}.loc-panel .input{background:var(--surface)}.loc-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}table.data.floors th.floor-cell{width:150px;background:var(--surface-2);text-transform:none;letter-spacing:0;vertical-align:top}.floor-link{display:grid;text-align:left;text-decoration:none!important;color:var(--ink)!important;font-size:.88rem!important}.floor-code{font-weight:700;font-family:ui-monospace,Consolas,monospace}table.data.floors td{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip-add,.unit-chip{min-width:52px;height:30px;padding:0 8px;border-radius:4px;background:var(--surface);font:inherit;font-size:.8rem;font-family:ui-monospace,Consolas,monospace;cursor:pointer;color:var(--ink);border:1px solid var(--line);border-left-width:4px}.chip-add:hover,.unit-chip:hover{border-color:var(--primary)}.chip-add{min-width:30px;border-style:dashed;border-left-width:1px;color:var(--muted);font-family:inherit}.unit-chip.st-planned{border-left-color:var(--line)}.unit-chip.st-available{border-left-color:var(--good)}.unit-chip.st-reserved{border-left-color:var(--warn)}.unit-chip.st-leased,.unit-chip.st-sold{border-left-color:var(--primary);background:var(--primary-soft)}.unit-chip.st-own_use{border-left-color:var(--st-procure)}.unit-chip.st-blocked{border-left-color:var(--bad);color:var(--muted)}.loc-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.loc-stats>div{padding:14px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.loc-stats>div:last-child{border-right:0}.loc-stats .n{font-size:clamp(1rem,1.6vw,1.2rem);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.25}.loc-stats>div{overflow:hidden;text-overflow:ellipsis}.loc-stats .l{font-size:.78rem;color:var(--muted)}@media (max-width:700px){.loc-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.empty{padding:48px 16px;text-align:center;display:grid;grid-gap:8px;gap:8px;justify-items:center;color:var(--muted)}.empty h2{color:var(--ink)}.empty>svg{width:48px;height:48px;color:var(--line)}.form{grid-gap:16px}.form,.form-section{display:grid;gap:16px}.form-section{grid-template-columns:220px minmax(0,1fr);grid-gap:16px;padding:18px 16px;border-bottom:1px solid var(--line)}.form-section:last-of-type{border-bottom:0}.form-section>h2{font-size:.92rem}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:14px 16px;gap:14px 16px}.field{display:grid;grid-gap:4px;gap:4px;align-content:start}.field.wide{grid-column:1/-1}.field label{font-size:.82rem;font-weight:500}.field label .opt{color:var(--muted);font-weight:400}.field .hint{font-size:.76rem;color:var(--muted)}.field .err{font-size:.78rem;color:var(--bad)}.check{display:flex;align-items:center;gap:8px;font-size:.88rem;cursor:pointer}.check input{width:16px;height:16px;accent-color:var(--primary);margin:0}.check-card{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer}.check-card:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}.check-card input{width:16px;height:16px;margin-top:2px;accent-color:var(--primary);flex:0 0 auto}.check-card span{display:grid;grid-gap:2px;gap:2px}.check-card .hint{font-size:.78rem;color:var(--muted)}.radio-group{border:0;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}.radio-group legend{font-size:.82rem;font-weight:500;padding:0;margin-bottom:6px}.linklike{background:none;border:0;padding:0;color:var(--primary);font:inherit;font-size:.78rem;cursor:pointer;justify-self:start}.linklike:hover{text-decoration:underline}.input:disabled{background:var(--surface-2);color:var(--muted)}.tags{display:flex;gap:4px;flex-wrap:wrap}.form-actions{display:flex;gap:8px;justify-content:flex-end;padding:14px 16px;border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 var(--radius) var(--radius)}.banner{padding:10px 14px;border-radius:4px;font-size:.88rem}.banner.bad{background:var(--bad-soft);color:var(--bad)}.banner.good{background:var(--good-soft);color:var(--good)}.banner.warn-banner{background:var(--warn-soft);color:var(--ink)}@media (max-width:800px){.form-section{grid-template-columns:1fr}}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:16px;gap:16px}.card-head{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px}dl.kv{display:grid;grid-template-columns:minmax(120px,40%) 1fr;margin:0}dl.kv dd,dl.kv dt{padding:9px 16px;border-bottom:1px solid var(--line);margin:0}dl.kv dt{color:var(--muted);font-size:.84rem}dl.kv dd{overflow-wrap:anywhere}dl.kv .sub{display:block;color:var(--muted);font-size:.8rem}dl.kv>:nth-last-child(-n+2){border-bottom:0}.head-actions{gap:8px}.head-actions,.title-row{display:flex;flex-wrap:wrap}.title-row{align-items:center;gap:10px}.code-chip{font-family:ui-monospace,Consolas,monospace;font-size:.8rem;background:var(--surface-2);border:1px solid var(--line);padding:1px 7px;border-radius:4px;color:var(--muted)}a.unit-chip{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.chip-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;color:var(--muted)}.chip-legend .unit-chip{min-width:18px;height:14px;padding:0;cursor:default;vertical-align:middle;margin-right:4px}.pill.bad{background:var(--bad-soft);color:var(--bad)}.wht-doc{background:#fff;color:#000;border:1px solid var(--line);border-radius:6px;padding:28px 32px;max-width:820px;width:100%;margin:0 auto;display:grid;grid-gap:16px;gap:16px;font-size:.9rem}.wht-doc header{text-align:center;display:grid;grid-gap:2px;gap:2px}.wht-doc h1{font-size:1.2rem}.wht-doc h2{font-size:.95rem;margin-bottom:4px}.wht-doc .wht-no{font-size:.8rem;text-align:right}.wht-doc dl{display:grid;grid-template-columns:200px 1fr;grid-gap:2px 12px;gap:2px 12px;margin:0}.wht-doc dt{color:#444}.wht-doc dd{margin:0}.wht-doc table{width:100%;border-collapse:collapse}.wht-doc td,.wht-doc th{border:1px solid #000;padding:6px 8px;text-align:left;vertical-align:top}.wht-doc .num{text-align:right;white-space:nowrap}.wht-box{display:inline-block;width:14px;height:14px;border:1px solid #000;text-align:center;line-height:12px;font-size:11px;vertical-align:middle}.wht-sign{display:grid;grid-gap:6px;gap:6px;justify-items:end;margin-top:24px}@media (max-width:600px){.wht-doc{padding:16px}.wht-doc dl{grid-template-columns:1fr}}@media print{.no-print,.sidebar,.topbar{display:none!important}.main{padding:0!important;margin:0!important}body{background:#fff!important}.wht-doc{border:0;padding:0;max-width:none}}ul.attention{list-style:none;margin:0;padding:0}ul.attention li{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);font-size:.9rem}ul.attention li:last-child{border-bottom:0}ul.attention .amt{margin-left:auto;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted)}ul.attention .dot{width:8px;height:8px;border-radius:50%;flex:none}ul.attention .dot.bad{background:var(--bad)}ul.attention .dot.warn{background:var(--warn)}.cash-bars{display:grid;grid-gap:3px;gap:3px;margin-top:6px;width:160px;max-width:100%}.cash-bars span{display:block;height:6px;border-radius:3px;min-width:2px}.cash-bars .in{background:var(--good)}.cash-bars .out{background:var(--bad)}ul.task-list{list-style:none;margin:0;padding:0}ul.task-list>li{border-bottom:1px solid var(--line)}ul.task-list>li:last-child{border-bottom:0}ul.task-list>li.open{background:var(--surface-2)}.task-row{display:flex;gap:12px;align-items:center;width:100%;padding:12px 16px;background:none;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.task-main{display:grid;grid-gap:2px;gap:2px;min-width:0;flex:1 1}.task-main strong{overflow-wrap:anywhere}.task-side{display:grid;grid-gap:4px;gap:4px;justify-items:end;flex:none}.task-side .bar{width:90px;height:6px;border-radius:3px;background:var(--line);overflow:hidden}.task-side .bar span{display:block;height:100%;background:var(--primary)}.prio{width:4px;align-self:stretch;border-radius:2px;flex:none;background:var(--line)}.prio.prio-high{background:var(--bad)}.prio.prio-normal{background:var(--primary)}.task-detail{display:grid;grid-gap:12px;gap:12px;padding:0 16px 16px 32px}ul.notes{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-gap:4px;gap:4px;font-size:.85rem}.bad-text{color:var(--bad)!important}@media (max-width:600px){.task-detail{padding-left:16px}.task-row{flex-wrap:wrap;row-gap:6px}.task-main{flex-basis:calc(100% - 20px)}.task-side{grid-auto-flow:column;justify-items:start;align-items:center;gap:10px;margin-left:16px}.task-side .bar{width:60px}}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px;padding:16px}.photo-grid figure{margin:0;display:grid;grid-gap:6px;gap:6px}.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;border:1px solid var(--line);background:var(--surface-2);display:block}.photo-grid figcaption{font-size:.8rem;color:var(--muted)}.wht-doc.payslip{max-width:560px;gap:10px}@media print{.wht-doc.payslip{page-break-inside:avoid;break-inside:avoid;margin-bottom:24px}}ul.dd-list{list-style:none;margin:0;padding:0}ul.dd-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:12px;gap:12px;align-items:center;padding:8px 16px;border-bottom:1px solid var(--line)}ul.dd-list li:last-child{border-bottom:0}@media (max-width:600px){ul.dd-list li{grid-template-columns:1fr;gap:6px}}details.pop>summary{list-style:none;cursor:pointer;display:inline-flex}details.pop>summary::-webkit-details-marker{display:none}details.pop[open]>summary{margin-bottom:8px}details.pop.float{position:relative;display:inline-block}details.pop.float[open]>form{position:fixed;left:50%;top:12vh;transform:translateX(-50%);z-index:1001;width:min(760px,94vw);max-height:76vh;overflow:auto;text-align:left;white-space:normal;background:var(--surface);box-shadow:0 16px 48px rgba(0,0,0,.28)}details.pop.float[open]:before{content:"";position:fixed;inset:0;z-index:1000;background:rgba(15,23,42,.35)}.row-actions{text-align:right;white-space:nowrap}.row-actions>*+*{margin-left:6px}details.pop>form.loc-panel{margin:0}.wht-doc .doc-logo{max-height:56px;max-width:220px;object-fit:contain;justify-self:start}.wht-doc .doc-footer{font-size:.78rem;color:#444;border-top:1px solid #ccc;padding-top:6px;display:grid;grid-gap:2px;gap:2px}