:root{--bg: #f7f7f5;--card: #ffffff;--border: #e4e4e0;--ink: #191919;--muted: #8a8a85;--muted-light: #b4b4af;--error: #b3402a;--brilliant: #1bad9f;--brilliant-soft: #e4f7f5;--great: #4e7de9;--great-soft: #eaf0fd;--good: #3d9a50;--good-soft: #eaf6ec;--book: #8a8a85;--book-soft: #f1f1ef}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif}.page{min-height:100vh;padding:28px 14px 60px}.wrap{max-width:620px;margin:0 auto}.title{font-weight:800;font-size:clamp(28px,6vw,38px);letter-spacing:-.03em;margin:0;text-align:center}.tagline{text-align:center;font-size:13px;color:var(--muted);margin:6px 0 22px}.scorebar{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 18px;margin-bottom:18px;font-size:14px;box-shadow:0 1px 3px #0000000a}.score-value{font-weight:700;font-variant-numeric:tabular-nums}.score-max,.score-errors{color:var(--muted-light);font-weight:500}.score-errors.has-errors{color:var(--error)}.grid-area{display:grid;grid-template-columns:minmax(58px,96px) 1fr;gap:8px}.col-headers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.row-headers{display:grid;grid-template-rows:repeat(3,1fr);gap:8px}.label-chip{font-size:clamp(9px,1.9vw,11.5px);font-weight:700;letter-spacing:.01em;color:var(--ink);display:flex;align-items:center;justify-content:center;text-align:center;padding:6px 5px;line-height:1.35;min-height:42px;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 1px 2px #00000008}.row-headers .label-chip{min-height:0}.board{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:8px}.cell{aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:8px;text-align:center;background:var(--card);border:1px solid var(--border);border-radius:12px;font-family:inherit;position:relative;box-shadow:0 1px 3px #0000000a;transition:border-color .15s ease,transform .1s ease;color:var(--ink)}.cell:hover{border-color:#c9c9c4}.cell-plus{font-size:24px;font-weight:300;color:#c4c4bf}.cell.active{border-color:var(--ink);box-shadow:0 0 0 3px #1919191f}.cell.shake{animation:cdk-shake .4s ease;border-color:var(--error)}.cell.pop{animation:cdk-pop .48s cubic-bezier(.2,1.4,.4,1),cdk-glow .85s ease-out}.cell.tier-brilliant{background:var(--brilliant-soft);border-color:var(--brilliant);--glow: #1bad9f66}.cell.tier-great{background:var(--great-soft);border-color:var(--great);--glow: #4e7de966}.cell.tier-good{background:var(--good-soft);border-color:var(--good);--glow: #3d9a5066}.cell.tier-book{background:var(--book-soft);border-color:var(--book);--glow: #8a8a8566}.cell.revealed{background:var(--book-soft);color:var(--muted);border-style:dashed}.cell-name{font-weight:600;font-size:clamp(11px,2.5vw,14.5px);line-height:1.2;letter-spacing:-.01em}.cell-pts{margin-top:5px;font-size:clamp(10px,2vw,12px);font-weight:700}.cell-mark{position:absolute;top:7px;right:8px;font-size:13px;font-weight:800}.cell-float{position:absolute;left:50%;top:-6px;font-size:17px;font-weight:800;animation:cdk-rise .9s ease-out forwards;pointer-events:none;white-space:nowrap}.actions{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}.btn{font-family:inherit;font-size:13px;font-weight:600;background:var(--card);color:var(--ink);border:1px solid var(--border);border-radius:10px;padding:10px 16px;cursor:pointer;box-shadow:0 1px 2px #0000000a}.btn:hover{border-color:#c9c9c4}.btn--dark{background:var(--ink);color:#fff;border-color:var(--ink)}.btn--dark:hover{background:#333}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#19191966;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;z-index:50}.modal{width:100%;max-width:460px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:0 24px 60px #0000002e}.modal-kicker{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}.modal-sub{font-size:12.5px;color:var(--muted);margin-bottom:14px;line-height:1.5}.search-input{width:100%;padding:13px 14px;font-size:16px;font-family:inherit;background:var(--bg);color:var(--ink);border:1px solid var(--border);border-radius:10px;outline:none}.search-input:focus{border-color:var(--ink)}.sug-list{margin-top:8px;max-height:260px;overflow-y:auto}.sug{display:flex;justify-content:space-between;align-items:center;width:100%;padding:11px 12px;background:transparent;border:none;border-bottom:1px solid #f0f0ed;color:var(--ink);cursor:pointer;font-family:inherit;font-size:14px;text-align:left;border-radius:6px}.sug:hover{background:var(--bg)}.sug-rarity{color:var(--muted-light);font-size:11px;letter-spacing:2px}.hint{font-size:11px;color:var(--muted-light);margin-top:10px}.panel{margin-top:22px;border:1px solid var(--border);border-radius:14px;background:var(--card);padding:20px;box-shadow:0 1px 3px #0000000a}.banner{position:fixed;top:18px;left:50%;background:var(--card);border-radius:14px;padding:11px 20px;display:flex;align-items:center;gap:12px;z-index:85;animation:cdk-banner 1.9s ease forwards;white-space:nowrap}.banner-mark{width:30px;height:30px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--card);border:1px solid #e8b4a8;color:var(--error);padding:11px 16px;border-radius:12px;font-size:13px;z-index:80;max-width:90vw;box-shadow:0 8px 24px #0000001f;font-weight:500}.stats-footer{margin-top:28px;text-align:center;font-size:12.5px;color:var(--muted)}.seo-footer{margin-top:18px;text-align:center;font-size:11.5px;color:var(--muted-light);line-height:1.7;max-width:520px;margin-left:auto;margin-right:auto}.support-kofi{margin-top:20px;display:flex;flex-direction:column;align-items:center;gap:10px}.support-kofi__text{margin:0;font-size:11.5px;color:var(--muted-light)}.kofi-btn{display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:13px;font-weight:700;text-decoration:none;background:#ff5e5b;color:#fff;border:1px solid #ff5e5b;border-radius:10px;padding:10px 18px;box-shadow:0 1px 2px #0000000a;transition:background .12s ease,transform .12s ease}.kofi-btn:hover{background:#e5504d;transform:translateY(-1px)}@keyframes cdk-pop{0%{transform:scale(.55);opacity:0}55%{transform:scale(1.09);opacity:1}to{transform:scale(1)}}@keyframes cdk-glow{0%{box-shadow:0 0 0 0 var(--glow)}70%{box-shadow:0 0 0 14px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes cdk-rise{0%{transform:translate(-50%) scale(.8);opacity:0}20%{opacity:1}to{transform:translate(-50%,-46px) scale(1.15);opacity:0}}@keyframes cdk-shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}@keyframes cdk-banner{0%{transform:translate(-50%,-24px);opacity:0}12%{transform:translate(-50%);opacity:1}85%{transform:translate(-50%);opacity:1}to{transform:translate(-50%,-14px);opacity:0}}@keyframes cdk-burst{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(320deg);opacity:0}}@media (prefers-reduced-motion: reduce){*{animation:none!important}}.admin-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:18px}.admin-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center;box-shadow:0 1px 3px #0000000a}.admin-card-value{font-size:22px;font-weight:800;letter-spacing:-.02em}.admin-card-label{font-size:11.5px;color:var(--muted);margin-top:4px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:9px 10px;border-bottom:1px solid #f0f0ed;white-space:nowrap;font-variant-numeric:tabular-nums}.admin-table tr:last-child td{border-bottom:none}.layout{display:grid;grid-template-columns:1fr minmax(0,620px) 1fr;gap:16px;align-items:start}.wrap{grid-column:2}.ad-rail{position:sticky;top:20px;display:none;justify-content:center}.ad-rail--left{grid-column:1}.ad-rail--right{grid-column:3}@media (min-width: 1100px){.ad-rail{display:flex}}
