:root{--s0:#0e0e11;--s1:#131317;--s2:#17171d;--s3:#1d1d25;--s4:#25252e;--line:#ffffff0d;--line-strong:#ffffff17;--t1:#ededf0;--t2:#8a8a9e;--t3:#55556a;--a:#7ea8e8;--a-dim:#7ea8e81c;--a-faint:#7ea8e80e;--danger:#d05f5f;--danger-dim:#d05f5f1a;--warning:#c08b48;--warning-dim:#c08b481a;--ok:#4a9970;--ok-dim:#4a99701a;--toolbar-h:52px;--sidebar-w:200px;--r1:5px;--r2:8px;--r3:12px;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", sans-serif;--mono:"SF Mono", "Fira Code", "JetBrains Mono", monospace}[data-theme=light]{--s0:#e8e8f2;--s1:#dfdff0;--s2:#f5f5fc;--s3:#d5d5e8;--s4:#cbcadf;--line:#0503151a;--line-strong:#0503152e;--card-shadow:0 1px 4px #05031517, 0 1px 2px #0503150d;--t1:#050315;--t2:#2e2c4a;--t3:#5a5878;--t4:#8e8ca8;--a:#2f27ce;--a-dim:#2f27ce1a;--a-faint:#2f27ce0d;--danger:#dc2626;--danger-dim:#dc262614;--warning:#d97706;--warning-dim:#d9770614;--ok:#16a34a;--ok-dim:#16a34a14}:root{--bg-base:var(--s0);--bg-surface:var(--s2);--bg-elevated:var(--s3);--border:var(--line);--text-primary:var(--t1);--text-muted:var(--t2);--text-dim:var(--t3);--accent:var(--a);--accent-hover:#6b96de;--danger:#d05f5f;--warning:#c08b48;--success:var(--ok);--radius:var(--r2);--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", sans-serif;--toolbar-h:52px;--sidebar-w:200px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{background:var(--s0);height:100%;color:var(--t1);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13px;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.app-shell{min-height:100vh}.app-body{padding-top:var(--toolbar-h);min-height:100vh;display:flex}.app-toolbar{height:var(--toolbar-h);z-index:100;background:var(--s1);border-bottom:1px solid var(--line);align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.toolbar-brand{width:var(--sidebar-w);min-width:var(--sidebar-w);cursor:pointer;flex-shrink:0;align-items:center;gap:9px;padding:0 16px;display:flex}.toolbar-brand-name{letter-spacing:-.02em;color:var(--t1);font-size:14px;font-weight:600}.toolbar-search{flex:1;justify-content:center;align-items:center;padding:0 20px;display:flex}.toolbar-search-input{background:var(--s0);border:1px solid var(--line);width:100%;max-width:520px;height:34px;font-size:13px;font-family:var(--font);color:var(--t1);appearance:none;border-radius:10px;outline:none;padding:0 52px 0 36px;transition:border-color .15s,background .15s,box-shadow .15s}.toolbar-search-input::placeholder{color:var(--t3)}.toolbar-search-input::-webkit-search-cancel-button{display:none}.toolbar-search-input:focus{background:var(--s3);border-color:#7ea8e84d;box-shadow:0 0 0 3px #7ea8e812}.toolbar-search-hint{color:var(--t3);background:var(--s3);border:1px solid var(--line);pointer-events:none;font-size:11px;font-family:var(--mono);letter-spacing:0;z-index:1;border-radius:4px;padding:2px 7px}.toolbar-account{min-width:var(--sidebar-w);flex-shrink:0;justify-content:flex-end;align-items:center;gap:4px;padding:0 14px;display:flex}.toolbar-theme-btn{cursor:pointer;border-radius:var(--r2);width:32px;height:32px;color:var(--t3);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.toolbar-theme-btn:hover{background:var(--s3);color:var(--t2)}.toolbar-user-btn{cursor:pointer;border-radius:var(--r2);background:0 0;border:none;align-items:center;gap:7px;max-width:190px;padding:5px 10px;transition:background .12s;display:flex}.toolbar-user-btn:hover{background:var(--s3)}.toolbar-user-email{color:var(--t2);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:12px;overflow:hidden}.toolbar-user-plan{text-transform:uppercase;color:var(--a);letter-spacing:.05em;flex-shrink:0;font-size:9.5px;font-weight:600}.toolbar-signin-btn{color:var(--a);background:var(--a-dim);border-radius:var(--r2);cursor:pointer;border:1px solid #7ea8e82e;padding:5px 14px;font-size:12.5px;font-weight:500;transition:background .12s}.toolbar-signin-btn:hover{background:#7ea8e82e}.sidebar{top:var(--toolbar-h);width:var(--sidebar-w);z-index:50;background:var(--s1);flex-direction:column;display:flex;position:fixed;bottom:0;left:0;overflow-y:auto}.sidebar-nav{flex-direction:column;flex:1;gap:1px;padding:14px 8px 8px;display:flex}.nav-section{color:var(--t3);letter-spacing:.03em;-webkit-user-select:none;user-select:none;padding:14px 10px 4px;font-size:10.5px;font-weight:500}.nav-item{height:31px;color:var(--t2);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:center;gap:8px;width:100%;padding:0 10px;font-size:13px;font-weight:400;text-decoration:none;transition:background .1s,color .1s;display:flex}.nav-item:hover{color:var(--t1);background:#ffffff0e}.nav-item.active{background:var(--a-dim);color:var(--a);font-weight:500}.nav-item.dimmed{opacity:.35;cursor:default;pointer-events:none}.nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;display:flex}.sidebar-footer{border-top:1px solid var(--line);flex-shrink:0;padding:10px 12px 18px}.sidebar-footer .user-email{color:var(--t3);text-overflow:ellipsis;white-space:nowrap;margin-bottom:8px;font-size:11px;display:block;overflow:hidden}.sidebar-footer-links{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sidebar-footer-links a,.sidebar-footer-links button{color:var(--t3);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;text-decoration:none;transition:color .12s}.sidebar-footer-links a:hover,.sidebar-footer-links button:hover{color:var(--t1)}.sidebar-signin-btn{text-align:center;width:100%;color:var(--a);background:var(--a-dim);border-radius:var(--r2);cursor:pointer;border:1px solid #7ea8e826;padding:7px 0;font-size:12.5px;font-weight:500;transition:background .12s;display:block}.sidebar-signin-btn:hover{background:#7ea8e82e}.page-content{margin-left:var(--sidebar-w);min-height:calc(100vh - var(--toolbar-h));flex:1;padding:36px 40px 60px}.search-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:80px 24px;display:flex}.search-empty-icon{width:36px;height:36px;color:var(--t3);margin-bottom:8px}.search-empty-title{color:var(--t2);font-size:15px;font-weight:500}.search-empty-sub{color:var(--t3);max-width:360px;font-size:12.5px;line-height:1.6}.page-header{margin-bottom:32px}.page-title{letter-spacing:-.025em;color:var(--t1);margin-bottom:5px;font-size:22px;font-weight:600;line-height:1.2}.page-subtitle{color:var(--t2);font-size:12.5px;line-height:1.5}.card{background:var(--s2);border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--card-shadow,none);padding:20px 22px}.card-title{color:var(--t3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:16px;font-size:11px;font-weight:500}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:24px;display:grid}.stat-card{background:var(--s2);border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--card-shadow,none);padding:18px 20px}.stat-label{color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:10.5px;font-weight:500}.stat-value{letter-spacing:-.04em;color:var(--t1);font-size:28px;font-weight:600;line-height:1}.stat-delta{color:var(--t3);margin-top:6px;font-size:11px}.stat-delta.up{color:var(--danger)}.stat-delta.down{color:var(--ok)}.chart-card{background:var(--s2);border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--card-shadow,none);margin-bottom:16px;padding:22px 22px 18px}.btn-primary{background:var(--a);color:#0d1220;border-radius:var(--r2);cursor:pointer;letter-spacing:-.01em;border:none;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:12.5px;font-weight:600;text-decoration:none;transition:opacity .12s,background .12s;display:inline-flex}.btn-primary:hover{opacity:.88}.btn-primary:active{opacity:.75}.btn-primary:disabled{opacity:.38;cursor:not-allowed}.btn-secondary{background:var(--s3);color:var(--t1);border-radius:var(--r2);cursor:pointer;border:1px solid var(--line);justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:12.5px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:inline-flex}.btn-secondary:hover{background:var(--s4)}.btn-ghost{color:var(--t2);border-radius:var(--r2);cursor:pointer;border:1px solid var(--line);background:0 0;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:12.5px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:inline-flex}.btn-ghost:hover{background:var(--s3);color:var(--t1)}.form-group{margin-bottom:16px}.form-label{color:var(--t2);letter-spacing:.01em;margin-bottom:7px;font-size:11.5px;font-weight:500;display:block}.form-input{background:var(--s3);border:1px solid var(--line);border-radius:var(--r2);width:100%;color:var(--t1);font-size:13px;font-family:var(--font);outline:none;padding:9px 12px;transition:border-color .15s,background .15s}.form-input::placeholder{color:var(--t3)}.form-input:focus{background:var(--s4);border-color:#7ea8e866}.form-error{color:var(--danger);margin-top:6px;font-size:11.5px}.badge{letter-spacing:.02em;border-radius:4px;align-items:center;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-flex}.badge-critical{color:var(--danger);background:var(--danger-dim)}.badge-high{color:var(--warning);background:var(--warning-dim)}.badge-medium{color:var(--a);background:var(--a-dim)}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{background:linear-gradient(90deg, var(--s3) 25%, var(--s4) 37%, var(--s3) 63%);border-radius:var(--r2);background-size:1200px 100%;animation:1.6s ease-in-out infinite shimmer}.map-container{background:var(--s2);border:1px solid var(--line);border-radius:var(--r3);position:relative;overflow:hidden}.map-container svg{display:block}.rsm-geography{outline:none;transition:fill .15s}.rsm-geography:focus{outline:none}.login-page{background:var(--s0);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--s2);border:1px solid var(--line);border-radius:var(--r3);width:100%;max-width:380px;padding:44px 40px}.login-title{letter-spacing:-.02em;color:var(--t1);margin-bottom:7px;font-size:20px;font-weight:600;line-height:1.2}.login-sub{color:var(--t2);margin-bottom:28px;font-size:12.5px;line-height:1.5}.login-divider{color:var(--t3);align-items:center;gap:12px;margin:20px 0;font-size:11px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line);flex:1;height:1px}.success-msg{color:var(--ok);text-align:center;background:var(--ok-dim);border-radius:var(--r2);padding:14px 16px;font-size:12.5px;line-height:1.6}.data-table{border-collapse:collapse;width:100%;font-size:12.5px}.data-table th{text-align:left;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);padding:0 12px 10px;font-size:10.5px;font-weight:500}.data-table td{color:var(--t1);border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--s3)}select{background:var(--s3);border:1px solid var(--line);border-radius:var(--r2);color:var(--t1);font-size:12.5px;font-family:var(--font);cursor:pointer;appearance:none;outline:none;padding:7px 10px}select:focus{border-color:#7ea8e866}.mono{font-family:var(--mono)}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-section-header{cursor:pointer;letter-spacing:.07em;text-transform:uppercase;width:100%;color:var(--t3);background:0 0;border:none;border-radius:0;align-items:center;gap:6px;margin-top:14px;padding:5px 12px;font-size:10px;font-weight:700;display:flex}.nav-section-header:hover,.nav-section-header.active{color:var(--t2)}.layer-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:3px;padding:1px 6px;font-size:9px;font-weight:700;display:inline-block}.layer-badge.attack{color:#ef4444;background:#ef44441f;border:1px solid #ef444440}.layer-badge.brand{color:#3b82f6;background:#3b82f61f;border:1px solid #3b82f640}.layer-badge.supply_chain{color:#eab308;background:#eab3081f;border:1px solid #eab30840}.layer-badge.general{color:#64748b;background:#64748b1f;border:1px solid #64748b40}.coming-soon-badge{background:var(--s4);color:var(--t3);border:1px solid var(--s3);text-transform:uppercase;letter-spacing:.05em;border-radius:3px;flex-shrink:0;margin-left:auto;padding:1px 5px;font-size:9px;font-weight:700}
