:root{font-family:Tahoma,Noto Sans Thai,system-ui,sans-serif;color:#18212f;background:#f4f6f8;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}.ledger-shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr);background:#080b10;color:#e7edf7}.ledger-shell.receipt-mode{background:#080b10;color:#e7edf7}.ledger-shell.receipt-mode .ledger-content{background:#080b10}.ledger-shell.receipt-mode .app-shell{background:transparent}.ledger-shell.receipt-mode .app-header{border-bottom:1px solid #1f2733;padding-bottom:16px}.ledger-shell.receipt-mode .app-header h1{color:#fff}.ledger-shell.receipt-mode .eyebrow{color:#6f8dc2}.ledger-shell.receipt-mode .muted{color:#7a8aa0}.ledger-shell.receipt-mode .panel,.ledger-shell.receipt-mode .item-row,.ledger-shell.receipt-mode .history-item{border-color:#222b38;background:#10151c;color:#e7edf7;box-shadow:none}.ledger-shell.receipt-mode .panel h2,.ledger-shell.receipt-mode .panel h3,.ledger-shell.receipt-mode .history-item strong{color:#c8d8f1}.ledger-shell.receipt-mode label,.ledger-shell.receipt-mode .subhead,.ledger-shell.receipt-mode .totals-list dt,.ledger-shell.receipt-mode .receipt-totals dt,.ledger-shell.receipt-mode .history-item p,.ledger-shell.receipt-mode .history-meta,.ledger-shell.receipt-mode .empty-history{color:#7a8aa0}.ledger-shell.receipt-mode input,.ledger-shell.receipt-mode select,.ledger-shell.receipt-mode textarea{border-color:#222c3b;background:#151a22;color:#f7fbff}.ledger-shell.receipt-mode input:focus,.ledger-shell.receipt-mode select:focus,.ledger-shell.receipt-mode textarea:focus{outline-color:#315b94;border-color:#4f7fbd}.ledger-shell.receipt-mode .icon-button{border-color:#2b3545;background:#151b24;color:#f7fbff}.ledger-shell.receipt-mode .primary-button{border-color:#315b94;background:#1a2740;color:#83b2ff}.ledger-shell.receipt-mode .status-pill{border-color:#315b94;background:#131922;color:#79aaff}.ledger-shell.receipt-mode .status-pill.saved{border-color:#1f8060;background:#10231d;color:#58d8a5}.ledger-shell.receipt-mode .net-total,.ledger-shell.receipt-mode .receipt-net{border-top-color:#222b38}.ledger-shell.receipt-mode .error-list{border-color:#7a271a;background:#2b1514;color:#ffb4ab}.ledger-shell.receipt-mode .error-text,.ledger-shell.receipt-mode .danger{color:#ffb4ab}.ledger-sidebar{position:sticky;top:0;height:100vh;display:grid;grid-template-rows:auto auto 1fr auto;gap:18px;padding:10px;border-right:1px solid #1f2733;background:#11161d}.ledger-brand{display:flex;align-items:center;gap:10px;min-height:34px}.ledger-logo,.ledger-user div{width:28px;height:28px;display:grid;place-items:center;border:1px solid #334155;border-radius:8px;background:#17202c;color:#8db8ff;font-weight:900}.ledger-brand strong,.ledger-entity strong{display:block;color:#f8fbff;font-size:.82rem}.ledger-brand span,.ledger-entity small,.ledger-user span{display:block;color:#75849b;font-size:.68rem;letter-spacing:.08em}.ledger-entity{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid #242d3b;border-radius:6px;background:#151b24}.ledger-entity>span{width:10px;height:10px;border-radius:999px;background:#48d69b;box-shadow:0 0 0 4px #48d69b1f}.ledger-nav{display:grid;align-content:start;gap:6px}.ledger-nav p{margin:18px 0 6px;color:#59687e;font-size:.65rem;letter-spacing:.22em}.ledger-nav button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;border:0;border-radius:6px;padding:0 10px;background:transparent;color:#d8e6ff;cursor:pointer;text-align:left}.ledger-nav button.active{background:#171d26;color:#fff}.ledger-nav button:disabled{color:#6f7d91;cursor:not-allowed}.ledger-user{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #202937}.ledger-content{min-width:0}.ledger-topbar{height:46px;display:grid;grid-template-columns:auto minmax(260px,360px) 1fr;align-items:center;gap:18px;padding:0 24px;border-bottom:1px solid #1f2733;color:#74849c;background:#0e1218;font-size:.72rem}.ledger-topbar input{min-height:32px;border-color:#222c3b;background:#131922;color:#d8e6ff}.ledger-topbar div{display:flex;justify-content:flex-end;gap:18px}.ledger-page{padding:24px}.ledger-titlebar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding-bottom:20px;border-bottom:1px solid #1f2733}.ledger-kicker{margin:0 0 8px;color:#6f8dc2;font-size:.7rem;font-weight:800;letter-spacing:.25em}.ledger-titlebar h1{margin:0 0 4px;color:#fff;font-size:1.45rem}.ledger-titlebar p{margin:0;color:#7a8aa0}.ledger-actions,.ledger-card-header,.ocr-file{display:flex;align-items:center;justify-content:space-between;gap:10px}.ledger-button,.ledger-icon-button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #2b3545;border-radius:6px;padding:0 12px;background:#151b24;color:#f7fbff;cursor:pointer;font-weight:800}.ledger-button.primary,.ledger-button.full{background:#f7fbff;color:#09111d}.ledger-button.full{width:100%;background:#1a2740;color:#83b2ff}.ledger-button.ghost{background:#111720}.ledger-icon-button{width:34px;padding:0}.ledger-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:18px;margin-top:18px}.ledger-main{display:grid;gap:18px}.ledger-card{border:1px solid #222b38;border-radius:8px;background:#10151c;overflow:hidden}.ledger-card-header{padding:16px;border-bottom:1px solid #222b38}.ledger-card h2{margin:0 0 4px;color:#c8d8f1;font-size:.82rem;letter-spacing:.12em}.ledger-card p{margin:0;color:#65758c;font-size:.78rem}.ledger-pill,.ledger-sync{border:1px solid #315b94;border-radius:999px;padding:4px 9px;color:#79aaff;font-size:.68rem;font-weight:900;letter-spacing:.08em}.ledger-sync{border-color:#1f8060;color:#58d8a5}.expense-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px}.field-with-button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.expense-form-grid label,.expense-row label{color:#6f82a1;font-size:.66rem;letter-spacing:.18em}.ledger-page input,.ledger-page select,.ledger-page textarea{border-color:#222c3b;background:#151a22;color:#f7fbff}.ledger-page input:focus,.ledger-page textarea:focus,.ledger-page select:focus{outline-color:#315b94;border-color:#4f7fbd}.expense-table{overflow-x:auto}.expense-table-head,.expense-row{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(150px,.8fr) minmax(120px,.65fr) minmax(118px,.7fr) minmax(96px,.55fr) minmax(82px,.5fr) 42px;gap:10px;align-items:center;padding:0 16px;min-width:1000px}.expense-table-head{min-height:42px;color:#59687e;border-bottom:1px solid #222b38;font-size:.66rem;letter-spacing:.16em}.expense-row{min-height:58px;border-bottom:1px solid #1b232e}.expense-row label{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:10px}.expense-row label span{color:#5d6b80}.expense-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:16px}.expense-totals div{display:grid;gap:8px;padding:16px;border:1px solid #222b38;border-radius:6px;background:#141a22}.expense-totals .net{border-color:#42699f;background:#192334}.expense-totals span{color:#677893;font-size:.68rem;letter-spacing:.14em}.expense-totals strong{color:#fff;font-size:1.25rem}.expense-totals .net strong{color:#6fa6ff}.expense-record-list{display:grid;gap:10px;padding:16px}.empty-expense-record{margin:0;color:#6f7f96}.expense-record{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,.8fr) minmax(120px,.8fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid #222b38;border-radius:6px;background:#141a22}.expense-record div{display:grid;gap:4px}.expense-record strong{color:#fff}.expense-record span{color:#7a8aa0;font-size:.78rem}.record-status{border:1px solid #315b94;border-radius:999px;padding:5px 9px;color:#79aaff!important;text-align:center;white-space:nowrap}.ledger-doc-panel{min-width:0}.upload-box{display:grid;place-items:center;gap:8px;margin:16px;min-height:82px;border:1px dashed #3a4658;border-radius:6px;color:#dce9ff;cursor:pointer}.upload-box small{color:#6f7f96;letter-spacing:.08em}.upload-box input{display:none}.ocr-card{display:grid;gap:14px;margin:16px;padding:14px;border:1px solid #2b3d56;border-radius:6px;background:#172231}.ocr-file{justify-content:flex-start}.ocr-lines dl{display:grid;gap:10px;margin:12px 0 0}.ocr-lines div{display:grid;grid-template-columns:90px 1fr;gap:10px}.ocr-lines dt{color:#687893}.ocr-lines dd{margin:0;color:#fff;font-weight:800}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#05080db8}.vendor-modal{width:min(720px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;border:1px solid #2b3545;border-radius:8px;background:#10151c;box-shadow:0 24px 80px #0000005c}.vendor-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px;border-top:1px solid #222b38}.placeholder-page{padding:32px;color:#e7edf7}.app-shell{width:min(1440px,100%);margin:0 auto;padding:24px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.eyebrow{margin:0 0 4px;color:#526070;font-size:.78rem;font-weight:700;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:1.8rem}.muted{color:#667085;margin-bottom:0}.workspace{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:18px;align-items:start}.editor-column,.side-column{display:grid;gap:18px}.side-column{position:sticky;top:16px}.panel{background:#fff;border:1px solid #d9e0e8;border-radius:8px;padding:18px;box-shadow:0 8px 28px #1018280f}.panel-header,.items-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}.customer-header{margin-top:18px;margin-bottom:10px}.panel h2,.panel h3{margin-bottom:0}.subhead{margin:18px 0 10px;font-size:1rem}.form-grid{display:grid;gap:12px}.selector-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:end;margin-bottom:14px}.selector-row.single{grid-template-columns:1fr}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.span-two{grid-column:span 2}label{display:grid;gap:6px;color:#344054;font-size:.88rem;font-weight:700}input,select,textarea{width:100%;border:1px solid #cbd5df;border-radius:6px;padding:10px 11px;color:#18212f;background:#fff;min-height:42px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #98c7ff;border-color:#2f80ed}.status-pill{border:1px solid #e3e8ef;border-radius:999px;color:#667085;padding:4px 10px;font-size:.78rem;font-weight:700;white-space:nowrap}.status-pill.saved{color:#0f7a4f;border-color:#bdebd5;background:#ecfdf3}.items-list{display:grid;gap:10px}.item-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(90px,.5fr) minmax(120px,.7fr) minmax(120px,.7fr) 42px;gap:10px;align-items:end;padding:12px;border:1px solid #e3e8ef;border-radius:8px;background:#f9fafb}.icon-button,.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #cbd5df;border-radius:6px;min-height:42px;padding:0 12px;background:#fff;color:#243244;cursor:pointer;font-weight:800}.button-group{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.icon-button:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.55}.text-button{white-space:nowrap}.danger{color:#b42318}.primary-button{width:100%;color:#fff;background:#155eef;border-color:#155eef}.summary-panel,.receipt-history-panel{box-shadow:none}.panel-header.compact{align-items:center}.empty-history{margin:0;color:#667085}.history-list{display:grid;gap:10px;max-height:320px;overflow:auto;padding-right:4px}.history-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px;border:1px solid #e3e8ef;border-radius:8px;background:#f9fafb}.history-item strong{display:block;color:#18212f}.history-item p{margin:3px 0 0;color:#526070}.history-meta{display:grid;gap:3px;color:#667085;font-size:.78rem;text-align:right}.history-amount{grid-column:1 / -1;font-size:1.05rem;font-weight:800;text-align:right}.totals-list,.receipt-totals{display:grid;gap:8px;margin:0}.totals-list div,.receipt-totals div{display:flex;justify-content:space-between;gap:16px}.totals-list dt,.receipt-totals dt{color:#667085}.totals-list dd,.receipt-totals dd{margin:0;font-weight:800}.net-total,.receipt-net{padding-top:10px;border-top:1px solid #e3e8ef;font-size:1.2rem}.error-list{margin:14px 0;padding:10px 12px 10px 28px;border:1px solid #fecdca;border-radius:6px;background:#fffbfa;color:#b42318}.error-text{color:#b42318;font-weight:700}.preview-wrap{overflow:hidden}.receipt-page{width:min(794px,100%);min-height:auto;aspect-ratio:210 / 297;margin:0 auto;padding:clamp(20px,5%,42px);background:#fff;border:1px solid #d9e0e8;color:#101828;font-size:clamp(.72rem,1.1vw,1rem)}.receipt-top,.receipt-parties,.receipt-bottom,.signature-row{display:grid;grid-template-columns:1fr 1fr;gap:28px}.receipt-top{align-items:start;padding-bottom:24px;border-bottom:2px solid #18212f}.receipt-top h2{margin:0;font-size:clamp(1.35rem,2.4vw,2rem)}.receipt-muted{color:#667085}.receipt-meta{justify-self:end;text-align:right}.receipt-parties{margin:26px 0}.receipt-parties h3,.receipt-notes h3{margin-bottom:8px;font-size:1rem}.receipt-parties p,.receipt-notes p,.receipt-meta p{margin:0 0 5px}.party-name{font-weight:800}.receipt-table{width:100%;border-collapse:collapse;margin:20px 0 26px}.receipt-table th,.receipt-table td{border:1px solid #d0d5dd;padding:10px;text-align:left;vertical-align:top}.receipt-table th{background:#eef2f6}.receipt-table th:nth-child(1),.receipt-table td:nth-child(1),.receipt-table th:nth-child(3),.receipt-table td:nth-child(3){text-align:center}.receipt-table th:nth-child(4),.receipt-table td:nth-child(4),.receipt-table th:nth-child(5),.receipt-table td:nth-child(5){text-align:right}.receipt-bottom{align-items:start}.signature-row{margin-top:82px;text-align:center}.signature-row span{display:block;border-top:1px solid #344054;margin:0 auto 8px;width:220px}@media(max-width:1100px){.workspace{grid-template-columns:1fr}.side-column{position:static}}@media(max-width:760px){.app-shell{padding:14px}.form-grid.two,.form-grid.three,.receipt-top,.receipt-parties,.receipt-bottom,.signature-row{grid-template-columns:1fr}.span-two{grid-column:auto}.item-row,.selector-row{grid-template-columns:1fr}.receipt-page{min-width:620px}}
