:root{
  --bg: #0b1220;
  --card: #0f1a31;
  --text: #e9efff;
  --muted: rgba(233,239,255,0.72);
  --border: rgba(255,255,255,0.10);
  --shadow: 0 18px 60px rgba(0,0,0,0.45);
  --accent: #6ea8fe;
  --good: #37d67a;
  --warn: #ffd166;
  --bad: #ff5c7c;
  --focus: rgba(110,168,254,0.45);
  --input: rgba(255,255,255,0.06);
}

:root[data-contrast="high"]{
  --bg: #000;
  --card: #050505;
  --text: #fff;
  --muted: rgba(255,255,255,0.86);
  --border: rgba(255,255,255,0.22);
  --accent: #00c2ff;
  --good: #19ff76;
  --warn: #ffe300;
  --bad: #ff3355;
  --focus: rgba(0,194,255,0.65);
  --input: rgba(255,255,255,0.12);
}

*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font: 16px/1.45 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  color: var(--text);
  background:
    radial-gradient(1200px 800px at 20% 10%, #18264b 0%, var(--bg) 55%),
    radial-gradient(900px 600px at 90% 80%, #2a1b4a 0%, var(--bg) 55%);
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 16px 18px;
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
}

.brand{display:flex; gap:12px; align-items:center;}
.logo{font-size:26px;}
.title{font-weight:800; letter-spacing:-0.02em;}
.subtitle{font-size:12px; color: var(--muted); margin-top:2px;}

.actions{display:flex; gap:10px;}

.wrap{display:grid; place-items:center; padding: 22px;}

.card{
  width: min(820px, 100%);
  background: color-mix(in srgb, var(--card) 92%, transparent);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 22px;
  box-shadow: var(--shadow);
}

.row{display:flex; gap:12px; align-items:center;}
.between{justify-content:space-between;}

.h1{margin:10px 0 6px; font-size: 30px; letter-spacing:-0.02em;}
.lead{margin: 0 0 14px; color: var(--muted);}

.pill{
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.04);
  font-size: 12px;
  color: var(--muted);
}

.hintBox{
  border: 1px solid rgba(110,168,254,0.30);
  background: rgba(110,168,254,0.10);
  border-radius: 14px;
  padding: 14px 14px;
  margin: 14px 0;
}
.hintLabel{font-size:12px; color: var(--muted);}
.hintValue{margin-top:6px; font-size:18px; font-weight:700;}

.inputRow{display:flex; gap:10px; align-items:center; margin-top: 12px;}
input{
  flex:1;
  padding: 12px 12px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--input);
  color: var(--text);
  outline: none;
}
input:focus{box-shadow: 0 0 0 4px var(--focus); border-color: rgba(110,168,254,0.55);}

button{
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.06);
  color: var(--text);
  padding: 10px 12px;
  border-radius: 12px;
  cursor:pointer;
}
button:focus{outline:none; box-shadow: 0 0 0 4px var(--focus);}
button:disabled{opacity:0.55; cursor:not-allowed;}

.primary{
  background: rgba(110,168,254,0.18);
  border-color: rgba(110,168,254,0.45);
  font-weight:700;
}
.secondary{
  background: rgba(55,214,122,0.10);
  border-color: rgba(55,214,122,0.35);
}
.ghost{background: transparent;}

.iconBtn{
  width: 38px;
  height: 38px;
  display:grid;
  place-items:center;
  border-radius: 12px;
  padding:0;
}

.small{font-size: 13px;}
.tiny{font-size: 12px; margin: 14px 0 0;}
.muted{color: var(--muted);}

.suggestWrap{
  position: relative;
  margin-top: 10px;
  display:none;
  border: 1px solid var(--border);
  background: rgba(0,0,0,0.25);
  border-radius: 14px;
  overflow: hidden;
}
.suggestWrap.show{display:block;}
.suggestion{
  padding: 10px 12px;
  border-top: 1px solid rgba(255,255,255,0.06);
  cursor:pointer;
}
.suggestion:first-child{border-top:none;}
.suggestion[aria-selected="true"]{background: rgba(110,168,254,0.18);}

.guesses{margin-top: 14px; display:grid; gap:10px;}
.guessRow{
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.04);
  border-radius: 14px;
  padding: 10px 12px;
}
.guessTop{display:flex; align-items:center; justify-content:space-between; gap:12px;}
.guessName{font-weight:800;}
.badge{font-size:12px; padding:4px 8px; border-radius:999px; border:1px solid var(--border); color: var(--muted);}
.badge.good{border-color: rgba(55,214,122,0.45); background: rgba(55,214,122,0.12); color: var(--text);}
.badge.bad{border-color: rgba(255,92,124,0.45); background: rgba(255,92,124,0.10); color: var(--text);}

.guessHint{margin-top:6px; color: var(--muted);}
.footerRow{margin-top: 16px;}

.srOnly{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.modal{border:none; padding:0; background: transparent;}
.modal::backdrop{background: rgba(0,0,0,0.55);}
.modalCard{
  width:min(720px, calc(100vw - 24px));
  border-radius: 18px;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
  box-shadow: var(--shadow);
  padding: 16px;
}
.modalHeader{display:flex; justify-content:space-between; align-items:center; gap:10px;}
.modalTitle{font-weight:900; font-size:16px;}
.modalBody{margin-top:10px; color: var(--muted);}
.modalBody h3{color: var(--text); margin: 14px 0 6px;}
.modalBody ul{margin: 8px 0 0 18px;}
.modalFooter{margin-top:14px; display:flex; justify-content:flex-end;}
