@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/newsreader-400.woff2)format("woff2")}@font-face{font-family:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/newsreader-400-italic.woff2)format("woff2")}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/schibsted-grotesk-var.woff2)format("woff2")}:root{--font-display:"Newsreader",Georgia,serif;--font-sans:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:ui-monospace,"Cascadia Mono",Consolas,monospace;--paper:#fbfaf7;--surface:#fff;--surface-2:#f4f1eb;--ink:#14131a;--text:#3d3b47;--muted:#6b6875;--hair:#14131a1a;--hair-2:#14131a2e;--indigo:#4f46e5;--indigo-deep:#3730a3;--cyan:#0e7490;--pos:#0e7490;--neg:#b4443c;--warn:#8a6a16;--r:10px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--paper);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:14.5px;line-height:1.5}a{color:var(--indigo);text-decoration:none}a:hover{text-decoration:underline}.shell{grid-template-columns:216px 1fr;min-height:100vh;display:grid}.side{background:var(--surface-2);border-right:1px solid var(--hair);flex-direction:column;gap:26px;padding:22px 16px;display:flex}.brand{align-items:center;gap:11px;padding:0 6px;display:flex}.brand svg{width:30px;height:30px;color:var(--ink)}.brand b{letter-spacing:2.6px;color:var(--ink);font-size:15px;font-weight:600}.brand small{letter-spacing:2.4px;color:var(--muted);margin-top:3px;font-size:8.5px;display:block}.nav{flex-direction:column;gap:1px;display:flex}.nav a{color:var(--text);border-radius:7px;padding:8px 10px;font-size:14px;font-weight:500}.nav a:hover{background:#14131a0d;text-decoration:none}.nav a[aria-current=page]{background:var(--ink);color:#fff}.nav .grp{letter-spacing:1.8px;text-transform:uppercase;color:var(--muted);padding:14px 10px 5px;font-size:10px;font-weight:600}.who{border-top:1px solid var(--hair);margin-top:auto;padding:11px 10px;font-size:12.5px}.who b{color:var(--ink);display:block}.who span{color:var(--muted)}.main{max-width:1180px;padding:30px 36px 64px}h1{font-family:var(--font-display);letter-spacing:-.6px;color:var(--ink);font-size:31px;font-weight:400;line-height:1.15}.sub{color:var(--muted);margin-top:5px;font-size:14px}.head{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}h2{letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin:32px 0 11px;font-size:11px;font-weight:600}.cards{grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:12px;display:grid}.card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:15px 17px}.card .k{letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.card .v{font-family:var(--font-display);color:var(--ink);letter-spacing:-.5px;font-variant-numeric:tabular-nums;margin-top:7px;font-size:27px}.card .n{color:var(--muted);margin-top:3px;font-size:12px}.card.alert .v{color:var(--neg)}table{border-collapse:collapse;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);width:100%;overflow:hidden}th{text-align:left;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--hair);background:var(--surface-2);white-space:nowrap;padding:9px 13px;font-size:10px;font-weight:600}td{vertical-align:top;border-bottom:1px solid #14131a0e;padding:10px 13px}tr:last-child td{border-bottom:none}tbody tr:hover{background:#4f46e509}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tot td{color:var(--ink);border-top:1px solid var(--hair-2);background:var(--surface-2);font-weight:600}.empty{text-align:center;color:var(--muted);padding:34px 14px;font-size:13.5px}.mono{font-family:var(--font-mono);font-size:12.5px}.pill{letter-spacing:.7px;text-transform:uppercase;border:1px solid var(--hair-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:600;display:inline-block}.pill.draft{background:var(--surface-2)}.pill.issued,.pill.sent,.pill.entered{color:var(--indigo);border-color:#4f46e559}.pill.part_paid{color:var(--warn);border-color:#8a6a1666}.pill.paid{color:var(--pos);border-color:#0e749066}.pill.void{opacity:.6;text-decoration:line-through}.pill.overdue{color:var(--neg);border-color:#b4443c73}label{letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-bottom:5px;font-size:11px;font-weight:600;display:block}input,select,textarea{border:1px solid var(--hair-2);background:var(--surface);width:100%;font:inherit;color:var(--ink);border-radius:7px;padding:8px 11px}input:focus,select:focus,textarea:focus{border-color:var(--indigo);outline:none;box-shadow:0 0 0 3px #4f46e521}input[type=number],input.num{text-align:right;font-variant-numeric:tabular-nums}.row{flex-wrap:wrap;gap:12px;display:flex}.row>*{flex:1;min-width:140px}.field{margin-bottom:14px}button,.btn{border:1px solid var(--ink);background:var(--ink);color:#fff;font:inherit;cursor:pointer;border-radius:7px;padding:8px 15px;font-size:13.5px;font-weight:600;display:inline-block}button:hover,.btn:hover{background:#000;text-decoration:none}button.ghost,.btn.ghost{color:var(--ink);border-color:var(--hair-2);background:0 0}button.ghost:hover,.btn.ghost:hover{background:#14131a0d}button.danger,.btn.danger{color:var(--neg);background:0 0;border-color:#b4443c73}button.danger:hover{background:#b4443c12}button:disabled{opacity:.45;cursor:not-allowed}.err{color:var(--neg);background:#b4443c12;border:1px solid #b4443c4d;border-radius:7px;margin-bottom:16px;padding:10px 13px;font-size:13.5px}.note{color:var(--warn);background:#8a6a1612;border:1px solid #8a6a164d;border-radius:7px;margin:12px 0;padding:10px 13px;font-size:13.5px}.ok{color:var(--pos);background:#0e749012;border:1px solid #0e74904d;border-radius:7px;margin-bottom:16px;padding:10px 13px;font-size:13.5px}.actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.login{place-items:center;min-height:100vh;padding:20px;display:grid}.login .box{width:100%;max-width:352px}.login .brand{justify-content:center;margin-bottom:26px}.login form{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:24px}.login button{width:100%;margin-top:6px}.login .hint{text-align:center;color:var(--muted);margin-top:15px;font-size:12px}
