
:root{
  --bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#6b7280;--line:#e5e7eb;
  --primary:#2457d6;--primary2:#163da2;--sidebar:#0f172a;--sidebarText:#cbd5e1;
  --good:#0f9d72;--bad:#d14343;--shadow:0 8px 28px rgba(15,23,42,.07)
}
*{box-sizing:border-box} body{margin:0;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans Thai",Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select{font:inherit}.app{display:flex;min-height:100vh}.sidebar{width:250px;background:var(--sidebar);color:white;padding:22px 16px;position:fixed;inset:0 auto 0 0}
.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 24px}.logo{width:42px;height:42px;border-radius:12px;background:#fff;color:#0f172a;display:grid;place-items:center;font-weight:800}.brand small{display:block;color:#94a3b8;margin-top:3px}
nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:var(--sidebarText);padding:11px 12px;border-radius:10px;text-align:left;cursor:pointer}.nav-item:hover,.nav-item.active{background:#1e293b;color:#fff}
.main{margin-left:250px;width:calc(100% - 250px);padding:26px}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.topbar h1{margin:0;font-size:28px}.topbar p,.section-head p{margin:5px 0 0;color:var(--muted)}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:20px}.filters{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr auto;gap:12px;align-items:end;margin-bottom:18px}.field{display:grid;gap:7px}.field label{font-size:13px;font-weight:600}.field input,.field select,.search{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:white}.filter-actions,.top-actions,.modal-actions{display:flex;gap:8px}.primary,.ghost,.icon-btn{border:0;border-radius:10px;padding:10px 14px;cursor:pointer}.primary{background:var(--primary);color:#fff}.primary:hover{background:var(--primary2)}.ghost{background:#eef2f7;color:#263348}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat span{font-size:13px;color:var(--muted)}.stat strong{display:block;font-size:26px;margin:9px 0}.stat small{color:var(--muted)}.grid-two{display:grid;grid-template-columns:1.3fr .9fr;gap:18px;margin-bottom:18px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.section-head h2{margin:0;font-size:18px}.chart{height:250px;display:flex;align-items:flex-end;gap:14px;padding:18px 4px 0}.bar-group{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:4px;height:100%;position:relative;padding-bottom:28px}.bar{width:16px;border-radius:6px 6px 2px 2px;min-height:4px}.income{background:#2457d6}.expense{background:#9bb5f4}.bar-label{position:absolute;bottom:0;font-size:12px;color:var(--muted)}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-top:1px solid var(--line);font-size:14px;text-align:left}th{color:var(--muted);font-weight:600;background:#fafbfc}.num{text-align:right}.empty{text-align:center;color:var(--muted);padding:28px}.simple-list{list-style:none;padding:0;margin:0}.simple-list li{padding:11px 0;border-top:1px solid var(--line)}.hidden{display:none!important}.search{max-width:260px}.muted{color:var(--muted)}.notice{margin-top:12px;padding:12px;background:#eef6ff;border-radius:10px}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;padding:20px;z-index:99}.modal-card{background:white;width:min(560px,100%);border-radius:16px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.25)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.full{grid-column:1/-1}.icon-btn{padding:5px 10px;background:#f1f5f9;font-size:22px}.modal-actions{justify-content:flex-end;margin-top:8px}
@media(max-width:1000px){.filters{grid-template-columns:1fr 1fr}.filter-actions{grid-column:1/-1}.stats{grid-template-columns:1fr 1fr}.grid-two{grid-template-columns:1fr}}
@media(max-width:760px){.sidebar{position:static;width:100%;height:auto}.app{display:block}.main{margin:0;width:100%;padding:16px}.sidebar nav{display:flex;overflow:auto}.nav-item{white-space:nowrap}.topbar{align-items:flex-start;flex-direction:column}.filters,.stats{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}}
.sidebar-note{position:absolute;bottom:16px;left:26px;color:#94a3b8;font-size:12px;line-height:1.7}
.section-gap{margin-top:18px}.toolbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px}.list-item{border-top:1px solid var(--line);padding:12px 0}.list-item small,td small{display:block;color:var(--muted);margin-top:4px}.tag{display:inline-block;padding:4px 9px;border-radius:99px;font-size:12px;background:#eef2ff;color:#254ec2;white-space:nowrap}.tag.payment{background:#fff2e9;color:#ab5108}.tag.journal,.tag.import{background:#edf2f4;color:#3b5363}.actions{white-space:nowrap}.text-btn{background:none;border:0;color:var(--primary);cursor:pointer;padding:4px}.text-btn.danger,.error{color:var(--bad)}.notice.warning{background:#fff4e8;color:#905109}.notice{margin-bottom:15px}.chart-legend{text-align:center;margin:0}.key{display:inline-block;width:11px;height:11px;margin-left:12px;border-radius:2px}.company-chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:8px 12px;border-radius:12px;background:#f0f4fb}.setting-actions{display:flex;gap:10px;margin:20px 0}.file-label{cursor:pointer}.dialog{border:0;border-radius:16px;padding:24px;width:min(720px,calc(100% - 24px));max-height:92vh;overflow:auto;box-shadow:0 24px 70px rgba(0,0,0,.25)}.dialog::backdrop{background:rgba(15,23,42,.5)}.dialog h2{margin:0}.dialog h3{margin:0;font-size:16px}.dialog .section-head p{font-size:13px}.dialog .notice{margin:8px 0}.line-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;margin-bottom:8px}.line-row input,.line-row select{min-width:0;width:100%;padding:9px;border-radius:8px;border:1px solid var(--line)}.signatures{display:flex;justify-content:space-around;margin-top:65px}.table-wrap{overflow:auto}tfoot th{font-weight:700;background:#f5f7fb}
#printSheet{display:none}
@media print{body>*:not(#printSheet){display:none!important}#printSheet{display:block!important;background:white;color:#111;padding:10mm;font-family:"Noto Sans Thai",Arial,sans-serif}#printSheet table{width:100%;border-collapse:collapse;margin-top:24px}#printSheet th,#printSheet td{border:1px solid #555;padding:9px;font-size:12px}#printSheet h1{font-size:20px}#printSheet h2{font-size:17px}.signatures{page-break-inside:avoid}}
@media(max-width:760px){.sidebar-note{display:none}.line-row{grid-template-columns:1fr 1fr}.line-row select{grid-column:1/-1}.top-actions,.setting-actions{flex-wrap:wrap}.filters{grid-template-columns:1fr 1fr}.filters button{grid-column:1/-1}.stats{grid-template-columns:1fr 1fr}.dialog{padding:16px}}
@media(max-width:470px){.filters,.stats{grid-template-columns:1fr}.top-actions{width:100%}.top-actions button{flex:1}}
.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:white;font:inherit;resize:vertical}.detail-row td{padding:3px 12px 10px;background:#fafbfd;border-top:0}.detail-row summary{cursor:pointer;color:var(--primary);font-size:13px}.detail-lines{display:grid;gap:7px;padding:10px 0;color:#334155;font-size:13px}.detail-lines span{display:block}.table-wrap td{vertical-align:top}.actions{min-width:180px}.actions .text-btn{padding:4px 6px}
