:root{--bg:#fff;--fg:#192435;--muted:#5f6b7a;--border:#d9dde3;--accent:#1a73e8;--danger:#c5221f;--warning:#8a5a00;--warning-bg:#fff4dc;--danger-bg:#fdecea;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}[data-theme=dark]{--bg:#1f2533;--fg:#e6e9ee;--muted:#a3acb9;--border:#3a4252;--accent:#6aa7ff;--danger:#ff8a80;--warning:#fc6;--warning-bg:#3a3222;--danger-bg:#3d2626}body{background:var(--bg);color:var(--fg);margin:0;padding:16px}h1{margin:0 0 12px;font-size:1.25rem}.muted{color:var(--muted)}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:4px;padding:6px 12px}h2{margin:24px 0 8px;font-size:1rem}.card{border:1px solid var(--border);border-radius:6px;padding:12px 16px}.card p{margin:4px 0}.actions{gap:8px;margin-top:12px;display:flex}button.secondary{color:var(--fg);border-color:var(--border);background:0 0}button.danger{color:var(--danger);border-color:var(--danger);background:0 0}button:disabled{opacity:.6;cursor:default}label{margin:12px 0 4px;font-weight:600;display:block}input{font:inherit;box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;max-width:420px;color:var(--fg);border-radius:4px;padding:6px 8px}.small{font-size:.85rem}.error{color:var(--danger)}code{font-size:.9em}main{max-width:640px}select,textarea{font:inherit;box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;max-width:420px;color:var(--fg);border-radius:4px;padding:6px 8px}fieldset{border:0;margin:0;padding:0}label.inline{margin:4px 0;font-weight:400;display:block}label input[type=checkbox],label input[type=radio]{width:auto}.row{gap:8px;max-width:420px;display:flex}input.narrow{width:90px}.invalid,.invalid select{border-color:var(--danger);outline:1px solid var(--danger)}h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 6px;font-size:.8rem}.preview p{margin:0}.unsaved{background:var(--warning-bg);color:var(--warning);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:8px 12px;display:flex}.issues{border-radius:6px;margin-bottom:8px;padding:8px 12px}.issues ul{margin:4px 0 0;padding-left:18px}.issues.error{background:var(--danger-bg);color:var(--danger)}.issues.warning{background:var(--warning-bg);color:var(--warning)}.issues.info{color:var(--muted);margin-top:12px;padding:0;font-size:.85rem}ol.lines{margin:0;padding:0;list-style:none}ol.lines li{border-bottom:1px solid var(--border);padding:6px 0}.line-head{justify-content:space-between;gap:8px;display:flex}.line-head strong{white-space:nowrap}.badges{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.badge{border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:0 6px;font-size:.75rem}table.totals{border-collapse:collapse;width:100%}table.totals td{padding:2px 0}table.totals td+td{text-align:right;white-space:nowrap}table.totals tr.grand td{border-top:1px solid var(--border);padding-top:4px;font-weight:700}dl.details{grid-template-columns:auto 1fr;gap:2px 12px;margin:0;display:grid}dl.details dt{color:var(--muted)}dl.details dd{margin:0}.create{margin-top:16px}.create button{width:100%}.create p{margin-top:6px}button.link{color:var(--accent);background:0 0;border:none;width:auto;margin-top:8px;padding:0}button.small-button{margin-top:8px;padding:3px 10px;font-size:.85rem}.card.invoice{margin-bottom:8px}.card.invoice .issues{margin:8px 0 0}
