:root{
  --bg:#0b0d12;
  --card:#11151c;
  --text:#e6e8eb;
  --muted:#9aa3af;
  --ok:#1db954;
  --bad:#ff4d4f;
  --border:#1f252e;
  --accent:#4f46e5;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:16px/1.5 system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, "Helvetica Neue", Arial, "Apple Color Emoji","Segoe UI Emoji";
}

#container{
  max-width:720px;
  margin:48px auto;
  padding:24px;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}

h1{
  margin:0 0 6px;
  font-size:1.5rem;
}
.muted{ color:var(--muted); margin:0 0 20px; }

.label{ display:block; font-weight:600; margin-bottom:8px; }

.row{
  display:flex;
  gap:10px;
  align-items:center;
}

.input{
  flex:1;
  padding:12px 14px;
  border:1px solid var(--border);
  background:#0e131a;
  color:var(--text);
  border-radius:10px;
  outline:none;
}
.input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(79,70,229,.25); }

.btn{
  padding:12px 16px;
  border:1px solid var(--border);
  background:var(--accent);
  color:#fff;
  border-radius:10px;
  cursor:pointer;
  font-weight:600;
}
.btn:disabled{ opacity:.6; cursor:not-allowed; }

.hint{ color:var(--muted); margin:8px 0 0; }

.results{
  margin-top:18px;
  padding:12px 14px;
  border:1px dashed var(--border);
  border-radius:10px;
  min-height:44px;
}
.results.ok{ border-color:rgba(29,185,84,.35); color:var(--ok); }
.results.bad{ border-color:rgba(255,77,79,.35); color:var(--bad); }

.spinner{
  display:inline-block;
  width:1rem; height:1rem;
  border:2px solid rgba(255,255,255,.25);
  border-top-color:#fff;
  border-radius:50%;
  animation:spin .8s linear infinite;
  margin-right:8px;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* Pretty, accessible links */
a{
  color: var(--accent, #4f46e5);                 /* uses --accent if defined */
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  transition: color .2s ease, text-underline-offset .2s ease, box-shadow .2s ease;
}

/* visited state */
a:visited{
  color: var(--link-visited, #7c3aed);
}

/* hover & active */
a:hover{
  color: var(--accent-hover, #6366f1);
  text-underline-offset: 5px;
}
a:active{
  color: var(--accent-active, #1e40af);
}

/* keyboard focus ring */
a:focus-visible{
  outline: none;
  box-shadow: 0 0 0 3px rgba(79,70,229,.35);
  border-radius: 4px;
}

