:root{--navy:#14284b;--accent:#1f7a8c;--bg:#f4f6fa;--card:#fff;--line:#e1e6ee;--text:#1d2433;--mute:#6b768a;--ok:#1a7f4b;--warn:#b7791f;--bad:#c0392b}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--accent);text-decoration:none}
.shell{display:flex;min-height:100vh}
.side{width:210px;background:var(--navy);color:#fff;padding:16px 0;flex-shrink:0;position:sticky;top:0;height:100vh}
.brand{padding:0 18px 18px;font-size:19px;font-weight:700;letter-spacing:.3px}
.brand img{max-width:160px;max-height:50px;display:block}
.brand small{display:block;font-weight:400;font-size:11px;opacity:.7}
.side a{display:block;color:#cfd8ea;padding:9px 18px;border-left:3px solid transparent}
.side a.on,.side a:hover{background:rgba(255,255,255,.08);color:#fff;border-left-color:#5fd0e3}
.side .bottom{position:absolute;bottom:14px;left:0;right:0;padding:0 18px;font-size:12px;color:#9fb0cf}
.main{flex:1;padding:24px 28px;min-width:0}
h1{margin:0 0 16px;font-size:22px}
h2{font-size:16px;margin:20px 0 8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px}
.stat b{display:block;font-size:22px;margin-top:2px}
.stat span{color:var(--mute);font-size:12px}
table{width:100%;border-collapse:collapse;background:var(--card)}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;color:var(--mute);text-transform:uppercase;letter-spacing:.4px}
tr.click:hover{background:#f0f6fa;cursor:pointer}
.r{text-align:right}
.tbl{border:1px solid var(--line);border-radius:10px;overflow:auto;background:#fff}
button,.btn{background:var(--accent);color:#fff;border:0;padding:7px 14px;border-radius:7px;cursor:pointer;font:inherit}
button.sec{background:#e8edf5;color:var(--text)}
button.bad{background:var(--bad)}
button.sm{padding:3px 9px;font-size:12px}
button:disabled{opacity:.5}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid #cfd6e2;border-radius:7px;width:100%;background:#fff}
label{display:block;font-size:12px;color:var(--mute);margin-bottom:3px}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.row input,.row select{width:auto}
.badge{display:inline-block;padding:1px 9px;border-radius:99px;font-size:12px;background:#e8edf5}
.badge.active,.badge.matched{background:#d9f2e4;color:var(--ok)}
.badge.application,.badge.term_sheet,.badge.unmatched{background:#fdf0d5;color:var(--warn)}
.badge.default{background:#f8d9d5;color:var(--bad)}
.badge.paid_off,.badge.ignored{background:#e8edf5;color:var(--mute)}
.mute{color:var(--mute)}
.tabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.tabs a{padding:8px 14px;color:var(--mute);border-bottom:2px solid transparent;cursor:pointer}
.tabs a.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.msg{padding:9px 12px;border-radius:8px;background:#e6f4f7;margin-bottom:12px}
.msg.err{background:#f8d9d5}
.center{max-width:420px;margin:70px auto}
.public{max-width:640px;margin:30px auto;padding:0 16px}
.sugg{display:flex;gap:6px;align-items:center;margin-bottom:3px;font-size:13px}
.pos{color:var(--ok)}.neg{color:var(--bad)}
.doc{background:#fff;max-width:760px;margin:20px auto;padding:40px;border:1px solid var(--line)}
@media print{.side,.noprint{display:none!important}.main{padding:0}.doc{border:0;margin:0}body{background:#fff}}
@media(max-width:760px){.shell{display:block}.side{width:auto;height:auto;position:static;display:flex;flex-wrap:wrap;padding:6px}.side .brand,.side .bottom{display:none}.main{padding:14px}}
