:root{--tblr-font-sans-serif:'Inter','Noto Sans Thai',sans-serif;--tblr-body-font-family:var(--tblr-font-sans-serif);--tblr-body-font-size:1rem;--tblr-primary:#1767c2;--tblr-body-bg:#f4f7fb;--tblr-border-radius:8px;--bme-navy:#102a43;--bme-blue:#1767c2;--bme-sky:#eaf3ff;--bme-line:#dbe4ef}
html,body{font-family:var(--tblr-font-sans-serif);font-size:16px;line-height:1.6}body{min-width:320px}.container-xl{max-width:1440px}
button,input,select,textarea{font-family:inherit}.btn,.form-control,.form-select,.form-label,.table,.nav-link,.dropdown-item{font-size:.875rem}
.form-control,.form-select{min-height:39px}.form-label{font-weight:500;margin-bottom:.4rem;color:var(--tblr-body-color)}
.form-hint,.small,small,.text-meta{font-size:.75rem;line-height:1.6}.text-meta{color:var(--tblr-secondary)}
.svg-sprite,#icons svg{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}
.skip-link{position:fixed;left:16px;top:-80px;z-index:2000;background:var(--bme-navy);color:white;padding:10px 14px;border-radius:8px;text-decoration:none}.skip-link:focus{top:12px;color:white}.header-inner{gap:2rem;min-height:64px}.navbar-brand{gap:10px;font-size:22px;font-weight:700}.brand-sub{font-size:14px;font-weight:400;color:var(--tblr-secondary)}
.header-end{display:flex;align-items:center;gap:10px;margin-left:auto}.search-trigger{display:flex;align-items:center;gap:10px;border:1px solid var(--tblr-border-color);background:var(--tblr-bg-surface-secondary);color:var(--tblr-secondary);padding:7px 11px;border-radius:5px;min-width:320px;font-size:14px}.search-trigger kbd{margin-left:auto}.search-icon{font-size:23px;line-height:1}
.nav-bar{padding:0;min-height:68px;position:relative;z-index:50;background:var(--tblr-bg-surface);border-top:1px solid var(--tblr-border-color);border-bottom:1px solid var(--bme-line)}.nav-bar>.container-xl{display:flex;gap:8px;align-items:stretch}.module-dock{display:flex;align-items:stretch;gap:2px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;flex:1;padding:7px 0}.module-dock::-webkit-scrollbar{display:none}.module-dock-item,.module-dock-all{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:68px;padding:7px 8px;color:var(--tblr-secondary);font-size:12px;font-weight:500;text-decoration:none;border-radius:9px;white-space:nowrap;position:relative}.module-dock-item .icon,.module-dock-all .icon{width:21px;height:21px}.module-dock-item:hover,.module-dock-item:focus-visible,.module-dock-all:hover,.module-dock-all:focus-visible{background:var(--tblr-bg-surface-secondary);color:var(--tblr-primary);text-decoration:none}.module-dock-item.active{color:var(--tblr-primary);background:var(--tblr-primary-lt);font-weight:600}.module-dock-item.active:after{content:"";position:absolute;bottom:-7px;left:16px;right:16px;height:3px;border-radius:3px 3px 0 0;background:var(--tblr-primary)}.module-dock-all{flex:0 0 72px;border-left:1px solid var(--tblr-border-color);border-radius:0;padding-inline:10px}
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:22px}.page-pretitle{font-size:.78rem;letter-spacing:.01em;text-transform:none;color:var(--tblr-secondary)}.page-title{font-size:1.7rem;font-weight:650;line-height:1.45;letter-spacing:-.02em}.heading-actions{display:flex;flex-wrap:wrap;gap:8px}.subheading{color:var(--tblr-secondary);font-size:14px;margin-top:4px}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;align-items:start;gap:20px}.card{box-shadow:0 1px 2px #18243308}.card-title{font-size:1rem}.tabs-header{padding:14px 20px 0;background:var(--tblr-bg-surface-secondary);min-height:auto}.tabs-header .nav-tabs{margin:0 0 -1px;width:100%;gap:4px}.tabs-header .nav-link{padding:11px 16px;background:transparent;display:flex;align-items:center;gap:8px}.tabs-header .nav-link.active{border-bottom-color:var(--tblr-bg-surface);background:var(--tblr-bg-surface);font-weight:600}.tabs-header .dropdown-menu{z-index:75}.tabs-header>.dropdown{margin-left:auto;margin-bottom:10px;flex-shrink:0}
.section-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px}.section-head h3{font-size:1.125rem;margin:0}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.form-grid .span-2{grid-column:span 2}.amount,.num{font-variant-numeric:tabular-nums;text-align:right}.badge{font-size:.75rem;font-weight:500;letter-spacing:0}.status-label{display:flex;align-items:center;gap:7px}
.section-rule{border-top:1px solid var(--tblr-border-color);margin:22px 0}.detail-heading{display:flex;align-items:center;justify-content:space-between;margin:10px 0 12px;font-weight:600}
.items-table{min-width:1080px}.items-table th{font-size:12px;font-weight:500;text-transform:none;letter-spacing:0;white-space:nowrap}.items-table td{padding:10px 5px}.items-table .form-control{padding:6px 8px}.items-table th:first-child{width:250px}.items-table th:nth-child(2){width:90px}.items-table th:nth-child(3){width:76px}.items-table th:nth-child(4){width:125px}.items-table th:nth-child(5){width:90px}.items-table th:nth-child(6){width:84px}.items-table th:nth-child(7){width:120px}.items-table th:last-child{width:40px}
.totals-grid{display:grid;grid-template-columns:1fr 330px;gap:32px;margin-top:20px}.totals-summary>div{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:14px}.totals-summary input{max-width:145px}.grand{border-top:1px solid var(--tblr-border-color);padding-top:16px;font-weight:600}.grand strong{font-size:1.625rem;color:var(--tblr-primary)}
.side-stack{display:grid;gap:18px}.impact-banner{padding:12px;border-radius:5px;background:var(--tblr-primary-lt);color:var(--tblr-primary);margin-bottom:12px;font-size:14px}.impact-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px dashed var(--tblr-border-color);font-size:14px}.impact-row:last-child{border:0}.side-links{display:grid;gap:5px}.side-links .btn{justify-content:flex-start;white-space:normal;text-align:left}
.tax-details{margin-top:22px;border:1px solid var(--tblr-border-color);border-radius:6px;overflow:hidden}.tax-details summary{padding:14px 16px;background:var(--tblr-bg-surface-secondary);font-weight:500;cursor:pointer;font-size:14px}.tax-details-content{padding:18px}.tax-result{margin-top:15px;padding:12px;background:var(--tblr-bg-surface-secondary);border-radius:5px;font-size:14px}.tax-result strong{color:var(--tblr-primary)}.tax-hint{font-size:12px;line-height:1.8;color:var(--tblr-secondary);margin-top:12px}
.table th{text-transform:none;font-size:.8125rem;letter-spacing:0;background:var(--tblr-bg-surface-secondary);white-space:nowrap}.table td{vertical-align:middle}.table .btn{white-space:nowrap}.table-responsive{border-radius:0 0 8px 8px}.table-responsive>.table>thead{position:sticky;top:0;z-index:2}.record-card{margin-top:22px}.row-actions{display:flex;gap:6px}.empty-state{padding:50px 24px;text-align:center;color:var(--tblr-secondary)}.empty-state>.icon{width:38px;height:38px;opacity:.55}.empty-state h3{font-size:17px;color:var(--tblr-body-color)}.empty-state p{font-size:14px;max-width:460px;margin:6px auto 0}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.kpi-grid .card-body{padding:18px}.kpi-value{font-size:1.7rem;font-weight:600;margin-top:8px;font-variant-numeric:tabular-nums}
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;padding:18px}.toolbar label{min-width:160px;flex:1}.toolbar .form-label{display:block}
.search-results a{display:block;padding:12px;border-radius:5px;text-decoration:none;color:var(--tblr-body-color)}.search-results a:hover{background:var(--tblr-primary-lt)}.search-results small{display:block;color:var(--tblr-secondary)}
.module-layout{display:grid;grid-template-columns:240px 1fr;gap:20px}.module-sidebar .nav-link{padding:10px 12px;color:var(--tblr-body-color);white-space:normal}.module-sidebar .active{background:var(--tblr-primary-lt);color:var(--tblr-primary)}.spec-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.spec-columns h4{font-size:14px}.spec-columns ul{padding-left:18px;font-size:14px;line-height:2}
.footer{padding:18px 0;margin-top:auto}.footer-inner{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px}.rd-notice{flex-basis:100%;color:var(--tblr-secondary)}.toast{font-size:14px}.modal-title{font-size:18px}.modal-body{max-height:75vh;overflow:auto}.form-grid input:read-only{background:var(--tblr-bg-surface-secondary)}
.designer-grid{display:grid;grid-template-columns:260px 1fr;gap:22px}.designer-properties{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:15px}#printArea{display:none}.calendar-field{position:relative}.calendar-field input{padding-right:40px}.calendar-btn{position:absolute;right:1px;top:1px;height:37px;width:36px;border:0;background:transparent;color:var(--tblr-secondary)}
.flatpickr-calendar{font-family:var(--tblr-font-sans-serif);z-index:1080!important}.flatpickr-day{font-size:14px}.form-control:focus-visible,.btn:focus-visible,.nav-link:focus-visible{outline:2px solid #206bc4;outline-offset:2px}.screen-enter{animation:appear .16s ease}@keyframes appear{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:1200px){.workspace-grid{grid-template-columns:1fr}.side-stack{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.brand-sub{display:none}}
@media(max-width:900px){.header-inner{gap:12px}.search-trigger{min-width:0;flex:1}.search-trigger kbd{display:none}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.side-stack{grid-template-columns:1fr 1fr}.page-heading{align-items:flex-start;flex-direction:column}.kpi-grid{grid-template-columns:1fr 1fr}.module-layout{grid-template-columns:1fr}.module-sidebar{display:none}.designer-grid{grid-template-columns:1fr}.designer-properties{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.navbar-brand{font-size:18px}.header-end>.avatar{display:none}.search-trigger{max-width:40px;padding:3px 10px;margin-left:auto}.search-trigger>span:not(.search-icon){display:none}.header-end{margin:0}.header-inner{gap:8px}.header-end .btn{padding:6px 9px}.nav-bar>.container-xl{overflow:visible}.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .span-2{grid-column:auto}.totals-grid{grid-template-columns:1fr;gap:18px}.side-stack{grid-template-columns:1fr}.tabs-header{padding:10px 18px 0 10px}.tabs-header .nav-link{padding:10px 9px}.tabs-header .nav-link .icon{display:none}.tabs-header .nav-item:last-child{margin-left:0}.card-body{padding:16px}.kpi-value{font-size:1.25rem}.spec-columns{grid-template-columns:1fr}.heading-actions{width:100%}.heading-actions .btn{flex:1}.footer-inner{font-size:12px}.designer-properties{grid-template-columns:1fr}.modal-dialog{margin:8px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{body>*{display:none!important}body>#printArea{display:block!important}a{color:inherit;text-decoration:none}@page{size:A4;margin:12mm}}

.items-table{min-width:950px}.items-table th:first-child{width:220px}.items-table th:nth-child(2){width:70px}.items-table th:nth-child(4){width:105px}.items-table th:nth-child(5){width:65px}.items-table th:nth-child(7){width:95px}

.line-details{font-size:12px;margin-top:6px}.line-details summary{cursor:pointer;color:var(--tblr-primary)}.line-details label{display:block;margin-top:5px}.form-grid>.btn{align-self:end}#workspaceChooser{max-width:180px}@media print{thead{display:table-header-group}tr{break-inside:avoid}}

@media print{.wht-paper{break-after:page}.wht-paper:last-child{break-after:auto}.cheque-paper{box-shadow:none!important}}
.flow-sheet{overflow-x:auto}.flow-sheet svg{display:block;width:100%;min-width:900px;height:auto}
@media print{#printArea .flow-print svg{display:block;width:100%;height:auto;max-height:275mm}}

/* ผังบัญชี (chart-ui.mjs): tree of control and detail accounts, built on Tabler tokens so it follows light/dark themes */
.chart-toolbar{padding-block:.75rem}
.chart-tools{display:flex;flex-direction:column;gap:.6rem;width:100%}
.chart-tools-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.chart-search{flex:1 1 260px;max-width:420px}
.chart-select{width:auto;min-width:8.5rem}
.chart-tools-end{display:flex;align-items:center;gap:.5rem;margin-left:auto}
.chart-cats{flex-wrap:wrap;align-self:flex-start}
.chart-scroll{max-height:calc(100vh - 380px);min-height:320px;overflow:auto;scrollbar-gutter:stable}
.chart-table thead th{position:sticky;top:0;z-index:3;background:var(--tblr-bg-surface-secondary,var(--tblr-bg-surface));box-shadow:0 1px 0 var(--tblr-border-color)}
.chart-row td{padding-block:.35rem;white-space:nowrap}
.chart-row .chart-name{white-space:normal;min-width:220px}
.chart-control{background:var(--tblr-bg-surface-tertiary,rgba(127,127,127,.06));font-weight:600}
.chart-control:hover,.chart-detail:hover{background:var(--tblr-active-bg,rgba(32,107,196,.08))}
.chart-off .chart-name,.chart-off .chart-code{opacity:.55;text-decoration:line-through}
.chart-code-cell{display:flex;align-items:center;min-width:190px}
.chart-code{font-family:var(--tblr-font-monospace,ui-monospace,monospace);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.chart-indent{flex:none;display:inline-block;width:calc(var(--lv,0)*20px);height:1.9rem;background:repeating-linear-gradient(to right,transparent 0 9px,var(--tblr-border-color) 9px 10px,transparent 10px 20px)}
.chart-toggle{flex:none;width:1.6rem;height:1.6rem;padding:0;margin-right:.15rem}
.chart-toggle .icon{width:.9rem;height:.9rem;transition:transform .15s ease}
.chart-toggle.is-open .icon{transform:rotate(90deg)}
.chart-toggle-spacer{flex:none;display:inline-block;width:1.75rem}
.chart-tags .badge{font-weight:500;margin-left:.15rem}
.chart-hit{padding:0 .1rem;border-radius:3px;background:rgba(245,159,0,.35);color:inherit}
.chart-balance{min-width:9.5rem}
.chart-menu{width:2.5rem}
.chart-preview{padding:.6rem .75rem;border:1px dashed var(--tblr-border-color);border-radius:var(--tblr-border-radius,4px);min-height:3.5rem}
.chart-code-input{font-family:var(--tblr-font-monospace,ui-monospace,monospace);letter-spacing:.04em}
.chart-foot a{white-space:nowrap}
.chart-row:focus-within{outline:2px solid var(--tblr-primary);outline-offset:-2px}
@media (max-width:767.98px){.chart-scroll{max-height:none}.chart-code-cell{min-width:150px}.chart-balance{min-width:7.5rem}}
