:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  --bg:#f6f4fb; --card:#ffffff; --text:#221c33; --muted:#6b6480; --border:#e2dcf0;
  --accent:#6c4ff0; --accent-text:#ffffff; --pointer:#e5334b;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#15121f; --card:#201b2f; --text:#f1eefb; --muted:#a69fbd; --border:#342d4a;
    --accent:#8b73ff; --accent-text:#120d24; --pointer:#ff5d73; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#15121f; --card:#201b2f; --text:#f1eefb; --muted:#a69fbd; --border:#342d4a;
  --accent:#8b73ff; --accent-text:#120d24; --pointer:#ff5d73; color-scheme:dark;
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; line-height:1.4;
}
header{text-align:center;padding:28px 16px 8px}
h1{margin:0;font-size:clamp(1.8rem,5vw,2.6rem);letter-spacing:-.02em}
header p{margin:6px 0 0;color:var(--muted)}
main{
  max-width:1000px;margin:0 auto;padding:16px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:24px;align-items:start;
}
@media (max-width:820px){main{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:18px}
.wheel-card{text-align:center}
.wheel-wrap{position:relative;width:100%;max-width:480px;margin:0 auto;aspect-ratio:1}
canvas{width:100%;height:100%;display:block}
.pointer{
  position:absolute;top:-6px;left:50%;transform:translateX(-50%);
  width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;
  border-top:34px solid var(--pointer);filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));z-index:2;
}
button{
  font:inherit;cursor:pointer;border-radius:12px;border:1px solid var(--border);
  background:transparent;color:var(--text);padding:10px 14px;
}
button:hover:not(:disabled){border-color:var(--accent)}
button:disabled{opacity:.5;cursor:not-allowed}
button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.spin{
  margin-top:16px;background:var(--accent);color:var(--accent-text);border:none;
  font-weight:700;font-size:1.15rem;padding:14px 40px;letter-spacing:.04em;
}
.result{
  min-height:3.2em;margin-top:14px;font-size:1.3rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;
}
.result small{font-weight:400;color:var(--muted);font-size:.9rem}
.winner{color:var(--accent)}
.add-row{display:flex;gap:8px}
input[type=text]{
  flex:1;min-width:0;font:inherit;padding:10px 12px;border-radius:12px;
  border:1px solid var(--border);background:var(--bg);color:var(--text);
}
.add-row button{background:var(--accent);color:var(--accent-text);border:none;font-weight:600}
.meta{display:flex;justify-content:space-between;align-items:center;margin:14px 0 8px;color:var(--muted);font-size:.9rem}
ul{list-style:none;margin:0;padding:0;max-height:340px;overflow-y:auto;display:grid;gap:6px}
li{
  display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;
  background:var(--bg);border:1px solid var(--border);
}
.swatch{width:14px;height:14px;border-radius:50%;flex:none}
.name{flex:1;min-width:0;overflow-wrap:anywhere}
li button{padding:2px 9px;border-radius:8px;color:var(--muted);line-height:1.2}
.tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.tools button{font-size:.9rem;padding:8px 12px}
.msg{color:var(--pointer);font-size:.88rem;min-height:1.2em;margin:8px 0 0}
