:root{--primary:#0047ab;--primary-dark:#00337a;--accent:#f2b705;--accent-dark:#d6a102;--bg:#f4f6f9;--card:#fff;--line:#e1e5eb;--text:#1c2430;--muted:#697386;--ok:#1b5e37;--warn:#9a6b00;--danger:#a63d2f;--radius:10px;--shadow:0 1px 3px #10182814, 0 1px 2px #1018280a}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--primary);color:#fff;align-items:center;gap:24px;height:58px;padding:0 24px;display:flex;box-shadow:0 1px 3px #00000026}.topbar .brand-name{letter-spacing:.2px;font-size:17px;font-weight:700}.brand-link{color:inherit;cursor:pointer;flex-direction:column;text-decoration:none;display:flex}.brand-link:hover{opacity:.92}.modal-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.discard-modal p{color:var(--text);margin:8px 0 0}.topbar .brand-sub{opacity:.85;font-size:11px;font-weight:400;display:block}.topbar .nav{gap:6px;margin-left:8px;display:flex}.navlink{color:#fff;border-radius:7px;padding:8px 12px;font-size:13.5px;font-weight:600;text-decoration:none}.navlink:hover{background:#ffffff1f}.navlink.active{background:#ffffff2e}.navlink.primary{background:var(--accent);color:#21201a}.navlink.primary:hover{background:var(--accent-dark)}.topbar .userchip{align-items:center;gap:10px;margin-left:auto;display:flex}.userchip-email{opacity:.9;font-size:12.5px}.content{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:22px 26px}h2{margin:0 0 4px;font-size:20px}.muted{color:var(--muted);font-size:13px}.empty{text-align:center;color:var(--muted);padding:40px}.error{color:var(--danger);background:#fdecec;border:1px solid #f5c6c6;border-radius:8px;margin:12px 0;padding:10px 14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{color:var(--text);cursor:pointer;background:#fff;border:1px solid #c9d0dc;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:#f2f4f8}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-danger{color:var(--danger);background:#fff;border-color:#e2b4ad}.btn-danger:hover{background:#fdecec}.btn-ghost{color:#fff;background:#ffffff1f;border-color:#ffffff4d}.btn-ghost:hover{background:#ffffff38}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary[disabled]{background:#7d98c9}.login-wrap{background:linear-gradient(160deg,#00337a,#0047ab 60%,#1a54b0);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border-radius:14px;width:360px;padding:34px 38px;box-shadow:0 12px 40px #00000040}.login-card h1{color:var(--primary);margin:0 0 2px;font-size:22px}.login-sub{color:var(--muted);margin:0 0 22px;font-size:13px}.login-card label{color:var(--text);margin-bottom:14px;font-size:13px;font-weight:600;display:block}.login-card input{border:1px solid #c9d0dc;border-radius:8px;width:100%;margin-top:4px;padding:10px 12px;font-size:14px}.login-card .btn-primary{width:100%;margin-top:6px;padding:11px;font-size:14.5px}.boot{min-height:100vh;color:var(--muted);justify-content:center;align-items:center;display:flex}.dash-head{align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.filters{margin-bottom:18px;padding:16px}.filter-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-row .fq{border:1px solid #c9d0dc;border-radius:8px;flex:1;min-width:220px;padding:9px 12px;font-size:14px}.print-actions{margin-left:auto}.filter-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px;display:grid}.filter-grid label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.filter-grid input,.filter-grid select{border:1px solid #c9d0dc;border-radius:7px;padding:8px 10px;font-size:13px}.table-card{margin-top:4px;overflow:hidden}table.list{border-collapse:collapse;width:100%}table.list th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);border-bottom:1px solid var(--line);background:#fafbfc;padding:10px 12px;font-size:11.5px}.sort-btn{font:inherit;color:inherit;text-transform:uppercase;letter-spacing:.4px;cursor:pointer;background:0 0;border:none;padding:0}.sort-btn:hover{color:var(--primary)}.sort-btn.active{color:var(--primary);font-weight:700}table.list td{overflow-wrap:anywhere}.val .vvalue{overflow-wrap:anywhere;word-break:normal}.saved-banner{color:#1a7f37;background:#e7f6ec;border:1px solid #c6ecd4;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-weight:600}table.list td{vertical-align:top;border-bottom:1px solid #eef1f5;padding:11px 12px;font-size:13.5px}table.list tbody tr:hover{background:#f7f9fc}.rowlink{color:var(--primary);font-weight:600;text-decoration:none}.rowlink:hover{text-decoration:underline}.pill{border:1px solid;border-radius:20px;padding:2px 9px;font-size:11.5px;font-weight:700;display:inline-block}.status-NEW{color:#1a4fd5;background:#e8f0fe;border-color:#c3d6f9}.status-IN_PROGRESS{color:#9a6b00;background:#fff7e0;border-color:#f2dfae}.status-FOLLOW_UP{color:#0d6b4d;background:#e6f7f2;border-color:#bfe6d9}.status-APPROVED{color:#1b5e37;background:#e7f6ec;border-color:#bfe4cb}.status-DECLINED{color:var(--danger);background:#fdecec;border-color:#f3c3c3}.status-CLOSED{color:#5a6474;background:#eef0f3;border-color:#d4d9df}.form{max-width:1080px;margin:0 auto}.form-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.form-actions{align-items:center;gap:12px;display:flex}.status-field{align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.status-field select{border:1px solid #c9d0dc;border-radius:7px;padding:8px 10px}.info-btn{cursor:pointer;color:var(--primary);vertical-align:middle;background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.info-btn:hover{color:var(--accent-dark)}.hint{color:var(--muted);margin-top:4px;font-size:12px;font-weight:400}.modal-overlay{z-index:1000;background:#14182080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:100%;max-width:720px;max-height:86vh;padding:24px 28px;position:relative;overflow-y:auto;box-shadow:0 12px 40px #00000040}.modal h3{color:var(--primary);border-bottom:2px solid var(--primary);margin-top:0;padding-bottom:8px}.modal-close{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:18px;position:absolute;top:12px;right:14px}.modal-close:hover{color:var(--danger)}.cat-guidance h4{color:var(--primary-dark);margin:14px 0 4px}.cat-guidance ol{margin:6px 0 12px;padding-left:22px}.cat-guidance li{margin:4px 0}.cat-guidance p{font-size:13.5px;line-height:1.5}.section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;padding:18px 20px 20px}.section legend{color:var(--primary);padding:0 8px;font-size:15px;font-weight:700}.grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;display:grid}.field{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.field.full{grid-column:1/-1}.flabel{color:var(--muted);font-size:12.5px;font-weight:600}.field input,.field select,.field textarea,.notes-field textarea,.status-field select{width:100%;color:var(--text);background:#fff;border:1px solid #c9d0dc;border-radius:7px;padding:9px 11px;font-family:inherit;font-size:13.5px}.field textarea{resize:vertical}.bools{flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:12px;display:flex}.bools.bools-stack{flex-direction:column;align-items:flex-start;gap:8px}.bools.bools-stack .field{width:100%}.bool{cursor:pointer;align-items:center;gap:7px;font-size:13.5px;font-weight:600;display:inline-flex}.bool input{width:16px;height:16px;accent-color:var(--primary)}.bools .field{min-width:200px;margin-top:4px}.notes-field{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin:18px 0;padding:14px}.form-foot{justify-content:flex-end;gap:10px;display:flex}details{margin-bottom:14px}details summary{cursor:pointer;color:var(--primary-dark);padding:6px 0;font-size:13.5px;font-weight:700}details[open] summary{margin-bottom:10px}.spend-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.spend-col h4{color:var(--primary-dark);margin:0 0 6px;font-size:13px}table.spend{border-collapse:collapse;width:100%;font-size:12.5px}table.spend th{text-align:left;text-transform:uppercase;color:var(--muted);background:#f2f5f9;border:1px solid #dfe4ec;padding:6px 8px;font-size:11px}table.spend td{border:1px solid #e5e9f0;padding:2px 4px}table.spend td.it{color:#333;max-width:150px;font-size:12px}table.spend input{border:none;width:100%;padding:5px 6px;font-size:12.5px}table.spend input:focus{outline:1px solid var(--primary);background:#f7faff}.detail{max-width:1080px;margin:0 auto}.detail-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.detail-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sec-h{text-transform:uppercase;letter-spacing:.5px;color:var(--primary);border-bottom:2px solid var(--primary);margin:26px 0 12px;padding-bottom:5px;font-size:14px}.vals{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px 18px;display:grid}.val .vlabel{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-size:11.5px;font-weight:600}.val .vvalue{color:var(--text);font-size:14.5px}.val.full{grid-column:1/-1}.spend-print{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:24px;padding:16px;display:grid}.spend-print h4{color:var(--primary-dark);margin:0 0 8px}table.pvals{border-collapse:collapse;width:100%;font-size:12.5px}table.pvals td{border-bottom:1px solid #eef1f5;padding:5px 8px}table.pvals td.it{color:#333;font-weight:600}@media (width<=900px){.filter-grid{grid-template-columns:repeat(2,1fr)}.spend-grid,.spend-print{grid-template-columns:1fr}.topbar{flex-wrap:wrap;gap:10px;height:auto;padding:10px 16px}.topbar .userchip{margin-left:0}.content{padding:16px}}table.spend tr.totals td{color:#1a3a6b;background:#eef3fa;padding:6px 8px;font-weight:700}table.spend tr.totals td.tl{text-align:right}table.spend tr.totals td.tval{text-align:right;font-variant-numeric:tabular-nums}.photo-id{border:1px dashed var(--line);background:#f6f8fb;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:8px 14px;display:flex}.photo-id .flabel{font-size:13px;font-weight:700}.photo-id .hint{color:var(--muted);font-size:12.5px}.ap-sep{background:#fff;border:0;border-top:4px solid #b03a2e;border-bottom:1px solid #b03a2e;height:6px;margin:30px 0 4px}.ap-section legend{color:#8a2c1f;font-size:17px;font-weight:800}.ap-section .print-btn{margin-left:12px}.ap-sech{color:#8a2c1f;border-bottom-color:#b03a2e}.ap-sech+.vals .vvalue,.vals .vvalue.prel{white-space:pre-line}.ap-intro{color:var(--muted);font-size:12.5px;font-style:italic}.ap-block{margin:6px 0 14px}.ap-block h4{color:var(--primary-dark);margin:0 0 6px;font-size:13.5px;font-weight:700}.ap-q{color:#444;margin:0 0 4px;font-size:12.5px;font-style:italic;display:block}.ap-sub{color:#444;margin:2px 0 8px;font-size:12.5px;font-style:italic}.ap-two{grid-template-columns:1fr 1fr;gap:26px;display:grid}.ap-two>div{align-self:start}.ap-goal{margin:0 0 10px}.ap-goal .field{margin-bottom:2px}.ap-steps{flex-direction:column;gap:4px;padding-left:8px;display:flex}.ap-step{align-items:center;gap:8px;display:flex}.ap-step .ap-do{border:1px solid var(--line);background:#fff;border-radius:5px;flex:1;padding:5px 8px;font-size:13px}.ap-step .ap-by{border:1px solid var(--line);background:#fff;border-radius:5px;flex:0 0 130px;padding:5px 8px;font-size:12.5px}@media (width<=900px){.ap-two{grid-template-columns:1fr}}.admin-users .page-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.usertable{border-collapse:collapse;width:100%;box-shadow:var(--shadow,0 1px 3px #00000014);background:#fff;border-radius:8px;overflow:hidden}.usertable th,.usertable td{text-align:left;border-bottom:1px solid var(--line);padding:9px 12px;font-size:13.5px}.usertable th{color:#334;background:#f4f6f9;font-weight:700}.usertable tr.inactive td{opacity:.55}.usertable td.actions{white-space:nowrap}.usertable td.actions .btn{margin-right:4px}.ok{color:#1d7a44;background:#e8f7ee;border-radius:6px;margin-bottom:10px;padding:8px 12px;font-size:13px}.checkline{align-items:center;gap:8px;font-weight:600;display:flex}.checkline input{width:16px;height:16px}.admin-users .btn-ghost,.modal .btn-ghost{color:var(--text);background:#fff;border:1px solid #c9d0dc}.admin-users .btn-ghost:hover,.modal .btn-ghost:hover{background:#f2f4f8}.modal-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.modal-actions .btn{justify-content:center;min-width:96px}
