@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) 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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-thai-thai-400-normal-Bt1rR4gi.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-thai-400-normal-DKc8V4lk.woff) format("woff")}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-thai-thai-500-normal-BrMc1XKn.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-thai-500-normal-BoHUoq0p.woff) format("woff")}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-thai-thai-600-normal-DvfsyWAn.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-thai-600-normal-BOwfviun.woff) format("woff")}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-thai-thai-700-normal-0moayseG.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-thai-700-normal-Bo0ALcDh.woff) format("woff")}:root{color-scheme:light;--page: #f4f4f1;--surface: #fcfcfb;--surface-2: #f3f2ee;--surface-3: #e9e8e3;--raised: #ffffff;--seg-on: #ffffff;--border: rgba(17, 17, 15, .09);--border-strong: rgba(17, 17, 15, .17);--text: #111110;--text-2: #52514e;--muted: #6b6964;--grid: #e5e4de;--accent: #2563c9;--accent-hover: #1d55b0;--accent-ink: #ffffff;--accent-text: #1f5fc0;--accent-soft: rgba(37, 99, 201, .1);--focus: #2563c9;--good: #0a7a3b;--good-soft: rgba(10, 122, 59, .1);--warn: #8a5a00;--warn-soft: rgba(237, 161, 0, .16);--bad: #b42318;--bad-soft: rgba(208, 59, 59, .1);--info: #1f5fc0;--info-soft: rgba(37, 99, 201, .1);--ai: #5b4bd1;--ai-soft: rgba(98, 80, 214, .1);--overlay: rgba(15, 15, 14, .42);--font: "Inter Variable", "IBM Plex Sans Thai", system-ui, -apple-system, "Segoe UI", "Noto Sans Thai", sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 30px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s8: 32px;--s10: 40px;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(16, 16, 14, .05);--shadow-sm: 0 1px 2px rgba(16, 16, 14, .06), 0 1px 3px rgba(16, 16, 14, .04);--shadow-md: 0 4px 12px rgba(16, 16, 14, .08), 0 1px 3px rgba(16, 16, 14, .05);--shadow-lg: 0 16px 48px rgba(16, 16, 14, .16), 0 2px 8px rgba(16, 16, 14, .06);--ease: cubic-bezier(.2, .8, .2, 1);--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--side-w: 248px;--side-w-collapsed: 64px;--topbar-h: 56px;--tabbar-h: 60px;--control-h: 36px;--tap: 44px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}:root[data-theme=dark]{color-scheme:dark;--page: #0e0e0e;--surface: #1a1a19;--surface-2: #232321;--surface-3: #2c2c2a;--raised: #222220;--seg-on: #3d3d3a;--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .17);--text: #f0efec;--text-2: #c3c2b7;--muted: #9a988f;--grid: #2c2c2a;--accent: #2c6fd1;--accent-hover: #3a7de0;--accent-text: #6fa8f0;--accent-soft: rgba(57, 135, 229, .16);--focus: #6fa8f0;--good: #3ccf6e;--good-soft: rgba(12, 163, 12, .16);--warn: #f2b84b;--warn-soft: rgba(250, 178, 25, .14);--bad: #f07a7a;--bad-soft: rgba(230, 103, 103, .16);--info: #6fa8f0;--info-soft: rgba(57, 135, 229, .16);--ai: #a79cf0;--ai-soft: rgba(144, 133, 233, .16);--overlay: rgba(0, 0, 0, .6);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 16px rgba(0, 0, 0, .45);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .6)}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--page: #0e0e0e;--surface: #1a1a19;--surface-2: #232321;--surface-3: #2c2c2a;--raised: #222220;--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .17);--text: #f0efec;--text-2: #c3c2b7;--muted: #9a988f;--grid: #2c2c2a;--accent: #2c6fd1;--accent-text: #6fa8f0;--focus: #6fa8f0}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;font:400 var(--fs-md)/1.55 var(--font);background:var(--page);color:var(--text);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh}body.no-scroll{overflow:hidden}:lang(th) body,body:lang(th){line-height:1.65}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}h1,h2,h3,h4{color:var(--text);letter-spacing:-.01em;line-height:1.3}h1{font-size:var(--fs-2xl);font-weight:650;margin:0 0 var(--s4)}h2{font-size:var(--fs-lg);font-weight:600;margin:0 0 var(--s3)}h3{font-size:var(--fs-md);font-weight:600;margin:0 0 var(--s2)}p{margin:0 0 var(--s3)}hr{border:0;border-top:1px solid var(--border);margin:var(--s2) 0}pre,code{font-family:var(--font-mono);font-size:var(--fs-sm)}pre{overflow:auto;background:var(--surface-2);padding:var(--s3);border-radius:var(--radius)}img,svg{vertical-align:middle}::selection{background:var(--accent-soft)}.icon{flex:none}.boot{min-height:100dvh;background:var(--page)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}.skip{position:fixed;left:var(--s3);top:-48px;z-index:100;background:var(--accent);color:var(--accent-ink);padding:var(--s2) var(--s3);border-radius:var(--radius);transition:top var(--dur-1)}.skip:focus{top:calc(var(--s3) + var(--safe-top))}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.num,td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:"tnum","cv11"}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.row{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}.row.nowrap{flex-wrap:nowrap}.stack{display:flex;flex-direction:column;gap:var(--s3)}.grow{flex:1 1 auto;min-width:0}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid{display:grid;gap:var(--s4)}.grid>*{min-width:0}.grid.cols-2{grid-template-columns:repeat(auto-fill,minmax(min(460px,100%),1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))}.form-grid{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr))}.kbd{display:inline-block;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;padding:0 5px;font:500 11px/18px var(--font);color:var(--muted);background:var(--surface)}.divider{height:1px;background:var(--border);margin:var(--s3) 0}@media(min-width:861px){.mobile-only{display:none!important}}.m-only{display:none}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--control-h);padding:0 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--raised);color:var(--text);font-weight:500;font-size:var(--fs-md);line-height:1.2;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-xs);transition:background var(--dur-1),border-color var(--dur-1),box-shadow var(--dur-1),transform var(--dur-1);-webkit-user-select:none;user-select:none;text-decoration:none}button:hover,.btn:hover{background:var(--surface-2);text-decoration:none}button:active:not(:disabled){transform:translateY(1px)}button.primary,.btn.primary{background:var(--accent);border-color:transparent;color:var(--accent-ink);box-shadow:0 1px 2px #2563c94d,inset 0 1px #ffffff1f}button.primary:hover,.btn.primary:hover{background:var(--accent-hover)}button.ghost,.btn.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--text-2)}button.ghost:hover{background:var(--surface-2);color:var(--text)}button.danger,.btn.danger{color:var(--bad)}button.danger:hover{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 35%,transparent)}button.danger.solid{background:var(--bad);color:#fff;border-color:transparent}button:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}button.small,button.sm{min-height:28px;padding:0 10px;font-size:var(--fs-sm);border-radius:var(--radius-sm)}button.block{width:100%}button.lg{min-height:var(--tap);padding:0 18px;font-size:var(--fs-lg)}.icon-btn{padding:0;width:var(--control-h);min-width:var(--control-h)}.icon-btn.sm{width:28px;min-width:28px;min-height:28px}a>button{pointer-events:auto}.btn-group{display:inline-flex;gap:var(--s2);flex-wrap:wrap}input,select,textarea{min-height:var(--control-h);padding:0 10px;min-width:0;max-width:100%;background:var(--raised);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);transition:border-color var(--dur-1),box-shadow var(--dur-1)}textarea{padding:8px 10px;min-height:80px;resize:vertical;line-height:1.5;width:100%}select{padding-right:30px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23898781' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}select[multiple]{background-image:none;padding:4px;height:auto}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--text) 28%,transparent)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;padding:0;accent-color:var(--accent);cursor:pointer;box-shadow:none}input[type=date],input[type=month]{min-width:0}input.num{text-align:right}input[type=file]{padding:6px}label{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);font-weight:500;color:var(--text-2);min-width:0}label>input:not([type=checkbox]):not([type=radio]),label>select,label>textarea{width:100%;font-weight:400;color:var(--text);font-size:var(--fs-md)}label.row,label:has(>input[type=checkbox]),label:has(>input[type=radio]){flex-direction:row;align-items:center;gap:var(--s2);cursor:pointer}label>br{display:none}.field-hint{font-size:var(--fs-xs);color:var(--muted);font-weight:400}.search-input{position:relative;display:flex;align-items:center;min-width:0}.search-input .icon{position:absolute;left:10px;color:var(--muted);pointer-events:none}.search-input input{padding-left:34px;width:100%}.seg{display:inline-flex;padding:2px;gap:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex:none}.seg button{border:0;box-shadow:none;background:transparent;min-height:30px;padding:0 12px;border-radius:6px;color:var(--text-2);font-weight:500}.seg button:hover{color:var(--text);background:transparent}.seg button.on{background:var(--seg-on);color:var(--text);box-shadow:var(--shadow-sm)}.seg.sm button{min-height:26px;padding:0 9px;font-size:var(--fs-sm)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--s5);box-shadow:var(--shadow-xs);min-width:0}.card>h2:first-child,.card>h3:first-child{margin-top:0}.card.flush{padding:0;overflow:hidden}.card.row{padding:var(--s4) var(--s5)}.card-head{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s3)}.card-head h2,.card-head h3{margin:0;flex:1}.section-title{font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:var(--s2) 0}:lang(th) .section-title{letter-spacing:0;text-transform:none;font-size:var(--fs-sm)}details.card>summary{cursor:pointer;font-weight:500}.page-header{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s5);flex-wrap:wrap}.page-title{flex:1 1 260px;min-width:0}.page-title h1{margin:0;font-size:var(--fs-2xl);display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.page-sub{color:var(--muted);font-size:var(--fs-sm);margin-top:2px}.page-actions{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}.page-icon{width:40px;height:40px;border-radius:var(--radius);display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text);flex:none}.page-header .back{margin-left:-6px}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 9px;min-height:22px;border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:500;line-height:1.4;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);white-space:nowrap;vertical-align:middle}.badge i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge.posted,.badge.approved,.badge.open,.badge.cleared,.badge.passed{color:var(--good);background:var(--good-soft);border-color:transparent}.badge.voided,.badge.bounced,.badge.cancelled{color:var(--bad);background:var(--bad-soft);border-color:transparent}.badge.voided{text-decoration:line-through}.badge.pending_approval,.badge.soft_closed,.badge.on_hand{color:var(--warn);background:var(--warn-soft);border-color:transparent}.badge.draft,.badge.closed{color:var(--text-2)}.badge.deposited,.badge.issued{color:var(--info);background:var(--info-soft);border-color:transparent}.badge.ai{color:var(--ai);background:var(--ai-soft);border-color:transparent}.chip{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);padding:2px 10px;min-height:26px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);margin:2px;color:var(--text-2)}button.chip{min-height:32px;padding:0 14px;margin:0;box-shadow:none;font-weight:500}button.chip.on,button.chip[aria-pressed=true]{background:var(--text);color:var(--page);border-color:transparent}.chip-row{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}.chip .count{font-variant-numeric:tabular-nums;opacity:.7}.error,.notice,.info-box{display:flex;gap:var(--s2);align-items:flex-start;border-radius:var(--radius);padding:10px 14px;margin:var(--s2) 0;font-size:var(--fs-md);border:1px solid transparent}.error{background:var(--bad-soft);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 20%,transparent)}.notice{background:var(--warn-soft);color:var(--text);border-color:color-mix(in srgb,var(--warn) 25%,transparent)}.info-box{background:var(--info-soft);color:var(--text)}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);max-width:100%}.card .table-wrap{border-radius:var(--radius)}table{border-collapse:collapse}table.data{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);font-size:var(--fs-md);border:1px solid var(--border);border-radius:var(--radius-lg)}.table-wrap>table.data,.card table.data{border:0;border-radius:0}.card>table.data,.card>.table-wrap{margin-top:var(--s2)}table.data th,table.data td{padding:10px 12px;border-bottom:1px solid var(--grid);text-align:left;vertical-align:middle}table.data th{font-size:var(--fs-xs);color:var(--muted);font-weight:600;letter-spacing:.02em;background:var(--surface-2);position:sticky;top:0;z-index:1;white-space:nowrap}table.data thead th:first-child{border-top-left-radius:inherit}table.data thead th:last-child{border-top-right-radius:inherit}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr{transition:background var(--dur-1)}table.data tbody tr:hover td{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}table.data tr.click{cursor:pointer}table.data tr.click:hover td{background:var(--surface-2)}table.data td.num,table.data th.num{text-align:right;white-space:nowrap}table.data tfoot td{font-weight:650;border-top:1px solid var(--border-strong);border-bottom:0;background:var(--surface-2)}table.data td .muted{font-size:var(--fs-sm)}table.lines td{padding:6px;vertical-align:top}table.lines input,table.lines select{width:100%}table.lines td.line-no{color:var(--muted);padding-top:14px;width:36px}.statement td{padding:8px 12px}.statement tr.sec td{font-weight:600;background:var(--surface-2)}.statement td.indent{padding-left:28px}.totals{margin-left:auto;min-width:min(340px,100%);border-collapse:collapse}.totals td{padding:6px 0 6px 16px}.totals td:first-child{padding-left:0;color:var(--text-2)}.totals tr.grand td{font-size:var(--fs-lg);font-weight:700;color:var(--text);border-top:1px solid var(--border-strong);padding-top:10px}.totals input{width:90px;min-height:30px;margin-left:8px}.skeleton{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}.skeleton-lines{display:grid;gap:10px;padding:var(--s2) 0}.skeleton-row td{padding:14px 12px}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s2);padding:var(--s10) var(--s4);color:var(--text-2)}.empty-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--muted);margin-bottom:var(--s1)}.empty-title{font-weight:600;color:var(--text)}td .empty{padding:var(--s8) var(--s4)}.menu-wrap{position:relative;min-width:0}.menu-trigger{border:0;background:transparent;box-shadow:none;padding:0;min-height:0;width:100%;justify-content:flex-start;border-radius:var(--radius)}.menu-trigger:hover{background:transparent}.menu{position:absolute;top:calc(100% + 6px);min-width:240px;max-width:min(340px,calc(100vw - 24px));z-index:40;padding:6px;background:var(--raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:pop var(--dur-2) var(--ease)}.menu.start{left:0}.menu.end{right:0}.menu button{width:100%;justify-content:flex-start;border:0;box-shadow:none;background:transparent;min-height:36px;padding:0 10px;gap:10px;font-weight:400;text-align:left;white-space:normal}.menu button:hover{background:var(--surface-2)}.menu-label{font-size:var(--fs-xs);color:var(--muted);padding:6px 10px 4px;font-weight:500}.menu-user{display:flex;flex-direction:column;padding:8px 10px}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.avatar{width:32px;height:32px;border-radius:50%;display:inline-grid;place-items:center;flex:none;font-size:12px;font-weight:650;letter-spacing:.02em;background:linear-gradient(135deg,#6a8dff,#8a5cf6);color:#fff}.avatar.sq{border-radius:var(--radius);background:linear-gradient(135deg,#1f9d6b,#127a8a)}.avatar.sm{width:24px;height:24px;font-size:10px;border-radius:6px}.sheet-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--overlay);display:grid;place-items:center;padding:var(--s4);animation:fade var(--dur-2) var(--ease)}.sheet{width:min(560px,100%);max-height:min(86dvh,900px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:pop var(--dur-2) var(--ease);outline:none;overflow:hidden}.sheet.wide{width:min(880px,100%)}.sheet-bg.side{place-items:stretch end;padding:0}.sheet.side{width:min(460px,100vw);max-height:none;height:100dvh;border-radius:0;border-width:0 0 0 1px;animation:slide-left var(--dur-3) var(--ease)}.sheet-grip{display:none}.sheet-head{display:flex;align-items:center;gap:var(--s2);padding:var(--s4) var(--s4) var(--s3) var(--s5);border-bottom:1px solid var(--border)}.sheet-head h2{margin:0;flex:1;font-size:var(--fs-lg)}.sheet-body{padding:var(--s5);overflow:auto;flex:1;overscroll-behavior:contain}.sheet-foot{display:flex;gap:var(--s2);justify-content:flex-end;padding:var(--s3) var(--s5);border-top:1px solid var(--border);padding-bottom:calc(var(--s3) + var(--safe-bottom));background:var(--surface)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide-left{0%{transform:translate(32px);opacity:0}to{transform:none;opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:none}}.toasts{position:fixed;right:calc(var(--s5) + var(--safe-right));bottom:calc(var(--s5) + var(--safe-bottom));z-index:80;display:flex;flex-direction:column;gap:var(--s2);width:min(380px,calc(100vw - 32px));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:10px 8px 10px 14px;background:var(--text);color:var(--page);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:pop var(--dur-2) var(--ease);font-size:var(--fs-md)}.toast .icon-btn{color:inherit;opacity:.7;min-height:28px;width:28px;min-width:28px}.toast.success .icon:first-child{color:#4ade80}.toast.error .icon:first-child{color:#f87171}:root[data-theme=dark] .toast.success .icon:first-child{color:#15803d}:root[data-theme=dark] .toast.error .icon:first-child{color:#b91c1c}.app{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100dvh}.app.collapsed{--side-w: var(--side-w-collapsed)}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:var(--s2);padding:var(--s3) var(--s3) var(--s4);padding-left:calc(var(--s3) + var(--safe-left));background:var(--surface);border-right:1px solid var(--border);overflow:hidden;z-index:20}.side-top{display:flex;align-items:center;gap:var(--s2);min-height:40px}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:750;font-size:18px;letter-spacing:-.03em;color:var(--text);padding:0 4px;flex:1;min-width:0}.brand:hover{text-decoration:none}.brand-word span{color:var(--accent-text)}.brand-mark{border-radius:8px;box-shadow:0 2px 6px #1d4ed84d;flex:none}.collapse-btn{color:var(--muted)}.company-menu .menu-trigger{padding:6px;border:1px solid var(--border);background:var(--surface-2)}.company-menu .menu-trigger:hover{border-color:var(--border-strong);background:var(--surface-2)}.company{display:flex;align-items:center;gap:10px;width:100%;min-width:0;text-align:left}.company-text{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.3}.company-text b{font-weight:600;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-text .small{font-size:var(--fs-xs)}.side-nav{flex:1;overflow-y:auto;overflow-x:hidden;margin:0 calc(-1 * var(--s2));padding:0 var(--s2) var(--s4);scrollbar-width:thin}.nav-group{padding-top:var(--s2)}.group-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:var(--s3) 10px 6px;white-space:nowrap;overflow:hidden}:lang(th) .group-label{text-transform:none;letter-spacing:0;font-size:var(--fs-xs)}.nav-item{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:var(--radius);color:var(--text-2);font-weight:500;white-space:nowrap;position:relative;transition:background var(--dur-1),color var(--dur-1)}.nav-item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-item.active{background:var(--accent-soft);color:var(--accent-text)}.nav-item.active:before{content:"";position:absolute;left:-8px;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--accent)}.nav-item .icon{opacity:.9}.label{min-width:0;overflow:hidden;text-overflow:ellipsis}.app.collapsed .sidebar .label,.app.collapsed .company-text,.app.collapsed .company .chev,.app.collapsed .brand-word{display:none}.app.collapsed .side-top{flex-direction:column;gap:var(--s2)}.app.collapsed .brand{flex:none;padding:0}.app.collapsed .group-label{font-size:0;padding:0;height:1px;margin:var(--s2) 10px;background:var(--border)}.app.collapsed .nav-item{justify-content:center;padding:0}.app.collapsed .company-menu .menu-trigger{justify-content:center;padding:4px}.app.collapsed .company{justify-content:center}.app-main{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:var(--s2);min-height:var(--topbar-h);padding:calc(var(--s2) + var(--safe-top)) calc(var(--s6) + var(--safe-right)) var(--s2) var(--s6);background:color-mix(in srgb,var(--page) 82%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--border)}.topbar .prefs{display:flex;align-items:center;gap:var(--s2)}.search-trigger{justify-content:flex-start;width:min(420px,40vw);color:var(--muted);font-weight:400;background:var(--surface)}.search-trigger:hover{color:var(--text-2)}.user-menu .menu-trigger{width:auto;border-radius:50%}.offline-bar{display:flex;align-items:center;justify-content:center;gap:var(--s2);padding:6px;font-size:var(--fs-sm);background:var(--warn-soft);color:var(--text)}.content{flex:1;width:100%;max-width:1440px;padding:var(--s6) var(--s8) var(--s10);padding-right:calc(var(--s8) + var(--safe-right));outline:none}.tabbar,.fab,.action-bar{display:none}.more-group{margin-bottom:var(--s4)}.more-group .group-label{padding-left:0}.more-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--s2)}.more-item,.quick-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:var(--s3) var(--s2);min-height:76px;border-radius:var(--radius-lg);background:var(--surface-2);color:var(--text);font-size:var(--fs-sm);text-align:center;line-height:1.25}.more-item:hover,.quick-tile:hover{text-decoration:none;background:var(--surface-3)}.more-item.active{background:var(--accent-soft);color:var(--accent-text)}.more-item .icon,.quick-tile .icon{color:var(--accent-text)}.more-quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--s2);margin-bottom:var(--s4)}.palette-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:grid;place-items:start center;padding-top:12vh;z-index:70;animation:fade var(--dur-2) var(--ease)}.palette{width:min(640px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:pop var(--dur-2) var(--ease)}.palette-input{display:flex;align-items:center;gap:var(--s2);padding:0 var(--s3) 0 var(--s4);border-bottom:1px solid var(--border);color:var(--muted)}.palette-input input{flex:1;border:0;box-shadow:none!important;background:transparent;min-height:54px;font-size:var(--fs-lg);padding:0 4px}.palette-close{display:none}.palette ul{list-style:none;margin:0;padding:6px;max-height:56vh;overflow:auto;overscroll-behavior:contain}.palette li{padding:0 10px;min-height:40px;border-radius:var(--radius);display:flex;gap:10px;align-items:center;cursor:pointer}.palette li.sel{background:var(--surface-2)}.pal-icon{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2);flex:none}.palette li.sel .pal-icon{background:var(--raised)}.palette li.ai .pal-icon{background:var(--ai-soft);color:var(--ai)}.palette-foot{display:flex;gap:6px;padding:8px 14px;border-top:1px solid var(--border)}.auth{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--page)}.auth-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:var(--s8);padding:var(--s10) clamp(32px,5vw,72px);color:#eef3ff;background:radial-gradient(1200px 600px at 10% -10%,#3b82f6 0%,transparent 60%),radial-gradient(900px 500px at 100% 110%,#7c3aed 0%,transparent 55%),#0b1533}.auth-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 85%);mask-image:linear-gradient(to bottom,#000,transparent 85%);pointer-events:none}.auth-hero>*{position:relative;z-index:1}.auth .brand{flex:none}.auth-hero .brand{color:#fff;font-size:22px}.auth-panel .auth-top .brand{display:none}.auth-hero .brand-word span{color:#93c5fd}.auth-hero h2{color:#fff;font-size:clamp(28px,3.2vw,40px);line-height:1.2;font-weight:700;letter-spacing:-.02em;margin:0 0 var(--s4);max-width:18ch}.auth-hero ul{list-style:none;padding:0;margin:0;display:grid;gap:var(--s3)}.auth-hero li{display:flex;gap:var(--s3);align-items:center;color:#d6e2ff;font-size:var(--fs-lg)}.auth-hero li .icon{padding:6px;width:32px;height:32px;border-radius:8px;background:#ffffff1a;color:#fff}.auth-hero .preview{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);max-width:520px}.auth-hero .preview div{background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);padding:var(--s3) var(--s4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.auth-hero .preview b{display:block;font-size:20px;color:#fff;font-variant-numeric:tabular-nums}.auth-hero .preview span{font-size:var(--fs-xs);color:#b8c7ee}.auth-panel{display:flex;flex-direction:column;padding:var(--s6) clamp(20px,5vw,64px);padding-top:calc(var(--s6) + var(--safe-top));padding-bottom:calc(var(--s6) + var(--safe-bottom))}.auth-panel .auth-top{display:flex;justify-content:space-between;align-items:center;gap:var(--s3)}.auth-form{width:min(400px,100%);margin:auto;display:grid;gap:var(--s4);padding:var(--s8) 0}.auth-form h1{margin:0;font-size:var(--fs-3xl);letter-spacing:-.02em}.auth-form input,.auth-form button.primary{min-height:46px;font-size:var(--fs-lg)}.auth-foot{text-align:center;color:var(--muted);font-size:var(--fs-sm)}.link-btn{background:none;border:0;box-shadow:none;padding:0;min-height:0;color:var(--accent-text);font-weight:500}.link-btn:hover{background:none;text-decoration:underline}.onboard{min-height:100dvh;display:grid;place-items:center;padding:var(--s6) var(--s4);padding-top:calc(var(--s6) + var(--safe-top));padding-bottom:calc(var(--s6) + var(--safe-bottom));background:radial-gradient(800px 400px at 50% -10%,var(--accent-soft),transparent 70%),var(--page)}.onboard form{width:min(640px,100%);display:grid;gap:var(--s5)}.onboard fieldset{border:0;padding:0;margin:0;display:grid;gap:var(--s4)}.onboard legend{font-weight:600;font-size:var(--fs-lg);margin-bottom:var(--s3);padding:0;color:var(--text)}.kpi-grid{display:grid;gap:var(--s4);grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:var(--s4)}.chart-grid{display:grid;gap:var(--s4);grid-template-columns:repeat(2,minmax(0,1fr))}.chart-card{display:flex;flex-direction:column;min-height:340px;padding:var(--s4) var(--s5) var(--s3)}.chart-card header{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s2);min-height:28px}.chart-card header h3{margin:0;flex:1;font-size:var(--fs-md);font-weight:600;color:var(--text)}.chart-box{flex:1;min-height:240px}.kpi-card{min-height:0;padding:var(--s4) var(--s5)}.kpi-card header h3{font-size:var(--fs-sm);font-weight:500;color:var(--text-2)}.kpi .value{font-size:clamp(22px,2.2vw,30px);font-weight:680;letter-spacing:-.02em;line-height:1.15;text-align:left;overflow-wrap:anywhere}.kpi .delta{font-size:var(--fs-sm);margin-top:var(--s2);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.delta-pill{display:inline-flex;align-items:center;gap:2px;padding:1px 7px 1px 5px;border-radius:var(--radius-full);font-weight:600;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.delta-pill.up{color:var(--good);background:var(--good-soft)}.delta-pill.down{color:var(--bad);background:var(--bad-soft)}.toolbar{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;margin-bottom:var(--s4)}.toolbar .search-input{flex:0 1 300px}.doc-no{font-weight:600;font-variant-numeric:tabular-nums}.doc-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,100%),1fr));gap:var(--s4) var(--s6)}.doc-meta .k{font-size:var(--fs-xs);color:var(--muted);font-weight:500;margin-bottom:2px}.doc-meta .v{font-weight:500}.doc-meta .v.big{font-size:var(--fs-xl);font-weight:700;font-variant-numeric:tabular-nums}.list-foot{display:flex;justify-content:center;align-items:center;gap:var(--s3);padding:var(--s4) 0;color:var(--muted);font-size:var(--fs-sm)}.editor-actions{display:flex;gap:var(--s2)}.balance-pill{font-weight:600;font-size:var(--fs-sm);padding:4px 10px;border-radius:var(--radius-full)}.balance-pill.good{background:var(--good-soft)}.balance-pill.bad{background:var(--bad-soft)}.report-groups{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));align-items:start}.report-group h2{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-md)}.report-group h2 .icon{color:var(--accent-text)}.report-link{display:flex;align-items:center;gap:var(--s2);padding:8px 10px;margin:0 -10px;border-radius:var(--radius);color:var(--text)}.report-link:hover{background:var(--surface-2);text-decoration:none}.report-link .icon{color:var(--muted);margin-left:auto;opacity:0;transition:opacity var(--dur-1)}.report-link:hover .icon{opacity:1}.params{display:flex;gap:var(--s3);align-items:flex-end;flex-wrap:wrap}.params label{flex:0 1 180px}.summary-strip{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s6)}.summary-strip .k{color:var(--muted);font-size:var(--fs-xs)}.summary-strip .v{font-weight:600;font-variant-numeric:tabular-nums}.analyst{display:flex;flex-direction:column;max-width:920px;margin:0 auto;min-height:calc(100dvh - var(--topbar-h) - 2 * var(--s6))}.chat{display:flex;flex-direction:column;gap:var(--s4);flex:1;padding-bottom:var(--s4)}.msg{max-width:100%;line-height:1.65}.msg.user{align-self:flex-end;max-width:min(80%,640px);background:var(--accent);color:var(--accent-ink);padding:10px 14px;border-radius:18px 18px 4px}.msg.bot{display:flex;gap:var(--s3);align-items:flex-start}.msg.bot .bubble{flex:1;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:4px 18px 18px;padding:12px 16px;box-shadow:var(--shadow-xs)}.msg.bot p{margin:6px 0}.msg.bot ul{margin:6px 0;padding-left:20px}.msg .chart-card{margin-top:var(--s3);min-height:0;box-shadow:none}.bot-avatar{width:32px;height:32px;border-radius:10px;flex:none;display:grid;place-items:center;background:var(--ai-soft);color:var(--ai)}.tool{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-mono);margin:0 8px 4px 0}.typing{display:inline-flex;gap:4px;padding:6px 0}.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite both}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.suggest-grid{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}.suggest{justify-content:flex-start;text-align:left;white-space:normal;min-height:64px;padding:var(--s3) var(--s4);align-items:flex-start;font-weight:400;line-height:1.45;border-radius:var(--radius-lg)}.suggest .icon{color:var(--ai);margin-top:2px}.analyst-hero{text-align:center;padding:var(--s10) 0 var(--s6)}.analyst-hero .bot-avatar{width:56px;height:56px;border-radius:16px;margin:0 auto var(--s4)}.analyst-hero h1{margin-bottom:var(--s2)}.composer{position:sticky;bottom:0;padding:var(--s3) 0 calc(var(--s4) + var(--safe-bottom));background:linear-gradient(to top,var(--page) 70%,transparent);z-index:5}.composer form{display:flex;align-items:center;gap:var(--s2);padding:6px;background:var(--raised);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.composer form:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-md)}.composer input[type=text],.composer input:not([type]){border:0;box-shadow:none!important;background:transparent;flex:1;min-height:40px;font-size:var(--fs-lg)}.composer .attach{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;color:var(--text-2);cursor:pointer;flex:none}.composer .attach:hover{background:var(--surface-2)}.composer button.primary{border-radius:12px;min-height:40px}.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--s3);align-items:start}.board-col{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--s3);min-width:0}.board-col h3{display:flex;align-items:center;gap:var(--s2);margin:2px 4px var(--s3);font-size:var(--fs-sm)}.board-col h3 .count{margin-left:auto;font-variant-numeric:tabular-nums}.board-list{display:grid;gap:var(--s2);max-height:70vh;overflow:auto}.cheque{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;box-shadow:var(--shadow-xs)}.cheque .amt{font-weight:650;font-variant-numeric:tabular-nums}.cheque .actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.master-layout{display:block}.settings-grid{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr));align-items:start}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.setting-row:last-child{border-bottom:0}.tile-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr));gap:var(--s2)}.tile-links a{display:flex;align-items:center;gap:var(--s2);padding:10px 12px;border-radius:var(--radius);background:var(--surface-2);color:var(--text);font-size:var(--fs-sm);font-weight:500}.tile-links a:hover{background:var(--surface-3);text-decoration:none}.tile-links a .icon{color:var(--muted)}.stat-inline{display:flex;gap:var(--s6);flex-wrap:wrap;margin-bottom:var(--s3)}.stat-inline b{display:block;font-size:var(--fs-xl);font-variant-numeric:tabular-nums}.builder{display:grid;gap:var(--s4);grid-template-columns:300px minmax(0,1fr);align-items:start}.builder-panel{display:grid;gap:var(--s4);position:sticky;top:calc(var(--topbar-h) + var(--s4))}.builder-panel select[multiple]{min-height:150px}@media(max-width:1280px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px)and (min-width:861px){.app{--side-w: var(--side-w-collapsed)}.app .sidebar .label,.app .company-text,.app .company .chev,.app .brand-word,.app .collapse-btn{display:none}.app .brand{flex:none;padding:0}.app .side-top{justify-content:center}.app .group-label{font-size:0;padding:0;height:1px;margin:var(--s2) 10px;background:var(--border)}.app .nav-item{justify-content:center;padding:0}.app .company-menu .menu-trigger{justify-content:center;padding:4px}.content{padding:var(--s5) var(--s6) var(--s8)}.chart-grid,.builder{grid-template-columns:minmax(0,1fr)}.builder-panel{position:static;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media(max-width:860px){:root{--control-h: var(--tap)}.desktop-only{display:none!important}.topbar-company{display:flex}body{font-size:15px}input,select,textarea{font-size:16px}button{min-height:var(--tap)}button.small,button.sm,.seg button,.icon-btn.sm,.menu-trigger,.link-btn,.toast .icon-btn,.seg.sm button{min-height:32px}.app{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.topbar{padding:calc(6px + var(--safe-top)) calc(var(--s3) + var(--safe-right)) 6px calc(var(--s3) + var(--safe-left));gap:var(--s2)}.topbar .brand{flex:none;padding:0}.topbar-company{min-width:0}.topbar-company .menu-wrap{min-width:0;max-width:100%}.topbar-company .menu-trigger{padding:4px 8px 4px 4px;border:0;background:transparent}.topbar-company .avatar.sq{display:none}.topbar-company .menu{left:-40px}.content{padding:var(--s4) calc(var(--s4) + var(--safe-right)) calc(var(--tabbar-h) + var(--safe-bottom) + var(--s8)) calc(var(--s4) + var(--safe-left))}.app.focus .content{padding-bottom:calc(96px + var(--safe-bottom))}.tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;padding:4px calc(4px + var(--safe-right)) calc(4px + var(--safe-bottom)) calc(4px + var(--safe-left));background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);border-top:1px solid var(--border)}.app.focus .tabbar{display:none}.tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:4px 2px;border:0;background:transparent;box-shadow:none;border-radius:var(--radius);color:var(--muted);font-size:11px;font-weight:500;line-height:1.2}.tabbar a:hover{text-decoration:none}.tabbar a span,.tabbar button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabbar .active{color:var(--accent-text)}.tabbar .active .icon{stroke-width:2.2}.fab{display:inline-flex;position:fixed;right:calc(var(--s4) + var(--safe-right));bottom:calc(var(--tabbar-h) + var(--safe-bottom) + var(--s4));z-index:25;min-height:52px;padding:0 20px 0 16px;border-radius:var(--radius-full);box-shadow:var(--shadow-lg);font-size:var(--fs-lg)}.action-bar{display:flex;gap:var(--s2);align-items:center;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:var(--s2) calc(var(--s4) + var(--safe-right)) calc(var(--s2) + var(--safe-bottom)) calc(var(--s4) + var(--safe-left));background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);box-shadow:0 -4px 16px #0000000f}.app:not(.focus) .action-bar{bottom:calc(var(--tabbar-h) + var(--safe-bottom))}.action-bar .total{flex:1;min-width:0;line-height:1.2}.action-bar .total b{display:block;font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.action-bar button{flex:none}.has-action-bar{padding-bottom:72px}h1,.page-title h1{font-size:var(--fs-xl)}.page-header{margin-bottom:var(--s4);gap:var(--s2)}.page-title{flex-basis:auto}.page-actions{width:100%}.page-actions.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--s4));padding:2px var(--s4)}.page-actions.scroll::-webkit-scrollbar{display:none}.card{padding:var(--s4);border-radius:var(--radius-lg)}.chip-row.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--s4));padding:2px var(--s4);scroll-snap-type:x proximity;scroll-padding-inline:var(--s4)}.chip-row.scroll::-webkit-scrollbar{display:none}.chip-row.scroll>*{flex:none;scroll-snap-align:start}.toolbar .search-input{flex:1 1 100%}.kpi-grid{gap:var(--s3)}.kpi-card{padding:var(--s3) var(--s4)}.kpi-card header h3{font-size:var(--fs-xs)}.chart-grid{grid-template-columns:minmax(0,1fr);gap:var(--s3)}.chart-card:not(.kpi-card){padding:var(--s3) var(--s3) var(--s2);min-height:300px}.sheet-bg,.sheet-bg.side{place-items:end stretch;padding:0}.sheet,.sheet.side,.sheet.wide{width:100%;height:auto;max-height:92dvh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-width:1px 0 0;animation:slide-up var(--dur-3) var(--ease)}.sheet-grip{display:block;width:36px;height:4px;border-radius:4px;background:var(--border-strong);margin:8px auto 0;flex:none}.sheet-head{padding:var(--s2) var(--s3) var(--s3) var(--s4)}.sheet-body{padding:var(--s4);padding-bottom:calc(var(--s4) + var(--safe-bottom))}.sheet-foot>button{flex:1}.toasts{left:50%;right:auto;transform:translate(-50%);bottom:calc(var(--tabbar-h) + var(--safe-bottom) + var(--s3))}.palette-bg{padding:0;place-items:stretch}.palette{width:100%;height:100dvh;border-radius:0;border:0;padding-top:var(--safe-top)}.palette ul{max-height:none;flex:1;padding-bottom:calc(6px + var(--safe-bottom))}.palette li{min-height:48px}.palette-close{display:inline-flex;color:var(--accent-text)}.auth{grid-template-columns:minmax(0,1fr)}.auth-hero{padding:calc(var(--s6) + var(--safe-top)) var(--s5) var(--s6);gap:var(--s4)}.auth-hero h2{font-size:24px;margin-bottom:var(--s3)}.auth-hero li{font-size:var(--fs-md)}.auth-hero .preview,.auth-hero .hero-foot{display:none}.auth-panel{padding-top:var(--s4)}.auth-form{padding:var(--s4) 0 var(--s6)}.auth-form h1{font-size:var(--fs-2xl)}.analyst{min-height:calc(100dvh - var(--topbar-h) - var(--tabbar-h) - var(--s8))}.analyst-hero{padding:var(--s6) 0 var(--s4)}.composer{bottom:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--s3);margin:0 calc(-1 * var(--s2))}.msg.user{max-width:88%}.bot-avatar{display:none}.analyst-hero .bot-avatar{display:grid}.board{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:var(--s3);margin:0 calc(-1 * var(--s4));padding:0 var(--s4) var(--s2);scrollbar-width:none}.board::-webkit-scrollbar{display:none}.board-col{flex:0 0 min(84vw,340px);scroll-snap-align:center}.board-list{max-height:none}.builder-panel{grid-template-columns:minmax(0,1fr)}.params label{flex:1 1 140px}.params>button{flex:1 1 100%}.totals{width:100%}}@media(max-width:640px){table.data:not(.table-cards):not(.keep-table){display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}table.data:not(.table-cards) th,table.data:not(.table-cards) td{white-space:nowrap}table.table-cards,.table-wrap:has(>table.table-cards){border:0;background:transparent;border-radius:0;overflow:visible}table.table-cards{display:block}table.table-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}table.table-cards tbody,table.table-cards tfoot{display:grid;gap:var(--s2)}table.table-cards tfoot{margin-top:var(--s2)}table.table-cards tr{display:flex;flex-wrap:wrap;align-items:center;gap:2px var(--s3);position:relative;padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}table.table-cards tr.click:active{background:var(--surface-2)}table.table-cards tbody tr:hover td,table.table-cards tr.click:hover td{background:transparent}table.table-cards td{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);flex:1 1 100%;padding:3px 0;border:0;min-width:0;text-align:right;white-space:normal;background:transparent}table.table-cards td:before{content:attr(data-label);color:var(--muted);font-size:var(--fs-sm);font-weight:500;text-align:left;flex:none;max-width:50%}table.table-cards td:not([data-label]):before,table.table-cards td[data-label=""]:before{content:none}table.table-cards td:not([data-label]){justify-content:flex-start;text-align:left}table.table-cards td:empty{display:none}table.table-cards td.card-title{order:-2;flex:1 1 auto;font-weight:600;justify-content:flex-start;text-align:left;font-size:var(--fs-lg)}table.table-cards td.card-title:before{content:none}table.table-cards td.card-aside{order:-2;flex:0 0 auto;justify-content:flex-end}table.table-cards td.card-aside:before{content:none}table.table-cards td.card-sub{order:-1;flex:1 1 100%;color:var(--muted);font-size:var(--fs-sm);justify-content:flex-start;text-align:left;padding-top:0}table.table-cards td.card-sub:before{content:none}table.table-cards td.card-amount{font-size:var(--fs-lg);font-weight:650}table.table-cards td.desktop-cell{display:none}table.table-cards .m-only{display:inline}table.table-cards tfoot tr{background:var(--surface-2)}table.table-cards tfoot td{background:transparent}table.table-cards .skeleton-row td{flex:1 1 100%}table.table-cards.editable td{flex-direction:column;align-items:stretch;text-align:left;gap:4px}table.table-cards.editable td.half{flex:1 1 calc(50% - var(--s3))}table.table-cards.editable td:before{max-width:none}table.table-cards.editable td.num{text-align:right}table.table-cards.editable td.line-no{position:absolute;top:10px;left:var(--s4);width:auto;padding:0;font-size:var(--fs-xs)}table.table-cards.editable tr{padding-top:34px}table.table-cards.editable td.line-actions{position:absolute;top:4px;right:6px;flex:none;width:auto;padding:0}table.table-cards.editable td.line-actions:before{content:none}table.table-cards.editable td.line-total{flex-direction:row;justify-content:space-between;align-items:center;border-top:1px dashed var(--border);padding-top:8px;margin-top:4px;font-weight:650}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi .value{font-size:20px}.doc-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}}@media(max-width:380px){.kpi-grid{grid-template-columns:minmax(0,1fr)}.tabbar a span,.tabbar button span{font-size:10px}}@media(pointer:coarse){.nav-item{height:44px}.menu button{min-height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.sidebar,.topbar,.tabbar,.fab,.action-bar,.page-actions,.toasts{display:none!important}.app{display:block}.content{padding:0;max-width:none}.card{box-shadow:none;border-color:#ccc}}:root[data-palette=teak]{--page: #f5efe6;--surface: #fdfaf4;--surface-2: #f4ede2;--surface-3: #eae1d3;--raised: #fffdf9;--seg-on: #fffdf9;--border: rgba(60, 38, 16, .11);--border-strong: rgba(60, 38, 16, .2);--text: #1c140d;--text-2: #5a4a3b;--muted: #76654f;--grid: #e8dfd0;--accent: #9a4a12;--accent-hover: #843f0f;--accent-ink: #ffffff;--accent-text: #8a4010;--accent-soft: rgba(154, 74, 18, .11);--focus: #9a4a12}:root[data-palette=teak][data-theme=dark]{--page: #120e0a;--surface: #1f1a15;--surface-2: #28221b;--surface-3: #322a22;--raised: #261f19;--seg-on: #43392e;--border: rgba(255, 236, 214, .1);--border-strong: rgba(255, 236, 214, .18);--text: #f3ece2;--text-2: #d0c3b2;--muted: #a8998a;--grid: #322a22;--accent: #a9531a;--accent-hover: #bb5f22;--accent-ink: #ffffff;--accent-text: #e7a873;--accent-soft: rgba(231, 168, 115, .15);--focus: #e7a873}:root[data-palette=lotus]{--page: #f6f1f4;--surface: #fdfbfc;--surface-2: #f4edf1;--surface-3: #eadfe6;--raised: #ffffff;--seg-on: #ffffff;--border: rgba(60, 16, 44, .1);--border-strong: rgba(60, 16, 44, .19);--text: #1b1219;--text-2: #5b4a56;--muted: #7a6674;--grid: #ebe0e7;--accent: #a12f6a;--accent-hover: #8c285c;--accent-ink: #ffffff;--accent-text: #952a62;--accent-soft: rgba(161, 47, 106, .1);--focus: #a12f6a}:root[data-palette=lotus][data-theme=dark]{--page: #110c10;--surface: #1d171b;--surface-2: #261f24;--surface-3: #30272d;--raised: #241d22;--seg-on: #41363d;--border: rgba(255, 220, 240, .1);--border-strong: rgba(255, 220, 240, .18);--text: #f4ecf1;--text-2: #d3c2cc;--muted: #a9969f;--grid: #30272d;--accent: #b0397a;--accent-hover: #c24587;--accent-ink: #ffffff;--accent-text: #f2a5ca;--accent-soft: rgba(242, 165, 202, .14);--focus: #f2a5ca}:root[data-palette=emerald]{--page: #eff4f0;--surface: #fbfdfb;--surface-2: #edf3ef;--surface-3: #e0e9e3;--raised: #ffffff;--seg-on: #ffffff;--border: rgba(14, 50, 32, .1);--border-strong: rgba(14, 50, 32, .19);--text: #0e1a14;--text-2: #455a4e;--muted: #5e7266;--grid: #dfe8e2;--accent: #0f6b4a;--accent-hover: #0c5a3e;--accent-ink: #ffffff;--accent-text: #0d6243;--accent-soft: rgba(15, 107, 74, .1);--focus: #0f6b4a}:root[data-palette=emerald][data-theme=dark]{--page: #0a100d;--surface: #151d19;--surface-2: #1d2621;--surface-3: #26302a;--raised: #1b241f;--seg-on: #34413a;--border: rgba(214, 255, 232, .09);--border-strong: rgba(214, 255, 232, .17);--text: #e9f2ed;--text-2: #bccdc3;--muted: #8fa398;--grid: #26302a;--accent: #137a55;--accent-hover: #188a61;--accent-ink: #ffffff;--accent-text: #6fd3a7;--accent-soft: rgba(111, 211, 167, .14);--focus: #6fd3a7}:root[data-palette=contrast]{--page: #ffffff;--surface: #ffffff;--surface-2: #f2f2f2;--surface-3: #e4e4e4;--raised: #ffffff;--seg-on: #ffffff;--border: rgba(0, 0, 0, .45);--border-strong: rgba(0, 0, 0, .8);--text: #000000;--text-2: #1f1f1f;--muted: #3d3d3d;--grid: #bdbdbd;--accent: #0039b3;--accent-hover: #002d8c;--accent-ink: #ffffff;--accent-text: #0039b3;--accent-soft: rgba(0, 57, 179, .12);--focus: #000000;--shadow-xs: none;--shadow-sm: none;--shadow-md: 0 0 0 1px #000;--shadow-lg: 0 0 0 2px #000}:root[data-palette=contrast][data-theme=dark]{--page: #000000;--surface: #0a0a0a;--surface-2: #161616;--surface-3: #222222;--raised: #111111;--seg-on: #333333;--border: rgba(255, 255, 255, .5);--border-strong: rgba(255, 255, 255, .85);--text: #ffffff;--text-2: #ececec;--muted: #cfcfcf;--grid: #3a3a3a;--accent: #ffd400;--accent-hover: #ffe04d;--accent-ink: #000000;--accent-text: #ffd400;--accent-soft: rgba(255, 212, 0, .16);--focus: #ffd400;--shadow-xs: none;--shadow-sm: none;--shadow-md: 0 0 0 1px #fff;--shadow-lg: 0 0 0 2px #fff}:root[data-palette=contrast] :focus-visible{outline-width:3px;outline-offset:2px}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s3)}.theme-card{display:grid;gap:var(--s2);padding:var(--s2);text-align:left;cursor:pointer;min-height:var(--tap);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);font:inherit;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}.theme-card:hover{border-color:var(--accent)}.theme-card[aria-checked=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.theme-card .preview{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:2px;border-radius:var(--radius);overflow:hidden;height:64px}.theme-card .pane{display:grid;grid-template-rows:1fr auto;padding:6px;gap:4px}.theme-card .pane .sheet{border-radius:4px;display:grid;align-content:start;gap:3px;padding:5px}.theme-card .pane .line{height:3px;border-radius:2px;opacity:.85}.theme-card .pane .chip{height:8px;width:60%;border-radius:4px}.theme-card .name,.theme-card .desc{width:100%}.theme-card .name{font-weight:600;font-size:var(--fs-sm);display:flex;align-items:center;justify-content:space-between;gap:var(--s1)}.theme-card .desc{font-size:var(--fs-xs);color:var(--muted);line-height:1.35}
