.aiv{background:#fff;border-radius:14px;padding:clamp(18px,3vw,32px);box-shadow:0 10px 40px rgba(38,38,38,.08)}
.aiv-lab{display:block;font:600 14px Poppins,Arial,sans-serif;margin-bottom:8px;color:var(--ink)}
.aiv input[type=text]{width:100%;box-sizing:border-box;padding:14px 16px;border:2px solid #dfe3ea;border-radius:8px;font:16px Arial,sans-serif;background:#fff;color:var(--ink)}
.aiv input[type=text]:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(90,80,255,.15)}
.aiv-tabs{display:flex;gap:6px;margin:20px 0 14px;border-bottom:2px solid #eceef3;flex-wrap:wrap}
.aiv-tabs button{background:none;border:0;padding:11px 16px;font:600 14px Poppins,Arial,sans-serif;color:#667;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px}
.aiv-tabs button.on{color:var(--blue);border-color:var(--blue)}
.aiv-hint{margin:0 0 14px;color:#556;font-size:15px}
.aiv-row{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-bottom:14px}
.aiv.busy .btn{opacity:.55;pointer-events:none}
.aiv-note{margin:14px 0 0;padding:12px 14px;border-radius:8px;background:#fff4e0;color:#8a5a00;font-size:14.5px}
.aiv-term{margin-top:22px;border-radius:10px;overflow:hidden;background:#0d1117;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.aiv-bar{display:flex;align-items:center;gap:7px;padding:10px 14px;background:#161b22}
.aiv-bar i{width:11px;height:11px;border-radius:50%;background:#ff5f57}
.aiv-bar i:nth-child(2){background:#febc2e}.aiv-bar i:nth-child(3){background:#28c840}
.aiv-bar span{margin-left:8px;color:#8b949e;font:12px ui-monospace,Menlo,Consolas,monospace}
.aiv-log{padding:16px;max-height:300px;overflow:auto;font:13.5px/1.7 ui-monospace,Menlo,Consolas,monospace;color:#c9d1d9}
.aiv-l{white-space:pre-wrap;word-break:break-word}
.aiv-l.cmd{color:#7ee787}.aiv-l.pass{color:#00e2a8}.aiv-l.warn{color:#ffb84d}.aiv-l.fail{color:#ff7b86}
.aiv-cur{display:inline-block;width:8px;height:1.05em;background:currentColor;margin-left:2px;vertical-align:-2px;animation:aivb 1s steps(1) infinite}
.aiv-typewrap{color:var(--purple,#a06de0);white-space:nowrap}
.aiv-typewrap .aiv-cur{background:var(--teal,#00e2a8);width:3px;height:.9em}
@keyframes aivb{50%{opacity:0}}
.aiv-out{margin-top:26px;animation:aivin .5s ease both}
@keyframes aivin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.aiv-top{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.aiv-ring{position:relative;width:150px;height:150px;flex:none}
.aiv-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.aiv-ring circle{fill:none;stroke-width:10;stroke-linecap:round}
.aiv-ring .bg{stroke:#eceef3}
.aiv-ring .fg{stroke:var(--teal);stroke-dasharray:339.292;stroke-dashoffset:339.292}
.aiv-ring div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.aiv-ring b{font:700 38px/1 Poppins,Arial,sans-serif;color:var(--ink)}
.aiv-ring small{font-size:13px;color:#778}
.aiv-sum{flex:1;min-width:240px}
.aiv-sum h2{margin:0 0 8px;font-size:24px;color:var(--ink)}
.aiv-sum p{margin:0 0 8px;color:#445;min-height:48px}
.aiv-link{background:none;border:0;padding:0;color:var(--blue);font:600 14px Arial,sans-serif;cursor:pointer;text-decoration:underline}
.aiv-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;margin-top:22px}
.aiv-card{border:1px solid #e6e9f0;border-left:5px solid #ccd;border-radius:8px;padding:14px 16px;background:#fff;animation:aivin .4s ease both}
.aiv-card.pass{border-left-color:#00c896}.aiv-card.warn{border-left-color:#ffb84d}.aiv-card.fail{border-left-color:#ff5d6c}
.aiv-ch{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}
.aiv-ch b{font:600 15px Poppins,Arial,sans-serif;color:var(--ink)}
.aiv-ch span{font:600 13px Arial,sans-serif;color:#778;white-space:nowrap}
.aiv-card p{margin:0;font-size:14.5px;color:#445}
.aiv-card .fix{margin-top:8px;padding-top:8px;border-top:1px dashed #e3e6ee;color:#5a50ff;font-size:13.5px}
@media(max-width:640px){.aiv-row{grid-template-columns:1fr}.aiv-top{justify-content:center;text-align:center}.aiv-ring{width:130px;height:130px}}
@media(prefers-reduced-motion:reduce){.aiv-cur{animation:none}.aiv-out,.aiv-card{animation:none}}
