/* Document inbox + LINE connection */
.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#f36a16;color:#fff;font:700 11px/20px Outfit,sans-serif;text-align:center}
@media(max-width:900px){.nav-item{position:relative}.nav-badge{position:absolute;top:2px;right:6px;min-width:16px;height:16px;font-size:10px;line-height:16px;padding:0 4px}}
.inbox-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}
.inbox-head h2{margin:6px 0 4px}.inbox-head p{margin:0;color:#7a7f8a;max-width:620px}
.upload-button{display:inline-flex;align-items:center;gap:8px;border-radius:10px;padding:11px 18px;font-weight:700;cursor:pointer;white-space:nowrap}
.upload-button svg{width:18px;height:18px}
.upload-button.busy{opacity:.6;pointer-events:none}
.inbox-filters{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}
.chip{border:1px solid #e6e8ed;background:#fff;color:#5d626c;border-radius:999px;padding:6px 14px;font-weight:600;font-size:13px}
.chip.active{background:#fff3e7;border-color:#f7c99d;color:#d96e1b}
.inbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;align-items:start}
.inbox-card{background:#fff;border:1px solid #eceef1;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 18px #252a3405}
.inbox-thumb{display:block;aspect-ratio:4/3;background:#f4f5f7;border:0;padding:0;width:100%;cursor:pointer;position:relative}
.inbox-thumb{overflow:hidden}.inbox-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.inbox-thumb .file-icon{position:absolute;inset:0;display:grid;place-items:center;color:#b55a17}
.inbox-thumb .file-icon svg{width:46px;height:46px}
.inbox-thumb .file-icon small{position:absolute;bottom:16px;font:700 12px Outfit,sans-serif;letter-spacing:.08em}
.inbox-body{padding:12px 14px 14px;display:grid;gap:6px}
.inbox-body strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inbox-meta{font-size:12px;color:#8b909a;line-height:1.5}
.inbox-tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{font-size:11px;font-weight:700;border-radius:6px;padding:2px 8px;background:#f1f2f4;color:#5d626c}
.tag.line{background:#e8f8ee;color:#118a4a}.tag.warn{background:#fff3e0;color:#b4650f}.tag.status{background:#eef3ff;color:#3d5cb8}
.inbox-card-actions{display:flex;justify-content:space-between;margin-top:4px}
.inbox-card-actions button{font-size:13px;padding:0}
.line-panel{margin-top:28px;padding-top:24px;border-top:1px solid #eceef1}
.line-panel h2{display:flex;align-items:center;gap:8px}
.line-mark{width:22px;height:22px;color:#06c755}
.line-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:6px 0 18px}
.line-step{border:1px solid #eceef1;border-radius:12px;padding:14px 16px;background:#fafbfc}
.line-step b{display:block;font:700 12px Outfit,sans-serif;color:#d96e1b;letter-spacing:.06em;margin-bottom:4px}
.line-step p{margin:0;font-size:13px;color:#5d626c;line-height:1.55}
.line-step a{color:#06a14a;font-weight:700}
.link-code{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:4px 0 18px;padding:16px 18px;border-radius:12px;background:#fff8ef;border:1px dashed #f3b878}
.link-code strong{font:800 34px Outfit,sans-serif;letter-spacing:.18em;color:#c85a14}
.link-code span{font-size:13px;color:#7a5b40}
.line-warning{padding:12px 14px;border-radius:10px;background:#fff8ec;border:1px solid #eab86f;color:#8b4d13;font-size:13px;margin-bottom:14px}
@media(max-width:640px){.inbox-head{flex-direction:column;align-items:stretch}.upload-button{justify-content:center}}
.inbox-extract{border-top:1px dashed #eceef1;padding-top:8px;display:grid;gap:3px;font-size:13px}
.inbox-extract .amount{font:700 17px Outfit,'IBM Plex Sans Thai',sans-serif;color:#20232b}
.inbox-extract .who{color:#4a4e58;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tag.expense{background:#fdeeee;color:#b5413a}.tag.income{background:#e8f8ee;color:#118a4a}.tag.done{background:#e8f8ee;color:#118a4a}.tag.fail{background:#fdeeee;color:#b5413a}
.review-modal{width:min(1180px,96vw);max-width:none}
.review-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px;padding:20px 28px;max-height:calc(92vh - 170px);overflow:auto}
.review-preview{background:#f4f5f7;border-radius:12px;min-height:420px;display:grid;place-items:start center;overflow:auto;position:sticky;top:0;max-height:calc(92vh - 210px)}
.review-preview img{max-width:100%;display:block}
.review-preview iframe{width:100%;height:calc(92vh - 220px);border:0}
.review-form .form-grid{grid-template-columns:1fr 1fr}
.review-warnings{margin:0 0 14px;padding:10px 14px;border-radius:10px;background:#fff8ec;border:1px solid #eab86f;color:#8b4d13;font-size:13px}
.review-warnings ul{margin:4px 0 0;padding-left:18px}
.review-state{margin:0 0 14px;padding:10px 14px;border-radius:10px;background:#eef3ff;color:#3d5cb8;font-size:13px}
.review-state.fail{background:#fdeeee;color:#b5413a}.review-state.done{background:#e8f8ee;color:#118a4a}
.ocr-text{margin-top:14px;font-size:13px}.ocr-text pre{white-space:pre-wrap;background:#fafbfc;border:1px solid #eceef1;border-radius:8px;padding:10px;max-height:260px;overflow:auto;font-size:12px}
.review-items{margin-top:12px;font-size:13px}
.review-actions{display:flex;gap:10px;flex-wrap:wrap}.review-actions .spacer{flex:1}
@media(max-width:860px){.review-body{grid-template-columns:1fr}.review-preview{position:static;min-height:240px;max-height:50vh}.review-form .form-grid{grid-template-columns:1fr}}
.paidby-box{margin-top:16px;padding:14px 16px;border:1px solid #eceef1;border-radius:12px;background:#fafbfc}
.paidby-box h3{margin:0 0 6px;font-size:15px}
.ledger-toolbar{margin:0 0 16px}.ledger-toolbar input{max-width:200px}
.ledger-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:18px;align-items:start}
.amount-in{color:#118a4a;font-weight:700}.amount-out{color:#b5413a;font-weight:700}
.cat-row{display:grid;gap:4px;margin-bottom:12px;font-size:13px}.cat-row div{display:flex;justify-content:space-between;gap:10px}
.cat-bar{height:8px;border-radius:99px;background:#f1f2f4;overflow:hidden}.cat-bar i{display:block;height:100%;background:#f08a2c;border-radius:99px}
.claims-section{margin-bottom:18px}
.claims-section h2{display:flex;align-items:center;gap:8px}.claims-section h2 small{font-size:13px;color:#8b909a;font-weight:500}
.claim-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 0}
.claim-employee{border:1px solid #eceef1;border-radius:12px;padding:14px 16px;margin-bottom:12px}
.claim-employee header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.claim-employee header strong{font-size:15px}
.accounts-panel{margin-top:28px;padding-top:24px;border-top:1px solid #eceef1}
.account-form{margin-top:14px;padding:16px;border:1px solid #e3e6ea;border-radius:12px;background:#fafbfc}.account-form h3{margin:0 0 12px;font-size:15px}
.account-form[data-kind="bank"] .kind-other,.account-form:not([data-kind="bank"]) .kind-bank{display:none}
.check-label{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-weight:500}.check-label input{width:auto;margin:0}
.form-actions-row{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.bank-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.bank-card{border:1px solid #e3e6ea;border-radius:12px;padding:14px 16px;background:#fff;display:flex;flex-direction:column;gap:4px}
.bank-card.receive{border-color:#16935F;box-shadow:0 0 0 1px #16935F inset}
.bank-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.bank-card header strong{font-size:15px}
.bank-card .acct-no{font:600 17px/1.3 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.5px}
.bank-card small{color:#6b7280}.bank-card .card-actions{display:flex;gap:12px;margin-top:6px;flex-wrap:wrap}
.receive-badge{background:#e7f6ee;color:#11704a;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.kind-badge{background:#eef0f3;color:#555b66;font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap}
.row-link{border:0;background:none;padding:0;color:#e07a1b;font-weight:600;cursor:pointer}
@media(max-width:1000px){.ledger-grid{grid-template-columns:1fr}}
.table td.right{white-space:nowrap}#ledgerList .tag{white-space:nowrap}
/* Cash-flow overview */
.cashflow{margin:22px 0}
.cashflow-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:4px 0 18px}
.cashflow-tiles article{border:1px solid #eceef1;border-radius:12px;padding:12px 14px;background:#fafbfc}
.cashflow-tiles span{display:block;font-size:12px;color:#6b7080}.cashflow-tiles strong{display:block;font:700 22px Outfit,'IBM Plex Sans Thai',sans-serif;color:#20232b;margin-top:2px}
.cashflow-tiles small{color:#8b909a;font-size:12px}
.cashflow-body{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr);gap:22px}
.cashflow-chart{margin:0;position:relative}
.chart-legend{display:flex;gap:16px;font-size:13px;color:#4a4e58;margin-bottom:6px}
.chart-legend span{display:inline-flex;align-items:center;gap:6px}
.swatch{width:12px;height:12px;border-radius:3px;display:inline-block}
.swatch.income{background:#2a78d6}.swatch.expense{background:#eb6834}
.chart-wrap svg{width:100%;height:auto;display:block;overflow:visible}
.chart-wrap .grid{stroke:#eceef1;stroke-width:1}
.chart-wrap .axis-label{fill:#8b909a;font-size:11px}
.chart-wrap .bar{cursor:pointer}
.chart-wrap .hit{fill:transparent;cursor:pointer}
.chart-wrap .hit:hover+.bar,.chart-wrap .bar.active{filter:brightness(.9)}
.chart-tooltip{position:absolute;pointer-events:none;background:#20232b;color:#fff;padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.5;white-space:nowrap;transform:translate(-50%,-100%);z-index:2}
.chart-table{margin-top:10px;font-size:13px}
.cashflow-side h3{font-size:14px;margin:0 0 10px}.cashflow-side h3:not(:first-child){margin-top:18px}
.todo-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border:1px solid #eceef1;border-radius:10px;margin-bottom:8px;font-size:13px;background:#fff;width:100%;text-align:left}
.todo-item strong{font-size:15px}
@media(max-width:1000px){.cashflow-body{grid-template-columns:1fr}.cashflow-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.line-code-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:4px 0 6px}
.line-code-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#5d626c;font-weight:600}
.line-code-form select,.line-code-form input{min-width:220px}
.line-code-form .form-hint{flex-basis:100%;margin:0}
.link-code .secondary.small{margin-left:auto}
.member-badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#f1f2f4;color:#5d626c;vertical-align:1px}
.member-badge.line{background:#e7f8ee;color:#06893f}
.tag.source{background:#eef3ff;color:#3d5bb5;margin-left:4px}
.tag.line-tag{background:#e7f8ee;color:#06893f;font-size:10px;padding:1px 6px;vertical-align:1px}
.ledger-toolbar #ledgerAdd{margin-left:auto}
.direction-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#f4f5f7;border-radius:11px;padding:4px;margin-bottom:16px}
.direction-switch input{position:absolute;opacity:0;pointer-events:none}
.direction-switch span{display:block;text-align:center;padding:9px;border-radius:8px;font-weight:700;color:#757a85;cursor:pointer}
.direction-switch input:checked+span{background:#fff;box-shadow:0 2px 8px #2528341a}
.direction-switch label:first-child input:checked+span{color:#16935f}
.direction-switch label:last-child input:checked+span{color:#cc4b3c}
.direction-switch input:focus-visible+span{outline:2px solid #e88825}
.ledger-side{display:grid;gap:18px}
#ledgerIncomeCategories .cat-bar i{background:#2eb98a}
.cat-row small{color:#a0a4af;font-size:11px}
/* Ledger: categories grouped like an income statement */
.cat-group{margin-bottom:14px}.cat-group:last-child{margin-bottom:0}
.cat-group-head{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:#5d626c;padding:6px 0;margin-bottom:8px;border-bottom:1px dashed #e6e8ed}
.cat-row em{font-style:normal;color:#a0a4af;font-size:11px;font-variant-numeric:tabular-nums}
/* Settings: chart of categories */
.chart-panel{margin-top:28px;padding-top:24px;border-top:1px solid #eceef1}
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.chart-col h3{font-size:14px;margin:0 0 10px}.chart-col h3.income{color:#16935f}.chart-col h3.expense{color:#cc4b3c}
.chart-group{border:1px solid #eceef1;border-radius:12px;padding:10px 12px;margin-bottom:12px;background:#fcfcfd}
.chart-group>b{display:block;font-size:12px;color:#5d626c;margin-bottom:6px}
.chart-row{display:grid;grid-template-columns:70px minmax(0,1fr) auto auto auto;gap:8px;align-items:center;padding:4px 0}
.chart-row input{padding:6px 8px;font-size:13px}
.chart-row span.chart-code{font-size:12px;color:#8a8f99}.chart-row span.chart-name{font-size:13px}
.chart-row small{font-size:11px;color:#a0a4af;white-space:nowrap}
.chart-row.off .chart-name,.chart-row.off .chart-code{opacity:.5;text-decoration:line-through}
.chart-toggle{display:flex;align-items:center;gap:4px;font-size:11px;color:#6b707a;white-space:nowrap}.chart-toggle input{width:auto}
.chart-form{margin-top:4px}.chart-form select{flex:0 0 110px}.chart-form input[name=code]{flex:0 0 130px}
@media(max-width:900px){.chart-grid{grid-template-columns:1fr}}
.chart-row [data-chart-delete]{font-size:11px;color:#b9bcc4;visibility:hidden;padding:0 2px}
.chart-row:hover [data-chart-delete],.chart-row [data-chart-delete]:focus-visible{visibility:visible;color:#bd443a}
/* Manual entry: VAT */
.vat-box{display:grid;gap:8px}
.vat-label{font-size:12px;color:#777d87;font-weight:600}
.vat-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.vat-modes label{position:relative}
.vat-modes input{position:absolute;opacity:0;pointer-events:none}
.vat-modes span{display:block;text-align:center;padding:9px 6px;border:1px solid #dfe2e7;border-radius:9px;font-size:13px;font-weight:600;color:#5d626c;cursor:pointer;background:#fff}
.vat-modes input:checked+span{border-color:#e88825;background:#fff5ea;color:#c85a14}
.vat-modes input:focus-visible+span{outline:2px solid #e88825}
.vat-summary{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:8px;background:#fafbfc;border:1px solid #eceef1;border-radius:10px;padding:10px 12px}
.vat-summary small{display:block;font-size:11px;color:#8a8f99}
.vat-summary strong{font:700 15px Outfit,sans-serif;color:#343741}
.vat-summary .vat-total strong{color:#c85a14;font-size:17px}
.vat-summary input{margin-top:2px;padding:4px 6px;font-size:13px}
.vat-summary .text-button{font-size:11px;padding:0 0 0 4px}
.vat-hint{margin:0}
.form-grid .vat-box{grid-column:1/-1}
.vat-modes label{display:flex}.vat-modes span{flex:1;display:flex;align-items:center;justify-content:center;min-height:40px}
/* Payment voucher form */
.voucher-modal{width:min(980px,calc(100% - 26px))}
.purpose-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.purpose-cards label{position:relative;display:flex}
.purpose-cards input{position:absolute;opacity:0;pointer-events:none}
.purpose-cards span{flex:1;border:1px solid #dfe2e7;border-radius:10px;padding:10px 12px;cursor:pointer;background:#fff}
.purpose-cards b{display:block;font-size:13px;color:#343741}.purpose-cards small{display:block;font-size:11px;color:#8a8f99;margin-top:2px}
.purpose-cards input:checked+span{border-color:#e88825;background:#fff5ea}.purpose-cards input:checked+span b{color:#c85a14}
.purpose-cards input:focus-visible+span{outline:2px solid #e88825}
.inline-pick{display:flex;gap:6px;margin-top:5px}.inline-pick select{flex:1;margin:0}.inline-pick .small{padding:6px 10px;white-space:nowrap}
.payee-card{font-size:12px;color:#5d626c;margin-top:8px;padding:8px 10px;border-radius:8px;background:#fafbfc;border:1px solid #eceef1}.payee-card:empty{display:none}
.method-modes{margin:6px 0 10px}
.method-fields{margin-bottom:6px}
.voucher-line{display:grid;grid-template-columns:2.2fr .7fr .6fr .9fr .6fr 1.6fr 1fr .8fr 28px;gap:6px;align-items:end;margin:8px 0;padding-bottom:8px;border-bottom:1px dashed #eceef1}
.voucher-line label{font-size:11px;color:#777d87;font-weight:600}.voucher-line input,.voucher-line select{margin-top:4px;padding:7px 8px;font-size:13px}
.voucher-line .vl-amount{text-align:right;font:700 13px Outfit,sans-serif;padding-bottom:9px}
.voucher-line .remove-line{border:0;background:#fff0ed;color:#d05c4b;border-radius:7px;height:34px}
.voucher-summary{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;justify-content:flex-end;margin-top:14px;padding:10px 12px;border-radius:10px;background:#fafbfc;border:1px solid #eceef1}
.voucher-summary small{display:block;font-size:11px;color:#8a8f99}.voucher-summary b{font:700 15px Outfit,sans-serif}
.voucher-summary .net b{color:#c85a14;font-size:18px}.voucher-summary p{flex-basis:100%;text-align:right;margin:0;font-size:12px;color:#5d626c}
.voucher-warnings p,.voucher-detail .warn{margin:6px 0 0;font-size:12px;color:#9a4b12}
.check-row{display:flex;gap:8px;align-items:center;font-size:13px;color:#343741;font-weight:500}.check-row input{width:auto;margin:0}
.voucher-detail{margin-top:12px;font-size:13px}
.sign-steps{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.sign-steps span{font-size:12px;padding:4px 10px;border-radius:99px;background:#f1f2f4;color:#6b707a}.sign-steps span.done{background:#e7f8ee;color:#06893f}
.person-switch{margin-bottom:14px}
@media(max-width:900px){.purpose-cards{grid-template-columns:1fr}.voucher-line{grid-template-columns:1fr 1fr 1fr}.voucher-line .vl-desc,.voucher-line .vl-cat{grid-column:1/-1}}
.voucher-line.no-vat{grid-template-columns:2.2fr .7fr .6fr .9fr 1.8fr 1fr .8fr 28px}.voucher-line.no-vat .vl-vat{display:none}
@media(max-width:900px){.voucher-line.no-vat{grid-template-columns:1fr 1fr 1fr}}
/* Product photos on document lines (desktop) */
.line-row{grid-template-columns:2.3fr .6fr .9fr 1.05fr .55fr 40px 30px}
.line-photo-btn{height:39px;border:1px dashed #d8dbe1;border-radius:7px;background:#fafbfc center/cover no-repeat;font-size:16px;padding:0}
.line-photo-btn.has{border-style:solid}
.detail-lines p{align-items:center;gap:10px}.detail-lines p span{flex:1}
.detail-photo{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid #eceef1}
/* Standard document terms (settings) */
.defaults-panel{margin-top:28px;padding-top:24px;border-top:1px solid #eceef1}
.term-row{display:grid;grid-template-columns:1fr 110px 30px;gap:8px;margin:8px 0}
.term-row .remove-line{border:0;background:#fff0ed;color:#d05c4b;border-radius:7px}
#accountNewButton{white-space:nowrap;flex:none}

.order-flow-toggle{margin-bottom:16px;padding:12px 14px;border:1px solid #e3e6ea;border-radius:10px;background:#fafbfc;flex-wrap:wrap}.order-flow-toggle small{flex-basis:100%;margin:2px 0 0 26px}
#convertDialog{width:min(860px,96vw)}.convert-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}
.convert-chips button{border:1px solid #e3c9ae;background:#fff8f1;color:#9a4b12;border-radius:999px;padding:6px 14px;font:600 13px inherit;cursor:pointer}.convert-chips button:hover{background:#ffeedd}
.convert-chips .pct{display:flex;align-items:center;gap:4px;border:1px solid #e3e6ea;border-radius:999px;padding:2px 4px 2px 12px;font-size:13px}.convert-chips .pct input{width:56px;border:0;padding:4px;text-align:right}
.convert-table-wrap{overflow-x:auto}.convert-table td{vertical-align:middle}.convert-table input{width:96px;text-align:right}.convert-table .done td{color:#9aa1ab}
.convert-note{display:flex;flex-direction:column;gap:6px;margin-top:14px;font-weight:600;font-size:13px}
.convert-total{display:flex;justify-content:flex-end;gap:20px;margin-top:14px;font-size:14px}.convert-total strong{font-size:18px}
.convert-table input.invalid{border-color:#d05c4b;background:#fff0ed}

.disc-input{display:flex;margin-top:5px}.disc-input input{margin-top:0!important;border-radius:8px 0 0 8px;min-width:0}.disc-input select{width:auto;margin-top:0!important;border-left:0;border-radius:0 8px 8px 0;padding:9px 6px;background:#f7f8fa}
.bill-discount{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:18px;flex-wrap:wrap}.bill-discount label{font-size:12px;color:#777d87;font-weight:600;width:220px}.bill-discount small{margin:0 0 10px}
.disc-note{font-style:normal;color:#c2611c;font-size:12px;margin-left:6px}.detail-lines .sum-row{color:#6b7280;border-top:1px dashed #eceef1;padding-top:8px}
.rev-note{background:#fff8ef;border:1px solid #f3dcbf;border-radius:8px;padding:8px 12px;color:#9a5414}.rev-note.warn{background:#fff0ed;border-color:#f3c9c2;color:#a8432f}.badge.superseded{background:#f1f2f4;color:#8a8f99;text-decoration:line-through}
#adjustDialog{width:min(720px,96vw)}.adjust-source{background:#f7f8fa;border-radius:9px;padding:10px 12px;font-size:13px;margin:0 0 14px}
.adjust-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#777d87;margin-bottom:12px}.adjust-mode{margin:4px 0 14px}
.adjust-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:14px 0 6px}.adjust-summary div{background:#f7f8fa;border-radius:9px;padding:8px 10px;display:flex;flex-direction:column;font-size:12px;color:#6b7280}.adjust-summary b{font-size:15px;color:#20232b}.adjust-summary .g{background:#fff3e7}.adjust-summary .g b{color:#c85a14}
.line-row input:disabled,.line-row select:disabled{background:#f4f5f7;color:#6b7280}
.installments{margin-top:18px;border:1px solid #f0dcc6;border-radius:12px;padding:12px 14px;background:#fffaf5}.installments h3{margin:0 0 6px;font-size:15px}
.installments .table td{padding:9px 6px;vertical-align:middle}.installments small{color:#8b919b}.small-btn{padding:7px 12px;font-size:13px}
.inst-badge{display:inline-block;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;background:#eef0f3;color:#5b616b}.inst-badge.todo{background:#fff1e3;color:#b4570f}.inst-badge.paid{background:#e7f6ee;color:#11704a}.inst-badge.issued{background:#e9f0ff;color:#2f5bb7}
.installments .table .small-btn{border:1px solid #efc89f;background:#fff;border-radius:8px;padding:6px 12px;color:#c9620f}

.numbering-panel{margin-top:28px;padding-top:24px;border-top:1px solid #eceef1}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.3px}
.numbering-preview{background:#fff7ee;border:1px dashed #efc89f;border-radius:10px;padding:10px 14px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center}.numbering-preview strong{font:700 20px ui-monospace,Menlo,Consolas,monospace;color:#c25a12}
.numbering-next{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px dashed #e3e6ea}.numbering-next label{font-size:12px;font-weight:600;color:#777d87;width:180px}.numbering-next small{flex-basis:100%}
.imported-tag{background:#eef0ff;color:#4b55b5}

.caution-box{background:#fff6e8;border:1px solid #f3cf9c;border-left:4px solid #e8891a;border-radius:9px;padding:10px 12px;margin:10px 0;color:#6b4a2e}.caution-box strong{display:block;color:#9a4b12;font-size:13px}.caution-box p{margin:4px 0 0;font-size:12.5px;line-height:1.55}

.design-panel{margin-top:28px;padding-top:24px;border-top:1px solid #eceef1}
.design-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:16px}
.design-card{border:2px solid #e6e8ec;border-radius:12px;padding:10px;background:#fff;cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:border-color .15s}
.design-card:hover{border-color:#f0b47a}.design-card:focus-visible{outline:3px solid #f0a049;outline-offset:2px}.design-card.selected{border-color:#e97913;box-shadow:0 0 0 3px #fbe2c8}
.design-thumb{width:100%;aspect-ratio:210/297;overflow:hidden;border-radius:6px;border:1px solid #eceef1;position:relative;background:#fff}
.design-thumb iframe{position:absolute;top:0;left:0;width:794px;height:1123px;border:0;transform-origin:0 0;transform:scale(var(--s,.2));pointer-events:none}
.design-name{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:4px;font-size:13px}.design-card small{color:#7a808b;font-size:11.5px;line-height:1.4}.design-open{font-size:12px;align-self:flex-start;padding:0}
.design-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}.design-controls .spacer{flex:1}.design-color{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}.design-color input{width:48px;height:34px;padding:2px}
.design-bytype{margin-top:14px}.design-bytype summary{cursor:pointer;font-weight:600;color:#5a606b;font-size:13px}.design-bytype .form-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:8px}
.job-profit{background:#f7f9fc;border-color:#d8e2ef}.job-profit .warn{color:#b4541a}.cost-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}.cost-add select{flex:1;min-width:220px}

/* Income / expense report */
.mr-toolbar{display:grid;gap:12px;padding:16px 18px}
.mr-months{margin-bottom:17px}
.mr-periods,.mr-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mr-periods button,.mr-seg button{border:1px solid #e6e8ed;background:#fff;color:#4a4f59;border-radius:999px;padding:7px 14px;font-weight:600;font-size:13px}
.mr-periods button.active,.mr-seg button.active{background:#fff3e7;border-color:#f3c48f;color:#d56f15}
.mr-periods input[type=month]{width:auto;border-radius:999px;padding:6px 12px;font-size:13px}
.mr-range{display:inline-flex;align-items:center;gap:6px}.mr-range input{width:auto;padding:6px 10px;font-size:13px}
.mr-seg{display:inline-flex;gap:4px}
.mr-filters input[type=search]{flex:1;min-width:200px}
.mr-chips:empty{display:none}.mr-chips{display:flex;flex-wrap:wrap;gap:8px}
.mr-chip{display:inline-flex;align-items:center;gap:6px;background:#eef4ff;color:#2f5fb5;border-radius:999px;padding:5px 6px 5px 12px;font-size:13px;font-weight:600}
.mr-chip button{border:0;background:#dbe6fb;color:#2f5fb5;border-radius:50%;width:22px;height:22px;line-height:1}
.stats small.up{color:#2a9d6b}.stats small.down{color:#cc5a4b}
.mr-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-bottom:17px}
.mr-grid .panel{min-width:0}
.mr-side-title{font:700 12px 'IBM Plex Sans Thai',sans-serif;color:#8c919b;margin:4px 0 10px;display:flex;justify-content:space-between}
.mr-side-title.income{color:#1f8a5c}.mr-side-title.expense{color:#c0503f}
.mr-cat{cursor:pointer;border-radius:8px;padding:6px 8px;margin:0 -8px 4px}.mr-cat:hover{background:#fafbfc}
.mr-cat.income .cat-bar i{background:#2eb98a}.mr-cat.expense .cat-bar i{background:#e76d5b}
.mr-cat em{font-style:normal;color:#a0a4af;font-size:11px;margin-right:4px}
.mr-contacts tr{cursor:pointer}.mr-contacts tr:hover td{background:#fafbfc}
.amount-in{color:#1f8a5c}.amount-out{color:#c0503f}
.mr-months-chart{display:flex;align-items:flex-end;gap:10px;height:170px;overflow-x:auto;padding-bottom:4px}
.mr-month{flex:1;min-width:44px;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}
.mr-month .bars{flex:1;display:flex;align-items:flex-end;gap:3px;width:100%;justify-content:center}
.mr-month .bars i{display:block;width:40%;max-width:18px;border-radius:4px 4px 0 0;min-height:2px}
.mr-month .bars i.in{background:#2eb98a}.mr-month .bars i.out{background:#e76d5b}
.mr-month small{font-size:11px;color:#8c919b}
@media(max-width:1000px){.mr-grid{grid-template-columns:1fr}}
@media(max-width:620px){.mr-range{width:100%}.mr-range input{flex:1;min-width:0}.mr-filters input[type=search]{min-width:0;flex:1 1 100%;order:-1}.mr-periods input[type=month]{flex:1}}

/* Contacts: several people, import from a card / text, drafts from LINE */
.contact-actions{display:flex;gap:8px;flex-wrap:wrap}
.people-editor{grid-column:1/-1;border:1px solid #eceef1;border-radius:10px;padding:12px;background:#fafbfc}
.people-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.people-head small{color:#9aa0aa;font-size:11px;flex:1}
#contactDialog{width:min(720px,calc(100% - 26px))}
.person-row{display:grid;grid-template-columns:28px 1.4fr 1fr 1.1fr 32px;gap:6px;align-items:center;margin-top:8px;padding-bottom:8px;border-bottom:1px dashed #e6e8ed}.person-row:last-child{border-bottom:0;padding-bottom:0}
.person-row .remove-person{grid-column:5;grid-row:1}.person-row .p-email{grid-column:2/4}.person-row .p-line{grid-column:4/6}
.person-row input[type=text],.person-row input[type=email],.person-row input[type=tel]{padding:7px 8px;font-size:13px}
.person-row .star{display:flex;justify-content:center;cursor:pointer}.person-row .star input{display:none}.person-row .star span{font-size:18px;color:#d0d4db}.person-row .star input:checked+span{color:#f0a020}
.person-row .remove-person{border:0;background:#fff0ed;color:#d05c4b;border-radius:7px;height:32px}
.people-empty{color:#9aa0aa;font-size:12px;margin:4px 0}
.stack-label{display:block;font-size:12px;color:#777d87;font-weight:600;margin-top:10px}.stack-label textarea,.stack-label input{margin-top:5px}
.contact-drafts{background:#f2f6ff;border:1px solid #d9e4fb;border-radius:12px;padding:12px 14px;margin-bottom:16px}
.contact-drafts h3{margin:0 0 8px;font-size:14px;color:#2f5fb5}
.contact-draft{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #dfe8fb}.contact-draft:first-of-type{border-top:0}
.contact-draft div{flex:1;min-width:0}.contact-draft small{display:block;color:#7a8396;font-size:11px}
.contact-people-line{color:#7a7f8a;font-size:11px}
@media(max-width:700px){.person-row{grid-template-columns:28px 1fr 1fr 32px}.person-row .remove-person{grid-column:4}.person-row [data-p=phone]{grid-column:2/4}.person-row .p-email,.person-row .p-line{grid-column:2/4}}

/* Withholding tax: payment dialog and the 50 ทวิ list */
.payment-net{margin-top:14px;padding:12px 14px;border-radius:10px;background:#f2faf6;color:#1f6f4a;font-weight:700;display:flex;justify-content:space-between;gap:10px}
.payment-net small{display:block;font-weight:500;color:#5b7d6b}
.wht-stats{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.wht-stats span{background:#f6f7f9;border-radius:10px;padding:8px 12px;font-size:13px}.wht-stats b{display:block;font-size:16px}
.wht-stats .waiting b{color:#c85a14}.wht-stats .received b{color:#1f8a5c}
.mr-docs{margin-bottom:17px}.mr-docs .mr-net td{border-top:2px solid #e3e5ea;background:#fafbfc}.mr-sub{font-size:14px;margin:18px 0 6px}
.pnd-form{margin:12px 0 18px}.pnd-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:2px solid #eceef1}.pnd-head span{color:#555;font-size:13px}
.refund-note{background:#eef7f1;border:1px solid #cfe7d7;border-radius:8px;padding:8px 12px;color:#25603a}
.contact-cleanup{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff8ef;border:1px solid #f3dcbf;border-radius:10px;padding:10px 14px;margin:0 0 12px;color:#8b4d13}
.tag.missing-tag{background:#fff0ed;color:#a8432f}
.member-form{margin-bottom:12px}.member-form-row{display:grid;grid-template-columns:minmax(200px,2fr) minmax(150px,1.4fr) minmax(130px,1fr) minmax(130px,1fr) auto;gap:10px;align-items:center}
.member-form-row .hidden{display:none}
@media (max-width:820px){.member-form-row{grid-template-columns:1fr}}
#memberLookup.found{color:#16935f}#memberLookup.invite{color:#9a5414}
.member-invites{background:#fff8ef;border:1px solid #f3dcbf;border-radius:10px;padding:10px 14px;margin:0 0 14px}.member-invites h4{margin:0 0 6px;font-size:.95rem}
.invite-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;border-top:1px dashed #f0d5b3}.invite-row:first-of-type{border-top:0}
.member-position{width:100%;max-width:220px}
.auth-invite{background:#fff8ef;border:1px solid #f3dcbf;border-radius:10px;padding:10px 14px;margin:0 0 12px;color:#7a3f10;line-height:1.6}
.reader-tag{color:#16935f;font-weight:600;margin-left:6px}
.backup-card{border:1px solid #ece4da;border-radius:12px;padding:14px 16px;margin:0 0 14px;background:#fff}.backup-card h3{margin:0 0 8px;font-size:1rem}
.backup-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}.backup-actions select{min-width:150px}
.drive-status{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}
.backup-tree{background:#faf7f3;border-radius:8px;padding:10px 12px;font-size:.85rem;line-height:1.55;overflow-x:auto;margin:0}
.rd-file{border:1px solid #ece4da;border-radius:10px;padding:12px 14px;margin-top:12px}.rd-file h4{margin:0 0 4px}.rd-warnings{margin:8px 0 0;padding-left:18px;color:#a8432f;font-size:.9rem}
/* PromptPay + own AI key */
.promptpay-panel{margin-top:28px;padding-top:24px;border-top:1px solid #eceef1}
.promptpay-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.promptpay-form label{flex:1 1 260px;max-width:340px}
.promptpay-preview{display:flex;gap:16px;align-items:center;margin-top:14px;padding:12px;border:1px dashed #d9dde4;border-radius:12px;background:#fafbfc}
.promptpay-preview img{width:150px;height:150px;background:#fff;border-radius:8px}.promptpay-preview p{margin:0;font-size:13px;color:#6b7080}
.ai-key-form{display:grid;grid-template-columns:1fr;gap:12px;max-width:620px}.ai-key-form .full{grid-column:1/-1}
.ai-key-form input[name="apiKey"]{font-family:'IBM Plex Mono',monospace}
.ai-tier{border:1px solid #eceef1;border-radius:12px;padding:10px 14px;margin:0}.ai-tier legend{font-size:13px;color:#6b7080;padding:0 4px}
.ai-tier .radio{display:flex;gap:8px;align-items:flex-start;margin:6px 0;font-size:14px}.ai-tier .radio input{margin-top:4px}
.ai-free-warning{background:#fff7ea;border:1px solid #f5d29a;border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.7;color:#6b4a12}
.ai-free-warning .check{display:flex;gap:8px;align-items:center;margin-top:8px;font-weight:600}
.ai-key-status{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start;padding:14px 16px;border-radius:12px;border:1px solid #d6efe0;background:#f2fbf5;margin-bottom:14px}
.ai-key-status.bad{border-color:#f3c9c4;background:#fdf3f2}.ai-key-status.warn{border-color:#f5d29a;background:#fff7ea}
.ai-usage{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 18px}.ai-usage div{flex:1 1 200px;border:1px solid #eceef1;border-radius:12px;padding:12px 14px;background:#fff}
.ai-usage b{display:block;font-size:24px}.ai-usage small{color:#6b7080}
.ai-sub{font-size:16px;margin:8px 0 10px}.ai-guide{margin-top:18px;max-width:620px}.ai-guide summary{cursor:pointer;font-weight:600}.ai-guide ol{padding-left:20px;line-height:1.8;font-size:14px}
.ai-tier .radio input,.ai-free-warning .check input{width:auto;flex:none;margin:4px 0 0}.ai-tier .radio span{flex:1}
