.brand-logo{height:32px;width:auto}.login-logo{max-height:80px;max-width:220px}.settings-logo{max-height:70px;max-width:200px}.pipeline{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.5rem}.pipeline-col{flex:0 0 220px;background:var(--bs-secondary-bg);border-radius:.5rem;padding:.5rem}.pipeline-card:hover{border-color:var(--bs-primary)}:root{--page-bg: #f3f5fa;--side-bg: #0f1b3a;--side-bg-2: #172a55;--side-text: #c4cde0;--side-muted: #7d8bab;--ink: #18213a;--ink-muted: #5b6478;--tone-blue: #2a78d6;--tone-blue-light: #6da7ec;--tone-violet: #6250d6;--tone-violet-light: #a99ff0;--tone-aqua: #148a60;--tone-aqua-light: #3fcf9c;--tone-orange: #d95926;--tone-orange-light: #f29268;--tone-magenta: #c8457a;--tone-magenta-light: #ec8fb3;--tone-green: #0f7d0f;--tone-green-light: #5ccc5c;--tone-yellow: #b97a00;--tone-yellow-light: #f5bd3d;--tone-slate: #55657f;--tone-slate-light: #a3b1c6;--tone-red: #d03b3b;--tone-red-light: #f08080;--age-1: #0ca30c;--age-2: #fab219;--age-3: #ec835a;--age-4: #d03b3b}.tone-blue{--tone: var(--tone-blue);--tone-light: var(--tone-blue-light)}.tone-violet{--tone: var(--tone-violet);--tone-light: var(--tone-violet-light)}.tone-aqua{--tone: var(--tone-aqua);--tone-light: var(--tone-aqua-light)}.tone-orange{--tone: var(--tone-orange);--tone-light: var(--tone-orange-light)}.tone-magenta{--tone: var(--tone-magenta);--tone-light: var(--tone-magenta-light)}.tone-green{--tone: var(--tone-green);--tone-light: var(--tone-green-light)}.tone-yellow{--tone: var(--tone-yellow);--tone-light: var(--tone-yellow-light)}.tone-slate{--tone: var(--tone-slate);--tone-light: var(--tone-slate-light)}.tone-red{--tone: var(--tone-red);--tone-light: var(--tone-red-light)}.app-body{background:var(--page-bg)}.app-shell{display:flex;min-height:100vh}.app-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.app-content{padding:1.5rem 1.75rem 2.5rem;width:100%;max-width:1440px}@media(max-width:575.98px){.app-content{padding:1rem 1rem 2rem}.dash-hero{padding:1.1rem}}.topbar{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:#fff;border-bottom:1px solid rgba(15,27,58,.08);position:sticky;top:0;z-index:1020}.sidebar{--bs-offcanvas-width: 260px;--bs-offcanvas-bg: var(--side-bg)}.sidebar-inner{display:flex;flex-direction:column;height:100%;width:260px;color:var(--side-text);background:linear-gradient(180deg,var(--side-bg) 0%,var(--side-bg-2) 100%)}@media(min-width:992px){.sidebar{flex:0 0 260px;position:sticky;top:0;height:100vh}}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1.1rem 1.1rem .9rem;border-bottom:1px solid rgba(255,255,255,.08)}.brand-chip{background:#fff;border-radius:8px;padding:3px 6px;display:inline-flex}.brand-chip .brand-logo{height:26px}.brand-name{color:#fff;font-weight:600;font-size:.98rem;line-height:1.2}.sidebar-nav{flex:1 1 auto;overflow-y:auto;padding:.6rem .7rem 1rem}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.side-group+.side-group{margin-top:.55rem}.side-heading{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--side-muted);padding:.45rem .6rem .25rem}.side-link{display:flex;align-items:center;gap:.65rem;padding:.4rem .6rem;margin:1px 0;border-radius:9px;color:var(--side-text);text-decoration:none;font-size:.92rem;border-left:3px solid transparent;transition:background-color .15s,color .15s}.side-link:hover{background:#ffffff12;color:#fff}.side-link:focus-visible{outline:2px solid var(--tone-light);outline-offset:1px}.side-icon{width:30px;height:30px;flex:0 0 30px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;color:var(--tone-light);background:#ffffff12;font-size:.95rem;transition:background-color .15s,color .15s}.side-link:hover .side-icon{background:var(--tone);color:#fff}.side-link.active{background:#ffffff1c;color:#fff;font-weight:600;border-left-color:var(--tone-light)}.side-link.active .side-icon{background:var(--tone);color:#fff;box-shadow:0 4px 10px #00000040}.sidebar-user{padding:.9rem 1rem 1rem;border-top:1px solid rgba(255,255,255,.08)}.user-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--tone-blue),var(--tone-violet))}.user-name{color:#fff;font-weight:600;font-size:.9rem}.user-role{color:var(--side-muted);font-size:.78rem}.side-btn{color:var(--side-text);background:#ffffff12;border:1px solid rgba(255,255,255,.12);font-size:.8rem;white-space:nowrap}.side-btn:hover,.side-btn:focus{color:#fff;background:#ffffff29;border-color:#fff3}.app-body .card{border:1px solid rgba(15,27,58,.07);border-radius:12px}.app-body .card>.table-responsive:first-child,.app-body .card>.table-responsive:first-child .table{border-radius:12px 12px 0 0}.dash-hero{border-radius:16px;padding:1.4rem 1.6rem;color:#fff;margin-bottom:1.5rem;background:linear-gradient(120deg,#13245a,#2a4fb0 55%,#6250d6);box-shadow:0 10px 30px #13245a2e}.dash-hero h1{font-weight:700}.dash-hero .hero-sub{color:#ffffffc7;font-size:.9rem}.quick-action{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;border-radius:999px;background:#ffffff24;color:#fff;text-decoration:none;font-size:.85rem;border:1px solid rgba(255,255,255,.22);transition:background-color .15s}.quick-action:hover{background:#ffffff42;color:#fff}.quick-action.alert-pill{background:#fff;color:var(--tone-red);border-color:#fff;font-weight:600}.min-w-0{min-width:0}.dash-section{margin-bottom:1.75rem}.dash-title{display:flex;align-items:center;gap:.55rem;font-size:1.05rem;font-weight:700;color:var(--ink);margin-bottom:.85rem}.dash-title .dot{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--tone);color:#fff;font-size:.85rem}.dash-title .scope{font-weight:400;font-size:.85rem;color:var(--ink-muted)}.kpi{position:relative;display:block;height:100%;background:#fff;border-radius:14px;padding:1rem 1.1rem;border:1px solid rgba(15,27,58,.07);box-shadow:0 2px 6px #0f1b3a0a;color:var(--ink);text-decoration:none;overflow:hidden;transition:transform .15s,box-shadow .15s}.kpi:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--tone)}a.kpi:hover{transform:translateY(-2px);box-shadow:0 8px 18px #0f1b3a1a;color:var(--ink)}.kpi-icon{width:40px;height:40px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:var(--tone);color:#fff;font-size:1.1rem;box-shadow:0 4px 10px #0f1b3a26}.kpi-label{font-size:.8rem;color:var(--ink-muted);font-weight:500}.kpi-value{font-size:1.45rem;font-weight:700;line-height:1.2;margin-top:.15rem}.kpi-note{font-size:.78rem;color:var(--ink-muted)}.panel{background:#fff;border-radius:14px;border:1px solid rgba(15,27,58,.07);box-shadow:0 2px 6px #0f1b3a0a;height:100%}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.85rem 1.1rem .4rem;font-weight:600;font-size:.92rem;color:var(--ink)}.panel-body{padding:.3rem 1.1rem 1rem}.panel .list-group-item{border-color:#0f1b3a0f}.hbar{display:grid;grid-template-columns:7.5rem 1fr auto;align-items:center;gap:.6rem;padding:.3rem 0;font-size:.86rem}.hbar-track{height:12px;background:#eef1f7;border-radius:4px;overflow:hidden}.hbar-fill{height:100%;background:var(--tone-blue);border-radius:0 4px 4px 0;min-width:2px}.hbar-value{font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;text-align:right}.stack{display:flex;gap:2px;height:18px;border-radius:4px;overflow:hidden;background:#eef1f7}.stack>span{display:block;height:100%}.legend-swatch{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:.35rem}.age-1{background:var(--age-1)}.age-2{background:var(--age-2)}.age-3{background:var(--age-3)}.age-4{background:var(--age-4)}.progress-thin{height:8px;border-radius:4px;background:#eef1f7}.progress-thin .progress-bar{border-radius:4px;background:var(--tone-blue)}.progress-thin.late .progress-bar{background:var(--tone-red)}.chip-alert{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;padding:.1rem .5rem;border-radius:999px;background:#fdecec;color:#a32020}
