:root{--bg: #f2f6ff;--surface: #ffffff;--line: #dce7ff;--text: #15294b;--muted: #60769d;--brand: #2f62ff;--brand-soft: #ebf1ff;--good: #1f8b5d;--warn: #ab6f16;--bad: #ba3242;--shadow: 0 16px 32px rgba(20, 45, 94, .09)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 0% 0%,#edf3ff,#f4f7ff 42%,#f2f6ff)}.layout{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{background:linear-gradient(180deg,#101f3d,#0f1b32);color:#dbe8ff;padding:24px 20px}.brand{display:flex;gap:12px;align-items:center;margin-bottom:16px}.logo{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#6f95ff,#305eff);font-weight:800}.brand h2{margin:0;font-size:16px}.brand p{margin:2px 0 0;font-size:12px;color:#9db4df}.side-copy{margin-top:18px;font-size:13px;line-height:1.5;color:#b7caec;padding:12px;border-radius:10px;background:#ffffff0f}.main{padding:24px}.wizard{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0;margin:0 0 14px}.wizard li{border:1px solid var(--line);background:#f8fbff;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}.wizard li span{font-weight:700;font-size:13px}.wizard li small{font-size:12px;color:var(--muted)}.wizard li.current{border-color:#bcd0ff;background:var(--brand-soft)}.wizard li.done{border-color:#bde6d3;background:#ecfaf3}.hero-card,.panel,.report-header,.scores-grid,.grid-2,.rec-grid{animation:fadeSlide .35s ease}@keyframes fadeSlide{0%{opacity:.1;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero-card{background:linear-gradient(150deg,#1e4ee8,#2a63ff 65%,#4f80ff);color:#fff;border-radius:16px;padding:20px;box-shadow:var(--shadow);display:flex;justify-content:space-between;gap:18px;margin-bottom:12px}.hero-card h1{margin:0 0 8px;font-size:28px}.hero-card p{margin:0;color:#d7e2ff;max-width:700px}.hero-stats{display:grid;gap:10px;min-width:210px}.hero-stats article{background:#ffffff1f;border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:10px}.hero-stats strong{display:block;font-size:20px}.hero-stats span{font-size:12px;color:#e0e9ff}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow);margin-bottom:12px}.form-panel header h2{margin:0}.form-panel header p{margin:6px 0 12px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end}label{display:grid;gap:6px;color:var(--muted);font-size:13px}input{border:1px solid var(--line);border-radius:11px;padding:12px;font-size:14px;background:#fcfdff}button{border:none;border-radius:11px;padding:12px 14px;font-weight:700;background:linear-gradient(135deg,#356aff,#2a58f0);color:#fff;cursor:pointer;transition:transform .15s ease,filter .15s ease}button:hover{transform:translateY(-1px);filter:brightness(1.02)}button.ghost{background:#f4f7ff;border:1px solid var(--line);color:var(--text)}.banner{border-radius:10px;padding:10px 12px;font-size:14px;margin:0 0 10px}.banner.error{background:#fff0f3;color:var(--bad);border:1px solid #ffd1d8}.banner.warning{background:#fff6e8;color:#945f12;border:1px solid #ffe0ae}.form-panel footer{margin-top:12px;color:var(--muted);font-size:12px;display:flex;gap:8px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:#5c84ff;display:inline-block}.loading-panel{padding:22px}.loader-wrap{display:flex;gap:14px;align-items:center}.spinner{width:44px;height:44px;border:4px solid #dbe6ff;border-top-color:var(--brand);border-radius:50%;animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loader-wrap h2{margin:0 0 4px}.loader-wrap p{margin:0;color:var(--muted)}.progress-track{height:8px;background:#edf2ff;border-radius:999px;overflow:hidden;margin:14px 0}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#88a7ff,#3a68ff);transition:width .35s ease}.timeline{margin:0;padding:0;list-style:none;display:grid;gap:8px}.timeline li{padding:10px 12px;border-left:3px solid #d8e4ff;border-radius:8px;background:#f9fbff;display:grid;gap:2px}.timeline li strong{font-size:13px}.timeline li span{color:var(--muted);font-size:12px}.timeline li.active{border-left-color:var(--brand)}.timeline li.done{border-left-color:#4ea878;background:#eff9f3}.report-header{background:linear-gradient(145deg,#eef3ff,#f9fbff);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow);display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.report-header h1{margin:0}.report-header p{margin:6px 0 0;color:var(--muted)}.header-badges{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.quality-pill,.chip,.tag{border-radius:999px;font-size:12px;padding:6px 10px;border:1px solid}.quality-pill.live{color:#157349;background:#e4f8ee;border-color:#bde8cf}.quality-pill.mixed{color:#996311;background:#fff3df;border-color:#ffd9a4}.quality-pill.fallback{color:#9f2938;background:#ffeef1;border-color:#ffc9d0}.chip{color:#254fe8;background:var(--brand-soft);border-color:#ccdbff}.scores-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:12px}.score-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px;box-shadow:var(--shadow)}.score-card header{display:flex;justify-content:space-between;align-items:center}.score-card header span{color:var(--muted);font-size:12px}.score-card header strong{font-size:24px}.score-card p{margin:4px 0 8px;font-size:12px;color:var(--muted)}.score-bar{height:8px;border-radius:999px;background:#edf3ff;overflow:hidden}.score-bar i{display:block;height:100%;background:linear-gradient(90deg,#89a8ff,#325fff)}.score-card.good header strong{color:var(--good)}.score-card.mid header strong{color:var(--warn)}.score-card.bad header strong{color:var(--bad)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.problems{background:#fff1f3;border-color:#ffd4db}.opportunities{background:#fff7ea;border-color:#ffe3b4}.problems h3,.opportunities h3{margin-top:0}.problems ul,.opportunities ul{margin:0;padding-left:18px}.problems li,.opportunities li{margin-bottom:8px}.rec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rec-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.rec-card.primary{border-color:#b7ceff;background:linear-gradient(145deg,#eef3ff,#f8fbff)}.rec-card small{color:var(--muted);display:block}.rec-card h4{margin:6px 0}.rec-card p{margin:0 0 8px;color:#31486f;font-size:13px}.rec-card span{font-size:12px;color:var(--muted)}.quality-card header{display:flex;justify-content:space-between;align-items:center}.quality-card h3{margin:0}.quality-card ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.quality-card li{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:10px;padding:9px 10px}.quality-card li span{color:var(--muted);font-size:13px}.technical-panel header{display:flex;justify-content:space-between;align-items:center;gap:10px}.technical-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.technical-grid article{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fbfdff}.technical-grid small{display:block;color:var(--muted);font-size:12px}.technical-grid strong{font-size:22px}.technical-meta{color:var(--muted);font-size:12px;margin:10px 0 8px}.technical-issues{margin:0;padding-left:18px}.technical-issues li{margin-bottom:6px}.technical-link{margin-top:8px}.technical-link a{color:#2450e8;text-decoration:none;font-weight:600}.technical-link a:hover{text-decoration:underline}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;min-width:980px;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);font-size:13px}th{background:#f8fbff;color:var(--muted);font-size:12px}tr:hover td{background:#fbfdff}.tag.high{color:#a62a39;background:#ffe8ec;border-color:#ffc9d0}.tag.medium{color:#996512;background:#fff2de;border-color:#ffdca8}.tag.low{color:#176f45;background:#e6f7ef;border-color:#bfe7d1}.report-actions{display:flex;gap:10px}@media (max-width: 1260px){.layout,.form-grid{grid-template-columns:1fr}.scores-grid{grid-template-columns:repeat(3,1fr)}.rec-grid{grid-template-columns:1fr}.technical-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 860px){.main{padding:14px}.hero-card{flex-direction:column}.wizard{grid-template-columns:1fr}.report-header{flex-direction:column}.header-badges{align-items:flex-start}.grid-2{grid-template-columns:1fr}.scores-grid{grid-template-columns:repeat(2,1fr)}.technical-grid{grid-template-columns:1fr}}
