:root{
  --pink:#e8457f;--pink-dark:#b9145a;--pink-soft:#fde4ee;--pink-mid:#f7b4cf;--rose:#fff5f9;
  --ink:#3a1424;--muted:#8a5a6c;--card:#ffffff;--ok:#2e9e6b;--warn:#c8541e;
  --shadow:0 10px 30px rgba(185,20,90,.14);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);
  background:radial-gradient(1200px 600px at 10% -10%,#ffd3e4 0%,transparent 60%),
             radial-gradient(900px 500px at 110% 10%,#ffe6f0 0%,transparent 55%),var(--rose);
  min-height:100vh;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;font-weight:700;margin:0;color:var(--pink-dark)}
a{color:var(--pink-dark)}
.wrap{max-width:560px;margin:0 auto;padding:20px 16px 48px}
.brand{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.brand svg{width:40px;height:40px;flex:none}
.brand h1{font-size:1.65rem;line-height:1.1}
.tag{color:var(--muted);font-size:.9rem;margin:0 0 18px 52px}
.card{background:var(--card);border-radius:20px;padding:20px;box-shadow:var(--shadow);margin-bottom:16px;border:1px solid #ffd9e7}
.card h2{font-size:1.25rem;margin-bottom:8px}
label{display:block;font-weight:700;font-size:.9rem;margin:12px 0 6px}
input[type=text]{width:100%;font:inherit;font-size:1.05rem;padding:13px 14px;border:2px solid var(--pink-mid);border-radius:14px;outline:none;background:#fff;color:var(--ink)}
input[type=text]:focus{border-color:var(--pink)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:800;font-size:1.05rem;
  padding:14px 20px;border-radius:999px;border:0;cursor:pointer;background:var(--pink);color:#fff;width:100%;margin-top:14px;
  box-shadow:0 6px 18px rgba(232,69,127,.35);transition:transform .08s}
.btn:active{transform:scale(.98)}
.btn.secondary{background:#fff;color:var(--pink-dark);border:2px solid var(--pink-mid);box-shadow:none}
.btn.small{width:auto;padding:9px 14px;font-size:.9rem;margin-top:0}
.btn.danger{background:#fff;color:var(--warn);border:2px solid #f3c7b4;box-shadow:none}
.btn[disabled]{opacity:.55;cursor:default}
.hint{color:var(--muted);font-size:.85rem;margin-top:8px}
.suggest{position:relative}
.sug{position:absolute;left:0;right:0;top:100%;z-index:5;background:#fff;border:2px solid var(--pink-mid);border-top:0;
  border-radius:0 0 14px 14px;overflow:hidden;box-shadow:var(--shadow);display:none;max-height:300px;overflow-y:auto}
.sug.on{display:block}
.sug > div{display:flex;gap:10px;align-items:center;padding:9px 12px;cursor:pointer;border-top:1px solid #ffeaf2}
.sug > div:hover,.sug > div.sel{background:var(--pink-soft)}
.sug img{width:30px;height:44px;object-fit:cover;border-radius:4px;background:#f3dfe7;flex:none}
.sug .tx{flex:1;min-width:0;display:block}
.sug .t{font-weight:800;font-size:.95rem}
.sug .a{color:var(--muted);font-size:.8rem}
.pick{display:flex;gap:12px;align-items:center;background:var(--pink-soft);border-radius:14px;padding:10px 12px;margin-top:10px}
.pick img{width:44px;height:64px;object-fit:cover;border-radius:6px;background:#f3dfe7}
.pick .t{font-weight:800}.pick .a{color:var(--muted);font-size:.85rem}
.status{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:.85rem;padding:6px 12px;border-radius:999px;background:var(--pink-soft);color:var(--pink-dark)}
.status.open::before,.status.closed::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--ok)}
.status.closed::before{background:var(--warn)}
.big{text-align:center;padding:28px 16px}
.big .check{width:72px;height:72px;margin:0 auto 12px}
.big h2{font-size:1.5rem}
.results{list-style:none;margin:0;padding:0}
.results li{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid #ffe3ee}
.results li:first-child{border-top:0}
.results .rank{width:34px;height:34px;border-radius:50%;background:var(--pink-soft);color:var(--pink-dark);font-weight:900;display:flex;align-items:center;justify-content:center;flex:none}
.results li.top .rank{background:var(--pink);color:#fff}
.results img{width:40px;height:58px;object-fit:cover;border-radius:5px;background:#f3dfe7;flex:none}
.results .t{font-weight:800}.results .a{color:var(--muted);font-size:.85rem}
.results .n{margin-left:auto;font-weight:900;color:var(--pink-dark);font-size:1.2rem;white-space:nowrap}
.bar{height:6px;background:#ffe3ee;border-radius:3px;margin-top:6px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--pink-dark));border-radius:3px}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 18px;border-radius:14px;
  font-weight:700;box-shadow:0 10px 30px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .2s;max-width:92vw;text-align:center}
.toast.on{opacity:1}
.foot{text-align:center;color:var(--muted);font-size:.78rem;margin-top:24px}
.foot b{color:var(--pink-dark)}
.ribbon-line{display:flex;align-items:center;gap:8px;justify-content:center;color:var(--pink-dark);font-weight:800;font-size:.85rem;margin-top:14px}
.ribbon-line svg{width:18px;height:18px}
.err{color:var(--warn);font-weight:700;margin-top:8px}
