*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Arial;background:#f5f7fb;color:#18202a}a{color:#1557c0;text-decoration:none}.top{background:#111827;color:#fff;padding:16px 24px;display:flex;justify-content:space-between}.wrap{max-width:1200px;margin:26px auto;padding:0 18px}.card{background:#fff;border:1px solid #e4e8ef;border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 4px 18px rgba(0,0,0,.035)}h1,h2,h3{margin-top:0}.btn{display:inline-block;border:0;border-radius:9px;padding:10px 14px;background:#1557c0;color:#fff;cursor:pointer;font-weight:650}.btn.secondary{background:#374151}.btn.light{background:#eef3fb;color:#17345f}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.field{margin-bottom:14px}label{display:block;font-weight:650;margin-bottom:6px}input,select,textarea{width:100%;padding:10px;border:1px solid #ccd3df;border-radius:8px;background:#fff}textarea{min-height:140px}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid #e7ebf0;text-align:left;vertical-align:top}.ok{color:#0a7c3b;font-weight:700}.warn{color:#9a6700}.pill{display:inline-block;padding:4px 8px;border-radius:999px;background:#edf2f7;font-size:12px}.modules label{font-weight:500}.code{white-space:pre-wrap;background:#0f172a;color:#e5e7eb;border-radius:10px;padding:16px;overflow:auto}.small{font-size:13px;color:#667085}
.progress-card{position:sticky;top:12px;z-index:20;border:2px solid #d7e3f6}.progress-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.progress-head h2{margin-bottom:5px}.progress-head strong{font-size:24px}.progress-track{height:18px;background:#e8edf4;border-radius:999px;overflow:hidden;margin:16px 0 10px}.progress-fill{height:100%;background:linear-gradient(90deg,#1557c0,#2684ff);transition:width .25s ease}.progress-meta{font-weight:650;margin-top:8px}.progress-current{font-size:13px;color:#667085;margin-top:7px;word-break:break-all}.progress-log{margin-top:12px;max-height:145px;overflow:auto;font-size:13px;background:#f8fafc;border-radius:8px;padding:10px}.progress-log div{padding:3px 0;border-bottom:1px solid #edf0f4}.progress-log div:last-child{border-bottom:0}.progress-card.is-finished{border-color:#78c993;background:#f5fff8}.progress-card.is-finished .progress-fill{background:#148a43}.progress-card.has-errors{border-color:#e3b45a;background:#fffaf0}.finish-banner{border:2px solid #78c993;background:#f5fff8;color:#136c35}button:disabled{opacity:.5;cursor:not-allowed}
.strategy-card{border-top:4px solid #1557c0}.strategy-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.score-ring{min-width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eef5ff;border:7px solid #2f74d0;font-weight:800;font-size:18px;color:#17345f}.score-ring.big{min-width:92px;height:92px;font-size:26px}.goal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:9px}.goal-grid label{background:#f8fafc;border:1px solid #e5eaf1;border-radius:9px;padding:10px;font-weight:550}.quality-note{margin-top:18px;padding:12px 14px;background:#f5f9ff;border-left:4px solid #2f74d0;border-radius:7px}.score-badge{display:inline-block;padding:5px 9px;border-radius:999px;font-weight:800}.score-good{background:#e8f7ed;color:#13743b}.score-mid{background:#fff5d8;color:#8a6500}.score-low{background:#ffebeb;color:#a52a2a}.score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:18px 0}.metric{border:1px solid #e5eaf1;border-radius:10px;padding:12px}.metric>div:first-child{display:flex;justify-content:space-between;gap:10px}.mini-track{height:8px;background:#e9edf3;border-radius:999px;margin-top:9px;overflow:hidden}.mini-track div{height:100%;background:#2f74d0;border-radius:999px}

.resource-item{padding:10px 0;border-top:1px solid #edf0f4}.resource-item:first-of-type{border-top:0}.code-mini{white-space:pre-wrap;background:#f7f8fa;border:1px solid #e4e7ec;border-radius:8px;padding:10px;max-height:170px;overflow:auto}
