:root{--bg:#f4f6f8;--card:#fff;--line:#dfe3e8;--text:#1f2933;--muted:#6b7785;--primary:#1f4e79;--primary-d:#173b5c;--ok:#2e7d32;--warn:#b26a00;--err:#b3261e}
*{box-sizing:border-box}
body{margin:0;font:14px/1.5 -apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:22px;margin:0}h2{font-size:16px;margin:0 0 12px}h3{font-size:15px;margin:0 0 10px}h4{font-size:14px;margin:0 0 8px}
hr{border:0;border-top:1px solid var(--line);margin:16px 0}
small,.muted{color:var(--muted)}
code{background:#eef1f4;padding:1px 5px;border-radius:3px;font-size:12px}

.topbar{background:var(--primary);color:#fff}
.topbar .in{max-width:1280px;margin:auto;padding:0 20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.brand{color:#fff;font-weight:600;font-size:15px;padding:14px 0}.brand span{font-weight:400;opacity:.75}.brand:hover{text-decoration:none}
.nav{display:flex;flex-wrap:wrap;flex:1}
.nav a{color:#d3e0ee;padding:15px 11px;display:inline-block;font-size:13.5px}
.nav a:hover,.nav a.on{color:#fff;background:rgba(255,255,255,.12);text-decoration:none}
.pill{background:#e8a317;color:#1f2933;border-radius:9px;padding:0 6px;font-size:11px;margin-left:2px}
.me{font-size:13px;color:#d3e0ee}.me a{color:#fff}.me small{color:#9fb7d0;margin:0 6px}

.wrap{max-width:1280px;margin:0 auto;padding:22px 20px 50px}
.pagehead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.foot{text-align:center;color:var(--muted);font-size:12px;padding:18px}

.card{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:18px;margin-bottom:16px}
.card.flush{padding:0}.card>h2:first-child,.card>h3:first-child{margin-top:0}
.grid{display:grid;gap:16px}.g2{grid-template-columns:1.6fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.stat{padding:14px 16px}.stat b{display:block;font-size:24px;line-height:1.2}.stat span{color:var(--muted);font-size:12.5px}
.alert{padding:10px 14px;border-radius:4px;margin-bottom:16px;border:1px solid}
.alert.ok{background:#edf7ee;border-color:#b9dcbc;color:#1e5a22}.alert.err{background:#fdeeed;border-color:#f0b9b5;color:#8a1f18}

table{width:100%;border-collapse:collapse}
th{text-align:left;font-weight:600;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:9px 12px;border-bottom:1px solid var(--line);background:#fafbfc;white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid #edf0f3;vertical-align:top}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fafbfd}
.tbl-wrap{overflow-x:auto}.r{text-align:right}.nowrap{white-space:nowrap}
td .sub{display:block;color:var(--muted);font-size:12px}

.badge{display:inline-block;padding:2px 9px;border-radius:10px;font-size:12px;font-weight:600;white-space:nowrap}
.blue{background:#e3eefa;color:#1b4f8a}.green{background:#e3f3e5;color:#216327}.red{background:#fbe5e3;color:#9c2018}.amber{background:#fdf0d5;color:#8a5800}.grey{background:#eceff2;color:#515c68}
.p-low{background:#eceff2;color:#515c68}.p-medium{background:#e3eefa;color:#1b4f8a}.p-high{background:#fdf0d5;color:#8a5800}.p-urgent{background:#fbe5e3;color:#9c2018}

label{display:block;font-size:13px;color:#3e4c59;margin-bottom:12px}
input,select,textarea{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid #c5ccd4;border-radius:3px;background:#fff;font:inherit;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:2px solid #b8d0ea;border-color:var(--primary)}
input[type=checkbox],input[type=radio]{display:inline-block;width:auto;margin:0 6px 0 0}
label.inline{display:flex;align-items:center;gap:6px}
textarea{resize:vertical}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid .full{grid-column:1/-1}
.form-grid.three{grid-template-columns:repeat(3,1fr)}
.stack>*:last-child{margin-bottom:0}

.btn,button.btn{display:inline-block;padding:8px 16px;border-radius:3px;border:1px solid #b6bec8;background:#fff;color:var(--text);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:#f0f3f6;text-decoration:none}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-d)}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.ok:hover{background:#256528}
.btn.warn{background:#fff;border-color:#d9a43a;color:var(--warn)}.btn.warn:hover{background:#fdf5e4}
.btn.danger{background:#fff;border-color:#e0a09b;color:var(--err)}.btn.danger:hover{background:#fdf0ef}
.btn.sm{padding:3px 10px;font-size:12px}
.btnrow{display:flex;gap:8px;flex-wrap:wrap}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:14px}
.toolbar label{margin:0}.toolbar input,.toolbar select{width:auto;min-width:130px}.toolbar input[type=search]{min-width:230px}

.tracker{list-style:none;display:flex;margin:0;padding:0;overflow-x:auto}
.tracker li{flex:1;min-width:92px;text-align:center;position:relative;padding:0 4px;color:#98a2ae}
.tracker li::before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:2px;background:#dfe3e8}
.tracker li:first-child::before{display:none}
.tracker li.done::before,.tracker li.current::before,.tracker li.declined::before{background:var(--ok)}
.tracker .num{position:relative;z-index:1;display:inline-block;width:32px;height:32px;line-height:30px;border-radius:50%;border:2px solid #dfe3e8;background:#fff;font-weight:600;font-size:13px}
.tracker b{display:block;font-size:12px;margin-top:4px}.tracker small{display:block;font-size:11px;min-height:16px}
.tracker li.done{color:var(--ok)}.tracker li.done .num{background:var(--ok);border-color:var(--ok);color:#fff}
.tracker li.current{color:var(--primary)}.tracker li.current .num{border-color:var(--primary);background:var(--primary);color:#fff}
.tracker li.declined{color:var(--err)}.tracker li.declined .num{border-color:var(--err);background:var(--err);color:#fff}
.tracker li.cancelled{color:#515c68}.tracker li.cancelled .num{background:#cfd5db;border-color:#cfd5db}

dl.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;margin:0}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0}
.log{list-style:none;margin:0;padding:0}.log li{padding:9px 0;border-bottom:1px solid #edf0f3}.log li:last-child{border:0}
.log b{font-size:13px}.log small{display:block}.log p{margin:3px 0 0;font-size:13px}
.panel{border:1px solid var(--primary);border-radius:4px;padding:16px;margin-bottom:16px;background:#fff}
.panel>h3{color:var(--primary)}
.note{background:#f1f5f9;border-left:3px solid var(--primary);padding:8px 12px;margin:0 0 12px;font-size:13px}
.note.warn{background:#fdf5e4;border-color:#d9a43a}.note.bad{background:#fdeeed;border-color:var(--err)}
.mini-track{display:flex;gap:2px;min-width:96px}.mini-track i{flex:1;height:5px;background:#dfe3e8}
.mini-track i.d{background:var(--ok)}.mini-track i.c{background:var(--primary)}.mini-track i.x{background:var(--err)}
.items input{margin:0;padding:6px 8px}.items td{padding:6px 8px}
.items .amt{text-align:right;white-space:nowrap;padding-top:12px}
.pager{display:flex;gap:6px;margin-top:12px}.pager a,.pager span{padding:4px 10px;border:1px solid var(--line);border-radius:3px;background:#fff}.pager span{background:var(--primary);color:#fff;border-color:var(--primary)}

.login{max-width:400px;margin:70px auto}.login .card{padding:26px}
.login h1{font-size:20px;text-align:center;margin-bottom:4px}.login p.sub{text-align:center;color:var(--muted);margin-top:0}

.doc{max-width:820px;margin:0 auto;background:#fff;border:1px solid var(--line);padding:34px}
.doc h1{font-size:22px;letter-spacing:1px}.doc .hd{display:flex;justify-content:space-between;border-bottom:2px solid var(--text);padding-bottom:12px;margin-bottom:16px}
.doc table td,.doc table th{border:1px solid #cfd5db}.sign{display:flex;gap:40px;margin-top:50px}.sign div{flex:1;border-top:1px solid #333;padding-top:4px;font-size:12px}

@media(max-width:900px){.g2,.g3,.g4,.form-grid,.form-grid.three{grid-template-columns:1fr}.topbar .in{padding:8px 14px}dl.kv{grid-template-columns:1fr}}
@media print{.topbar,.foot,.pagehead .actions,.noprint,.panel{display:none!important}body{background:#fff}.wrap{padding:0}.card,.doc{border:0}}
