:root{--font-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-mono:'JetBrains Mono','Fira Code',monospace;--radius:10px;--transition:0.2s ease}
[data-theme="dark"]{--bg:#0A0A0A;--bg2:#111111;--bg-card:rgba(18,18,18,0.9);--bg-input:rgba(30,30,30,0.7);--border:rgba(255,59,48,0.1);--border2:rgba(255,255,255,0.06);--text:#E8E8E8;--text2:#888;--text3:#555;--red:#FF3B30;--red-dim:rgba(255,59,48,0.15);--green:#34C759;--yellow:#FFD60A;--blue:#64D2FF;--gradient:linear-gradient(135deg,#FF3B30,#FF6B35)}
[data-theme="light"]{--bg:#F5F5F5;--bg2:#FFFFFF;--bg-card:rgba(255,255,255,0.95);--bg-input:rgba(240,240,240,0.8);--border:rgba(255,59,48,0.1);--border2:rgba(0,0,0,0.06);--text:#1A1A1A;--text2:#666;--text3:#999;--red:#D32F2F;--red-dim:rgba(211,47,47,0.08);--green:#2E7D32;--yellow:#F9A825;--blue:#0277BD;--gradient:linear-gradient(135deg,#D32F2F,#E65100)}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font-sans);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}
.app{display:flex;flex-direction:column;min-height:100vh}
.header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--border2)}
.header-left,.header-right{display:flex;align-items:center;gap:12px}
.logo{display:flex;align-items:center;gap:10px}
.logo h1{font-size:1rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-sans);font-size:.8rem;font-weight:500;padding:7px 12px;border-radius:8px;border:none;cursor:pointer;transition:all var(--transition);white-space:nowrap}
.btn-ghost{background:transparent;color:var(--text2)}.btn-ghost:hover{color:var(--text);background:var(--bg-input)}
.score-banner{display:flex;align-items:center;gap:24px;padding:24px 32px;background:var(--bg-card);border-bottom:1px solid var(--border)}
.score-ring{position:relative;width:100px;height:100px;flex-shrink:0}
.score-ring svg{width:100%;height:100%}
.score-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700;font-family:var(--font-mono);color:var(--red)}
.score-text h2{font-size:1rem;font-weight:600;margin-bottom:4px}
.score-text p{font-size:.85rem;color:var(--text2);max-width:500px}
.main{flex:1;padding:24px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.card{background:var(--bg-card);border:1px solid var(--border2);border-radius:var(--radius);overflow:hidden;transition:all var(--transition)}
.card:hover{border-color:var(--border)}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border2)}
.card-title{font-size:.82rem;font-weight:600;display:flex;align-items:center;gap:8px}
.card-risk{font-size:.65rem;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}
.risk-high{background:var(--red-dim);color:var(--red)}
.risk-medium{background:rgba(255,214,10,0.12);color:var(--yellow)}
.risk-low{background:rgba(52,199,89,0.1);color:var(--green)}
.card-body{padding:12px 16px}
.card-value{font-family:var(--font-mono);font-size:.78rem;color:var(--text);word-break:break-all;line-height:1.6}
.card-value.hash{color:var(--red);font-weight:500}
.card-sub{font-size:.7rem;color:var(--text3);margin-top:6px}
.loading-msg{grid-column:1/-1;text-align:center;padding:60px;color:var(--text3);font-family:var(--font-mono);font-size:.85rem}
.footer{padding:16px 24px;border-top:1px solid var(--border2);text-align:center;font-size:.82rem;color:var(--text2)}
.footer strong{color:var(--text)}
[data-theme="dark"] .icon-moon{display:none}[data-theme="dark"] .icon-sun{display:block}
[data-theme="light"] .icon-moon{display:block}[data-theme="light"] .icon-sun{display:none}
@media(max-width:768px){.grid{grid-template-columns:1fr}.score-banner{flex-direction:column;text-align:center;padding:20px}.main{padding:16px}}
