:root{
  --asx-bg:#090910;
  --asx-panel:rgba(18,18,28,.86);
  --asx-panel-soft:rgba(255,255,255,.045);
  --asx-text:#f6f3fb;
  --asx-muted:#b6adbf;
  --asx-pink:#ff2f92;
  --asx-pink-soft:rgba(255,47,146,.18);
  --asx-border:rgba(255,255,255,.1);
  --asx-radius:18px;
}
.asx-ui-shell{max-width:1120px;margin:0 auto;padding:clamp(18px,4vw,40px);color:var(--asx-text)}
.asx-ui-header{margin-bottom:22px;padding:20px;border:1px solid var(--asx-border);border-radius:var(--asx-radius);background:linear-gradient(135deg,var(--asx-panel),rgba(255,47,146,.08));backdrop-filter:blur(12px)}
.asx-ui-header h1{margin:0 0 6px;font-size:clamp(28px,5vw,46px);line-height:1.05;color:var(--asx-text)}
.asx-ui-header p{margin:0;color:var(--asx-muted);font-size:15px}
.asx-ui-content{display:grid;gap:16px}
.asx-card{border:1px solid var(--asx-border);border-radius:var(--asx-radius);background:var(--asx-panel);box-shadow:0 18px 48px rgba(0,0,0,.28);padding:18px;color:var(--asx-text);overflow:hidden}
.asx-card-title,.asx-card h2{margin:0 0 12px;color:var(--asx-text);font-size:20px}
.asx-card-body p{color:var(--asx-muted)}
.asx-btn,.asx-button,.asx-card a.button,button.asx-btn,input[type="submit"].asx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--asx-pink);color:#fff!important;text-decoration:none!important;font-weight:700;padding:11px 16px;box-shadow:0 10px 26px var(--asx-pink-soft);cursor:pointer}
.asx-btn-secondary{background:var(--asx-panel-soft);border:1px solid var(--asx-border);box-shadow:none}
.asx-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;background:var(--asx-panel-soft);color:var(--asx-text);border:1px solid var(--asx-border)}
.asx-badge-good{background:rgba(0,220,150,.14);border-color:rgba(0,220,150,.28)}
.asx-badge-warn{background:rgba(255,190,60,.14);border-color:rgba(255,190,60,.3)}
.asx-badge-bad{background:rgba(255,60,100,.14);border-color:rgba(255,60,100,.3)}
.asx-form input,.asx-form textarea,.asx-form select,.asx-card input,.asx-card textarea,.asx-card select{width:100%;border:1px solid var(--asx-border);border-radius:14px;background:rgba(255,255,255,.06);color:var(--asx-text);padding:12px;box-sizing:border-box}
.asx-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.asx-muted{color:var(--asx-muted)}
.asx-bound-page{min-height:60vh}
@media(max-width:700px){.asx-ui-shell{padding:14px}.asx-card{padding:15px}.asx-ui-header{padding:16px;border-radius:16px}}
