:root{color-scheme:light;--ink:#17222f;--muted:#687586;--line:#d9e0e7;--brand:#175f70;--brand2:#0f4653;--bg:#f4f7f8;--card:#fff;--good:#18794e;--bad:#b42318;--warn:#9a6700}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}header{min-height:60px;background:#103743;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px max(20px,calc((100% - 1500px)/2));gap:20px}header a{color:#fff;text-decoration:none}.brand{font-size:19px;font-weight:750;white-space:nowrap}nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}nav span{color:#bcd1d7}main{max-width:1500px;margin:22px auto;padding:0 20px 48px}footer{text-align:center;color:var(--muted);padding:28px}h1{font-size:26px;margin:0 0 16px}h2{font-size:19px;margin-top:26px}h3{font-size:16px}a{color:var(--brand2)}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line)}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#eaf0f2;font-size:12px;white-space:nowrap}td small{display:block;color:var(--muted)}label{display:flex;flex-direction:column;gap:4px;font-weight:650}input,select,textarea,button,.button{font:inherit;padding:8px 10px;border:1px solid #b8c3ce;border-radius:5px;background:#fff}textarea{min-height:90px}button,.button{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}.secondary{background:#fff;color:var(--brand);border-color:var(--brand)}form{display:grid;gap:12px}.filters{display:flex;align-items:end;gap:10px;margin:14px 0}.filters.wrap{flex-wrap:wrap}.filters.wrap label{flex:1 1 145px;min-width:135px}.filters label{min-width:180px;flex:1}.hero-search{background:#fff;border:1px solid var(--line);padding:16px;border-radius:7px;margin-bottom:12px}.hero-search label{font-size:16px}.hero-search>div{display:flex;gap:8px}.hero-search input{flex:1;font-size:17px}.filter-panel{background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:6px}.filter-panel summary{font-weight:700;cursor:pointer}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin:16px 0}.card{padding:14px;background:#fff;border:1px solid var(--line);border-radius:6px}.card strong{font-size:23px;display:block}.card span,.muted{color:var(--muted)}.ops-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.detail-grid,.split{display:grid;grid-template-columns:1fr 1fr;gap:22px}.detail-grid>form,.detail-grid>div{background:#fff;border:1px solid var(--line);padding:18px;border-radius:7px}dl{display:grid;grid-template-columns:175px 1fr;gap:9px;background:#fff;border:1px solid var(--line);padding:18px;border-radius:7px}dt{font-weight:700}dd{margin:0}.badge{display:inline-block;background:#e6eff2;border-radius:999px;padding:2px 8px;font-size:12px}.alert{padding:11px 13px;border-radius:5px;margin:12px 0}.error{background:#fee4e2;color:#912018}.success{background:#dcfae6;color:#07613c}.warning{background:#fff3cd;color:#664d03}.status-paid{color:var(--good)}.status-unpaid,.status-unmatched{color:var(--bad)}.unassigned{color:var(--warn);font-weight:700}.row-unassigned{background:#fffdf5}code{font-size:12px}.compact{margin-top:10px}.inline-create{display:flex;align-items:end}.table-scroll{overflow:auto}.dense{font-size:13px}.dense td{padding:7px 8px}.empty{text-align:center;color:var(--muted);padding:24px}.result-count{margin:10px 0}.button-row{display:flex;gap:8px;flex-wrap:wrap}.sort-links{font-size:12px}.nowrap{white-space:nowrap}.login{display:grid;place-items:center;min-height:100vh}.login main{margin:0}.login-card{width:min(400px,calc(100% - 32px));background:#fff;padding:30px;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 30px #173b4620}@media(max-width:800px){header{height:auto;padding:14px;align-items:flex-start}nav{gap:10px}.filters,.inline-create{display:grid}.detail-grid,.split{grid-template-columns:1fr}table{display:block;overflow:auto}dl{grid-template-columns:1fr}dt{margin-top:8px}.hero-search>div{flex-wrap:wrap}.hero-search input{flex-basis:100%}}
