:root{color-scheme:light;--bg: #f5f7fa;--surface: #ffffff;--surface-alt: #eef3f6;--sidebar: #111b22;--border: #d8e0e7;--border-soft: #e8edf1;--text: #17212b;--text-muted: #607080;--text-soft: #374757;--accent: #087f95;--accent-hover: #06697c;--success: #237a57;--warning: #a86607;--danger: #bb3a3a;--critical: #8f2530;--shadow: 0 8px 24px rgba(26, 42, 56, .07)}:root[data-theme=dark]{color-scheme:dark;--bg: #111820;--surface: #18222c;--surface-alt: #202d38;--sidebar: #0c1319;--border: #34434f;--border-soft: #293641;--text: #edf3f7;--text-muted: #9aabb9;--text-soft: #c5d0d8;--accent: #39a9bc;--accent-hover: #53b8c9;--success: #58b88d;--warning: #e0aa4c;--danger: #e66a6a;--critical: #ee7b86;--shadow: 0 10px 30px rgba(0, 0, 0, .2)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{color:inherit}input,select,textarea{width:100%;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.68rem .75rem}textarea{resize:vertical}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}.mono,code,pre{font-family:JetBrains Mono,ui-monospace,monospace}.muted{color:var(--text-muted)}.screen-loader,.page-state{min-height:50vh;display:grid;place-content:center;gap:.35rem;text-align:center;color:var(--text-muted)}.primary-button,.ghost-button,.submit-button,.icon-only,.text-link{border:1px solid transparent;border-radius:6px;min-height:38px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease}.primary-button,.submit-button{background:var(--accent);color:#fff;font-weight:650;padding:.6rem .9rem}.primary-button:hover,.submit-button:hover{background:var(--accent-hover)}.ghost-button,.icon-only{background:var(--surface);border-color:var(--border)}.ghost-button{padding:.55rem .78rem}.ghost-button:hover,.icon-only:hover{border-color:var(--accent);color:var(--accent)}.icon-only{width:38px;height:38px;padding:0;flex:0 0 38px}.icon-button-label{gap:.48rem}.text-link{min-height:auto;color:var(--accent);font-weight:600}.danger-button{color:var(--danger)}button:disabled{opacity:.58;cursor:wait}.button-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.portal-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.portal-sidebar{position:sticky;top:0;height:100vh;background:var(--sidebar);color:#e7eef3;border-right:1px solid rgba(255,255,255,.08);padding:1.2rem .9rem;display:flex;flex-direction:column;z-index:20}.portal-brand{display:flex;align-items:center;gap:.75rem;padding:.15rem .45rem 1.25rem}.portal-brand>div{min-width:0}.portal-brand strong,.portal-brand span,.portal-org-card strong,.portal-org-card span{display:block}.portal-brand strong{font-size:1rem}.portal-brand>div span{color:#8fa1af;font-size:.72rem}.brand-mark{width:34px;height:34px;color:#5ac0cf;display:grid;place-items:center}.brand-mark svg{width:32px;height:32px}.portal-nav{display:grid;gap:.18rem}.portal-nav a{display:flex;align-items:center;gap:.72rem;min-height:40px;padding:.55rem .65rem;border-radius:6px;color:#b7c4cd;font-size:.88rem}.portal-nav a:hover{background:#ffffff0f;color:#fff}.portal-nav a.active{background:#3eaebf29;color:#fff;box-shadow:inset 2px 0 #51b7c7}.portal-org-card{margin-top:auto;padding:.85rem;border-top:1px solid rgba(255,255,255,.1)}.portal-org-card .card-label{color:#8093a1;font-size:.66rem;text-transform:uppercase;letter-spacing:.08em}.portal-org-card strong{margin:.35rem 0 .1rem;font-size:.84rem;overflow-wrap:anywhere}.portal-org-card span:last-child{color:#9fb0bc;font-size:.74rem}.sidebar-close,.mobile-menu,.sidebar-scrim{display:none}.portal-main{min-width:0}.portal-topbar{min-height:64px;padding:.75rem 1.4rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 94%,transparent);display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-left,.portal-actions{display:flex;align-items:center;gap:.65rem}.status-pill{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.78rem}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 18%,transparent)}.user-chip{text-align:right;line-height:1.25;max-width:240px}.user-chip strong,.user-chip span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip strong{font-size:.8rem}.user-chip span{color:var(--text-muted);font-size:.68rem}.portal-content{padding:1.35rem clamp(1rem,2.2vw,2rem) 3rem}.page-shell{width:min(1440px,100%);margin:0 auto;display:grid;gap:1rem}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.25rem 0 .55rem}.page-header h1{margin:.25rem 0 .2rem;font-size:clamp(1.65rem,2.5vw,2.15rem);line-height:1.15;letter-spacing:0}.page-header p,.section-heading p,.finding-description{margin:0;color:var(--text-muted);font-size:.9rem}.page-kicker,.panel-kicker,.feature-kicker,.auth-eyebrow{color:var(--accent);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.admin-kicker{color:var(--danger)}.metric-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.metric-strip>div{min-width:0;padding:.9rem 1rem;border-right:1px solid var(--border-soft);display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:.45rem}.metric-strip>div:last-child{border-right:0}.metric-strip svg{color:var(--text-muted);grid-row:1 / 3}.metric-strip span{color:var(--text-muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-strip strong{font-size:1.42rem;line-height:1.2}.metric-strip .metric-danger strong,.metric-strip .metric-danger svg{color:var(--danger)}.metric-strip-compact{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.workspace-section{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.05rem;box-shadow:var(--shadow);min-width:0}.workspace-section.no-padding{padding:0;overflow:hidden}.compact-section{padding:.8rem 1rem}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.section-heading h2{margin:.2rem 0 0;font-size:1.05rem;letter-spacing:0}.distribution-list{display:grid;gap:.78rem}.distribution-list>div{display:grid;grid-template-columns:1fr auto;position:relative;padding-bottom:.45rem}.distribution-list span{color:var(--text-soft);font-size:.82rem}.distribution-list strong{font-size:.84rem}.distribution-list i{position:absolute;left:0;bottom:0;height:3px;background:var(--accent);border-radius:2px}.risk-bar.risk-critical,.status-dot.risk-critical{background:var(--critical)}.risk-bar.risk-high,.status-dot.risk-high{background:var(--danger)}.risk-bar.risk-medium,.status-dot.risk-medium{background:var(--warning)}.risk-bar.risk-low,.status-dot.risk-low{background:var(--success)}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.82rem}.data-table th,.data-table td{text-align:left;padding:.72rem .7rem;border-bottom:1px solid var(--border-soft);vertical-align:middle}.data-table th{color:var(--text-muted);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:var(--surface-alt)}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:color-mix(in srgb,var(--surface-alt) 60%,transparent)}.data-table td small,.table-primary small,.document-name small{display:block;color:var(--text-muted);font-size:.7rem;margin-top:.12rem}.table-primary{font-weight:650;color:var(--text)}.table-primary:hover{color:var(--accent)}.clickable-table tbody tr{cursor:pointer}.clickable-table .selected-row{background:color-mix(in srgb,var(--accent) 9%,var(--surface))}.status-badge,.grade-badge{display:inline-flex;align-items:center;gap:.3rem;width:fit-content;border-radius:999px;padding:.25rem .48rem;font-size:.68rem;font-weight:700;background:var(--surface-alt);color:var(--text-soft);white-space:nowrap}.status-badge.risk-critical,.severity-critical{color:var(--critical);background:color-mix(in srgb,var(--critical) 10%,var(--surface))}.status-badge.risk-high,.severity-high,.status-failed{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.status-badge.risk-medium,.severity-medium,.status-pending{color:var(--warning);background:color-mix(in srgb,var(--warning) 11%,var(--surface))}.status-badge.risk-low,.severity-low,.status-delivered,.status-processed{color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--surface))}.status-muted{color:var(--text-muted)}.grade-a{color:var(--success);background:color-mix(in srgb,var(--success) 11%,var(--surface))}.grade-b{color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,var(--surface))}.grade-c{color:var(--warning);background:color-mix(in srgb,var(--warning) 11%,var(--surface))}.grade-d,.grade-f{color:var(--danger);background:color-mix(in srgb,var(--danger) 11%,var(--surface))}.inline-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;align-items:end;gap:.75rem}.inline-form label,.field{display:grid;gap:.35rem;min-width:0}.inline-form label>span,.field>span{color:var(--text-soft);font-size:.75rem;font-weight:600}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.field-wide{grid-column:1 / -1}.check-field{display:flex;align-items:center;gap:.5rem;align-self:end;min-height:38px;color:var(--text-soft);font-size:.8rem}.check-field input{width:16px;height:16px;accent-color:var(--accent)}.one-column{grid-template-columns:1fr}.toolbar{display:flex;align-items:center;gap:.6rem}.toolbar select{width:auto;min-width:150px}.toolbar-label{display:flex;align-items:center;gap:.4rem;color:var(--text-muted);font-size:.78rem}.notice{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface));padding:.65rem .8rem;color:var(--text-soft);font-size:.8rem}.error-state{border-color:var(--danger);color:var(--danger)}.master-detail{display:grid;grid-template-columns:minmax(250px,.75fr) minmax(500px,1.6fr);gap:1rem;align-items:start}.vendor-list-panel{padding:.7rem}.search-field{display:flex;align-items:center;gap:.5rem;border:1px solid var(--border);border-radius:6px;padding:0 .65rem;margin-bottom:.55rem;color:var(--text-muted)}.search-field input{border:0;padding-inline:0;outline:0;background:transparent}.vendor-list{display:grid;max-height:calc(100vh - 290px);overflow-y:auto}.vendor-row{width:100%;border:0;border-bottom:1px solid var(--border-soft);background:transparent;padding:.72rem .55rem;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:.5rem;cursor:pointer}.vendor-row:hover,.vendor-row.selected{background:var(--surface-alt)}.vendor-row strong,.vendor-row small{display:block}.vendor-row strong{font-size:.82rem}.vendor-row small{color:var(--text-muted);font-size:.7rem}.vendor-row-meta{display:flex;align-items:center;gap:.4rem;color:var(--text-muted);font-size:.7rem}.status-dot{width:7px;height:7px;border-radius:50%}.vendor-detail-panel{min-height:420px}.record-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--border-soft);margin-bottom:.9rem}.record-summary>div{padding:.7rem;border-right:1px solid var(--border-soft)}.record-summary>div:last-child{border-right:0}.record-summary span,.record-summary strong{display:block}.record-summary span{color:var(--text-muted);font-size:.68rem}.record-summary strong{margin-top:.25rem;font-size:.82rem}.findings-layout{grid-template-columns:minmax(520px,1.6fr) minmax(300px,.8fr)}.inspector-panel{position:sticky;top:78px}.finding-description{padding-bottom:.8rem;margin-bottom:.8rem;border-bottom:1px solid var(--border-soft)}.evidence-form,.upload-form,.integration-form{align-items:end}.evidence-form .primary-button,.upload-form .primary-button,.integration-form .primary-button{justify-self:start}.secret-output{margin-top:.8rem;border:1px solid var(--border);background:var(--surface-alt);padding:.65rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.secret-output>div{display:flex;align-items:center;gap:.5rem;min-width:0}.secret-output code{font-size:.72rem;overflow-wrap:anywhere}.file-field{grid-column:1 / -1}.file-field input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.file-field span{min-height:46px;border:1px dashed var(--border);border-radius:6px;display:flex;align-items:center;gap:.5rem;padding:.7rem;cursor:pointer;color:var(--text-muted)}.file-field span:hover{border-color:var(--accent);color:var(--accent)}.document-name{display:flex;align-items:center;gap:.5rem}.document-name svg{color:var(--accent);flex:0 0 auto}.tier-callout{border-left:3px solid var(--warning);padding:.5rem .75rem}.tier-callout strong,.tier-callout p{display:block;margin:0 0 .55rem}.tier-callout p{color:var(--text-muted);font-size:.82rem}.connection-list{display:grid}.connection-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.72rem 0;border-bottom:1px solid var(--border-soft)}.connection-row:last-child{border-bottom:0}.connection-row strong,.connection-row span{display:block}.connection-row strong{font-size:.84rem}.connection-row>div:nth-child(2) span{color:var(--text-muted);font-size:.72rem;overflow-wrap:anywhere}.connection-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:6px;background:var(--surface-alt);color:var(--accent)}.audit-list{list-style:none;padding:0;margin:0;display:grid}.audit-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;padding:.78rem 0;border-bottom:1px solid var(--border-soft)}.audit-list li:last-child{border-bottom:0}.audit-icon{width:30px;height:30px;border-radius:50%;background:var(--surface-alt);color:var(--accent);display:grid;place-items:center}.audit-list strong{font-size:.82rem}.audit-list p,.audit-list time{margin:.15rem 0 0;color:var(--text-muted);font-size:.7rem}.audit-list details{margin-top:.4rem;font-size:.7rem;color:var(--text-muted)}.audit-list pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-alt);padding:.55rem;border-radius:6px;max-height:180px;overflow:auto}.empty-state{min-height:150px;display:grid;place-content:center;justify-items:center;text-align:center;gap:.35rem;padding:1.5rem;color:var(--text-muted)}.empty-state strong{color:var(--text)}.empty-state p{margin:0 0 .45rem;max-width:460px;font-size:.82rem}.empty-state.compact{min-height:85px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.kpi-card,.panel,.auth-card,.auth-feature-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.kpi-card{padding:1rem;min-height:130px}.kpi-card strong{display:block;margin-top:.7rem;font-size:1.7rem}.kpi-card p,.panel p{color:var(--text-muted);font-size:.78rem}.panel-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:1rem}.panel{padding:1rem}.panel-header{margin-bottom:.75rem}.panel h2{margin:.2rem 0;font-size:1.05rem}.activity-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.activity-list li{display:flex;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--border-soft);padding:.55rem 0}.activity-list strong,.activity-list span{display:block;font-size:.78rem}.activity-list span{color:var(--text-muted)}.align-right{text-align:right}.stat-stack{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(360px,.95fr);background:var(--bg)}.auth-brand-panel{padding:clamp(2rem,6vw,5rem);background:var(--sidebar);color:#edf3f7;display:flex;flex-direction:column;justify-content:space-between;gap:2rem}.auth-brand-copy h1{margin:.45rem 0 1rem;max-width:680px;font-size:clamp(2.4rem,5vw,4.5rem);line-height:1;letter-spacing:0}.auth-brand-copy p{margin:0;max-width:640px;color:#aab9c4}.auth-feature-grid{display:grid;gap:.6rem}.auth-feature-card{padding:.85rem;background:#ffffff0a;border-color:#ffffff1a;box-shadow:none}.auth-feature-card strong{display:block;margin-top:.25rem;font-size:.82rem}.auth-home-link{color:#9dafbb;font-size:.78rem}.auth-card-shell{padding:2rem;display:grid;place-content:center}.auth-card{width:min(440px,100%);padding:1.5rem}.auth-form{display:grid;gap:.85rem}.form-copy h2{margin:0;font-size:1.45rem}.form-copy p,.auth-footer{color:var(--text-muted);font-size:.82rem}.auth-footer a{color:var(--accent)}.submit-button{width:100%}.form-error{padding:.65rem;border-left:3px solid var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface));color:var(--danger);font-size:.8rem}.secret-block{display:grid;gap:.4rem;padding:.75rem;border:1px solid var(--border);background:var(--surface-alt)}.secret-block span{color:var(--text-muted);font-size:.72rem}.secret-block code{overflow-wrap:anywhere;font-size:.88rem}.recovery-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.recovery-code-grid code{padding:.5rem;border:1px solid var(--border);background:var(--surface-alt);text-align:center;font-size:.78rem}.permission-fieldset{border:0;padding:0;margin:0;min-width:0}.permission-fieldset:disabled{opacity:.72}.risk-decision-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-soft)}.risk-decision-bar strong,.risk-decision-bar span{display:block}.risk-decision-bar strong{font-size:.84rem}.risk-decision-bar span{margin-top:.2rem;color:var(--text-muted);font-size:.72rem}.role-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}.role-grid>div{min-width:0;padding:.7rem;border-left:2px solid var(--accent);background:var(--surface-alt)}.role-grid strong,.role-grid span{display:block}.role-grid strong{font-size:.8rem}.role-grid span{margin-top:.35rem;color:var(--text-muted);font-size:.68rem;overflow-wrap:anywhere}@media(max-width:1180px){.metric-strip{grid-template-columns:repeat(3,1fr)}.metric-strip>div:nth-child(3){border-right:0}.metric-strip>div:nth-child(-n+3){border-bottom:1px solid var(--border-soft)}.master-detail,.findings-layout{grid-template-columns:1fr}.vendor-list{max-height:300px}.inspector-panel{position:static}}@media(max-width:860px){.portal-shell{grid-template-columns:1fr}.portal-sidebar{position:fixed;left:-260px;width:248px;transition:left .18s ease}.portal-sidebar.mobile-open{left:0}.sidebar-close,.mobile-menu{display:inline-flex}.sidebar-close{margin-left:auto;background:transparent;color:#b8c5ce;border-color:#ffffff1f}.sidebar-scrim{display:block;position:fixed;inset:0;z-index:15;border:0;background:#040a0e73}.summary-grid,.panel-grid{grid-template-columns:1fr}.portal-content{padding-inline:1rem}.page-header{flex-direction:column}.auth-page{grid-template-columns:1fr}.auth-brand-panel{min-height:auto;padding:2rem 1.25rem}.auth-feature-grid{display:none}.auth-card-shell{padding:1.25rem}.kpi-grid{grid-template-columns:repeat(2,1fr)}.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.portal-topbar{padding-inline:.75rem}.status-pill{display:none}.user-chip{max-width:150px}.metric-strip,.metric-strip-compact{grid-template-columns:repeat(2,1fr)}.metric-strip>div{border-bottom:1px solid var(--border-soft)}.metric-strip>div:nth-child(2n){border-right:0}.metric-strip>div:nth-last-child(-n+2){border-bottom:0}.inline-form,.form-grid{grid-template-columns:1fr}.field-wide,.file-field{grid-column:auto}.record-summary{grid-template-columns:repeat(2,1fr)}.record-summary>div:nth-child(2){border-right:0}.record-summary>div:nth-child(-n+2){border-bottom:1px solid var(--border-soft)}.toolbar{align-items:stretch;flex-direction:column}.toolbar select{width:100%}.connection-row{grid-template-columns:auto minmax(0,1fr) auto}.connection-row .ghost-button{grid-column:2 / -1;justify-self:start}.audit-list li{grid-template-columns:auto minmax(0,1fr)}.audit-list time{grid-column:2}.kpi-grid,.role-grid,.recovery-code-grid{grid-template-columns:1fr}.risk-decision-bar{align-items:stretch;flex-direction:column}}
