:root{--bg:#0a0f14;--panel:#101319;--raised:#161a22;--border:#232a33;--text:#e6edf3;--muted:#8b949e;--cyan:#00e5ff;--gold:#c8aa64;--green:#34d399;--amber:#fbbf24;--red:#f87171;--blue:#42a5f5;--radius:10px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.55}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .5rem;font-weight:650}h1{font-size:1.55rem}h2{font-size:1.2rem}p{margin:0 0 .8rem}.wrap{max-width:1080px;margin:0 auto;padding:1.25rem 1.5rem 3rem}.topnav{background:var(--panel);border-bottom:1px solid var(--border);z-index:20;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.6rem;font-size:1.05rem;font-weight:700;display:flex}.brand .mark{background:linear-gradient(135deg, var(--cyan), var(--gold));color:#06121a;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-size:.8rem;font-weight:800;display:inline-flex}.nav-links{flex-wrap:wrap;align-items:center;gap:1.1rem;display:flex}.nav-links a{color:var(--muted);font-size:.9rem;font-weight:500}.nav-links a:hover,.nav-links a.active{color:var(--text);text-decoration:none}.nav-user{color:var(--muted);font-size:.85rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1.1rem 1.2rem}.grid{gap:1rem;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width:760px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.stat .num{color:var(--cyan);font-size:1.7rem;font-weight:700}.stat .lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:1.4rem 0 .6rem;font-size:.72rem;font-weight:700}label{color:var(--muted);margin-bottom:.3rem;font-size:.82rem;font-weight:600;display:block}input[type=text],input[type=email],input[type=password],input[type=number],select{background:var(--raised);border:1px solid var(--border);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:.6rem .7rem;font-size:.92rem}input:focus,select:focus{border-color:var(--cyan);outline:none}.form-row{grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:.9rem;display:grid}.form-row-3{grid-template-columns:1fr 1fr 1fr;gap:.9rem;margin-bottom:.9rem;display:grid}@media (max-width:640px){.form-row,.form-row-3{grid-template-columns:1fr}}.field{margin-bottom:.9rem}.hint{color:var(--muted);margin-top:.25rem;font-size:.78rem}.btn{border:1px solid var(--border);background:var(--raised);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.6rem 1.1rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--cyan);color:var(--cyan);text-decoration:none}.btn.primary{background:var(--cyan);border-color:var(--cyan);color:#06121a}.btn:hover.primary{background:#5eeeff}.btn.gold{background:var(--gold);border-color:var(--gold);color:#1a1206}.btn.ghost{background:0 0}.btn.small{padding:.35rem .7rem;font-size:.8rem}.btn-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.auth-shell{max-width:400px;margin:8vh auto 0;padding:0 1rem}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1.8rem}.auth-card h1{margin-bottom:.25rem}.auth-sub{color:var(--muted);margin-bottom:1.4rem;font-size:.9rem}.auth-foot{text-align:center;color:var(--muted);margin-top:1.2rem;font-size:.85rem}.alert{border:1px solid;border-radius:8px;margin-bottom:1rem;padding:.7rem .9rem;font-size:.88rem}.alert.error{color:var(--red);background:#f8717114;border-color:#f8717166}.alert.ok{color:var(--green);background:#34d39914;border-color:#34d39966}.alert.info{color:var(--cyan);background:#00e5ff12;border-color:#00e5ff59}.alert.warn{color:var(--amber);background:#fbbf2414;border-color:#fbbf2466}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.55rem .6rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:700}tr:last-child td{border-bottom:0}tbody tr:hover{background:#ffffff05}.mono{font-family:JetBrains Mono,Consolas,monospace;font-size:.85rem}.nowrap{white-space:nowrap}.badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.14rem .5rem;font-size:.72rem;font-weight:700;display:inline-block}.badge.ok{color:var(--green);background:#34d39914;border-color:#34d39973}.badge.warn{color:var(--amber);background:#fbbf2414;border-color:#fbbf2473}.badge.err{color:var(--red);background:#f8717114;border-color:#f8717173}.badge.info{color:var(--cyan);background:#00e5ff12;border-color:#00e5ff66}.badge.gold{color:var(--gold);background:#c8aa6414;border-color:#c8aa6473}.grade{border:1px solid var(--border);background:var(--raised);border-radius:10px;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.4rem;font-weight:800;display:inline-flex}.grade.A{color:var(--green);border-color:#34d39980}.grade.B{color:var(--gold);border-color:#c8aa6480}.grade.C{color:var(--amber);border-color:#fbbf2480}.grade.D{color:var(--red);border-color:#f8717180}.pill{border-radius:6px;padding:.1rem .45rem;font-size:.72rem;font-weight:700;display:inline-block}.pill.t1{color:var(--blue);background:#42a5f526}.pill.t2{color:#66bb6a;background:#66bb6a26}.pill.t3{color:#f9a825;background:#f9a82526}.pill.t4{color:#ab47bc;background:#ab47bc26}.result-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.result-name{font-size:1.02rem;font-weight:650}.result-sub{color:var(--muted);margin-top:.15rem;font-size:.8rem}.result-price{text-align:right;font-size:1.3rem;font-weight:700}.metrics{grid-template-columns:repeat(4,1fr);gap:.55rem;margin-top:.8rem;display:grid}@media (max-width:640px){.metrics{grid-template-columns:repeat(2,1fr)}}.metric{background:var(--raised);border-radius:8px;padding:.5rem .65rem}.metric span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.66rem;display:block}.metric b{font-size:.95rem;font-weight:650}.pos{color:var(--green)}.neg{color:var(--red)}.driver{color:var(--muted);margin-top:.7rem;font-size:.82rem;line-height:1.5}.chips{flex-wrap:wrap;gap:.4rem;margin-top:.4rem;display:flex}.chip{border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:.25rem;padding:.22rem .55rem;font-size:.74rem;display:inline-flex}.chip.ok{color:var(--green);background:#34d3990f;border-color:#34d39966}.chip.no{color:var(--red);background:#f871710f;border-color:#f8717166}.progress-track{background:var(--raised);border:1px solid var(--border);border-radius:999px;height:10px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--cyan), var(--gold));width:0%;height:100%;transition:width .4s}.progress-meta{color:var(--muted);justify-content:space-between;margin-top:.4rem;font-size:.82rem;display:flex}.pillar{border-top:1px solid var(--border);margin-top:.8rem;padding-top:.8rem}.pillar-head{justify-content:space-between;align-items:center;display:flex}.pillar-name{font-size:.92rem;font-weight:650}.pillar-rating{color:var(--gold);font-weight:700}.evidence{gap:.25rem;margin-top:.5rem;display:grid}.evidence-item{color:var(--muted);gap:.45rem;font-size:.82rem;display:flex}.dot{border-radius:50%;flex:none;width:8px;height:8px;margin-top:.4rem}.dot-green{background:var(--green)}.dot-red{background:var(--red)}.dot-gray{background:#4b5563}pre.report{background:var(--raised);border:1px solid var(--border);white-space:pre-wrap;word-wrap:break-word;border-radius:8px;padding:1rem;font-size:.82rem;line-height:1.5;overflow-x:auto}.muted{color:var(--muted)}.small{font-size:.82rem}.mt{margin-top:1rem}.mb{margin-bottom:1rem}.right{text-align:right}.flex{align-items:center;gap:.6rem;display:flex}.between{justify-content:space-between}
