:root{--blush:#fde4ee;--lav:#e9e1fb;--mint:#dff5ea;--butter:#fff6d6;--pink:#f4b6d2;--deep:#7a3b5e;--ink:#4a2b3f}
*{box-sizing:border-box}
body{margin:0;font-family:"Comic Sans MS","Trebuchet MS",system-ui,sans-serif;color:var(--ink);
  background:linear-gradient(160deg,var(--blush),var(--lav) 50%,var(--mint));min-height:100vh}
.petals{text-align:center;letter-spacing:.6em;padding:.5rem;opacity:.8;overflow:hidden;white-space:nowrap}
header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.5rem 1.5rem}
.logo{font-size:1.5rem;font-weight:700;color:var(--deep);text-decoration:none}
nav a,.subnav a{margin-left:1rem;color:var(--deep)}
.subnav{max-width:900px;margin:0 auto 1rem;padding:0 1rem}.subnav a{margin:0 1rem 0 0}
main{max-width:900px;margin:0 auto;padding:0 1rem 2rem}
.card{background:rgba(255,255,255,.75);border:2px solid var(--pink);border-radius:24px;padding:1.2rem 1.5rem;margin-bottom:1.2rem;
  box-shadow:0 6px 18px rgba(122,59,94,.12)}
.hero{background:var(--butter)}
h1,h2,h3{color:var(--deep);margin-top:0}
.muted{opacity:.7;font-size:.9rem}
.search{display:flex;gap:.5rem;flex-wrap:wrap}
.grid{display:grid;gap:.8rem}
input,textarea{padding:.6rem .8rem;border:2px solid var(--pink);border-radius:14px;background:#fff;font:inherit;color:inherit}
.search input{flex:1;min-width:10rem}.grid input[type=text],.grid input:not([type]),.grid input[type=number],textarea{width:100%}
button{padding:.6rem 1.2rem;border:0;border-radius:999px;background:var(--pink);color:var(--deep);font:inherit;font-weight:700;cursor:pointer}
button:hover{filter:brightness(.95)}
.board{list-style:none;padding:0;margin:0}
.board li{display:flex;gap:1rem;align-items:center;padding:.5rem .8rem;border-radius:14px}
.board li:nth-child(odd){background:var(--blush)}.board li:nth-child(even){background:var(--lav)}
.rank{font-weight:700;width:2rem}.name{flex:1}.count{font-size:.9rem}
.results{display:grid;gap:.6rem;margin:1rem 0}
.result{padding:.8rem 1rem;border-radius:16px;background:var(--mint);display:flex;flex-direction:column;word-break:break-all}
.result.locked{filter:blur(6px);user-select:none;pointer-events:none}
.unlock{font-size:1.1rem;background:var(--deep);color:#fff}
table{width:100%;border-collapse:collapse}td,th{padding:.4rem .6rem;border-bottom:1px solid var(--pink);text-align:left;word-break:break-all}
.err{color:#b00040;font-weight:700}.ok{color:#1c7a4b;font-weight:700}
footer{text-align:center;padding:1.5rem;font-size:.9rem;opacity:.8}
.review{display:grid;gap:.4rem;padding:.6rem;border-radius:16px;background:var(--lav)}
.review img{max-width:100%;border-radius:12px}
.thumb{max-width:220px;border-radius:10px}
.crop{max-width:100%;border-radius:12px;margin:.4rem 0}
.slip{margin-top:1rem;padding-top:.8rem;border-top:2px dashed var(--pink)}
.paybox{background:var(--butter);border:2px dashed var(--pink);border-radius:16px;padding:.7rem 1rem;margin:.5rem 0 1rem}
.acct{font-size:1.3rem;font-weight:700;letter-spacing:.05em;user-select:all;word-break:break-all}
.overlay{position:fixed;inset:0;background:rgba(74,43,63,.55);display:flex;align-items:center;justify-content:center;z-index:10;padding:1rem}
.overlay[hidden]{display:none}
.overlay-box{background:#fff;border:3px solid var(--pink);border-radius:28px;padding:1.5rem 2rem;text-align:center;max-width:22rem;width:100%}
.spinner{width:64px;height:64px;margin:0 auto 1rem;border:8px solid var(--blush);border-top-color:var(--deep);border-radius:50%;animation:spin .9s linear infinite}
.spinner[hidden],.tick[hidden]{display:none}
.tick{width:64px;height:64px;line-height:64px;margin:0 auto 1rem;border-radius:50%;background:#1c7a4b;color:#fff;font-size:2.2rem;animation:pop .4s ease-out}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pop{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
/* phones */
input,textarea,button{font-size:16px} /* 16px stops iOS zooming into focused fields */
button{min-height:44px}
.search input[type=file]{width:100%}
img{max-width:100%}
@media (max-width:600px){
  header{justify-content:center;text-align:center;padding:.5rem 1rem}
  main{padding:0 .8rem 1.5rem}
  .card{padding:1rem;border-radius:20px}
  h1{font-size:1.5rem}
  .search{flex-direction:column}.search input,.search button{width:100%}
  .unlock,.slip button{width:100%}
  .petals{font-size:.9rem;letter-spacing:.3em}
  .board li{gap:.5rem;padding:.5rem}
  .count{white-space:nowrap}
}
.board li{flex-wrap:wrap}
.lb-crop{flex-basis:100%;width:100%;border-radius:14px;margin-top:.4rem}
