:root{--navy:#112e4e;--navy-2:#173f68;--blue:#2674d9;--blue-soft:#eaf3ff;--ink:#172b41;--ink-2:#31485f;--muted:#708196;--line:#e3eaf1;--page:#f4f7fb;--white:#fff;--teal:#118579;--teal-soft:#e6f6f3;--amber:#ad6814;--amber-soft:#fff3df;--red:#bd424c;--red-soft:#fff0f1;--purple:#7754bb;--purple-soft:#f1ebfb;--shadow:0 12px 35px rgba(17,46,78,.06);--radius:14px}
*{box-sizing:border-box}html{min-height:100%;background:var(--page)}body{margin:0;color:var(--ink);font-family:'Segoe UI',Arial,sans-serif;font-size:14px;line-height:1.45;background:var(--page)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(38,116,217,.22);outline-offset:1px}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;left:0;top:0;bottom:0;width:244px;background:var(--navy);color:#dce7f4;display:flex;flex-direction:column;padding:24px 14px 17px;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 10px 31px}.brand-mark{width:39px;height:39px;border-radius:12px;background:linear-gradient(145deg,#6eafff,#2d7de2);display:grid;place-items:center;color:#fff;font-family:'Segoe UI',Arial,sans-serif;font-weight:800;font-size:13px;letter-spacing:-.8px;box-shadow:0 4px 14px rgba(34,117,213,.27);flex-shrink:0}.brand-copy{display:flex;flex-direction:column;gap:3px}.brand-copy strong{font:800 19px 'Segoe UI',Arial,sans-serif;letter-spacing:-.8px;color:#fff}.brand-copy small{font-size:9px;font-weight:700;letter-spacing:1px;color:#86a4c7}.workspace-label{color:#7997b9;font-size:9px;font-weight:700;letter-spacing:1.45px;padding:0 13px 11px}.nav{display:flex;flex-direction:column;gap:5px}.nav-item{position:relative;display:flex;align-items:center;gap:12px;padding:11px 13px;border:0;background:transparent;color:#b9cade;border-radius:9px;text-align:left;font-size:12.5px;font-weight:600;transition:.15s ease;width:100%}.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}.nav-item.active{background:#214f80;color:#fff;box-shadow:inset 3px 0 #65a9ff}.nav-icon{display:inline-grid;place-items:center;width:18px;font-size:19px;line-height:1;color:#8eb6e3}.nav-item.active .nav-icon{color:#82baff}.nav-count{margin-left:auto;background:rgba(255,255,255,.09);padding:2px 7px;border-radius:6px;color:#bcd4f0;font-size:10px;font-weight:700}.nav-count.alert-count{background:rgba(229,111,103,.2);color:#ffc2bd}.sidebar-bottom{margin-top:auto}.governance-mini{display:flex;gap:10px;align-items:center;margin:0 3px 14px;padding:13px 11px;border-radius:11px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.075)}.mini-icon{width:29px;height:29px;background:rgba(43,172,146,.18);color:#7ce1c4;display:grid;place-items:center;border-radius:9px;font-size:17px}.governance-mini strong,.governance-mini small{display:block}.governance-mini strong{font-size:10.5px;color:#eaf4ff}.governance-mini small{font-size:9.5px;color:#8daaca;margin-top:3px}.local-chip{display:flex;align-items:center;gap:7px;border-radius:7px;padding:9px 10px;color:#98b5d2;font-size:8.5px;letter-spacing:.8px;font-weight:700}.pulse{width:7px;height:7px;background:#42c7a4;display:inline-block;border-radius:50%;box-shadow:0 0 0 3px rgba(66,199,164,.13);flex-shrink:0}.sidebar-version{font-size:9px;color:#7190b1;padding:8px 10px 0}.main-shell{min-width:0;width:calc(100% - 244px);margin-left:244px}.topbar{height:72px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:10;backdrop-filter:blur(15px)}.breadcrumbs{display:flex;align-items:center;gap:10px;font-size:11.5px;color:#8391a2}.breadcrumbs strong{color:#30445c;font-weight:700}.crumb-slash{color:#b4c0ce}.top-actions{display:flex;align-items:center;gap:15px}.local-status{display:flex;align-items:center;gap:8px;font-size:10px;color:#63778d;font-weight:700}.icon-button{width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:9px;color:#60748a;font-size:20px;display:inline-grid;place-items:center;transition:.15s}.icon-button:hover{border-color:#b7cee8;color:var(--blue);background:#f8fbff}.user-chip{display:flex;align-items:center;gap:9px;border:0;background:transparent;padding:4px 0 4px 6px;text-align:left;color:var(--ink)}.avatar{width:33px;height:33px;border-radius:50%;background:#e7f0fc;color:#2868ab;display:grid;place-items:center;font-size:10px;font-weight:800}.user-chip-copy strong,.user-chip-copy small{display:block}.user-chip-copy strong{font-size:10.5px}.user-chip-copy small{font-size:9px;color:#8190a2;margin-top:1px}.chevron{font-size:13px;color:#93a0af;padding-left:4px}.mobile-brand{display:none}.content-area{max-width:1600px;margin:0 auto;padding:30px 34px 20px}.view-pane{display:none;animation:fadeIn .18s ease}.view-pane.active{display:block}@keyframes fadeIn{from{opacity:.6;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:25px}.dashboard-heading{align-items:flex-start}.eyebrow{font-size:9px;font-weight:800;letter-spacing:1.55px;color:var(--blue);margin-bottom:8px}.page-heading h1{font-family:'Segoe UI',Arial,sans-serif;font-size:27px;line-height:1.2;letter-spacing:-1.1px;color:#172f49;margin:0;font-weight:800}.heading-light{font-weight:500;color:#668097}.subtitle{margin:8px 0 0;color:#8090a2;font-size:12px}.heading-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.date-pill,.method-pill{white-space:nowrap;border:1px solid #dce6f0;background:#fff;padding:8px 12px;border-radius:9px;color:#5e7288;font-size:10px;font-weight:700}.method-pill{display:flex;align-items:center;gap:7px;color:#267b70;background:#effaf7;border-color:#c9eee6}.method-pill span{font-size:15px}.btn{border:1px solid transparent;border-radius:9px;padding:10px 14px;font-weight:700;font-size:11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:transform .15s,box-shadow .15s,background .15s;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 5px 12px rgba(38,116,217,.16)}.btn-primary:hover{background:#1e68c5;box-shadow:0 7px 15px rgba(38,116,217,.23)}.btn-secondary{background:#fff;border-color:#dce5ee;color:#536980}.btn-danger{background:var(--red-soft);border-color:#f4d0d3;color:var(--red)}.btn-quiet{background:#f1f6fb;color:#43617f;border-color:#e0e9f2}.btn-small{padding:6px 9px;border-radius:7px;font-size:10px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px 18px 16px;min-height:122px;position:relative;overflow:hidden;box-shadow:0 3px 10px rgba(17,46,78,.018)}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.stat-label{font-size:10.5px;font-weight:700;color:#728398}.stat-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;font-size:16px}.stat-icon.blue{color:#2877d4;background:#edf5ff}.stat-icon.teal{color:#168879;background:#e8f7f3}.stat-icon.amber{color:#bb781e;background:#fff3e1}.stat-icon.red{color:#be4f56;background:#fff0f1}.stat-value{font:800 24px 'Segoe UI',Arial,sans-serif;letter-spacing:-.7px;margin-top:11px;color:#1a344f}.stat-foot{font-size:9.5px;color:#8a9aab;margin-top:4px}.stat-foot b{color:#2676ca;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:18px;margin-bottom:18px}.lower-grid{grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr)}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 12px rgba(17,46,78,.018);min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px 15px}.panel-heading h2{margin:0;font:800 13px 'Segoe UI',Arial,sans-serif;color:#213b56;letter-spacing:-.15px}.panel-heading p{margin:5px 0 0;font-size:10px;color:#8a9aab}.text-button{border:0;background:transparent;color:#2674d9;font-size:10px;font-weight:700;white-space:nowrap;padding:5px}.text-button span{font-size:15px;vertical-align:-1px;margin-left:4px}.attention-list{padding:0 17px 16px;display:flex;flex-direction:column;gap:8px}.attention-item{display:flex;align-items:flex-start;gap:11px;padding:12px 11px;border:1px solid #edf1f5;border-radius:10px;background:#fff}.attention-bar{width:3px;align-self:stretch;border-radius:9px;background:#e2a146;flex-shrink:0}.attention-bar.critical{background:#d95e68}.attention-bar.high{background:#e6a342}.attention-bar.medium{background:#5e9de7}.attention-main{flex:1;min-width:0}.attention-title{font-size:10.5px;font-weight:700;color:#304a64;line-height:1.4}.attention-sub{font-size:9.5px;color:#8998a8;margin-top:4px}.attention-meta{font-size:9px;color:#8191a1;margin-top:6px;display:flex;gap:7px;align-items:center}.severity-label{font-size:8px;text-transform:uppercase;letter-spacing:.6px;font-weight:800;border-radius:5px;padding:3px 5px}.severity-label.critical{background:var(--red-soft);color:var(--red)}.severity-label.high{background:var(--amber-soft);color:var(--amber)}.severity-label.medium{background:var(--blue-soft);color:#3977bf}.pipeline-chart{padding:2px 21px 10px;display:flex;flex-direction:column;gap:12px}.stage-bar-row{display:grid;grid-template-columns:115px minmax(30px,1fr) 85px;gap:10px;align-items:center}.stage-bar-label{font-size:9.5px;color:#60748a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-bar-track{height:8px;background:#f0f4f8;border-radius:30px;overflow:hidden}.stage-bar-fill{height:100%;border-radius:30px;background:linear-gradient(90deg,#2a76d2,#69aaf9)}.stage-bar-value{text-align:right;font-size:9px;font-weight:700;color:#4f657c;font-variant-numeric:tabular-nums}.chart-footnote{border-top:1px solid #edf1f6;margin:8px 20px 0;padding:13px 0 15px;display:flex;align-items:center;gap:7px;font-size:9px;color:#8191a3}.chart-legend{width:7px;height:7px;background:#3985dc;border-radius:3px}.chart-footnote strong{margin-left:auto;color:#284560;font-size:11px}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;white-space:normal}th{font-size:8.5px;letter-spacing:.65px;color:#8a99aa;font-weight:800;text-align:left;padding:11px 13px;background:#fafbfd;border-top:1px solid #edf1f6;border-bottom:1px solid #edf1f6;white-space:nowrap}td{padding:13px;border-bottom:1px solid #edf1f5;font-size:10px;color:#5d7186;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#fbfdff}.lower-grid th:first-child,.lower-grid td:first-child{padding-left:20px}.opp-name{font-size:10.5px;font-weight:700;color:#2c455f;max-width:230px}.opp-account{font-size:9px;color:#96a3b1;margin-top:4px}.stage-pill,.status-pill,.type-pill,.risk-pill{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:5px 7px;font-size:8.5px;font-weight:700;line-height:1.2;white-space:nowrap}.stage-pill{background:#edf4fd;color:#4679b1}.stage-pill.closed{background:var(--teal-soft);color:#207c70}.stage-pill.nurture{background:#f1eef9;color:#7a60a8}.status-pill.not-started{background:#f1f4f7;color:#718297}.status-pill.in-progress{background:#eaf3ff;color:#3275c2}.status-pill.blocked{background:var(--red-soft);color:#b54751}.status-pill.ready-for-approval{background:var(--purple-soft);color:#7956b2}.status-pill.completed,.status-pill.passed{background:var(--teal-soft);color:#1b8375}.status-pill.cancelled{background:#f1f2f5;color:#7f8995}.priority-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;background:#91a3b5}.priority-dot.critical,.priority-dot.high{background:#d65f67}.priority-dot.medium{background:#dca049}.priority-dot.low{background:#77a9e4}.table-value{font-size:10.5px;font-weight:800;color:#294762;font-variant-numeric:tabular-nums}.muted{color:#8999aa}.table-action{border:1px solid #e1e9f1;background:#fff;border-radius:7px;color:#52708d;padding:6px 8px;font-size:9px;font-weight:700;white-space:nowrap}.table-action:hover{border-color:#9bc2ef;color:#256cc2;background:#f6faff}.project-health-list{display:flex;flex-direction:column;padding:0 19px 15px;gap:0}.project-health-row{padding:13px 1px;display:flex;align-items:flex-start;gap:12px;border-top:1px solid #edf1f6}.project-health-row:first-child{border-top:0}.health-indicator{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}.health-indicator.green{background:#39b59c}.health-indicator.amber{background:#e5a03b}.health-indicator.red{background:#d95f69}.project-health-main{min-width:0;flex:1}.project-health-name{font-size:10.5px;font-weight:700;color:#2d4660}.project-health-sub{font-size:9px;color:#899aab;margin-top:4px}.project-health-progress{width:66px;flex-shrink:0;text-align:right;font-size:9px;color:#70869b}.progress-track{height:4px;background:#eef2f6;border-radius:4px;overflow:hidden;margin-top:7px}.progress-fill{height:100%;border-radius:4px;background:#3e9f8f}.toolbar{display:flex;align-items:center;gap:9px;margin:-3px 0 14px;flex-wrap:wrap}.search-box{height:36px;background:#fff;border:1px solid #dfe7ef;display:flex;align-items:center;gap:8px;border-radius:9px;padding:0 11px;min-width:255px;flex:1;max-width:390px;color:#9aa8b6}.search-box span{font-size:20px;line-height:1}.search-box input{border:0;outline:none;min-width:0;flex:1;background:transparent;color:#30475f;font-size:10.5px}.search-box input::placeholder{color:#a4b0bd}.filter-select{height:36px;background:#fff;border:1px solid #dfe7ef;border-radius:9px;padding:0 10px;color:#60758a;font-size:10px;max-width:180px}.toolbar-spacer{flex:1}.result-count{color:#8293a4;font-size:9.5px;white-space:nowrap}.table-panel{overflow:hidden}.data-table td{padding:13px 12px}.data-table th{padding:11px 12px}.data-table td:first-child,.data-table th:first-child{padding-left:18px}.data-table td:last-child,.data-table th:last-child{padding-right:18px}.cell-sub{font-size:9px;color:#95a3b1;margin-top:4px}.probability{display:flex;align-items:center;gap:7px;min-width:72px}.probability-track{height:5px;border-radius:5px;width:38px;background:#edf2f7;overflow:hidden}.probability-fill{height:100%;background:#4b91e2;border-radius:5px}.table-action-row{display:flex;align-items:center;gap:5px}.callout-note{margin-top:14px;padding:13px 15px;display:flex;align-items:flex-start;gap:11px;border:1px solid #dce9f8;background:#f0f7ff;border-radius:11px}.note-icon{width:19px;height:19px;border-radius:50%;background:#d9eaff;color:#347dc9;display:grid;place-items:center;font-size:11px;font-weight:800;flex-shrink:0}.callout-note strong{font-size:10px;color:#315e91}.callout-note p{margin:4px 0 0;font-size:9.5px;color:#6683a1;line-height:1.6}.project-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:17px}.summary-tile{background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px 15px}.summary-tile span{display:block;color:#8091a4;font-size:9px;font-weight:600}.summary-tile strong{display:block;font:800 19px 'Segoe UI',Arial,sans-serif;color:#253f59;margin-top:6px}.projects-list{display:flex;flex-direction:column;gap:14px}.project-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 3px 12px rgba(17,46,78,.018)}.project-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:19px 20px 15px;border-bottom:1px solid #eef2f6}.project-card-title-area{display:flex;gap:12px;min-width:0}.project-icon{width:39px;height:39px;border-radius:11px;background:#eaf3ff;color:#2877d5;display:grid;place-items:center;font-size:19px;flex-shrink:0}.project-card h3{font:800 14px 'Segoe UI',Arial,sans-serif;margin:1px 0 5px;color:#233d57;letter-spacing:-.3px}.project-subtitle{color:#8999aa;font-size:9.5px}.project-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}.health-tag{display:inline-flex;align-items:center;gap:5px;font-size:8.5px;font-weight:800;padding:4px 7px;border-radius:5px}.health-tag.green{background:#e7f7f2;color:#228673}.health-tag.amber{background:#fff3df;color:#ae701b}.health-tag.red{background:#fff0f1;color:#b84751}.project-card-meta{display:flex;gap:22px;flex-wrap:wrap;padding:13px 20px;background:#fcfdff;border-bottom:1px solid #eef2f6}.project-meta-item span{display:block;color:#98a5b2;font-size:8.5px}.project-meta-item strong{display:block;color:#536c83;font-size:10px;margin-top:4px}.gate-progress-area{padding:18px 20px 12px}.gate-progress-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.gate-progress-head strong{font-size:10px;color:#526b82}.gate-progress-head span{font-size:9px;color:#8c9baa}.gate-track{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.gate-step{border:0;padding:9px 5px 8px;border-radius:7px;background:#f2f5f8;text-align:center;min-width:0;color:#8d9aaa;position:relative}.gate-step .gate-step-num{display:block;font-size:9px;font-weight:800;margin-bottom:5px}.gate-step .gate-step-label{display:block;font-size:8px;line-height:1.25;overflow-wrap:anywhere}.gate-step.passed{background:#e4f6f0;color:#278573}.gate-step.in-progress{background:#eaf3ff;color:#2c75c5;box-shadow:inset 0 0 0 1px #c7defa}.gate-step.ready-for-approval{background:#f1eafe;color:#7654b7}.gate-step.blocked{background:#fff0f1;color:#b94c55}.gate-step:hover{filter:brightness(.98)}.gate-detail{padding:0 20px 18px}.gate-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0 10px;border-top:1px solid #edf1f6}.gate-detail-head strong{font-size:11px;color:#2d4964}.gate-detail-head small{display:block;font-size:9px;color:#91a0ae;margin-top:4px}.checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:3px 0 13px}.checklist-item{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid #e8eef4;border-radius:8px;background:#fff}.checklist-item input{margin:2px 0 0;accent-color:#2875d1;flex-shrink:0}.checklist-item span{font-size:9.5px;color:#5d7389;line-height:1.45}.checklist-item.done span{color:#789187}.checklist-item small{display:block;color:#94a4b1;font-size:8.5px;margin-top:3px}.gate-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gate-evidence{min-width:230px;flex:1;height:34px;border:1px solid #dfe8f0;background:#fbfcfe;border-radius:7px;padding:0 10px;color:#4e647b;font-size:9.5px}.gate-evidence::placeholder{color:#a1adba}.gate-detail-empty{font-size:10px;color:#92a0ad;padding:10px 0 15px}.work-item-title{font-size:10.5px;font-weight:700;color:#2d4862}.work-item-desc{font-size:9px;color:#899aac;max-width:250px;margin-top:4px;line-height:1.4}.dependency-count{display:inline-flex;align-items:center;gap:5px;color:#8191a2;font-size:9px}.dependency-count.blocked{color:#b84953;font-weight:700}.dependency-panel{margin-top:17px}.dependency-list{padding:0 20px 17px;display:flex;flex-direction:column}.dependency-row{display:grid;grid-template-columns:minmax(0,1fr) 35px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid #eef2f6}.dependency-node{min-width:0}.dependency-node strong{display:block;font-size:10px;color:#415e78;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dependency-node small{display:block;font-size:8.8px;color:#93a2b1;margin-top:4px}.dependency-arrow{text-align:center;color:#9aabbb;font-size:17px}.dependency-state{font-size:8.5px;font-weight:800;padding:4px 7px;border-radius:5px;white-space:nowrap}.dependency-state.waiting{color:#b44e55;background:var(--red-soft)}.dependency-state.ready{color:#218373;background:var(--teal-soft)}.contact-cell{display:flex;align-items:center;gap:9px}.contact-avatar{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#edf4fc;color:#3c76b6;font-size:9px;font-weight:800;flex-shrink:0}.contact-cell strong{display:block;color:#304a64;font-size:10px}.contact-cell small{display:block;color:#92a0af;font-size:9px;margin-top:3px}.role-tag{display:inline-block;border-radius:5px;padding:5px 7px;background:#f0f5fa;color:#657b90;font-size:8.5px;font-weight:700}.alert-legend{display:flex;gap:19px;align-items:center;flex-wrap:wrap;margin:-7px 0 17px;color:#71859b;font-size:9.5px}.alert-legend span{display:flex;align-items:center;gap:7px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot-critical{background:#d65f68}.dot-high{background:#e3a044}.dot-medium{background:#4c91dc}.alerts-list{padding:0 19px 17px;display:flex;flex-direction:column}.alert-row{display:flex;gap:12px;padding:14px 3px;border-top:1px solid #edf1f6;align-items:flex-start}.alert-row:first-child{border-top:0}.alert-severity-line{width:3px;align-self:stretch;min-height:40px;border-radius:9px;flex-shrink:0;background:#4c91dc}.alert-severity-line.critical{background:#d65f68}.alert-severity-line.high{background:#e4a044}.alert-main{flex:1;min-width:0}.alert-title{font-size:10.5px;font-weight:700;color:#304962}.alert-body{font-size:9.5px;color:#8394a5;margin-top:4px;line-height:1.55}.alert-date{font-size:9px;color:#a0acb9;margin-top:6px}.alert-unread{width:6px;height:6px;background:#4189d7;border-radius:50%;margin:6px 2px 0 0}.alert-row.read .alert-unread{visibility:hidden}.audit-list{padding:0 20px 16px}.audit-row{display:grid;grid-template-columns:93px 10px minmax(0,1fr) auto;gap:11px;align-items:start;border-top:1px solid #edf1f6;padding:13px 0}.audit-time{font-size:9px;color:#8a9aab;line-height:1.5}.audit-dot{width:7px;height:7px;border-radius:50%;background:#7eaee8;margin-top:4px}.audit-action{font-size:10px;font-weight:700;color:#3b5671}.audit-detail{font-size:9px;color:#8798a9;margin-top:4px;line-height:1.5;overflow-wrap:anywhere}.audit-actor{font-size:9px;color:#8293a4;white-space:nowrap}.app-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:28px;padding:15px 0 0;border-top:1px solid #e4ebf2;color:#97a5b3;font-size:8.5px}.app-footer span:nth-child(2){display:flex;align-items:center;gap:6px}.empty-state{text-align:center;padding:35px 15px;color:#94a3b2;font-size:10px}.hidden{display:none!important}.skeleton{height:49px;border:1px solid #edf1f5;border-radius:9px;background:linear-gradient(90deg,#f8fafc 0,#fff 45%,#f8fafc 90%);background-size:200% 100%;animation:skeleton 1.5s ease-in-out infinite}@keyframes skeleton{from{background-position:100% 0}to{background-position:-100% 0}}
.toast-region{position:fixed;right:24px;bottom:22px;z-index:90;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px))}.toast{display:flex;gap:10px;align-items:flex-start;background:#173b60;color:#fff;border-radius:10px;padding:13px 15px;box-shadow:0 12px 35px rgba(12,32,53,.22);font-size:10.5px;animation:toastIn .2s ease}.toast.error{background:#862f38}.toast.success{background:#166b5e}.toast strong{display:block;font-size:10.5px;margin-bottom:3px}.toast span{display:block;color:rgba(255,255,255,.82);line-height:1.45}@keyframes toastIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{position:fixed;inset:0;background:rgba(8,25,43,.47);backdrop-filter:blur(4px);z-index:70;display:grid;place-items:center;padding:22px}.modal{background:#fff;border-radius:16px;width:min(780px,100%);max-height:min(90vh,900px);display:flex;flex-direction:column;box-shadow:0 30px 90px rgba(8,29,49,.28);overflow:hidden;animation:fadeIn .18s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:21px 24px 17px;border-bottom:1px solid #eaf0f5}.modal-header h2{font:800 18px 'Segoe UI',Arial,sans-serif;margin:0;color:#233d57}.modal-header .eyebrow{margin-bottom:5px}.modal-body{overflow-y:auto;padding:21px 24px 24px}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:14px 24px;border-top:1px solid #eaf0f5;background:#fbfcfe}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-section-title{grid-column:1/-1;font:800 10px 'Segoe UI',Arial,sans-serif;letter-spacing:.8px;text-transform:uppercase;color:#52718e;padding-top:4px;margin:3px 0 -5px}.form-field{display:flex;flex-direction:column;gap:6px;min-width:0}.form-field.full{grid-column:1/-1}.form-field label{font-size:9.5px;font-weight:700;color:#64798f}.form-field label .optional{color:#a3afbb;font-weight:500}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid #dce6ef;border-radius:8px;padding:9px 10px;background:#fff;color:#30475e;font-size:10.5px;min-width:0}.form-field textarea{min-height:76px;resize:vertical;line-height:1.5}.form-field input::placeholder,.form-field textarea::placeholder{color:#a8b4bf}.form-hint{color:#95a2af;font-size:9px;line-height:1.5}.form-check{display:flex;align-items:center;gap:8px;padding:8px 0}.form-check input{accent-color:#2674d9}.form-check label{font-size:10px;color:#526b81}.modal-info{grid-column:1/-1;border:1px solid #dceafb;background:#f2f7fe;color:#577b9f;border-radius:8px;padding:10px 12px;font-size:9.5px;line-height:1.6}.modal-error{grid-column:1/-1;border:1px solid #f2cdd1;background:#fff3f4;color:#ad4049;border-radius:8px;padding:10px 12px;font-size:10px;line-height:1.6}.modal-readonly-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f6}.modal-readonly-label{font-size:9px;color:#899aab}.modal-readonly-value{font-size:10.5px;color:#36516b;font-weight:700;margin-top:4px}.form-divider{height:1px;background:#e9eff5;grid-column:1/-1;margin:2px 0}.modal-subheading{grid-column:1/-1;font:800 12px 'Segoe UI',Arial,sans-serif;color:#29455f;margin:4px 0 -3px}.pill-list{display:flex;gap:6px;flex-wrap:wrap}.pill-list span{background:#edf4fc;color:#4d76a0;border-radius:5px;font-size:8.5px;padding:5px 7px}.audit-json{font-family:ui-monospace,Consolas,monospace;font-size:9px;color:#657d94;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1260px){.content-area{padding:25px 24px 19px}.topbar{padding:0 24px}.stat-grid{gap:10px}.stat-card{padding:15px}.dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(300px,.9fr)}.page-heading h1{font-size:24px}.stage-bar-row{grid-template-columns:95px minmax(25px,1fr) 76px;gap:7px}.data-table th,.data-table td{padding-left:9px;padding-right:9px}.gate-step .gate-step-label{font-size:7px}}
@media(max-width:980px){.sidebar{width:205px}.main-shell{margin-left:205px;width:calc(100% - 205px)}.content-area{padding:22px 18px}.topbar{padding:0 18px}.dashboard-grid,.lower-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.user-chip-copy,.chevron{display:none}.gate-step{padding:8px 2px}.gate-step .gate-step-label{font-size:7px}.project-card-meta{gap:14px}.app-footer{flex-wrap:wrap}}
@media(max-width:700px){.sidebar{width:62px;padding:18px 7px 12px}.brand{padding:0 4px 26px;justify-content:center}.brand-mark{width:37px;height:37px}.brand-copy,.workspace-label,.nav-item span:not(.nav-icon),.sidebar-bottom{display:none}.nav{gap:7px}.nav-item{height:42px;justify-content:center;padding:0;border-radius:10px}.nav-icon{font-size:20px}.main-shell{margin-left:62px;width:calc(100% - 62px)}.topbar{height:61px;padding:0 13px}.breadcrumbs{display:none}.mobile-brand{display:flex;align-items:center;gap:8px;font:800 15px 'Segoe UI',Arial,sans-serif;color:#25435f}.brand-mark.small{width:30px;height:30px;border-radius:9px;font-size:10px}.top-actions{gap:9px}.local-status{display:none}.user-chip{display:none}.content-area{padding:19px 12px}.page-heading{align-items:flex-start;flex-direction:column;gap:13px;margin-bottom:19px}.dashboard-heading{align-items:flex-start}.page-heading h1{font-size:23px}.heading-light{display:block;margin-top:2px}.subtitle{font-size:11px;line-height:1.55}.heading-actions{width:100%;justify-content:space-between}.heading-actions .btn{margin-left:auto}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat-card{padding:12px;min-height:108px}.stat-label{font-size:9.5px}.stat-icon{width:27px;height:27px}.stat-value{font-size:21px;margin-top:9px}.stat-foot{font-size:8.5px}.panel-heading{padding:15px 14px 12px}.panel-heading h2{font-size:12px}.panel-heading p{font-size:9px}.attention-list{padding:0 10px 11px}.attention-item{padding:10px 8px}.stage-bar-row{grid-template-columns:95px minmax(20px,1fr) 63px;gap:6px}.stage-bar-label{font-size:8.5px}.stage-bar-value{font-size:8px}.pipeline-chart{padding:2px 13px 10px}.chart-footnote{margin:7px 13px 0}.table-wrap{overflow-x:auto}.data-table{min-width:850px}.lower-grid .table-wrap table{min-width:610px}.project-summary-strip{gap:8px}.summary-tile{padding:11px}.summary-tile strong{font-size:17px}.project-card-header{padding:14px;flex-direction:column}.project-card-header>.btn{align-self:flex-start}.project-card-meta{padding:11px 14px;gap:13px}.gate-progress-area{padding:13px 12px 9px}.gate-track{grid-template-columns:repeat(7,minmax(56px,1fr));overflow-x:auto;padding-bottom:4px}.gate-step{min-width:56px}.gate-step .gate-step-label{font-size:7.5px}.gate-detail{padding:0 13px 14px}.gate-detail-head{align-items:flex-start}.checklist-grid{grid-template-columns:1fr}.gate-actions{align-items:stretch}.gate-evidence{min-width:100%;flex:1}.dependency-list{padding:0 12px 12px}.dependency-row{grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);gap:6px}.dependency-state{grid-column:1/-1;justify-self:start;margin-left:0}.dependency-node strong{white-space:normal;line-height:1.4}.dependency-arrow{font-size:12px}.toolbar{gap:7px}.search-box{min-width:100%;max-width:none}.filter-select{flex:1;min-width:0;max-width:none}.result-count{font-size:8.5px}.callout-note{padding:11px}.app-footer{font-size:8px;gap:8px}.app-footer span{width:100%}.alert-legend{gap:10px}.alerts-list{padding:0 12px 12px}.audit-list{padding:0 13px 12px}.audit-row{grid-template-columns:70px 7px minmax(0,1fr);gap:8px}.audit-actor{grid-column:3}.modal-backdrop{padding:9px}.modal{max-height:94vh;border-radius:13px}.modal-header{padding:16px}.modal-body{padding:16px}.modal-footer{padding:12px 16px}.form-grid{grid-template-columns:1fr;gap:12px}.form-section-title,.form-field.full,.modal-info,.modal-error,.form-divider,.modal-subheading{grid-column:1}.modal-readonly-row{grid-template-columns:1fr}.app-footer{margin-top:18px}}

.text-danger{color:#b84751!important}.email-link{color:#3979bd;text-decoration:none}.email-link:hover{text-decoration:underline}
.role-player-section{margin-top:17px;border:1px solid #e0e9f2;border-radius:11px;background:#fbfdff;overflow:hidden}.role-player-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px 12px;border-bottom:1px solid #e9eff5}.role-player-heading h3{margin:0;font:800 12px 'Segoe UI',Arial,sans-serif;color:#2b4864}.role-player-heading p{margin:5px 0 0;font-size:9px;color:#899aac}.role-player-count{background:#edf4fc;border-radius:5px;padding:5px 7px;font-size:8.5px;color:#4777a7;font-weight:800;white-space:nowrap}.role-player-list{padding:0 16px}.role-player-row{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid #edf1f6}.role-player-main{min-width:0;flex:1}.role-player-main>strong{display:block;font-size:10px;color:#36516b}.role-player-main>small{display:block;margin-top:3px;color:#91a0af;font-size:8.5px}.role-player-main .role-tag{margin-top:6px}.role-player-main p{margin:6px 0 0;color:#71869a;font-size:9px}.role-player-side{display:flex;align-items:flex-end;flex-direction:column;gap:7px}.decision-flag{color:#218473;background:#e5f6f1;border-radius:5px;padding:4px 6px;font-size:8px;font-weight:800;white-space:nowrap}.role-player-empty{padding:14px 17px;color:#8999aa;font-size:9.5px;line-height:1.55}.role-player-add-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 16px 16px;border-top:1px solid #e9eff5;background:#fff}.role-player-add-grid .form-field select,.role-player-add-grid .form-field input{width:100%;min-width:0;border:1px solid #dce6ef;border-radius:8px;padding:9px 10px;background:#fff;color:#30475e;font-size:10px}.decision-check{display:flex;align-items:center;gap:7px;color:#6f8397;font-size:9px}.decision-check input{accent-color:#2876d5}.role-player-add-grid .btn{align-self:end;justify-self:start}@media(max-width:700px){.role-player-add-grid{grid-template-columns:1fr}.role-player-heading{padding:13px}.role-player-list{padding:0 12px}.role-player-row{gap:8px}}

/* ASG Africa / ASG-NetX multi-company identity and incident workspace */
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:26px;background:radial-gradient(circle at 12% 6%,#e6f1ff 0,transparent 30%),linear-gradient(145deg,#f6f9fd,#eaf0f7)}
.auth-card{width:min(480px,100%);background:#fff;border:1px solid #e0e9f2;border-radius:20px;padding:34px;box-shadow:0 24px 80px rgba(26,57,91,.12)}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:32px}.auth-brand>div:last-child{display:flex;flex-direction:column;gap:4px}.auth-brand strong{font-size:19px;letter-spacing:-.5px;color:#233d57}.auth-brand small{font-size:8px;font-weight:800;letter-spacing:1.2px;color:#8a9fb4}
.auth-card>.eyebrow{margin-bottom:8px}.auth-card h1{font-size:25px;line-height:1.2;letter-spacing:-.8px;color:#213b55;margin:0 0 10px}.auth-card>.subtitle{margin:0 0 22px;font-size:11px;line-height:1.65}.auth-provider-list{display:flex;flex-direction:column;gap:10px}.provider-button{display:flex;align-items:center;gap:12px;min-height:48px;border:1px solid #dce6ef;border-radius:10px;padding:0 13px;text-decoration:none;color:#334e67;font-weight:700;font-size:11px;background:#fff;transition:.15s ease}.provider-button>span:nth-child(2){flex:1}.provider-button:hover{border-color:#a8c7e8;background:#fafdff}.provider-button.provider-disabled{opacity:.5;cursor:not-allowed;background:#f8fafc}.provider-mark{width:25px;height:25px;border-radius:6px;display:grid;place-items:center;font-weight:800;font-size:14px}.google-mark{color:#4285f4;background:#edf4ff}.microsoft-mark{color:#2878d6;background:#eaf3ff}.auth-hint{font-size:9.5px;line-height:1.6;color:#8a9bad;margin-top:13px}.auth-message{margin:13px 0;padding:10px 12px;border:1px solid #cfe2fa;border-radius:8px;background:#f1f7ff;color:#3e6e9f;font-size:10px;line-height:1.55;overflow-wrap:anywhere}.auth-message.error{border-color:#f1ced2;background:#fff3f4;color:#a33c48}.dev-login-block{margin-top:20px;padding-top:19px}.dev-login-block .eyebrow{margin:7px 0 11px}.dev-login-block .form-field{margin-bottom:12px}.dev-login-block .form-field label{display:block;font-size:10px;font-weight:700;color:#607991;margin-bottom:6px}.dev-login-block select{width:100%;padding:11px;border:1px solid #dce6ef;border-radius:8px;background:white;color:#36516b;font-size:10px}.btn-wide{width:100%;justify-content:center}.dev-login-block p{font-size:9px;line-height:1.5;color:#95a2b1;margin:10px 0 0}.auth-footer{display:flex;align-items:center;gap:7px;margin-top:25px;padding-top:15px;border-top:1px solid #edf1f5;font-size:8.5px;color:#8a9cac}.app-shell.hidden{display:none}
.incident-table{min-width:1000px}.incident-number{padding:0;border:0;background:transparent;color:#2e74b8;font-size:10px;font-weight:800}.incident-number:hover{text-decoration:underline}.priority-badge{display:inline-flex;align-items:center;padding:5px 7px;border-radius:5px;background:#edf3fb;color:#56738f;font-size:8.5px;font-weight:800;white-space:nowrap}.priority-badge.p1-critical{background:#ffeaec;color:#b33d48}.priority-badge.p2-high{background:#fff1df;color:#a96718}.priority-badge.p3-medium{background:#eaf3ff;color:#3c78ba}.priority-badge.p4-low{background:#edf4f3;color:#648b82}.sla-pill{display:inline-flex;align-items:center;gap:6px;border-radius:5px;padding:5px 7px;font-size:8px;font-weight:800;white-space:nowrap;background:#e7f6f0;color:#25826e}.sla-pill i{width:5px;height:5px;border-radius:50%;background:currentColor}.sla-pill.at-risk{background:#fff3df;color:#ad741d}.sla-pill.breached{background:#ffeaec;color:#b43f4a}.sla-pill.paused{background:#edf2f7;color:#6d8193}.sla-pill.met{background:#e7f6f0;color:#25826e}.sla-pill.on-track{background:#edf4fc;color:#4779ad}.incident-event-list{grid-column:1/-1;display:flex;flex-direction:column;gap:9px}.incident-event{padding:10px;border:1px solid #e7edf4;border-radius:8px;background:#fbfdff}.incident-event strong{display:block;font-size:9.5px;color:#34516c}.incident-event span{display:block;margin-top:4px;font-size:8.5px;color:#8b9bad}.incident-event p{font-size:9px;line-height:1.5;color:#627991;margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.sla-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sla-policy-card{border:1px solid #e2eaf2;border-radius:10px;padding:13px;display:flex;flex-direction:column;gap:10px;background:#fcfdff}.sla-policy-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:3px}.sla-policy-heading strong{color:#314f6a;font-size:11px}.sla-policy-heading span{font-size:8px;color:#288875;background:#e6f6f1;border-radius:5px;padding:4px 6px}.sla-policy-card .form-field label{font-size:9px;color:#71859a;font-weight:700}.sla-policy-card .form-field input{padding:8px;border:1px solid #dce6ef;border-radius:7px;font-size:10px;color:#38536d}.tenant-panel,.iam-note-panel{margin-bottom:16px}.tenant-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 18px 18px}.tenant-link-card{display:flex;align-items:center;gap:10px;min-width:0;border:1px solid #e3ebf3;border-radius:10px;padding:13px;background:#fbfdff}.tenant-icon{width:37px;height:37px;border-radius:10px;display:grid;place-items:center;background:#e8f2ff;color:#2871bc;font-size:10px;font-weight:900;flex-shrink:0}.tenant-link-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.tenant-link-info strong{font-size:10px;color:#34516d}.tenant-link-info small{font-size:8.5px;color:#8c9eaf;overflow-wrap:anywhere}.tenant-link-card>a{font-size:9px;font-weight:800;color:#3277b9;text-decoration:none;white-space:nowrap}.tenant-link-card>a:hover{text-decoration:underline}.iam-table{min-width:850px}.iam-role-select{max-width:235px;width:100%;padding:7px 8px;border:1px solid #e0e8f0;border-radius:7px;background:#fff;color:#49627a;font-size:9px}.iam-role-select:disabled{background:#f4f6f8;color:#8798a8}.role-matrix{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 18px 18px}.role-matrix-card{border:1px solid #e4ebf2;border-radius:9px;padding:12px;background:#fcfdff}.role-matrix-card strong{display:block;font-size:10px;color:#35536d}.role-matrix-card p{margin:6px 0 9px;color:#8294a6;font-size:9px;line-height:1.55}.role-matrix-card span{display:inline-block;padding:4px 6px;border-radius:5px;background:#eff4fa;color:#6a8198;font:8px ui-monospace,Consolas,monospace}.iam-note-panel .panel-heading{border-bottom:0}
@media(max-width:900px){.role-matrix{grid-template-columns:repeat(2,minmax(0,1fr))}.tenant-links{grid-template-columns:1fr}}
@media(max-width:700px){.auth-screen{padding:14px}.auth-card{padding:24px 19px;border-radius:15px}.auth-card h1{font-size:22px}.sla-policy-grid{grid-template-columns:1fr}.role-matrix{grid-template-columns:1fr}.tenant-link-card{align-items:flex-start;flex-wrap:wrap}.tenant-link-card>a{margin-left:47px}.incident-table{min-width:970px}}

.mobile-signout{display:none}@media(max-width:700px){.mobile-signout{display:inline-flex}}


/* V0.3.2 · ASG Africa signature design system */
:root{--navy:#0c1828;--navy-2:#142a42;--blue:#3678ee;--blue-2:#5ba7ff;--teal:#17b6a2;--ink:#1d3148;--muted:#7e91a8;--line:#e5ebf3;--canvas:#f4f7fb;--shadow-lg:0 20px 55px rgba(16,39,69,.09)}
body{background:var(--canvas);color:var(--ink)}
.sidebar{background:linear-gradient(175deg,#0b1728 0%,#10243b 57%,#102c40 100%);box-shadow:10px 0 32px rgba(10,30,52,.08)}
.brand{border-bottom:1px solid rgba(204,224,246,.12)}
.brand-mark{background:linear-gradient(140deg,#4e9cff,#2563e8);box-shadow:0 8px 22px rgba(50,123,239,.30);border:1px solid rgba(255,255,255,.24);letter-spacing:-.8px}
.brand-mark:after{content:"";position:absolute;inset:3px;border:1px solid rgba(255,255,255,.26);border-radius:inherit;pointer-events:none}
.brand-mark{position:relative;overflow:hidden}
.workspace-label,.sidebar-version{color:#6f87a3}
.nav-item{color:#a5b7cc;transition:transform .18s ease,background .18s ease,color .18s ease}
.nav-item:hover{background:rgba(129,177,237,.11);color:#f5f9ff;transform:translateX(2px)}
.nav-item.active{background:linear-gradient(100deg,rgba(61,132,242,.28),rgba(61,132,242,.08));color:#fff;box-shadow:inset 3px 0 #62a9ff;border:1px solid rgba(105,163,245,.13)}
.nav-icon{filter:saturate(1.25)}
.governance-mini{background:linear-gradient(140deg,rgba(61,132,242,.16),rgba(23,182,162,.08));border:1px solid rgba(120,171,231,.15);border-radius:12px}
.local-chip{border-radius:6px;background:rgba(255,255,255,.05);padding:8px 9px}
.main-shell{background:radial-gradient(ellipse at 100% 0%,rgba(75,141,232,.055),transparent 31%),var(--canvas)}
.topbar{background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(221,230,241,.9);box-shadow:0 5px 18px rgba(21,47,77,.025)}
.local-status{background:#edf8f6;border:1px solid #d9f0eb;border-radius:99px;padding:7px 11px;color:#368d81}
.user-chip{border:1px solid #e2eaf4;background:#f9fbfe;border-radius:12px;padding:7px 10px;transition:.16s ease}.user-chip:hover{border-color:#b6cfee;background:#fff}
.avatar{background:linear-gradient(145deg,#3f91ff,#2556c9);box-shadow:0 4px 10px #2d6fe62b}
.content-area{padding:32px clamp(20px,3vw,48px) 35px}
.page-heading{margin-bottom:25px}
.page-heading h1{letter-spacing:-1.25px;color:#182d45;font-weight:800}
.eyebrow{letter-spacing:1.65px;color:#4f7fb6}
.dashboard-heading{position:relative;align-items:flex-end;padding:28px 30px;border:1px solid #e0e9f5;border-radius:18px;background:linear-gradient(112deg,#fff 0%,#fff 55%,#edf5ff 100%);box-shadow:var(--shadow-lg);overflow:hidden}
.dashboard-heading:after{content:"";position:absolute;right:-30px;top:-130px;width:360px;height:360px;border-radius:50%;border:1px solid rgba(64,129,235,.12);box-shadow:0 0 0 30px rgba(64,129,235,.025),0 0 0 62px rgba(64,129,235,.022),0 0 0 96px rgba(64,129,235,.018);pointer-events:none}
.dashboard-heading>*{position:relative;z-index:1}
.dashboard-heading h1{font-size:clamp(29px,3vw,39px);line-height:1.17;letter-spacing:-1.7px}.heading-light{color:#527aa5;font-weight:600}.dashboard-heading .subtitle{max-width:640px;font-size:12px;color:#71859d}
.date-pill{background:#fff;border:1px solid #dce7f5;box-shadow:0 4px 13px rgba(37,75,127,.05)}
.stat-grid{gap:15px}.stat-card{border-radius:15px;border:1px solid #e3eaf3;box-shadow:0 7px 24px rgba(23,52,85,.035);padding:19px 20px;position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:0 13px 30px rgba(23,52,85,.08)}.stat-card:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-55px;bottom:-63px;background:rgba(68,136,236,.05)}.stat-value{letter-spacing:-1px;color:#1e3550}.stat-icon{border-radius:10px}
.panel{border-radius:15px;border:1px solid #e3eaf3;box-shadow:0 7px 25px rgba(23,52,85,.035);overflow:hidden}.panel-heading{padding:20px 22px 16px}.panel-heading h2{letter-spacing:-.25px}.data-table thead th{background:#f7f9fc;color:#7d90a6;letter-spacing:1px;font-size:8px}.data-table tbody tr{transition:background .12s}.data-table tbody tr:hover{background:#f7fbff}
.btn{border-radius:9px;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#397ff1,#2764dd);box-shadow:0 7px 17px rgba(46,105,220,.19)}.btn-primary:hover{background:linear-gradient(135deg,#4a8cff,#2d6fe8);box-shadow:0 10px 21px rgba(46,105,220,.25)}.btn-secondary{border:1px solid #dce6f1;background:#fff;color:#49627c}.btn-secondary:hover{border-color:#bfd3eb;background:#f9fcff}
.method-pill{border:1px solid #dce9f8;background:#f0f6ff;color:#467db9;border-radius:99px;padding:9px 12px}
.toolbar{padding:12px 14px;border:1px solid #e4ebf3;border-radius:12px;background:#fff;box-shadow:0 5px 15px rgba(20,51,83,.025);margin-bottom:15px}.search-box,.filter-select{border-color:#e1e9f2;background:#fbfcfe;border-radius:8px}.search-box:focus-within{border-color:#8db7f2;box-shadow:0 0 0 3px rgba(60,126,232,.09)}
.tenant-scope-wrap{display:flex;align-items:center;gap:10px;min-width:210px;margin-left:20px;padding:6px 11px 6px 13px;border:1px solid #dbe7f5;background:#f3f8ff;border-radius:10px}.tenant-scope-wrap.hidden{display:none!important}.scope-kicker{font-size:8px;font-weight:900;letter-spacing:1.25px;color:#7190b3}.tenant-scope-wrap select{max-width:210px;min-width:140px;border:0;background:transparent;font-weight:800;font-size:10px;color:#21476f;outline:0;appearance:none}.scope-indicator{color:#5983af;margin-left:auto}.parent-scope-child .tenant-scope-wrap{background:#edf8f6;border-color:#ccebe4}.parent-scope-child .scope-kicker{color:#388f83}
.itil-principles-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-5px 0 19px;padding:14px 17px;border:1px solid #dce8f6;border-radius:13px;background:linear-gradient(100deg,#f9fcff,#f0f6ff)}.itil-principles-strip>i{width:5px;height:37px;border-radius:9px;background:linear-gradient(#3d8bf6,#23b8a2)}.itil-principles-strip>div{display:flex;align-items:center;gap:12px;padding-right:15px;border-right:1px solid #dde8f4}.itil-principles-strip>div:last-of-type{border-right:0}.itil-principles-strip .itil-step{font-size:9px;font-weight:900;color:#4e94e8}.itil-principles-strip strong{display:block;color:#2a4663;font-size:10px}.itil-principles-strip small{display:block;color:#8194aa;font-size:8.5px;margin-top:4px}.itil-version-tag{margin-left:auto;color:#4f7faf;background:#fff;border:1px solid #dbe8f6;border-radius:7px;padding:7px 9px;font-size:8px;font-weight:900;letter-spacing:.5px}.itil-callout{border-color:#d8e7f4;background:linear-gradient(105deg,#f8fbff,#f6fcfb)}
.major-incident-check{display:flex;align-items:center;gap:11px;padding:13px 14px;border:1px solid #ffd9bf;border-radius:10px;background:#fff8f2;color:#9a4c22;cursor:pointer}.major-incident-check input{accent-color:#db5f26;width:16px;height:16px}.major-incident-check span{display:flex;flex-direction:column;gap:4px}.major-incident-check strong{font-size:10px}.major-incident-check small{font-size:9px;color:#a97758}.major-incident-badge{display:inline-flex;align-items:center;margin-top:5px;background:#fff0e5;border:1px solid #ffd8bc;color:#b35b2b;border-radius:5px;padding:4px 6px;font-size:7.5px;font-weight:900;letter-spacing:.5px}
.tenant-panel .panel-heading{background:linear-gradient(100deg,#fff,#f7faff)}.parent-governance-note{display:flex;gap:12px;align-items:flex-start;margin:0 18px 18px;padding:14px 15px;border-radius:11px;border:1px solid #dbe8f5;background:#f8fbff}.parent-badge{background:#173a5a;color:#d9ebff;border-radius:6px;padding:6px 8px;font-size:8px;font-weight:900;letter-spacing:1px}.parent-governance-note strong{display:block;color:#2d4a66;font-size:10px}.parent-governance-note p{margin:5px 0 0;color:#8295a9;font-size:9px;line-height:1.55}
.auth-screen{display:block;min-height:100vh;padding:0;background:radial-gradient(ellipse at 13% 13%,rgba(69,130,233,.12),transparent 35%),#f1f5fa}.auth-layout{display:grid;grid-template-columns:minmax(340px,1fr) minmax(390px,500px);gap:clamp(28px,6vw,92px);align-items:center;width:min(1320px,100%);min-height:100vh;margin:0 auto;padding:clamp(24px,5vw,70px)}.auth-showcase{position:relative;min-height:650px;border-radius:26px;padding:37px 38px;color:#fff;background:radial-gradient(ellipse at 80% 10%,rgba(62,132,245,.34),transparent 36%),linear-gradient(145deg,#0c1a2c,#112b45 58%,#0b313c);box-shadow:0 30px 80px rgba(18,44,74,.19);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.auth-showcase:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(167,202,249,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(167,202,249,.035) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(to bottom,black,transparent 90%);pointer-events:none}.auth-showcase-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.auth-showcase-brand>div:last-child{display:flex;flex-direction:column;gap:4px}.auth-showcase-brand strong{font-size:18px;letter-spacing:-.4px}.auth-showcase-brand small{font-size:8px;letter-spacing:1.5px;color:#9fb5cd;font-weight:800}.auth-showcase-copy{position:relative;z-index:1;max-width:560px;margin-top:65px}.auth-showcase-copy .eyebrow{color:#81baff}.auth-showcase-copy h2{font-size:clamp(32px,3.5vw,51px);line-height:1.12;letter-spacing:-2.1px;margin:14px 0 17px;font-weight:800}.auth-showcase-copy h2 span{color:#83b8ff}.auth-showcase-copy p{max-width:450px;color:#adbed1;font-size:13px;line-height:1.8}.auth-showcase-orbit{position:absolute;width:270px;height:270px;right:34px;bottom:93px;opacity:.88}.orbit{position:absolute;inset:0;border:1px solid rgba(112,177,255,.27);border-radius:50%}.orbit-two{inset:31px;border-style:dashed;opacity:.7}.orbit-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:94px;height:94px;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid rgba(167,207,255,.6);border-radius:27px;background:linear-gradient(145deg,#3679e7,#1748a5);box-shadow:0 0 55px rgba(62,130,240,.25);font-size:19px;font-weight:900}.orbit-core span{font-size:7px;letter-spacing:2px;color:#bfdcff;margin-top:4px}.orbit-node{position:absolute;width:14px;height:14px;border-radius:50%;border:3px solid #b3d9ff;background:#3789ff;box-shadow:0 0 0 7px rgba(78,151,255,.12)}.node-one{top:36px;left:64px}.node-two{right:19px;top:139px;background:#2bc1ae}.node-three{bottom:16px;left:88px;background:#90baff}.auth-showcase-foot{position:relative;z-index:1;display:flex;gap:10px;align-items:center;font-size:8px;letter-spacing:1.1px;color:#91a9c2;font-weight:800}.auth-card{position:relative;z-index:1;width:100%;max-width:500px;padding:clamp(26px,3vw,42px);border:1px solid #e1e9f3;border-radius:22px;box-shadow:0 24px 70px rgba(26,57,91,.10)}.auth-brand{margin-bottom:31px}.auth-brand .brand-mark{width:47px;height:47px;border-radius:14px}.auth-card h1{font-size:29px;letter-spacing:-1px}.auth-card>.subtitle{font-size:12px}.provider-button{border-radius:11px;min-height:52px;font-size:12px}.provider-button:hover{transform:translateY(-1px);box-shadow:0 7px 17px rgba(27,57,88,.06)}.auth-footer{font-size:9px}.form-field label{color:#5b7188}.form-field input,.form-field select,.form-field textarea{border-radius:9px}.modal{border-radius:17px;box-shadow:0 32px 90px rgba(15,35,57,.23)}.modal-header{background:linear-gradient(100deg,#fff,#f7faff)}.modal-header h2{letter-spacing:-.6px}
@media(max-width:1020px){.auth-layout{grid-template-columns:1fr;max-width:580px;padding:28px}.auth-showcase{display:none}.auth-card{max-width:580px}.dashboard-heading{padding:24px}}
@media(max-width:700px){.content-area{padding:19px 12px}.dashboard-heading{padding:19px 17px;border-radius:14px}.dashboard-heading h1{font-size:25px}.dashboard-heading:after{right:-200px}.tenant-scope-wrap{margin-left:0;min-width:0;padding:5px 8px;gap:6px}.tenant-scope-wrap select{min-width:75px;max-width:150px;font-size:9px}.scope-kicker{font-size:7px}.itil-principles-strip{gap:8px;padding:11px}.itil-principles-strip>div{padding-right:8px;gap:6px}.itil-principles-strip .itil-step{font-size:8px}.itil-principles-strip strong{font-size:9px}.itil-principles-strip small{font-size:7.5px}.itil-version-tag{width:100%;margin-left:0;text-align:center}.auth-layout{padding:14px;min-height:100vh}.auth-card{padding:24px 19px;border-radius:16px}.auth-card h1{font-size:24px}.parent-governance-note{margin:0 12px 12px}.major-incident-check{align-items:flex-start}.major-incident-check input{margin-top:1px}}

/* V0.3.2 product-set filters, labels, and compact platform-role catalogue. */
.product-set-tag{max-width:220px;white-space:normal;line-height:1.35;background:#edf5ff;color:#2c6fae;border:1px solid #d8e9fc;font-weight:700;}
.product-set-tag.unassigned{background:#f3f5f8;color:#8a98a8;border-color:#e5eaf0;font-weight:600;}
.role-catalogue-panel{overflow:hidden;}
.role-catalogue-details>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 20px;cursor:pointer;}
.role-catalogue-details>summary::-webkit-details-marker{display:none;}
.role-catalogue-details>summary::after{content:'＋';font-size:16px;color:#4d7caf;order:3;margin-left:8px;}
.role-catalogue-details[open]>summary::after{content:'−';}
.role-catalogue-details>summary span:first-child{display:flex;flex-direction:column;gap:4px;}
.role-catalogue-details>summary strong{font-size:12px;color:#213b56;}
.role-catalogue-details>summary small{font-size:10px;color:#8495a7;font-weight:400;}
.role-catalogue-count{font-size:9px;color:#56718c;font-weight:800;white-space:nowrap;border-radius:6px;background:#eff5fb;border:1px solid #e2ebf4;padding:5px 8px;}
.role-catalogue-details[open]>summary{border-bottom:1px solid #e8eef4;}
@media(max-width:700px){.role-catalogue-details>summary{padding:14px;align-items:flex-start}.role-catalogue-count{margin-left:auto}.product-set-tag{max-width:165px;}}


/* V0.3.4 · ASG Africa logo replaces the lettered "ASG" tile. Same placement and palette; no tile background. */
.brand-mark{background:none;border:0;box-shadow:none;border-radius:0;overflow:visible;width:46px;height:44px}
.brand-mark:after{display:none}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.brand-mark.small{width:34px;height:33px;border-radius:0}
.auth-brand .brand-mark{width:56px;height:54px;border-radius:0}
.auth-showcase-brand .brand-mark{width:52px;height:50px}
@media(max-width:700px){.brand-mark{width:40px;height:38px}.auth-brand .brand-mark{width:50px;height:48px}}
.orbit-core img{display:block;width:66px;height:auto}

/* V0.3.5 · tenant branding console (Global Super Administrator) */
.tenant-icon.tenant-logo{background:none;padding:0;box-shadow:none;border:0}
.tenant-icon.tenant-logo img{display:block;width:100%;height:100%;object-fit:contain;border-radius:9px}
.brand-color-row{display:flex;gap:9px;align-items:center}
.brand-color-row input[type=color]{width:46px;height:38px;padding:2px;border:1px solid var(--line,#d8e2ee);border-radius:9px;background:#fff;cursor:pointer}
.brand-color-row input[type=text]{flex:1;font-family:ui-monospace,Consolas,monospace;text-transform:lowercase}
.form-hint{display:block;margin-top:5px;font-size:11.5px;color:#7a8da5;line-height:1.4}
.brand-logo-row{display:flex;gap:14px;align-items:center}
.brand-logo-preview{flex:0 0 96px;height:80px;border-radius:13px;display:flex;align-items:center;justify-content:center;border:1px solid #dbe5f0;background:#fff;overflow:hidden}
.brand-logo-preview.on-dark{background:linear-gradient(175deg,#0b1728,#102c40);border-color:#12304a}
.brand-logo-preview img{max-width:84px;max-height:68px;object-fit:contain}
.brand-logo-preview img:not([src]){display:none}
.brand-logo-actions{display:flex;flex-direction:column;gap:7px;align-items:flex-start;min-width:0}
.brand-preview{display:flex;border-radius:13px;overflow:hidden;border:1px solid #dbe5f0;min-height:92px;margin-bottom:9px}
.brand-preview-side{flex:0 0 150px;padding:11px 9px;display:flex;flex-direction:column;gap:6px}
.brand-preview-nav{font-size:11.5px;font-weight:700;color:#fff;padding:7px 9px;border-radius:8px}
.brand-preview-nav.plain{color:#aebfd2;font-weight:600}
.brand-preview-main{flex:1;background:#f4f7fb;padding:14px;display:flex;flex-direction:column;gap:11px;align-items:flex-start}
.brand-preview-btn{font-size:12px;font-weight:800;color:#fff;padding:8px 13px;border-radius:9px}
.brand-preview-eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.12em}

/* V0.3.6 · accounts: master data, duplicate warnings and CSV import */
.opp-sub{display:block;color:#7a8da5;font-size:11px;margin-top:2px}
.status-pill.account-prospect{background:#eaf3ff;color:#3275c2}
.status-pill.account-customer{background:var(--teal-soft);color:#1b8375}
.status-pill.account-partner{background:var(--purple-soft);color:#7956b2}
.status-pill.account-inactive{background:#f1f2f5;color:#7f8995}
.dup-warning{border:1px solid #f0cf9a;background:#fff8ea;color:#7a5311;border-radius:12px;padding:12px 14px;font-size:12.5px;line-height:1.5}
.dup-warning ul{margin:7px 0 4px;padding-left:18px}
.dup-warning li span{color:#9a7a3c}
.dup-warning .dup-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}
.dup-warning.full,.form-grid .dup-warning{grid-column:1/-1}
.modal-footer .footer-spacer,#modalFooter .footer-spacer{flex:1}
#modalFooter .footer-note{font-size:11.5px;color:#7a8da5;align-self:center;max-width:320px}
#modalFooter .danger-button{color:#b54751;border-color:#efc4c8}
.import-help{font-size:12.5px;line-height:1.55;color:#5b6f86;margin:0 0 12px}
.check-row{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:#34495f;margin:7px 0}
.check-row input{margin-top:3px}
.import-result{margin-top:14px}
.import-checking{font-size:12.5px;color:#7a8da5}
.import-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.imp-chip{border-radius:999px;padding:6px 12px;font-size:12px;background:#f1f4f7;color:#52667d}
.imp-chip.new{background:var(--teal-soft);color:#1b8375}.imp-chip.duplicate{background:#fff3df;color:#9a6a12}
.imp-chip.possible{background:#eaf3ff;color:#3275c2}.imp-chip.invalid{background:var(--red-soft);color:#b54751}
.import-headline{font-size:12.5px;color:#34495f;margin:4px 0 10px}
.import-table-wrap{max-height:300px;overflow:auto;border:1px solid #e3eaf3;border-radius:12px}
.import-table th,.import-table td{padding:8px 10px}
.imp-pill{display:inline-block;border-radius:5px;padding:3px 7px;font-size:9.5px;font-weight:800;background:#f1f4f7;color:#718297}
.imp-pill.new{background:var(--teal-soft);color:#1b8375}.imp-pill.duplicate,.imp-pill.repeated{background:#fff3df;color:#9a6a12}
.imp-pill.possible{background:#eaf3ff;color:#3275c2}.imp-pill.invalid{background:var(--red-soft);color:#b54751}
a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}

.password-form{display:flex;flex-direction:column;gap:12px;margin-bottom:6px}.password-form.hidden{display:none}.password-form .form-field input{padding:12px 11px;font-size:11px}.password-form .auth-message{margin:0}.auth-or{display:flex;align-items:center;gap:10px;margin:16px 0 12px;color:#9aabbb;font-size:9px;letter-spacing:1px;text-transform:uppercase}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:#e7eef5}.auth-or.hidden{display:none}
/* Sign-in fits one screen: no scrolling on laptop-height displays */
@media(min-width:1021px){.auth-layout{height:100vh;min-height:0;padding:clamp(16px,3vh,40px) clamp(24px,4vw,60px);gap:clamp(24px,4vw,64px)}.auth-showcase{min-height:0;height:100%;max-height:720px;padding:clamp(22px,3.5vh,37px) 38px}.auth-showcase-copy{margin-top:clamp(16px,5vh,65px)}.auth-showcase-copy h2{font-size:clamp(28px,min(3.5vw,5.6vh),51px)}.auth-showcase-orbit{width:clamp(150px,26vh,270px);height:clamp(150px,26vh,270px);bottom:clamp(50px,9vh,93px)}.auth-card{max-height:calc(100vh - 2*clamp(16px,3vh,40px));overflow:auto;padding:clamp(20px,3vh,42px)}.auth-brand{margin-bottom:clamp(14px,2.5vh,31px)}.auth-card h1{font-size:clamp(22px,3.4vh,29px)}.auth-footer{margin-top:clamp(12px,2vh,25px)}}
#authProviders.hidden{display:none}#authProviders .auth-hint{margin-top:10px}
