@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-plex-thai:"IBM Plex Sans Thai","IBM Plex Sans Thai Fallback"}@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-20c0,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-20c0,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-20c0,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-20c0,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_c8daab{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_c8daab{--font-plex:"IBM Plex Sans","IBM Plex Sans Fallback"}*{box-sizing:border-box}:root{--warm-black:#171615;--cream:#f8f6f2;--ivory:#f2efea;--white:#fff;--line:#e7e1da;--muted:#746f68;--success:#237a57;--danger:#b43a3a;--shadow:0 16px 42px rgba(36,28,20,.07);--warning:#935a08;--info:#2b5a96;--success-bg:#e4f2eb;--warning-bg:#fff2dc;--danger-bg:#f9e5e5;--info-bg:#e6eef9;--neutral-bg:#f2efea;--accent:#8a6a34;--accent-strong:#6f5527;--surface:#fff;--surface-sunken:#fdfcfb;--border:var(--line);--focus-ring:0 0 0 3px rgba(138,106,52,.35);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--radius-sm:8px;--radius-md:13px;--radius-lg:20px;--radius-full:999px;--shadow-sm:0 4px 14px rgba(36,28,20,.05);--shadow-md:0 16px 42px rgba(36,28,20,.07);--shadow-lg:0 24px 60px rgba(36,28,20,.1);--touch-min:44px;--font-size-xs:11px;--font-size-sm:13px;--font-size-base:15px;--font-size-lg:18px;--font-size-xl:22px;--font-size-2xl:30px}body,html{margin:0;min-height:100%;max-width:100%;overflow-x:hidden;background:var(--cream);color:var(--warm-black)}body{font-family:var(--font-plex),var(--font-plex-thai),Inter,"Segoe UI Variable","Segoe UI","Noto Sans Thai",Tahoma,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--font-size-base);line-height:1.55}button,input,select,textarea{font:inherit}button{cursor:pointer}[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:var(--focus-ring)}.navItem,.portalTab,.primaryButton,.secondaryButton,.tabStripItem,button{min-height:var(--touch-min)}.primaryButton.small,.secondaryButton.small,button.small{min-height:38px}.loginPage{min-height:100vh;width:100%;display:grid;grid-template-rows:1fr auto;place-items:center;padding:24px;position:relative;background:radial-gradient(circle at 50% 0,#fff 0,#f8f6f2 45%,#efe6d6 100%)}.loginPage:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(23,22,21,.05) 1px,transparent 0);background-size:22px 22px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 35%,#000 0,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 35%,#000 0,transparent 75%)}.loginCard{position:relative;width:min(430px,100%);background:#fff;padding:42px;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow-sm),var(--shadow-lg)}.brandWord{font-size:48px;font-weight:800;letter-spacing:-3px;line-height:1;position:relative;display:inline-block}.brandWord:after{content:"";display:block;width:46px;height:3px;margin-top:12px;border-radius:999px;background:var(--accent)}.brandWord sup{display:inline-grid;place-items:center;width:28px;height:28px;border:2px solid;border-radius:50%;font-size:15px;letter-spacing:0;vertical-align:top;margin-left:5px}.brandWord.light{color:#fff;font-size:34px}.brandWord.light:after{background:rgba(255,255,255,.55)}.eyebrow{font-size:12px;letter-spacing:.16em;color:var(--accent-strong);margin:18px 0 30px;font-weight:650}.loginCard h1{font-size:30px;margin:0 0 6px}.muted{color:var(--muted);margin:0 0 26px}.loginCard label{display:block;font-size:13px;font-weight:650;margin:15px 0 7px}.loginCard input{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px 14px;background:#fdfcfb}.primaryButton{width:100%;margin-top:22px;border:0;border-radius:13px;padding:14px;background:var(--warm-black);color:#fff;font-weight:750}.mockNote{font-size:12px;color:var(--muted);text-align:center;margin:14px 0 0}.appShell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--warm-black);padding:24px 16px;display:flex;flex-direction:column;color:#fff}.sidebarBrand{padding:4px 10px 24px}.sidebarBrand span{display:block;color:#bdb6ae;font-size:11px;letter-spacing:.15em;margin-top:8px}.sidebar nav{display:grid;grid-gap:4px;gap:4px}.logoutButton,.navItem{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;color:#d7d1ca;padding:11px 12px;border-radius:12px;text-align:left}.navItem.active,.navItem:hover{background:#302e2b;color:#fff}.navItem.active{box-shadow:inset 3px 0 0 var(--accent)}.logoutButton{margin-top:auto;color:#c9c2ba}.closeSidebar{display:none}.content{padding:26px 30px 70px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.topbar h1{margin:0;font-size:30px;letter-spacing:-.03em}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.topbarActions{display:flex;align-items:center;gap:10px}.iconButton{display:grid;place-items:center;border:1px solid var(--line);background:#fff;width:40px;height:40px;border-radius:50%}.roleBadge{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 13px;font-size:12px;font-weight:750}.menuButton{display:none}.kpiGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:15px;gap:15px}.kpiCard,.panel{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm)}.kpiCard{padding:20px}.kpiCard span{display:block;color:var(--muted);font-size:13px}.kpiCard strong{display:block;font-size:30px;margin:7px 0 4px;letter-spacing:-.04em}.kpiCard small{color:var(--success)}.dangerText{color:var(--danger)!important}.dashboardGrid{display:grid;grid-template-columns:1.25fr .75fr;grid-gap:15px;gap:15px;margin-top:15px}.panel{padding:20px}.panelHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panelHeader h2{font-size:17px;margin:0}.quickGrid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.quickAction{border:1px solid var(--line);background:#fff;border-radius:15px;padding:16px;text-align:left;display:grid;grid-gap:7px;gap:7px;color:var(--warm-black)}.quickAction:hover{background:var(--ivory)}.quickAction b{font-size:14px}.quickAction span{font-size:12px;color:var(--muted)}.attentionRow{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.tablePanel{margin-top:15px}.textButton{border:0;background:transparent;font-weight:700}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:860px}td,th{padding:13px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}th{color:var(--muted);font-weight:650}.mono{font-family:Consolas,monospace}.status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:750}.paid,.ready{background:#e4f2eb;color:#176746}.partial,.processing{background:#fff2dc;color:#935a08}.unpaid{background:#f9e5e5;color:#963434}.appFooter{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.6}.appFooter p{margin:0}@media(max-width:1050px){.kpiGrid{grid-template-columns:repeat(2,1fr)}.dashboardGrid{grid-template-columns:1fr}}@media(max-width:760px){.appShell{display:block}.sidebar{position:fixed;left:0;top:0;z-index:30;width:270px;transform:translateX(-105%);transition:.2s}.sidebar.open{transform:translateX(0)}.closeSidebar{display:grid;place-items:center;position:absolute;right:12px;top:12px;background:#302e2b;color:#fff;border:0;width:34px;height:34px;border-radius:50%}.content{padding:18px 14px 45px}.menuButton{display:grid;place-items:center;border:1px solid var(--line);background:#fff;width:42px;height:42px;border-radius:12px}.roleBadge{display:none}.kpiGrid{grid-template-columns:1fr 1fr;gap:10px}.quickGrid{grid-template-columns:1fr}.loginCard{padding:30px 24px}}@media(max-width:480px){.kpiGrid{grid-template-columns:1fr}}.pageHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.pageHeader h1{margin:0;font-size:26px;letter-spacing:-.02em}.searchBar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.searchBar input{flex:1 1;min-width:200px;padding:12px 14px}.searchBar input,.secondaryButton{border:1px solid var(--line);border-radius:13px;background:#fff}.secondaryButton{padding:12px 16px;font-weight:700;color:var(--warm-black);cursor:pointer}.primaryButton.small,.secondaryButton.small{padding:9px 14px;font-size:13px}.formGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px 18px;gap:14px 18px;margin-top:10px}.formField{display:flex;flex-direction:column;gap:6px}.formField.span2{grid-column:1/-1}.formField label{font-size:13px;font-weight:650}.formField input,.formField select,.formField textarea{border:1px solid var(--line);border-radius:13px;padding:11px 13px;background:#fdfcfb;font:inherit;width:100%}.formActions{display:flex;gap:10px;margin-top:22px}.pill{display:inline-block;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:750}.pill.active{background:#e4f2eb;color:#176746}.pill.inactive{background:#f2efea;color:var(--muted)}.emptyState{padding:42px 20px;text-align:center;color:var(--muted);background:var(--surface-sunken);border-radius:var(--radius-lg)}.emptyState.dangerText{background:var(--danger-bg)}.loadMoreRow{text-align:center;padding:14px}.linkRow{color:var(--warm-black);text-decoration:none;font-weight:650}.linkRow:hover{text-decoration:underline}.backLink{display:inline-block;margin-bottom:14px;color:var(--muted);font-size:13px;text-decoration:none}.backLink:hover{text-decoration:underline}@media(max-width:640px){.formGrid{grid-template-columns:1fr}}.portalShell{min-height:100vh;max-width:480px;margin:0 auto;padding:20px 16px 60px;gap:16px;background:linear-gradient(180deg,var(--cream) 0,var(--ivory) 100%)}.portalHeader,.portalShell{display:flex;flex-direction:column}.portalHeader{gap:4px;padding:20px;background:linear-gradient(135deg,var(--warm-black) 0,var(--accent-strong) 145%);color:#fff;border-radius:22px}.portalHeader .portalName{font-size:20px;font-weight:750}.portalHeader .portalLocation{font-size:13px;color:#d7d1ca}.portalTabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.portalTab{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;color:var(--muted)}.portalTab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.portalCard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm)}.portalCard .portalCardTitle{font-weight:700;font-size:15px}.portalCard .portalCardMeta{font-size:12px;color:var(--muted)}.portalCard .portalCardAmount{font-size:18px;font-weight:750}.portalCheckbox{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5}.portalCheckbox input{margin-top:3px}.portalStepTitle{font-size:18px;font-weight:750;margin:0 0 4px}.portalMuted{color:var(--muted);font-size:13px}.status.success{background:var(--success-bg);color:#176746}.status.warning{background:var(--warning-bg);color:var(--warning)}.status.danger{background:var(--danger-bg);color:#963434}.status.neutral{background:var(--neutral-bg);color:var(--muted)}.status.info{background:var(--info-bg);color:var(--info)}.filterBar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.filterBar input,.filterBar select{border:1px solid var(--line);border-radius:13px;padding:10px 13px;background:#fff;font:inherit}.permissionDenied{padding:40px 20px;text-align:center;color:var(--danger);background:var(--danger-bg);border-radius:var(--radius-lg)}.tabStrip{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;margin-bottom:16px}.tabStripItem{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 16px;font-size:13px;font-weight:700;color:var(--muted)}.tabStripItem.active{background:var(--warm-black);color:#fff;border-color:var(--warm-black)}.summaryRow{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.summaryRow:last-child{border-bottom:0}.summaryRow b{font-weight:750}.branchSelect{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:700;color:var(--warm-black)}@media(max-width:760px){.filterBar{flex-direction:column;align-items:stretch}.filterBar input,.filterBar select{width:100%}}.wizardSteps{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.wizardStep{display:flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;background:var(--neutral-bg);color:var(--muted);font-size:13px;font-weight:700}.wizardStep b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--muted);font-size:12px}.wizardStep.active{background:var(--warm-black);color:#fff}.wizardStep.active b{background:var(--accent);color:#fff}.wizardStep.done{background:var(--success-bg);color:#176746}.wizardStep.done b{background:#176746;color:#fff}.customerSummaryHeader{position:-webkit-sticky;position:sticky;top:8px;z-index:5;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow-sm);margin-bottom:16px}.customerSummaryTop{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.customerSummaryName{font-size:17px;font-weight:750}.customerSummaryMeta{font-size:12.5px;color:var(--muted);margin-top:2px}.customerStatRow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.statChip{display:flex;flex-direction:column;gap:1px;border:1px solid var(--line);border-radius:var(--radius-md);padding:7px 12px;font-size:11px;color:var(--muted);min-width:92px}.statChip b{font-size:14px;color:var(--warm-black)}.statChip.warn b{color:var(--danger)}.statChip.good b{color:var(--success)}.customerNoteBanner{margin-top:10px;padding:9px 12px;background:var(--warning-bg);color:var(--warning);border-radius:var(--radius-sm);font-size:12.5px}.chargingModeGrid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:18px}.chargingModeCard{border:2px solid var(--line);background:#fff;border-radius:var(--radius-lg);padding:16px;text-align:left;display:flex;flex-direction:column;gap:4px;min-height:var(--touch-min)}.chargingModeCard b{font-size:15px}.chargingModeCard span{font-size:12px;color:var(--muted)}.chargingModeCard.active{border-color:var(--accent);background:var(--info-bg)}@media(max-width:640px){.chargingModeGrid{grid-template-columns:1fr}}.serviceQuickGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px;margin-bottom:16px}.serviceQuickButton{border:1px solid var(--line);background:#fff;border-radius:var(--radius-md);padding:14px 12px;text-align:left;display:flex;flex-direction:column;gap:6px;min-height:64px}.serviceQuickButton:hover{background:var(--ivory)}.serviceQuickButton b{font-size:13.5px;line-height:1.3}.serviceQuickButton span{font-size:12px;color:var(--muted)}.qtyStepper{display:inline-flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:999px;overflow:hidden}.qtyStepper button{width:36px;height:36px;border:0;background:#fff;font-size:18px;font-weight:700;display:grid;place-items:center;min-height:0}.qtyStepper button:hover{background:var(--ivory)}.qtyStepper span{min-width:34px;text-align:center;font-weight:750;font-size:14px}.lineItemCard{border:1px solid var(--line);border-radius:var(--radius-md);padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.lineItemMain{display:flex;flex-direction:column;gap:5px}.lineItemName{font-weight:700;font-size:14px}.lineItemBadges{display:flex;gap:6px;flex-wrap:wrap}.packageRightsBadge{background:var(--info-bg);color:var(--info);font-weight:700}.packageRightsBadge,.pieceworkPendingBadge{border-radius:999px;padding:3px 9px;font-size:11px}.pieceworkPendingBadge{background:var(--neutral-bg);color:var(--muted)}.lineItemAmount{font-weight:750;font-size:15px;white-space:nowrap}.reviewSection{border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px;margin-bottom:12px}.reviewSectionHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.reviewSectionHeader h3{margin:0;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}