*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f0f0ec;--surface: #ffffff;--border: #c0bfb8;--text: #1a1a18;--muted: #6b6b65;--accent-blue: #1a5fb4;--accent-gold: #ffc200;--accent-green: #2a7c34;--accent-red: #c0392b}html,body{height:100%;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif}#root{height:100%;min-height:100dvh;display:flex;align-items:center;justify-content:center}.game{display:flex;flex-direction:column;align-items:center;gap:28px;padding:40px 24px;width:100%;max-width:480px}h1{font-size:2rem;font-weight:800;letter-spacing:.3em;color:var(--accent-blue)}.game-selector{display:flex;gap:10px}.game-tab{min-width:56px;height:52px;padding:4px 12px;border-radius:999px;border:2px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:border-color .12s,background .12s,color .12s}.tab-target{font-size:.9rem;font-weight:700;line-height:1}.tab-stars{font-size:.6rem;line-height:1;letter-spacing:.05em}.game-tab:disabled{opacity:.25;cursor:default}.game-tab.tab-active{border-color:var(--accent-blue);background:#d6e4f7;color:var(--accent-blue)}.game-tab.tab-won{border-color:var(--accent-green);color:var(--accent-green)}.game-tab.tab-won.tab-active{background:#d4edda}.game-tab.tab-ok{border-color:var(--accent-gold);color:var(--accent-gold)}.game-tab.tab-ok.tab-active{background:#fdf0cc}.game-tab.tab-lost{border-color:var(--accent-red);color:var(--accent-red)}.game-tab.tab-lost.tab-active{background:#fde8e8}.target-area{display:flex;flex-direction:column;align-items:center;gap:4px}.target{font-size:3.5rem;font-weight:700;color:var(--text);line-height:1;display:flex;align-items:center;gap:.25em}.target-stars,.tab-stars{color:var(--accent-gold)}.target-stars{font-size:2.2rem;animation:pop .25s ease-out}.timer{font-size:1.6rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.05em}.timer-won{color:var(--accent-green)}.timer-lost{color:var(--accent-red)}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.numbers{display:grid;grid-template-columns:repeat(3,88px);gap:14px}.ops{display:flex;gap:12px}.tile{display:flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid var(--border);background:var(--surface);color:var(--text);font-size:1.4rem;font-weight:600;cursor:pointer;transition:border-color .12s,background .12s,color .12s,transform .08s;-webkit-user-select:none;user-select:none}.fly-tile{position:fixed;pointer-events:none;z-index:100;display:none}.tile:active:not(:disabled){transform:scale(.93)}.tile:disabled{opacity:.35;cursor:default}.number-tile{width:88px;height:88px}.number-tile:hover:not(:disabled):not(.empty){border-color:var(--accent-blue)}.number-tile.empty{border-color:transparent;background:transparent;cursor:default}.number-tile.invisible{opacity:0}.number-tile.selected{border-color:var(--accent-blue);background:#d6e4f7;color:var(--accent-blue)}.number-tile.solved{border-color:var(--accent-green);background:#d4edda;color:var(--accent-green);animation:pop .3s ease-out}.op-tile{width:68px;height:68px;font-size:1.5rem}.op-tile:hover:not(:disabled){border-color:var(--accent-gold)}.op-tile.selected{border-color:var(--accent-gold);background:#fdf0cc;color:var(--accent-gold)}.error{font-size:.9rem;color:var(--accent-red);min-height:1.2em}.controls{display:flex;gap:12px}.control-btn{padding:10px 22px;border-radius:999px;border:2px solid var(--border);background:transparent;font-size:.9rem;font-weight:600;cursor:pointer;transition:border-color .12s,color .12s;letter-spacing:.05em}.control-btn:disabled{opacity:.3;cursor:default}.undo-btn{color:var(--muted);font-size:1.3rem}.undo-btn:hover:not(:disabled){border-color:var(--accent-red);color:var(--accent-red)}.submit-btn{color:var(--muted)}.submit-btn.submit-1:not(:disabled),.submit-btn.submit-2:not(:disabled){border-color:var(--accent-gold);color:var(--accent-gold)}.results-btn{color:var(--muted)}.results-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.hack-btn{color:var(--muted);opacity:.5;font-size:.75rem}.hack-btn:hover{opacity:1;border-color:var(--accent-red);color:var(--accent-red)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--surface);border-radius:16px;padding:28px 32px;max-width:780px;width:92%;max-height:85vh;display:flex;flex-direction:column;gap:20px;box-shadow:0 8px 32px #0000002e}.modal h2{font-size:1.3rem;font-weight:800;color:var(--accent-blue);letter-spacing:.1em}.results-scroll{overflow-y:auto;overflow-x:auto}.results-table{width:100%;border-collapse:collapse;font-size:.88rem}.results-table th,.results-table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.results-table th{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.stars-cell{color:var(--accent-gold);white-space:nowrap}.time-cell{white-space:nowrap;font-variant-numeric:tabular-nums}.results-cards{display:none}@media (max-width: 600px){.game{gap:0;padding:24px;min-height:100dvh;justify-content:space-evenly}.ops{gap:6px}.op-tile{width:56px;height:56px}.results-scroll{display:none}.results-cards{display:flex;flex-direction:column;gap:10px;overflow-y:auto}.result-card{border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.card-header{display:flex;align-items:baseline;gap:10px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.card-header::-webkit-details-marker{display:none}.card-target{font-size:1.1rem;font-weight:700;flex:1}.card-time{font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}.card-row{display:flex;gap:10px;font-size:.85rem;align-items:flex-start}.card-value{margin-left:auto;text-align:right}.card-label{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;min-width:58px;padding-top:1px}.totals-card{border-color:var(--accent-blue);position:sticky;bottom:0;background:var(--surface)}.totals-card .card-target{color:var(--accent-blue)}}.optimal-tick{color:var(--accent-green);font-weight:700}.totals-row td{font-weight:700;border-bottom:none;border-top:2px solid var(--border);padding-top:11px}.modal-close-btn{color:var(--muted);align-self:flex-end}.modal-close-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}
