:root {
  --bg: #0b1220; --bg2: #11192b; --text: #eef4ff; --muted: #9fb0d3; --border: #2f426d;
  --accent: #79a8ff; --accent2: #8f7cff; --ok: #32c58b; --bad: #ff6f7d; --warn: #ffb454; --shadow: 0 22px 60px rgba(0,0,0,.35);
}
* { box-sizing: border-box; }
body { margin:0; min-height:100vh; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--text); background: radial-gradient(circle at top left, rgba(121,168,255,.20), transparent 28%), radial-gradient(circle at top right, rgba(143,124,255,.18), transparent 24%), linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%); }
.container { max-width:1160px; margin:0 auto; padding:32px 18px 40px; }
.hero { display:grid; grid-template-columns:1.2fr .8fr; gap:20px; margin-bottom:20px; }
.panel { background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)); border:1px solid var(--border); border-radius:24px; box-shadow:var(--shadow); backdrop-filter:blur(10px); }
.hero-main { padding:28px; } .hero-side { padding:24px; background:linear-gradient(180deg, rgba(121,168,255,.14), rgba(143,124,255,.08)); }
.eyebrow { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--accent); border:1px solid rgba(121,168,255,.25); background:rgba(121,168,255,.10); margin-bottom:14px; }
h1 { margin:0 0 10px; font-size:34px; line-height:1.05; letter-spacing:-.03em; }
.subtitle { margin:0; max-width:60ch; color:var(--muted); font-size:15px; line-height:1.6; }
.info-list { display:grid; gap:12px; margin-top:14px; }
.info-item { border-left:3px solid rgba(121,168,255,.6); padding-left:12px; color:var(--muted); font-size:13px; line-height:1.45; }
.grid { display:grid; grid-template-columns:1.05fr .95fr; gap:20px; }
.card { padding:24px; }
.stack { display:grid; gap:16px; }
label { display:block; margin-bottom:8px; font-weight:700; font-size:14px; }
.field-note { margin-top:7px; font-size:12px; color:var(--muted); line-height:1.45; }
input[type=password], select, textarea { width:100%; padding:13px 14px; border-radius:14px; border:1px solid var(--border); background:rgba(9,15,28,.86); color:var(--text); outline:none; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; transition:border-color .18s ease, box-shadow .18s ease, background .18s ease; }
input[type=password]:focus, select:focus, textarea:focus { border-color:var(--accent); box-shadow:0 0 0 4px rgba(121,168,255,.14); background:rgba(11,19,35,.98); }
textarea { min-height:170px; resize:vertical; }
.actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:4px; }
button { border:0; border-radius:14px; padding:12px 18px; font-weight:700; color:white; cursor:pointer; background:linear-gradient(135deg, var(--accent), var(--accent2)); box-shadow:0 12px 28px rgba(121,168,255,.24); transition: transform .16s ease, opacity .16s ease, box-shadow .16s ease; }
button:hover { transform:translateY(-1px); box-shadow:0 16px 30px rgba(121,168,255,.28); }
button:disabled { opacity:.52; cursor:not-allowed; transform:none; box-shadow:none; }
.ghost { background:transparent; border:1px solid var(--border); color:var(--text); box-shadow:none; }
.msg { border-radius:16px; padding:14px 16px; font-size:14px; line-height:1.5; border:1px solid var(--border); }
.msg.error { color:#ffd5d8; border-color:rgba(255,111,125,.34); background:rgba(255,111,125,.10); white-space:pre-line; }
.msg.ok { color:#d7ffed; border-color:rgba(50,197,139,.34); background:rgba(50,197,139,.10); }
.strength-wrap { display:grid; gap:8px; }
.strength-bar { height:12px; width:100%; border-radius:999px; overflow:hidden; background:rgba(255,255,255,.05); border:1px solid var(--border); }
.strength-fill { display:block; height:100%; width:0%; background:linear-gradient(90deg, var(--bad), var(--warn), var(--ok)); transition:width .18s ease; }
.strength-meta { display:flex; justify-content:space-between; gap:12px; color:var(--muted); font-size:12px; }
.validator { display:grid; gap:10px; }
.rule { display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:14px; border:1px solid var(--border); background:rgba(9,15,28,.60); transition:border-color .18s ease, background .18s ease; }
.rule .icon { width:24px; height:24px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; border:1px solid var(--border); font-weight:900; font-size:13px; color:var(--muted); background:rgba(255,255,255,.03); }
.rule.ok { border-color:rgba(50,197,139,.34); background:rgba(50,197,139,.10); }
.rule.ok .icon { border-color:var(--ok); background:var(--ok); color:white; }
.rule.bad { border-color:rgba(255,111,125,.34); background:rgba(255,111,125,.09); }
.rule.bad .icon { border-color:var(--bad); background:var(--bad); color:white; }
.copy-row { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:12px; }
.copy-hint { color:var(--muted); font-size:12px; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:12px; color:var(--text); background:rgba(9,15,28,.6); padding:2px 6px; border-radius:8px; border:1px solid var(--border); }
@media (max-width: 960px) { .hero, .grid { grid-template-columns:1fr; } .container { padding:18px 12px 28px; } .hero-main, .hero-side, .card { padding:18px; } h1 { font-size:28px; } }
