*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{min-height:100%}body{min-height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none}input,textarea{font:inherit}:root,[data-theme=light]{--bg-primary: #f8fafc;--bg-secondary: #f1f5f9;--bg-tertiary: #e2e8f0;--border: #cbd5e1;--border-color: #cbd5e1;--text-primary: #0f172a;--text-secondary: #64748b;--accent: #6366f1;--accent-hover: #4f46e5;--accent-subtle: rgba(99, 102, 241, .08);--danger: #dc2626;--success: #16a34a;--warning: #ca8a04;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.1);--input-bg: #ffffff;--modal-backdrop: rgba(0,0,0,.5)}[data-theme=dark]{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--border: #475569;--border-color: #475569;--text-primary: #f1f5f9;--text-secondary: #b8c5d6;--accent: #818cf8;--accent-hover: #6366f1;--accent-subtle: rgba(129, 140, 248, .15);--danger: #f87171;--success: #4ade80;--warning: #facc15;--shadow: 0 1px 3px rgba(0,0,0,.3);--input-bg: #1e293b;--modal-backdrop: rgba(0,0,0,.65)}html{color-scheme:light}[data-theme=dark]{color-scheme:dark}body{background:var(--bg-primary);color:var(--text-primary)}#shell{display:grid;grid-template-columns:260px 1fr 320px;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"sidebar header header" "sidebar app rightpanel";height:100vh;min-height:0;overflow:hidden}#sidebar{grid-area:sidebar;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}#header{grid-area:header;min-height:52px;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 1rem}#app{grid-area:app;min-height:0;overflow:hidden;display:flex;flex-direction:column;align-self:stretch}#rightpanel{grid-area:rightpanel;background:var(--bg-secondary);border-left:1px solid var(--border);min-height:0;overflow:auto;transition:width .2s,min-width .2s}#rightpanel.collapsed{min-width:0;width:0;overflow:hidden;border-left:none}@media (max-width: 768px){#shell{grid-template-columns:0 1fr;grid-template-areas:"sidebar header" "sidebar app"}#sidebar{position:fixed;left:0;top:0;bottom:0;z-index:150;width:260px;max-width:85vw;transform:translate(-100%);transition:transform .2s ease;box-shadow:4px 0 12px #00000026}body.sidebar-open #sidebar{transform:translate(0)}#rightpanel{display:none}}@media (max-width: 1200px){#rightpanel:not(.collapsed){min-width:280px}}body.layout-auth #shell{height:auto;min-height:100vh;grid-template-columns:200px 1fr;grid-template-rows:1fr;grid-template-areas:"sidebar app";overflow:visible}body.layout-auth #header,body.layout-auth #rightpanel{display:none}body.layout-auth #app{max-width:480px;width:100%;margin:0 auto;padding:2rem 1rem;align-self:start;overflow:visible}body.layout-auth .header-actions,body.layout-auth #sidebar .sidebar-nav,body.layout-auth #sidebar .sidebar-middle,body.layout-auth #sidebar .sidebar-user-footer{display:none!important}body.layout-auth #sidebar .sidebar-inner{display:flex;flex-direction:column;align-items:center;padding-top:1.5rem}body.layout-auth #sidebar .sidebar-top{flex:1;min-height:0}body.layout-auth #sidebar .sidebar-brand{flex-direction:column;gap:.5rem;text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius);font-size:.875rem;transition:background .15s,color .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:.75rem}.badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.badge-low{background:color-mix(in srgb,var(--success) 25%,transparent);color:var(--success)}.badge-medium{background:color-mix(in srgb,var(--warning) 25%,transparent);color:var(--warning)}.badge-high{background:color-mix(in srgb,var(--danger) 25%,transparent);color:var(--danger)}.badge-critical{background:color-mix(in srgb,var(--danger) 40%,transparent);color:var(--text-primary)}
