:root{--bg: #111112;--bg-elev: #1b1b1d;--text: #d1d0c5;--sub: #6c6e70;--sub-dim: #4a4c4e;--accent: #e2b714;--success: #7eae5a;--error: #ca4754;--radius: 8px;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--mono);-webkit-font-smoothing:antialiased;line-height:1.5}button{font-family:inherit}.app{min-height:100%;display:flex;flex-direction:column;max-width:820px;margin:0 auto;padding:0 16px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 2px;color:var(--sub);font-size:.9rem}.topbar .left{display:flex;gap:16px;align-items:baseline}.topbar .brand{color:var(--accent);font-weight:700;letter-spacing:.5px;background:none;border:none;cursor:pointer;font-size:.95rem;padding:0}.topbar .meta{color:var(--sub)}.topbar .meta strong{color:var(--text);font-weight:500}.topbar .right{display:flex;gap:12px;align-items:center}.iconbtn{background:none;border:1px solid transparent;color:var(--sub);cursor:pointer;border-radius:var(--radius);padding:4px 10px;transition:color .15s ease}.iconbtn:hover{color:var(--text)}.iconbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.main{flex:1;display:flex;flex-direction:column;justify-content:center;gap:32px;padding-bottom:60px}.stage{display:flex;flex-direction:column;gap:28px}.items{display:flex;flex-direction:column;gap:6px;align-items:center}.item{display:flex;gap:14px;align-items:baseline;font-size:1.35rem;letter-spacing:.3px;transition:color .15s ease,opacity .15s ease}.item .glyph{width:1ch;text-align:center;font-weight:700;-webkit-user-select:none;user-select:none}.item.want .glyph{color:var(--sub)}.item.reject .glyph{color:var(--sub-dim)}.item .value{color:var(--text);white-space:pre}.item.want .value{color:var(--text)}.item.reject .value{color:var(--sub)}.item.good .value{color:var(--success)}.item.bad .value{color:var(--error)}.item .value mark{background:color-mix(in srgb,var(--accent) 30%,transparent);color:inherit;border-radius:3px;padding:0 1px}.item.empty-match .value mark{box-shadow:inset 2px 0 0 var(--accent);background:none}.regexfield{display:flex;align-items:center;justify-content:center;gap:10px;font-size:1.6rem}.regexfield .slash{color:var(--sub-dim);-webkit-user-select:none;user-select:none}.regexfield input{background:transparent;border:none;border-bottom:2px solid var(--sub-dim);color:var(--text);font-family:var(--mono);font-size:inherit;text-align:center;padding:4px 8px;min-width:280px;max-width:100%;caret-color:var(--accent);transition:border-color .2s ease}.regexfield input:focus{outline:none;border-color:var(--accent)}.regexfield.invalid input{border-color:var(--error)}.regexfield.solved input{border-color:var(--success);animation:pulse .4s ease}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.hint{text-align:center;color:var(--sub);min-height:1.4em;font-size:.9rem}.hint .key{color:var(--accent)}.menu{display:flex;flex-direction:column;gap:24px;align-items:center;text-align:center}.menu h1{font-size:2.2rem;margin:0;color:var(--text);font-weight:700}.menu h1 .accent{color:var(--accent)}.menu p{color:var(--sub);margin:0;max-width:44ch}.modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;width:100%;max-width:560px}.modecard{background:var(--bg-elev);border:1px solid #262628;border-radius:var(--radius);padding:18px 16px;text-align:left;color:var(--text);cursor:pointer;transition:border-color .15s ease,transform .1s ease}.modecard:hover:not(:disabled){border-color:var(--accent)}.modecard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modecard:disabled{opacity:.45;cursor:not-allowed}.modecard .name{font-weight:700;margin-bottom:4px}.modecard .desc{color:var(--sub);font-size:.85rem}.themepick{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.chip{background:var(--bg-elev);border:1px solid #262628;color:var(--text);border-radius:var(--radius);padding:8px 14px;cursor:pointer;transition:border-color .15s ease}.chip:hover,.chip[aria-pressed=true]{border-color:var(--accent)}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}.overlay .panel{background:var(--bg-elev);border:1px solid #2a2a2c;border-radius:var(--radius);max-width:480px;width:100%;padding:24px;max-height:80vh;overflow:auto}.overlay h2{margin-top:0;color:var(--accent);font-size:1.1rem}.overlay table{width:100%;border-collapse:collapse;font-size:.9rem}.overlay td{padding:5px 8px;vertical-align:top}.overlay td.code{color:var(--accent);white-space:nowrap;width:7ch}.overlay .close{margin-top:16px}.summary{text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center}.summary .time{font-size:3rem;color:var(--accent);font-weight:700}.summary .label{color:var(--sub)}.btn{background:var(--accent);color:#111;border:none;border-radius:var(--radius);padding:10px 20px;font-weight:700;cursor:pointer;font-family:inherit}.btn.ghost{background:transparent;color:var(--text);border:1px solid #2a2a2c}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.progress{text-align:center;color:var(--sub);font-size:.9rem}.authbtn{display:inline-flex;gap:8px;align-items:center;position:relative}.authbtn .handle{color:var(--text)}.dropdown{position:absolute;top:120%;right:0;background:var(--bg-elev);border:1px solid #2a2a2c;border-radius:var(--radius);display:flex;flex-direction:column;padding:4px;z-index:5}.sprint-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.toggle{display:inline-flex;gap:8px;align-items:center;color:var(--sub);cursor:pointer;font-size:.9rem}.toggle input{accent-color:var(--accent)}.summary-submit{display:flex;flex-direction:column;gap:12px;align-items:center}.golf-desc{text-align:center;color:var(--sub);margin:0}.golf-submit{display:flex;flex-direction:column;gap:12px;align-items:center}.golf-ok{color:var(--success)}.golf-ko{color:var(--error)}.boards{display:flex;flex-direction:column;gap:28px}.leaderboard h3{color:var(--sub);font-weight:500;font-size:.95rem;margin:0 0 8px}.leaderboard table{width:100%;border-collapse:collapse;font-size:.95rem}.leaderboard td{padding:4px 8px}.leaderboard .rank{color:var(--sub);width:3ch}.leaderboard .who{color:var(--text)}.leaderboard .val{text-align:right;color:var(--accent)}.leaderboard tr.me{background:color-mix(in srgb,var(--accent) 12%,transparent)}
