:root{--brand:#0e5fd8;--brand-dark:#0a48a3;--ink:#17212f;--muted:#5b6b7f;--line:#dbe2ea;--bg:#f4f6f9;--card:#ffffff;--ok:#157347;--warn:#b45309;--err:#b42318;--radius:10px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.5rem;margin:0 0 .5rem}h2{font-size:1.15rem;margin:1.5rem 0 .5rem}h3{font-size:1rem;margin:1rem 0 .35rem}.container{max-width:980px;margin:0 auto;padding:24px 16px 64px}.container.narrow{max-width:640px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px}.muted{color:var(--muted);font-size:.9rem}.small{font-size:.82rem}.right{text-align:right}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}label{display:block;font-weight:600;font-size:.9rem;margin:12px 0 4px}label .req{color:var(--err)}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--brand) 35%,transparent);border-color:var(--brand)}textarea{min-height:90px;resize:vertical}.btn{display:inline-block;padding:9px 18px;border-radius:6px;border:1px solid var(--brand);background:var(--brand);color:#fff;font:inherit;font-weight:600;cursor:pointer}.btn:hover{background:var(--brand-dark);text-decoration:none}.btn.secondary{background:#fff;color:var(--brand)}.btn.danger{background:#fff;color:var(--err);border-color:var(--err)}.btn.small{padding:4px 10px;font-size:.85rem;font-weight:500}.btn:disabled{opacity:.5;cursor:not-allowed}table.grid{width:100%;border-collapse:collapse}table.grid td,table.grid th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}table.grid th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.75rem;font-weight:700;background:#e8edf4;color:var(--muted)}.badge.ok{background:#d9f0e4;color:var(--ok)}.badge.warn{background:#fdeed7;color:var(--warn)}.badge.err{background:#fbdedb;color:var(--err)}.badge.info{background:#dbe8fb;color:var(--brand-dark)}.alert{padding:12px 14px;border-radius:8px;margin:12px 0;font-size:.92rem}.alert.ok{background:#d9f0e4;color:var(--ok)}.alert.err{background:#fbdedb;color:var(--err)}.alert.info{background:#dbe8fb;color:var(--brand-dark)}.topnav{background:var(--card);border-bottom:1px solid var(--line);padding:12px 16px;display:flex;gap:20px;align-items:center}.topnav .brand{font-weight:800;color:var(--ink)}.topnav a{color:var(--muted);font-weight:600;font-size:.92rem}.topnav a:hover{color:var(--brand);text-decoration:none}.topnav .spacer{flex:1 1}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.row>*{flex:1 1;min-width:140px}.actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap;align-items:center}.totals{margin-left:auto;max-width:320px}.totals .line{display:flex;justify-content:space-between;padding:4px 0}.totals .line.total{border-top:2px solid var(--ink);font-weight:800;font-size:1.05rem;margin-top:6px;padding-top:8px}@media print{.no-print,.topnav{display:none!important}body{background:#fff}.card{border:none;padding:0}}