:root{--bg: #ffffff;--fg: #16181d;--muted: #6b7280;--line: #e5e7eb;--card: #ffffff;--accent: #2563eb;--accent-fg: #ffffff;--good: #059669;--warn: #b45309;--bad: #dc2626;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1)}:root[data-theme=dark]{--bg: #0f1116;--fg: #e8eaed;--muted: #9aa2ad;--line: #262b34;--card: #161a21;--accent: #3b82f6;--good: #34d399;--warn: #fbbf24;--bad: #f87171}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}.wrap{padding:16px;max-width:1100px;margin:0 auto}.row{display:flex;gap:10px;align-items:center}.row.wrap-line{flex-wrap:wrap}.spacer{flex:1 1 auto}.muted{color:var(--muted)}.small{font-size:12.5px}.h1{font-size:19px;font-weight:650;margin:0 0 2px}.h2{font-size:15px;font-weight:620;margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.card+.card{margin-top:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:8px;padding:7px 12px;font-weight:550;white-space:nowrap;line-height:1.2}.btn:hover{border-color:var(--muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}.btn.ghost{background:transparent;border-color:transparent}.btn.sm{padding:4px 9px;font-size:12.5px}.field{display:block;margin-bottom:10px}.field>span{display:block;font-size:12.5px;font-weight:560;margin-bottom:4px;color:var(--muted)}.input,select.input,textarea.input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.input:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width: 620px){.grid2{grid-template-columns:1fr}}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;border:1px solid var(--line)}.empty{text-align:center;padding:34px 14px;color:var(--muted)}.err{color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent);border:1px solid color-mix(in srgb,var(--bad) 25%,var(--line));padding:9px 11px;border-radius:8px}.note{color:var(--muted);background:color-mix(in srgb,var(--accent) 6%,transparent);border:1px solid var(--line);padding:9px 11px;border-radius:8px}.gridwrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow-x:auto}.mgrid{width:100%;border-collapse:collapse;font-size:13.5px}.mgrid th{text-align:left;padding:9px 12px;font-size:11.5px;font-weight:620;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);white-space:nowrap}.mgrid td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.mgrid tbody tr:last-child td{border-bottom:0}.mgrid tbody tr{cursor:pointer}.mgrid tbody tr:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.gtitle{font-weight:600}.gsub{margin-top:2px}.gacts{text-align:right;white-space:nowrap}.gacts .btn{margin-left:6px}.nowrap{white-space:nowrap}.tabs{display:flex;gap:4px;margin:12px 0 10px;border-bottom:1px solid var(--line);overflow-x:auto}.tab{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted);padding:9px 12px;font-size:13px;font-weight:560;border-bottom:2px solid transparent;white-space:nowrap}.tab.on{color:var(--accent);border-bottom-color:var(--accent)}.tcount{background:color-mix(in srgb,var(--fg) 10%,transparent);border-radius:999px;padding:0 6px;font-size:11px}.wrap{max-width:1180px}.pagehead{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:4px}.pagehead .titles{flex:1 1 260px;min-width:0}.pagehead .acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 12px}.filters .input{width:auto;min-width:180px}.filters .search{flex:1 1 220px}.nav{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:0 0 14px;overflow-x:auto}.nav a{color:var(--muted);text-decoration:none;padding:9px 12px;font-weight:560;font-size:13px;border-bottom:2px solid transparent;white-space:nowrap}.nav a.on{color:var(--accent);border-bottom-color:var(--accent)}.pill.st-draft{color:var(--muted)}.pill.st-sent,.pill.st-viewed{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.pill.st-countered,.pill.st-partially_paid{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,var(--line))}.pill.st-accepted,.pill.st-paid,.pill.st-converted{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,var(--line))}.pill.st-overdue,.pill.st-expired,.pill.st-declined{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}.pill.st-void{color:var(--muted);text-decoration:line-through}.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:12px 0 18px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.stat .lbl{font-size:12px;color:var(--muted);font-weight:560}.stat .val{font-size:22px;font-weight:680;margin-top:2px;font-variant-numeric:tabular-nums}.stat.bad .val{color:var(--bad)}.stat.good .val{color:var(--good)}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.mgrid td.num,.mgrid th.num{text-align:right}.section{margin-top:18px}.section>.h2{margin-bottom:8px}.menuwrap{position:relative;display:inline-block}.kebab{border:1px solid transparent;background:transparent;border-radius:8px;padding:4px 6px;color:var(--muted);line-height:0}.kebab:hover,.kebab[aria-expanded=true]{border-color:var(--line);color:var(--fg);background:var(--card)}.menu{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:210px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #00000024;padding:5px}.menu button{display:flex;width:100%;align-items:center;gap:9px;border:0;background:transparent;color:var(--fg);padding:8px 10px;border-radius:7px;text-align:left;white-space:nowrap}.menu button:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.menu button.danger{color:var(--bad)}.menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;min-height:100vh;background:#0f172a59;z-index:50}.dialog{position:absolute;left:50%;transform:translate(-50%);width:min(560px,calc(100vw - 24px));background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 50px #00000040}.dialog.wide{width:min(860px,calc(100vw - 24px))}.dialog header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}.dialog header .h2{flex:1}.dialog .body{padding:14px 16px}.dialog footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}.field .help{display:block;font-size:12px;color:var(--muted);margin-top:3px}.field .ferr{display:block;font-size:12px;color:var(--bad);margin-top:3px}.field.invalid .input{border-color:var(--bad)}.formsec{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:14px 16px;margin-bottom:14px}.formsec>h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:650}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (max-width: 760px){.grid3{grid-template-columns:1fr}}.check{display:flex;gap:8px;align-items:flex-start;margin:8px 0}.check input{margin-top:3px}.lines{width:100%;border-collapse:collapse;min-width:760px}.lines th{text-align:left;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:6px;border-bottom:1px solid var(--line);white-space:nowrap}.lines td{padding:6px;vertical-align:top;border-bottom:1px solid var(--line)}.lines .input{padding:6px 8px}.lines .w-qty{width:80px}.lines .w-rate{width:120px}.lines .w-pct{width:78px}.lines .w-amt{width:120px}.totals{margin-left:auto;width:min(340px,100%);margin-top:10px}.totals .row{justify-content:space-between;padding:3px 0}.totals .grand{font-weight:700;font-size:16px;border-top:2px solid var(--fg);padding-top:6px;margin-top:4px}.picker{position:relative}.sugg{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 2px);background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);max-height:280px;overflow:auto}.sugg button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;color:var(--fg)}.sugg button:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.thread .msg{border-left:3px solid var(--line);padding:4px 0 4px 10px;margin:10px 0}.thread .msg.staff{border-left-color:var(--accent)}.thread .msg.customer{border-left-color:var(--warn)}.thread .who{font-weight:600;font-size:12.5px}.thread .who .muted{font-weight:400}.split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}@media (max-width: 900px){.split{grid-template-columns:1fr}}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:10px;z-index:80;box-shadow:var(--shadow);max-width:calc(100vw - 32px)}.toast.bad{background:var(--bad);color:#fff}.swatch{width:22px;height:22px;border-radius:6px;border:1px solid var(--line);display:inline-block;vertical-align:middle}.chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:1px 9px;font-size:12px}.secret-set{color:var(--good);font-weight:600}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:color-mix(in srgb,var(--fg) 6%,transparent);padding:2px 6px;border-radius:6px;overflow-wrap:anywhere}.paperframe{width:100%;border:0;display:block;background:#eef0f3;border-radius:var(--radius)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.lcard{display:block;cursor:pointer;text-align:left;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:var(--radius);padding:10px}.lcard.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.lcard .thumb{position:relative;height:250px;overflow:hidden;border-radius:8px;background:#eef0f3;margin-bottom:8px;pointer-events:none}.lcard .thumb iframe{position:absolute;top:0;left:0;width:820px;height:1100px;border:0;transform:scale(.3);transform-origin:0 0}.lcard .lname{font-weight:650;display:flex;gap:8px;align-items:center}.aging{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.agebar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--line);margin:10px 0 4px}.agebar span{display:block;height:100%}.split.preview{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (max-width: 1100px){.split.preview{grid-template-columns:1fr}}.statement .paper{box-shadow:none}@media print{.nav,.pagehead .acts,.noprint{display:none!important}.wrap{padding:0;max-width:none}}
