:root{--bg:#0f1117;--bg-card:#1a1d27;--bg-input:#232730;--bg-sidebar:#141720;--border:#2d3140;--text:#e4e6eb;--text-muted:#8b8fa3;--primary:#6366f1;--primary-hover:#818cf8;--green:#22c55e;--yellow:#eab308;--orange:#f97316;--red:#ef4444;--blue:#3b82f6;--radius:8px;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}button{cursor:pointer;font-family:var(--font);border-radius:var(--radius);border:none;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;transition:all .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-outline{color:var(--text);border:1px solid var(--border);background:0 0}.btn-outline:hover{border-color:var(--text-muted)}.btn-danger{background:var(--red);color:#fff}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}input,select{font-family:var(--font);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;width:100%;padding:.625rem .875rem;font-size:.875rem;transition:border-color .15s}input:focus,select:focus{border-color:var(--primary)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.badge{border-radius:999px;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.grade-A{color:var(--green);background:#16a34a20}.grade-B{color:var(--blue);background:#3b82f620}.grade-C{color:var(--yellow);background:#eab30820}.grade-D{color:var(--orange);background:#f9731620}.grade-F{color:var(--red);background:#ef444420}.severity-critical{color:var(--red)}.severity-high{color:var(--orange)}.severity-medium{color:var(--yellow)}.severity-low{color:var(--blue)}.severity-info{color:var(--text-muted)}.error-msg{color:var(--red);margin-top:.5rem;font-size:.8125rem}.text-muted{color:var(--text-muted)}.text-sm{font-size:.8125rem}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-direction:column;width:240px;padding:1.5rem 0;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{color:var(--text);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:0 1.25rem 1.5rem;font-size:1.125rem;font-weight:700;display:flex}.sidebar-logo span{color:var(--primary)}.sidebar-nav{flex-direction:column;flex:1;gap:.125rem;padding:1rem .75rem;display:flex}.sidebar-nav a{border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:.625rem;padding:.5rem .75rem;font-size:.875rem;transition:all .15s;display:flex}.sidebar-nav a:hover{color:var(--text);background:var(--bg-input)}.sidebar-nav a.active{color:var(--text);background:var(--primary)}.sidebar-footer{border-top:1px solid var(--border);padding:1rem 1.25rem}.balance-display{background:var(--bg-input);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:.625rem .75rem;font-size:.8125rem;display:flex}.balance-amount{color:var(--green);font-weight:600}.main-content{flex:1;max-width:1000px;margin-left:240px;padding:2rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.page-header h1{font-size:1.5rem;font-weight:600}.auth-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:400px;padding:2.5rem}.auth-card h1{margin-bottom:.25rem;font-size:1.5rem;font-weight:600}.auth-card p{color:var(--text-muted);margin-bottom:1.5rem;font-size:.875rem}.form-group{margin-bottom:1rem}.form-group label{color:var(--text-muted);margin-bottom:.25rem;font-size:.8125rem;display:block}.auth-card .btn-primary{width:100%;margin-top:.5rem;padding:.75rem}.auth-footer{text-align:center;color:var(--text-muted);margin-top:1.5rem;font-size:.8125rem}.score-circle{border:3px solid;border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;font-size:1.5rem;font-weight:700;display:flex}.score-circle.A{border-color:var(--green);color:var(--green)}.score-circle.B{border-color:var(--blue);color:var(--blue)}.score-circle.C{border-color:var(--yellow);color:var(--yellow)}.score-circle.D{border-color:var(--orange);color:var(--orange)}.score-circle.F{border-color:var(--red);color:var(--red)}.score-label{color:var(--text-muted);font-size:.625rem;font-weight:400}.site-card{align-items:center;gap:1rem;padding:1.25rem;display:flex}.site-card .site-info{flex:1}.site-card .site-name{font-size:1rem;font-weight:600}.site-card .site-url{color:var(--text-muted);font-size:.8125rem}.site-card .site-meta{color:var(--text-muted);gap:1rem;margin-top:.5rem;font-size:.75rem;display:flex}.scores-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.score-item{background:var(--bg-input);border-radius:var(--radius);flex-direction:column;align-items:center;gap:.25rem;padding:1rem;display:flex}.score-item .score-type{color:var(--text-muted);text-transform:capitalize;font-size:.75rem}.score-item .score-value{font-size:1.25rem;font-weight:700}.audit-row{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.875rem 1.25rem;display:flex}.audit-row:last-child{border-bottom:none}.audit-type{text-transform:capitalize;flex:1;font-weight:500}.audit-status{font-size:.8125rem}.audit-status.completed{color:var(--green)}.audit-status.running{color:var(--yellow)}.audit-status.pending{color:var(--text-muted)}.audit-status.failed{color:var(--red)}.finding{border-bottom:1px solid var(--border);padding:1rem}.finding:last-child{border-bottom:none}.finding-header{align-items:center;gap:.5rem;margin-bottom:.375rem;display:flex}.finding-severity{text-transform:uppercase;font-size:.6875rem;font-weight:600}.finding-title{font-size:.9375rem;font-weight:600}.finding-desc{color:var(--text-muted);margin-bottom:.375rem;font-size:.8125rem}.finding-fix{background:var(--bg-input);border-radius:var(--radius);padding:.5rem .75rem;font-size:.8125rem}.finding-fix strong{color:var(--green)}.tx-row{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.75rem 0;font-size:.875rem;display:flex}.tx-row:last-child{border-bottom:none}.tx-desc{flex:1}.tx-amount.credit{color:var(--green)}.tx-amount.debit{color:var(--red)}.tx-date{color:var(--text-muted);font-size:.75rem}.packs-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.pack-card{text-align:center;cursor:pointer;transition:border-color .15s}.pack-card:hover{border-color:var(--primary)}.pack-card.selected{border-color:var(--primary);background:#6366f110}.pack-tokens{color:var(--primary);font-size:1.5rem;font-weight:700}.pack-price{margin:.25rem 0;font-size:1.125rem;font-weight:600}.pack-rate{color:var(--text-muted);font-size:.75rem}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:480px;padding:2rem}.modal h2{margin-bottom:1rem;font-size:1.25rem;font-weight:600}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{justify-content:center;align-items:center;min-height:60vh;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:3rem 1rem}.empty-state h3{color:var(--text);margin-bottom:.5rem}@media (width<=768px){.sidebar{width:60px}.sidebar-logo span,.sidebar-nav a span,.sidebar-footer{display:none}.main-content{margin-left:60px;padding:1rem}.scores-grid{grid-template-columns:repeat(2,1fr)}.packs-grid{grid-template-columns:1fr 1fr}}
