.shell{height:100vh;display:flex;overflow:hidden}.shell-sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--color-surface-1);border-right:1px solid var(--color-border-default);flex-direction:column;display:flex;overflow-y:auto}.shell-brand{border-bottom:1px solid var(--color-border-default);align-items:center;gap:10px;padding:14px 16px;display:flex}.shell-brand-icon{color:var(--color-success);display:inline-flex}.shell-brand-logo{object-fit:contain;object-position:left center;width:auto;max-width:170px;height:32px;display:block}.shell-brand-text{font-family:var(--font-mono);font-size:var(--font-size-md);color:var(--color-text-primary);font-weight:600}.shell-nav{padding:var(--space-2) 0;flex:1}.shell-nav-item{color:var(--color-text-secondary);font-size:var(--font-size-base);border-left:2px solid #0000;align-items:center;gap:10px;padding:8px 16px;text-decoration:none;transition:background .1s;display:flex}.shell-nav-item:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.shell-nav-item.active{background:var(--color-surface-2);color:var(--color-text-primary);border-left-color:var(--color-info)}.shell-nav-icon{width:20px;color:var(--color-text-disabled);justify-content:center;align-items:center;display:inline-flex}.shell-nav-item.active .shell-nav-icon{color:var(--color-info)}.shell-sidebar-footer{border-top:1px solid var(--color-border-default);padding:12px 16px}.shell-version{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-disabled)}.shell-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.shell-header{height:var(--header-height);min-height:var(--header-height);padding:0 var(--space-5);background:var(--color-surface-1);border-bottom:1px solid var(--color-border-default);justify-content:space-between;align-items:center;display:flex}.shell-breadcrumb{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-disabled);display:flex}.shell-back{border:1px solid var(--color-border-default);background:var(--color-surface-2);color:var(--color-text-secondary);cursor:pointer;font:inherit;border-radius:6px;align-items:center;gap:6px;padding:5px 9px;display:inline-flex}.shell-back:hover{color:var(--color-text-primary);border-color:var(--color-info)}.shell-header-actions{align-items:center;gap:var(--space-3);display:flex}.shell-user{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-disabled);background:var(--color-surface-2);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.shell-role-badge{background:var(--color-brand-800);color:var(--color-brand-200);text-transform:uppercase;letter-spacing:.05em;border-radius:3px;padding:1px 6px;font-size:.65rem;font-weight:600}.shell-logout{border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-surface-1);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-xs);cursor:pointer;align-items:center;gap:6px;padding:5px 8px;display:inline-flex}.shell-logout:hover,.shell-logout:focus-visible{border-color:var(--color-border-hover);background:var(--color-surface-2);color:var(--color-text-primary);outline:none}.shell-content{padding:var(--space-5);flex:1;overflow-y:auto}.shell-nav-group{margin-bottom:2px}.shell-nav-group-header{width:100%;color:var(--color-text-secondary,#888);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;transition:color .15s;display:flex}.shell-nav-group-header:hover{color:var(--color-text,#fff)}.shell-nav-group-header.active-group{color:var(--color-accent,#60a5fa)}.shell-nav-group-icon{opacity:.6;align-items:center;display:flex}.shell-nav-group-label{text-align:left;flex:1}.shell-nav-group-items{flex-direction:column;display:flex}@media (width<=900px){.shell-sidebar{width:64px;min-width:64px}.shell-brand-text,.shell-nav-item>span:last-child,.shell-version{display:none}.shell-brand,.shell-nav-item{justify-content:center;padding-inline:10px}.shell-brand-logo{object-position:center;max-width:42px;height:28px}.shell-header{padding-inline:12px}.shell-user{display:none}.shell-content{padding:14px}.shell-nav-group-header,.shell-nav-group-label{display:none}}.user-avatar{border:1px solid var(--color-border-default);background:var(--color-surface-2);color:var(--color-text-secondary);border-radius:50%;flex:none;place-items:center;font-weight:700;line-height:1;display:inline-grid;overflow:hidden}.user-avatar img{object-fit:cover;width:100%;height:100%}.user-avatar svg{width:55%;height:55%}.user-avatar-sm{width:28px;height:28px;font-size:9px}.user-avatar-md{width:34px;height:34px;font-size:11px}.user-avatar-lg{width:72px;height:72px;font-size:20px}.btn{border:1px solid var(--color-border-default);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-base);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;transition:background .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:1px}.btn-sm{font-size:var(--font-size-xs);padding:4px 10px}.btn-md{padding:6px 14px}.btn-primary{color:var(--color-success);background:#1a3a2a;border-color:#2a4a3a}.btn-primary:hover:not(:disabled){background:#1f4432}.btn-secondary{background:var(--color-surface-2);color:var(--color-text-secondary)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-3)}.btn-danger{color:var(--color-error);background:#3d2020;border-color:#4a2a2a}.btn-danger:hover:not(:disabled){background:#442424}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--color-surface-2)}.field{flex-direction:column;gap:4px;display:flex}.field-label{font-size:var(--font-size-xs);color:var(--color-text-disabled);text-transform:uppercase;letter-spacing:.5px}.field-input{background:var(--color-surface-1);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--font-size-base);outline:none;padding:6px 12px;transition:border-color .15s}.field-input:focus{border-color:var(--color-border-focus)}.field-input::placeholder{color:var(--color-text-disabled)}.field-input-error{border-color:var(--color-error)}.field-error{color:var(--color-error);font-size:var(--font-size-xs)}.login-page{background:var(--color-surface-0);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--color-border-default);background:var(--color-surface-1);width:min(420px,100%);box-shadow:var(--shadow-md);border-radius:12px;padding:32px}.login-mark{width:48px;height:48px;color:var(--color-success);background:#10251c;border:1px solid #2d7355;border-radius:9px;place-items:center;margin-bottom:18px;display:grid}.login-card h1{margin:8px 0 6px;font-size:24px}.login-card>p{color:var(--color-text-disabled);font-size:13px;line-height:1.5}.login-form{gap:14px;margin-top:24px;display:grid}.login-submit{justify-content:center;width:100%;margin-top:4px}.login-error{color:var(--color-error);background:#2a1717;border:1px solid #6e3030;border-radius:5px;padding:9px 10px;font-size:12px}.login-card>small{color:var(--color-text-disabled);font-family:var(--font-mono);text-align:center;margin-top:22px;font-size:10px;display:block}.page-root{min-width:0}.page-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.page-header h1{color:var(--color-text-primary);margin:2px 0 0;font-size:22px}.page-header p{color:var(--color-text-disabled);margin:6px 0 0;font-size:11px}.page-eyebrow{color:#75a9d6;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;font-size:10px;font-weight:700;display:inline-flex}.skeleton{background:linear-gradient(90deg, var(--color-surface-2) 25%, var(--color-surface-3) 50%, var(--color-surface-2) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}:root{--color-surface-0:#0a0e14;--color-surface-1:#0d1117;--color-surface-2:#131b24;--color-surface-3:#1a2332;--color-text-primary:#e6edf3;--color-text-secondary:#b3b9c4;--color-text-disabled:#8b949e;--color-text-link:#79c0ff;--color-border-default:#1e293b;--color-border-hover:#2a3a50;--color-border-focus:#79c0ff;--scrollbar-size:8px;--scrollbar-track:transparent;--scrollbar-thumb:#263548;--scrollbar-thumb-hover:#3a526c;--color-success:#7ee787;--color-warning:#d2a864;--color-error:#f87171;--color-info:#79c0ff;--color-risk-low:#7ee787;--color-risk-medium:#d2a864;--color-risk-high:#f87171;--color-risk-critical:#f44;--color-risk-unknown:#8b949e;--color-evidence-observed:#79c0ff;--color-evidence-confirmed:#7ee787;--color-evidence-declared:#d2a864;--color-evidence-inferred:#8b949e;--color-coverage-complete:#7ee787;--color-coverage-partial:#d2a864;--color-coverage-stale:#8b949e;--color-coverage-none:#f87171;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:48px;--font-mono:"JetBrains Mono", "Fira Code", monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:13px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:24px;--radius-sm:3px;--radius-md:6px;--radius-lg:8px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--sidebar-width:240px;--header-height:52px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:padding-box}::-webkit-scrollbar-corner{background:0 0}html,body,#root{background:var(--color-surface-0);height:100%;color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased}
