:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f1f3f6;--border: #e3e6eb;--text: #1b1f24;--muted: #5f6b7a;--primary: #2453d6;--primary-ink: #ffffff;--good: #1a7f4b;--good-bg: #e6f4ec;--warn: #9a5b00;--warn-bg: #fdf1dc;--bad: #b42318;--bad-bg: #fde8e6;--info: #1f4fb8;--info-bg: #e7eefc;--radius: 10px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}@media (prefers-color-scheme: dark){:root{--bg: #0f1216;--surface: #171b21;--surface-2: #1e232b;--border: #2a313b;--text: #e6e9ee;--muted: #9aa5b4;--primary: #5b84f5;--good: #4cc38a;--good-bg: #13301f;--warn: #f0b04d;--warn-bg: #3a2a10;--bad: #f2776b;--bad-bg: #3a1714;--info: #8db0ff;--info-bg: #17284a}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;margin:0}h2{font-size:15px;margin:0 0 12px}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pad{padding:24px}.text-good{color:var(--good)}.text-warn{color:var(--warn)}.text-bad{color:var(--bad)}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 12px;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:18px;padding:0 10px 18px}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.sidebar nav a{padding:8px 10px;border-radius:8px;color:var(--text)}.sidebar nav a:hover{background:var(--surface-2);text-decoration:none}.sidebar nav a.active{background:var(--info-bg);color:var(--info);font-weight:600}.me{border-top:1px solid var(--border);padding:12px 10px 0}.me-name{font-weight:600}.content{padding:28px 32px;max-width:1280px;width:100%}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head p{margin:4px 0 0}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions.right{justify-content:flex-end;margin-top:12px}.section-title{margin:24px 0 12px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.row{display:flex;gap:12px;align-items:flex-end}.row.wrap{flex-wrap:wrap}.grow{flex:1}.right{text-align:right}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px;overflow-x:auto}.card.highlight{border-color:var(--primary);box-shadow:0 0 0 3px var(--info-bg)}.card-flat{background:var(--surface-2);border-radius:var(--radius);padding:14px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.card-head h2{margin:0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stat{display:block;color:inherit;margin:0}a.stat:hover{text-decoration:none;border-color:var(--primary)}.stat-label{color:var(--muted);font-size:12px}.stat-value{font-size:22px;font-weight:700;margin-top:4px}.empty{color:var(--muted);padding:24px;text-align:center}.notice{background:var(--warn-bg);color:var(--warn);border-radius:var(--radius);padding:12px 14px;margin-bottom:16px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:8px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:top}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);margin-bottom:12px}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 10px;width:100%}input[type=checkbox]{width:auto}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin:0 0 12px}legend{font-size:12px;color:var(--muted);padding:0 4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid .full{grid-column:1 / -1}.receipt-box{border:1px dashed var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}.preview{margin-bottom:12px}.preview-amount{font-size:24px;font-weight:700}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn-primary:hover{background:var(--primary);filter:brightness(1.08)}.btn-danger{color:var(--bad);border-color:var(--bad)}.btn-ghost{border-color:transparent;background:transparent}.btn-sm{padding:4px 10px;font-size:12px}.link{background:none;border:none;color:var(--primary);cursor:pointer;padding:0;font:inherit}.icon-btn{background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted);line-height:1}.chip{font:inherit;font-size:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:999px;padding:4px 10px;cursor:pointer;margin:4px 4px 0 0}.badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}.badge-neutral{background:var(--surface-2);color:var(--muted)}.badge-good{background:var(--good-bg);color:var(--good)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-bad{background:var(--bad-bg);color:var(--bad)}.badge-info{background:var(--info-bg);color:var(--info)}.flags{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.flag{font-size:12px;border-radius:6px;padding:4px 8px;background:var(--warn-bg);color:var(--warn)}.flag-block{background:var(--bad-bg);color:var(--bad)}.flag-cap,.flag-require_approval{background:var(--info-bg);color:var(--info)}.error{background:var(--bad-bg);color:var(--bad);border-radius:8px;padding:10px 12px;margin:8px 0}.error ul{margin:6px 0 0;padding-left:18px}.timeline{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px}.plain{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:8px}.bars{display:flex;flex-direction:column;gap:8px}.bar-row{display:grid;grid-template-columns:180px 1fr 110px;gap:10px;align-items:center}.bar-track{background:var(--surface-2);border-radius:4px;height:10px;overflow:hidden}.bar-fill{display:block;height:100%;background:var(--primary);border-radius:4px}.bar-value{text-align:right;font-variant-numeric:tabular-nums}.bar-stack{display:flex}.bar-pending{background:var(--primary);opacity:.35;border-radius:0 4px 4px 0}.kv{display:grid;grid-template-columns:130px 1fr;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.kv:last-of-type{border-bottom:none}.match+.match{margin-top:6px}.cheque-fields{margin-top:10px}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.tab{font:inherit;background:none;border:none;padding:8px 14px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent}.tab.active{color:var(--text);border-bottom-color:var(--primary);font-weight:600}.rule-builder{background:var(--surface-2);border-radius:var(--radius);padding:14px;margin-top:12px}.rule-builder select{width:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e1473;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;overflow-y:auto;z-index:10}.modal{background:var(--surface);border-radius:14px;padding:20px 22px;width:100%;max-width:560px;box-shadow:0 20px 50px #00000040}.modal-wide{max-width:920px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-head h2{margin:0;font-size:17px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:380px;display:flex;flex-direction:column}.login-card h1{margin-bottom:4px}.login-card .btn-primary{justify-content:center;margin-top:4px}.demo{margin-top:16px}@media (max-width: 860px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px}.sidebar nav{flex-direction:row;flex-wrap:wrap}.me{border:none;padding:0}.content{padding:16px}.two-col,.form-grid{grid-template-columns:1fr}.row{flex-wrap:wrap}.bar-row{grid-template-columns:110px 1fr 90px}}
