:root{--pif-navy:#020c45;--pif-navy-hi:#010831;--pif-gold:#ffd230;--pif-gold-tint:#fffaea;--pif-paper:#fff;--pif-fog:#f4f6fa;--pif-rule:#dfe3ec;--pif-slate:#59627a;--pif-success:#17845a;--pif-warning:#b4690e;--pif-danger:#c0392b;--pif-font-display:"Fraunces", Georgia, serif;--pif-font-body:"DM Sans", sans-serif;--pif-1:4px;--pif-2:8px;--pif-3:12px;--pif-4:16px;--pif-5:24px;--pif-6:32px;--pif-r-card:12px;--pif-r-ctrl:8px;--pif-r-badge:6px;--pif-shadow:0 8px 24px #020c451a}.pif-eyebrow{font-family:var(--pif-font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--pif-slate);font-size:11px;font-weight:600}.pif-h1{font-family:var(--pif-font-display);letter-spacing:-.01em;color:var(--pif-navy);margin:0;font-size:20px;font-weight:600}.pif-h2{font-family:var(--pif-font-display);color:var(--pif-navy);margin:0;font-size:15px;font-weight:600}.pif-body{font-family:var(--pif-font-body);color:var(--pif-navy);font-size:14px}.pif-muted{font-family:var(--pif-font-body);color:var(--pif-slate);font-size:13px}.pif-stat{font-family:var(--pif-font-body);font-variant-numeric:tabular-nums;color:var(--pif-navy);font-size:28px;font-weight:600;line-height:1}.pif-btn{font-family:var(--pif-font-display);border-radius:var(--pif-r-ctrl);padding:10px var(--pif-4);cursor:pointer;background:var(--pif-navy);color:#fff;border:1px solid #0000;font-size:14px;font-weight:600;transition:background .12s}.pif-btn:hover:not(:disabled){background:var(--pif-navy-hi)}.pif-btn--accent{background:var(--pif-gold);color:var(--pif-navy)}.pif-btn--accent:hover:not(:disabled){background:#f2c318}.pif-btn--quiet{color:var(--pif-navy);border-color:var(--pif-rule);background:0 0}.pif-btn--quiet:hover:not(:disabled){background:var(--pif-fog)}.pif-btn--danger{background:var(--pif-danger);color:#fff}.pif-btn:disabled{opacity:.4;cursor:not-allowed}.pif-input{font-family:var(--pif-font-body);color:var(--pif-navy);background:var(--pif-paper);border:1px solid var(--pif-rule);border-radius:var(--pif-r-ctrl);padding:9px var(--pif-3);box-sizing:border-box;width:100%;font-size:14px}.pif-input::placeholder{color:var(--pif-slate)}.pif-select{font-family:var(--pif-font-body);color:var(--pif-navy);background:var(--pif-paper);border:1px solid var(--pif-rule);border-radius:var(--pif-r-ctrl);padding:9px var(--pif-3);box-sizing:border-box;cursor:pointer;width:100%;font-size:14px}.pif-btn:focus-visible,.pif-input:focus-visible,.pif-select:focus-visible,.pif-row:focus-visible{outline:2px solid var(--pif-gold);outline-offset:2px}.pif-card{background:var(--pif-paper);border:1px solid var(--pif-rule);border-radius:var(--pif-r-card);padding:var(--pif-4)}.pif-row{border-bottom:1px solid var(--pif-rule);padding:var(--pif-3) var(--pif-4);background:var(--pif-paper);position:relative}.pif-row.is-active{background:var(--pif-gold-tint);box-shadow:inset 3px 0 0 var(--pif-gold)}.pif-badge{font-family:var(--pif-font-display);letter-spacing:.04em;border-radius:var(--pif-r-badge);background:var(--pif-fog);color:var(--pif-slate);padding:3px 7px;font-size:11px;font-weight:600;display:inline-block}.pif-badge--flag{background:var(--pif-gold);color:var(--pif-navy)}.pif-badge--risk{color:var(--pif-danger);background:#fdeceb}.pif-empty{padding:var(--pif-6) var(--pif-4);text-align:center;font-family:var(--pif-font-body);color:var(--pif-slate);font-size:13px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}*{box-sizing:border-box}html,body{background:var(--pif-fog);font-family:var(--pif-font-body);color:var(--pif-navy);-webkit-font-smoothing:antialiased;margin:0;padding:0}body:before{content:"";pointer-events:none;opacity:.035;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:var(--pif-navy)}.hidden{display:none!important}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--pif-navy);color:#fff;border-bottom:3px solid var(--pif-gold);padding:var(--pif-3) var(--pif-5);justify-content:space-between;align-items:center;gap:var(--pif-4);display:flex}.topbar .brand{font-family:var(--pif-font-display);letter-spacing:-.01em;align-items:baseline;gap:var(--pif-2);font-size:16px;font-weight:600;display:flex}.topbar .brand small{letter-spacing:.08em;text-transform:uppercase;color:var(--pif-gold);font-size:11px;font-weight:600}.topbar .who{align-items:center;gap:var(--pif-3);color:#cfd6e8;font-size:13px;display:flex}.topbar .who .role{font-family:var(--pif-font-display);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--pif-r-badge);color:var(--pif-gold);background:#ffd23029;padding:2px 7px;font-size:10px;font-weight:600}.topbar .pif-btn--quiet{color:#fff;padding:6px var(--pif-3);border-color:#ffffff52}.topbar .pif-btn--quiet:hover:not(:disabled){background:#ffffff1a}.main{width:100%;max-width:1080px;padding:var(--pif-5);flex:1;margin:0 auto}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--pif-4);margin-bottom:var(--pif-5);flex-wrap:wrap;display:flex}.auth-wrap{min-height:100vh;padding:var(--pif-5);background:radial-gradient(1200px 600px at 50% -10%, #0a1a6b 0%, var(--pif-navy) 55%, var(--pif-navy-hi) 100%);place-items:center;display:grid}.auth-card{background:var(--pif-paper);border-radius:var(--pif-r-card);width:100%;max-width:380px;box-shadow:var(--pif-shadow);overflow:hidden}.auth-card .cap{background:var(--pif-gold);height:4px}.auth-card .body{padding:var(--pif-6) var(--pif-5) var(--pif-5)}.auth-card .brand{font-family:var(--pif-font-display);color:var(--pif-navy);margin:0 0 2px;font-size:22px;font-weight:600}.auth-card .sub{margin:0 0 var(--pif-5)}.auth-card label{font-family:var(--pif-font-display);letter-spacing:.04em;color:var(--pif-slate);margin:var(--pif-4) 0 var(--pif-1);font-size:12px;font-weight:600;display:block}.auth-card .actions{margin-top:var(--pif-5)}.auth-card .pif-btn{width:100%}.auth-card .link-row{margin-top:var(--pif-4);text-align:center}.auth-card .linkbtn{cursor:pointer;font-family:var(--pif-font-body);color:var(--pif-slate);background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.auth-card .linkbtn:hover{color:var(--pif-navy)}.msg{margin-top:var(--pif-4);padding:var(--pif-3);border-radius:var(--pif-r-ctrl);font-size:13px;line-height:1.4}.msg--error{color:var(--pif-danger);background:#fdeceb}.msg--ok{color:var(--pif-success);background:#e7f5ef}.stat-row{gap:var(--pif-4);margin-bottom:var(--pif-5);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-card{background:var(--pif-paper);border:1px solid var(--pif-rule);border-radius:var(--pif-r-card);padding:var(--pif-4)}.stat-card .pif-eyebrow{margin-bottom:var(--pif-3)}.stat-card.is-flag{box-shadow:inset 3px 0 0 var(--pif-gold);background:var(--pif-gold-tint)}.pipeline{gap:var(--pif-3);margin-bottom:var(--pif-5);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.stage-col{background:var(--pif-paper);border:1px solid var(--pif-rule);border-radius:var(--pif-r-card);padding:var(--pif-3);min-height:90px}.stage-col .head{justify-content:space-between;align-items:baseline;gap:var(--pif-2);margin-bottom:var(--pif-2);display:flex}.stage-col .name{font-family:var(--pif-font-display);color:var(--pif-navy);font-size:12px;font-weight:600}.stage-col .count{font-family:var(--pif-font-body);font-variant-numeric:tabular-nums;color:var(--pif-navy);font-size:22px;font-weight:600;line-height:1}.stage-col .bar{background:var(--pif-navy);opacity:.85;border-radius:2px;height:4px}.stage-col.is-empty .count{color:var(--pif-slate)}.stage-col.is-empty .bar{background:var(--pif-rule)}.section{margin-bottom:var(--pif-6)}.section>.pif-h2{margin-bottom:var(--pif-3)}.list{background:var(--pif-paper);border:1px solid var(--pif-rule);border-radius:var(--pif-r-card);overflow:hidden}.list .pif-row:last-child{border-bottom:none}.followup{justify-content:space-between;align-items:center;gap:var(--pif-3);display:flex}.followup .when{font-variant-numeric:tabular-nums}.followup.is-overdue{box-shadow:inset 3px 0 0 var(--pif-danger)}.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl th,.tbl td{text-align:left;padding:var(--pif-3) var(--pif-4);border-bottom:1px solid var(--pif-rule)}.tbl th{font-family:var(--pif-font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--pif-slate);background:var(--pif-fog);font-size:11px;font-weight:600}.tbl td{font-family:var(--pif-font-body);color:var(--pif-navy)}.tbl tr:last-child td{border-bottom:none}.tbl .num{text-align:right;font-variant-numeric:tabular-nums}.loading{padding:var(--pif-6);text-align:center;color:var(--pif-slate);font-size:13px}.footer{text-align:center;padding:var(--pif-5);color:var(--pif-slate);font-size:12px}.stage-col.is-clickable{cursor:pointer;transition:border-color .12s}.stage-col.is-clickable:hover{border-color:var(--pif-navy)}.stage-col.is-selected{background:var(--pif-gold-tint);box-shadow:inset 3px 0 0 var(--pif-gold)}.stage-col.is-selected .bar{background:var(--pif-navy);opacity:1}.filters{gap:var(--pif-3);margin-bottom:var(--pif-3);flex-wrap:wrap;align-items:flex-end;display:flex}.filters .field{gap:var(--pif-1);flex-direction:column;display:flex}.filters .field label{font-family:var(--pif-font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--pif-slate);font-size:11px;font-weight:600}.filters .field .pif-input,.filters .field .pif-select{width:auto;min-width:150px}.filters .field--search .pif-input{min-width:200px}.filters .spacer{flex:1}.filters .clear-btn{white-space:nowrap}.result-count{font-family:var(--pif-font-body);color:var(--pif-slate);margin-bottom:var(--pif-3);font-size:13px}.result-count b{color:var(--pif-navy);font-weight:600}.tbl tbody tr{cursor:pointer}.tbl tbody tr:hover td{background:var(--pif-fog)}.stage-pill{text-transform:none;letter-spacing:0}.drawer-backdrop{z-index:50;background:#020c456b;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--pif-paper);width:min(460px,100%);height:100%;box-shadow:var(--pif-shadow);flex-direction:column;display:flex;overflow-y:auto}.drawer .cap{background:var(--pif-gold);flex:none;height:4px}.drawer .drawer-head{justify-content:space-between;align-items:flex-start;gap:var(--pif-3);padding:var(--pif-4) var(--pif-5);border-bottom:1px solid var(--pif-rule);display:flex}.drawer .drawer-head .close{cursor:pointer;color:var(--pif-slate);background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.drawer .drawer-head .close:hover{color:var(--pif-navy)}.drawer .drawer-body{padding:var(--pif-5)}.detail-grid{gap:var(--pif-2) var(--pif-4);margin-bottom:var(--pif-5);grid-template-columns:max-content 1fr;display:grid}.detail-grid dt{font-family:var(--pif-font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--pif-slate);padding-top:2px;font-size:11px;font-weight:600}.detail-grid dd{font-family:var(--pif-font-body);color:var(--pif-navy);margin:0;font-size:14px}.detail-sub{font-family:var(--pif-font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--pif-slate);margin:var(--pif-5) 0 var(--pif-2);font-size:12px;font-weight:600}.tag-wrap{gap:var(--pif-2);flex-wrap:wrap;display:flex}.tag-chip{font-family:var(--pif-font-display);border-radius:var(--pif-r-badge);background:var(--pif-fog);color:var(--pif-navy);align-items:center;gap:6px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.tag-chip .dot{border-radius:50%;flex:none;width:8px;height:8px}.qa{border-top:1px solid var(--pif-rule);padding:var(--pif-3) 0}.qa:last-child{border-bottom:1px solid var(--pif-rule)}.qa .q{font-family:var(--pif-font-body);color:var(--pif-slate);margin-bottom:2px;font-size:13px}.qa .a{font-family:var(--pif-font-body);color:var(--pif-navy);font-size:14px}.note-block{background:var(--pif-fog);border-radius:var(--pif-r-ctrl);padding:var(--pif-3);font-family:var(--pif-font-body);color:var(--pif-navy);white-space:pre-wrap;font-size:14px}@media (width<=560px){.detail-grid{gap:var(--pif-1) 0;grid-template-columns:1fr}.detail-grid dt{padding-top:var(--pif-2)}}
