.board-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:22px}.board-heading h2{margin:5px 0 8px;font-size:24px}.board-heading h3{margin:0}.board-heading p{margin:0}.board-eyebrow{font-size:11px;letter-spacing:.14em;font-weight:700;color:#57749b}.balance-board{margin-top:24px}.balance-scroll{overflow-x:auto;padding:12px 0}.balance-columns{display:grid;grid-template-columns:repeat(var(--columns),minmax(115px,1fr));min-width:100%;width:max-content;align-items:start}.balance-column{display:block;padding:12px 8px;text-align:center;color:#243c5c;border-radius:12px}.balance-column:hover,.balance-column.selected{background:#eaf2ff}.balance-column:focus-visible{outline:3px solid #2563eb;outline-offset:-3px}.balance-plot{height:215px;display:flex;flex-direction:column;align-items:center;justify-content:end;border-bottom:2px solid #b7c8df;background:repeating-linear-gradient(to top,transparent 0,transparent 49px,#edf2f8 50px)}.balance-plot>b{font-size:12px;white-space:nowrap;margin-bottom:10px}.balance-stick{width:48px;max-width:65%;background:var(--bar-color);border-radius:7px 7px 0 0}.balance-label{display:block;max-width:150px;margin:13px auto 5px;font-size:12px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.balance-column>small{display:block;max-width:150px;margin:auto;color:#6d809a;font-size:10px}.board-footnote{font-size:12px;color:#6b7f99;margin:20px 0 0;line-height:1.8}.negative{color:#c83149!important}.balance-stick.overdrawn{background:#c83149}.budget-detail{scroll-margin-top:100px;margin:32px 0}.board-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#dfe8f5;border:1px solid #dfe8f5;border-radius:15px;overflow:hidden;margin-bottom:22px}.board-metrics>div{background:#fff;padding:20px}.board-metrics span,.board-metrics small{display:block;color:#68809b;font-size:12px}.board-metrics strong{display:block;font-size:24px;color:#204a84;margin:9px 0 3px;font-variant-numeric:tabular-nums}.budget-workflow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}.workflow-card{--stage:#2c68d1;background:#fff;border:1px solid #dfe8f5;border-top:4px solid var(--stage);border-radius:16px;padding:22px}.workflow-card.plan{--stage:#8a58cc}.workflow-card.payment{--stage:#139580}.workflow-heading{display:flex;gap:11px;align-items:center}.workflow-heading h3{margin:0 0 4px;font-size:16px}.workflow-heading small{font-size:11px;color:#6e819b}.workflow-number{display:grid;place-items:center;width:33px;height:33px;border-radius:10px;background:var(--stage);color:white;flex:none}.workflow-total{padding:20px 0;border-bottom:1px solid #e6edf6;display:flex;flex-direction:column;gap:6px}.workflow-total strong{color:var(--stage);font-size:25px}.workflow-total>span{font-size:12px;color:#6e819b}.workflow-request{display:block;padding:17px 0;border-bottom:1px solid #e6edf6;color:#2b415e}.workflow-request>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:13px}.workflow-request .badge{font-size:10px;white-space:normal}.workflow-request p{font-size:13px;line-height:1.7;margin:8px 0}.workflow-request>small{font-size:11px;color:#75849b}.workflow-money{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:13px}.workflow-money small{color:#6b8095}.workflow-request:hover{background:#f6f9fd}.allocation-board{margin-top:0}@media(max-width:1050px){.budget-workflow{grid-template-columns:1fr}.board-metrics strong{font-size:20px}}@media(max-width:600px){.board-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.board-metrics>div{padding:15px}.board-heading h2{font-size:20px}.workflow-card{padding:18px}.balance-board{padding:16px}.balance-label{font-size:11px}}
@font-face{font-family:BudgetThai;src:url('print-assets/THSarabun.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:BudgetThai;src:url('print-assets/THSarabun-Bold.ttf') format('truetype');font-weight:700;font-display:swap}.balance-board,.budget-detail{font-family:BudgetThai,Tahoma,sans-serif;font-size:20px}.balance-columns{width:100%;grid-template-columns:repeat(var(--columns),minmax(100px,1fr))}.balance-label{max-width:120px;font-size:17px}.balance-column>small{max-width:120px;font-size:14px}.board-heading h2{font-size:28px}.board-heading p{font-size:18px}.workflow-heading h3{font-size:22px}.workflow-heading small,.workflow-request p,.workflow-request>div:first-child,.workflow-money{font-size:18px}.workflow-request .badge{font-size:15px}.workflow-request>small,.workflow-total>span,.board-metrics span,.board-metrics small,.board-footnote{font-size:16px}
/* Purchase list: one row per request, explicit state and role actions. */
nav.request-status-tabs{position:static;display:flex!important;flex-wrap:wrap;gap:9px;padding:0;margin:0 0 22px;background:transparent;border:0;box-shadow:none;z-index:auto}nav.request-status-tabs a{display:flex;align-items:center;gap:8px;padding:11px 14px;border:1px solid #dfe7f2;border-radius:12px;color:#415674;background:#fff;font-size:13px;flex:none}nav.request-status-tabs a.selected{background:#eaf2ff;color:#1e54a2;border-color:#78a2e4;box-shadow:0 0 0 2px #dceaff}nav.request-status-tabs b{background:#f0f4fa;padding:2px 7px;border-radius:7px;font-size:12px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--state-fg);display:inline-block;flex:none}.status-draft{--state-fg:#52647d;--state-bg:#edf1f6;--state-border:#d5dce6}.status-planning{--state-fg:#965b00;--state-bg:#fff4d7;--state-border:#efd28a}.status-committed{--state-fg:#1e58ac;--state-bg:#eaf2ff;--state-border:#b5cff4}.status-partial{--state-fg:#7041a7;--state-bg:#f1eafb;--state-border:#d6bfee}.status-paid{--state-fg:#087655;--state-bg:#e3f6ed;--state-border:#a7dbc8}.status-returned{--state-fg:#a3470c;--state-bg:#fff0e4;--state-border:#efc49f}.status-cancelled{--state-fg:#ad3049;--state-bg:#fcebef;--state-border:#efbac7}.request-status{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:10px;color:var(--state-fg);background:var(--state-bg);border:1px solid var(--state-border);font-size:12px;font-weight:700;white-space:nowrap;line-height:1.5}.request-status i{font-style:normal;font-size:17px;line-height:1}.request-list-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.request-list-heading h2{margin:0}.request-list-table{min-width:1020px}.request-list-table th{font-size:12px;white-space:nowrap}.request-list-table td{vertical-align:top;padding-top:20px;padding-bottom:20px;font-size:13px}.request-list-table td small{display:block;color:#6b7f99;font-size:11px;line-height:1.7;margin-top:7px}.request-code{font-weight:700;white-space:nowrap}.request-subject{min-width:160px;max-width:280px;line-height:1.7}.request-list-table .status-hint{max-width:220px}.request-row-actions{display:flex;flex-wrap:wrap;gap:7px;min-width:130px;max-width:210px}.request-row-actions .button{padding:8px 11px;font-size:11px;border-radius:9px}.request-empty{text-align:center;padding:40px 15px;color:#5b7090}.request-empty p{font-size:13px}.request-filters{align-items:end}@media(max-width:700px){nav.request-status-tabs a{font-size:12px;padding:9px 11px}.request-list-panel{padding:16px}.request-list-heading{align-items:start}.request-list-heading h2{font-size:18px}}
.compact-request-filter{display:flex;align-items:end;gap:12px;flex-wrap:wrap;background:white;border:1px solid #dfe7f2;border-radius:15px;padding:18px;margin-bottom:22px}.compact-request-filter label{width:145px}.compact-request-filter label span{display:block;font-size:12px;color:#58708b;margin-bottom:7px}.compact-request-filter .compact-search{flex:1;min-width:220px}.compact-request-filter select{width:100%}.compact-request-filter label:has(select){width:190px}.compact-request-filter>a{padding-bottom:12px;font-size:13px}.request-list-table{min-width:920px}.request-list-table td{padding-top:17px;padding-bottom:17px}.request-row-actions{min-width:105px;max-width:none}.request-status{font-size:12px;padding:6px 10px;border-radius:8px}.status-rejected{--state-fg:#b22640;--state-bg:#fff0f2;--state-border:#edb1bd}.rejection-panel summary{color:#aa2941}.rejection-panel textarea{margin-bottom:12px}@media(max-width:600px){.compact-request-filter label{flex:1;min-width:120px}.compact-request-filter .compact-search{flex-basis:100%}.compact-request-filter{padding:15px}.compact-request-filter label:has(select){width:auto}}
.payment-confirm-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;border-left:4px solid #15956e}.payment-confirm-panel h2{margin:0 0 10px}.payment-confirm-panel p{margin:7px 0}.payment-confirm-panel button{background:#098467;white-space:nowrap}.payment-confirm-panel button:hover{background:#076e55}
.request-icon-actions{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;min-width:220px}.request-icon-form{display:inline-flex;margin:0}.request-icon-tip{position:relative;display:inline-flex;align-items:center;outline-offset:3px}.request-icon-button{display:inline-grid!important;place-items:center;width:37px;height:37px;padding:8px!important;border-radius:10px!important;border:1px solid #dce5f2;background:#f2f6fc!important;box-shadow:none!important;color:#45607d!important;cursor:pointer}.request-icon-button svg{width:20px;height:20px}.request-icon-button.icon-budget{color:#7950ba!important;background:#f1eafb!important;border-color:#dac8ef}.request-icon-button.icon-print{color:#245cc0!important;background:#eaf2ff!important;border-color:#c4d7f7}.request-icon-button.icon-pay{color:#078260!important;background:#e3f6ed!important;border-color:#b5dfcf}.request-icon-button.icon-reject{color:#b42e48!important;background:#fff0f3!important;border-color:#efbec8}.request-icon-button:disabled{opacity:.32;cursor:not-allowed}.request-icon-button:not(:disabled):hover{outline:2px solid currentColor;outline-offset:1px}.request-icon-tip::after{content:attr(data-tooltip);display:none;position:absolute;bottom:calc(100% + 9px);right:0;max-width:240px;width:max-content;white-space:normal;z-index:40;background:#203a5e;color:#fff;padding:8px 11px;border-radius:7px;font-size:12px;line-height:1.5;box-shadow:0 4px 12px #17304e20;pointer-events:none}.request-icon-tip:hover::after,.request-icon-tip:focus::after,.request-icon-tip:focus-within::after{display:block}.request-list-table td:last-child{vertical-align:middle}.request-action-dialog{border:1px solid #dce5f2;border-radius:19px;padding:26px;width:min(490px,calc(100vw - 32px));max-height:90vh;overflow:auto;color:#243f61;box-shadow:0 24px 80px #15375940}.request-action-dialog::backdrop{background:#10294788}.request-action-dialog h2{margin:0 0 10px}.request-action-dialog textarea{margin-top:9px}.request-action-dialog .actions{margin-top:20px}.request-detail-reject{display:flex;justify-content:flex-end;margin:12px 0 20px}.payment-confirm-panel .request-icon-button{width:46px;height:46px}.payment-confirm-panel .request-icon-button svg{width:25px;height:25px}
.request-icon-button.icon-complete:disabled{opacity:1;background:var(--state-bg,#e3f6ed)!important;color:var(--state-fg,#087655)!important}
/* Restrained action group: print, paid, reject only. */
.request-icon-actions{min-width:152px;gap:10px}.request-icon-button{width:42px;height:42px;padding:10px!important;border-radius:9px!important;background:#fff!important;color:#50627b!important;border:1px solid #dce4ed!important;transition:background .15s,border-color .15s}.request-icon-button svg{width:21px;height:21px;stroke-width:1.65}.request-icon-button.icon-print{color:#285ca8!important;background:#fff!important;border-color:#dce4ed!important}.request-icon-button.icon-pay{color:#17805e!important;background:#fff!important;border-color:#dce4ed!important}.request-icon-button.icon-reject{color:#bd4051!important;background:#fff!important;border-color:#dce4ed!important}.request-icon-button:not(:disabled):hover{outline:none;box-shadow:0 2px 7px #193c7020!important;background:#f1f5fb!important;border-color:currentColor!important}.request-icon-button:focus-visible{outline:2px solid #3976d2;outline-offset:3px}.request-icon-button:disabled{background:#f5f7fa!important;color:#a4aebe!important;border-color:#e8edf3!important;opacity:.55}.request-icon-button.icon-complete:disabled{background:#edf7f2!important;color:#17805e!important;border-color:#cee8dc!important;opacity:1}.request-icon-button.icon-reject.icon-complete:disabled{background:#fff2f4!important;color:#b33148!important;border-color:#f1cbd3!important}.request-list-table{min-width:850px}.request-icon-tip::after{font-weight:400}

.request-icon-actions{min-width:198px}.request-icon-button.icon-budget{background:#fff!important;color:#69509b!important;border-color:#dce4ed!important}

#budget-chart{scroll-margin-top:90px}#budget-chart .balance-column{cursor:pointer}#budget-chart .board-heading .actions{margin:0}
