:root{--bg-page:#f8f9fb;--bg-card:#fff;--bg-muted:#f1f3f5;--text-primary:#1a1a2e;--text-secondary:#6b7280;--text-tertiary:#9ca3af;--accent:#3b82f6;--accent-hover:#2563eb;--accent-light:#eff6ff;--green:#22c55e;--green-light:#f0fdf4;--red:#ef4444;--red-light:#fef2f2;--amber:#f59e0b;--amber-light:#fffbeb;--border:#e5e7eb;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001f;--font-main:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SF Mono", "Fira Code", "Consolas", monospace;--radius:12px;--radius-sm:8px;--radius-xs:6px}body{font-family:var(--font-main);background:var(--bg-page);min-height:100vh;color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0}.home{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;padding:40px 20px;display:flex}.home h1{color:var(--text-primary);letter-spacing:-1px;font-size:48px;font-weight:800}.difficulty-select{background:var(--bg-muted);border-radius:var(--radius-sm);gap:4px;padding:4px;display:flex}.difficulty-select button{color:var(--text-secondary);font-family:var(--font-main);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:8px 20px;font-size:14px;font-weight:500;transition:all .15s}.difficulty-select button:hover{color:var(--text-primary)}.difficulty-select button.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm);font-weight:600}.home .primary{font-size:16px;font-weight:600;font-family:var(--font-main);background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:14px 44px;transition:all .15s}.home .primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.home .primary:active{transform:translateY(0)}.home .divider{color:var(--text-tertiary);font-size:14px}.home button:not(.primary):not(.difficulty-select button){font-size:14px;font-weight:600;font-family:var(--font-main);background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:10px 28px;transition:all .15s}.home button:not(.primary):not(.difficulty-select button):hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.home button:not(.primary):not(.difficulty-select button):active{transform:translateY(0)}.join-room{gap:8px;display:flex}.join-room input{font-family:var(--font-mono);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);text-transform:uppercase;letter-spacing:2px;padding:10px 16px;font-size:15px;transition:border-color .15s}.join-room input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #3b82f61a}.join-room input::placeholder{color:var(--text-tertiary);text-transform:none;letter-spacing:0}.nickname-input{width:100%;max-width:260px}.nickname-input input{width:100%;font-family:var(--font-main);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);text-align:center;box-sizing:border-box;padding:12px 16px;font-size:15px;transition:border-color .15s}.nickname-input input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #3b82f61a}.nickname-input input::placeholder{color:var(--text-tertiary)}.rules-btn{font-size:13px;font-weight:500;font-family:var(--font-main);color:var(--text-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;margin-top:12px;padding:8px 20px;transition:all .15s}.rules-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.rules-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.rules-modal{background:var(--bg-card);border-radius:var(--radius-md,12px);width:100%;max-width:560px;max-height:80vh;box-shadow:var(--shadow-lg,0 20px 60px #0000004d);color:var(--text-primary);padding:36px 32px;position:relative;overflow-y:auto}.rules-close{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:4px 8px;font-size:18px;position:absolute;top:12px;right:12px}.rules-close:hover{color:var(--text-primary);background:var(--bg-muted)}.rules-modal h2{margin:0 0 24px;font-size:24px;font-weight:700}.rules-modal h3{color:var(--accent);margin:20px 0 8px;font-size:15px;font-weight:600}.rules-modal p,.rules-modal li{color:var(--text-secondary);font-size:14px;line-height:1.6}.rules-modal ul,.rules-modal ol{margin:4px 0;padding-left:20px}.rules-modal li{margin:4px 0}.rules-modal section{margin-bottom:4px}@media (width<=768px){.home h1{font-size:32px}.home .primary{width:100%;max-width:260px;padding:12px 32px}.home button:not(.primary):not(.difficulty-select button){width:100%;max-width:260px}.join-room{flex-direction:column;width:100%;max-width:260px}.join-room input{box-sizing:border-box;width:100%}.join-room button{width:100%!important;max-width:none!important}.nickname-input{width:100%;max-width:260px}.rules-modal{max-height:85vh;padding:24px 20px}.rules-modal h2{font-size:20px}}.code-input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:16px;padding:20px 28px;display:flex}.code-input__digit{flex-direction:column;align-items:center;gap:6px;display:flex}.code-input__digit label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:600}.code-input__btn{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg-muted);cursor:pointer;width:48px;height:28px;color:var(--text-secondary);justify-content:center;align-items:center;font-size:14px;line-height:1;transition:all .15s;display:flex}.code-input__btn:hover:not(:disabled){background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.code-input__btn:active:not(:disabled){background:var(--accent);color:#fff}.code-input__btn:disabled{opacity:.3;cursor:default}.code-input__value{width:48px;height:56px;color:var(--text-primary);background:var(--bg-muted);border:2px solid var(--border);border-radius:var(--radius-sm);font-size:32px;font-weight:700;font-family:var(--font-mono);justify-content:center;align-items:center;display:flex}.code-input--disabled .code-input__btn{opacity:.3;cursor:default}.code-input--disabled .code-input__value{color:var(--text-tertiary)}@media (width<=768px){.code-input{gap:12px;padding:14px 16px}.code-input__value{width:42px;height:48px;font-size:26px}.code-input__btn{width:42px}}.verifier-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);min-width:200px;max-width:260px;box-shadow:var(--shadow-sm);padding:0;transition:box-shadow .2s,transform .2s;overflow:hidden}.verifier-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.verifier-card__label{color:var(--text-primary);text-align:center;background:var(--bg-muted);border-bottom:1px solid var(--border);letter-spacing:.5px;text-transform:uppercase;padding:14px 16px 12px;font-size:13px;font-weight:700}.verifier-card__criteria{flex-direction:column;gap:2px;margin:0;padding:12px 16px;list-style:none;display:flex}.verifier-card__criterion{border-radius:var(--radius-xs);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;transition:background .15s;display:flex}.verifier-card__criterion--true{background:var(--green-light);color:#166534;border-left:3px solid var(--green);font-weight:600}.verifier-card__criterion--true:after{display:none}.verifier-card__criterion--false{background:var(--red-light);color:#991b1b;border-left:3px solid var(--red);opacity:.8}.verifier-card__query-btn{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;letter-spacing:.3px;border:none;width:calc(100% - 32px);margin:0 16px 16px;padding:10px;font-size:13px;font-weight:600;transition:background .15s}.verifier-card__query-btn:hover:not(:disabled){background:var(--accent-hover)}.verifier-card__query-btn:disabled{opacity:.4;cursor:default}.verifier-card__result{font-size:15px;font-weight:700}@media (width<=768px){.verifier-card{min-width:unset;width:100%;max-width:none}}.notesheet{font-family:var(--font-mono);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px;font-size:11px}.notesheet__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;display:flex}.notesheet__title{color:var(--text-primary);font-size:14px;font-weight:700;font-family:var(--font-main)}.notesheet__count{color:var(--text-tertiary);font-size:12px;font-family:var(--font-main)}.notesheet__section{margin-bottom:12px}.notesheet__section-label{color:var(--text-secondary);background:var(--bg-muted);border-radius:var(--radius-xs);font-size:12px;font-weight:600;font-family:var(--font-main);margin-bottom:4px;padding:3px 8px;display:inline-block}.notesheet__grid{grid-template-columns:repeat(5,28px);gap:2px;display:grid}.notesheet__cell{border:1px solid var(--border);cursor:pointer;background:var(--bg-card);-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:center;align-items:center;width:28px;height:24px;font-size:10px;transition:all .1s;display:flex}.notesheet__cell:hover{border-color:var(--accent);background:var(--accent-light)}.notesheet__cell--eliminated{background:var(--red-light);color:var(--red);border-color:#fecaca;font-weight:700}.notesheet__cell--possible{background:var(--green-light);color:var(--green);border-color:#bbf7d0;font-weight:700}.notesheet__axis-label{color:var(--text-tertiary);text-align:center;font-size:10px}.notesheet__row{align-items:center;gap:2px;display:flex}.notesheet__row-label{width:16px;color:var(--text-tertiary);text-align:right;font-size:10px}.notesheet__col-labels{gap:2px;margin-bottom:2px;margin-left:18px;display:flex}.notesheet__col-label{text-align:center;width:28px;color:var(--text-tertiary);font-size:10px}@media (width<=768px){.notesheet{padding:12px}.notesheet__grid{grid-template-columns:repeat(5,24px)}.notesheet__cell{width:24px;height:22px;font-size:9px}.notesheet__col-labels{margin-left:16px}.notesheet__col-label{width:24px}}.round-tracker{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:16px;padding:12px 20px;display:flex}.round-tracker__current{font-size:14px;font-weight:700;font-family:var(--font-mono);background:var(--accent-light);color:var(--accent);border-radius:var(--radius-xs);padding:4px 12px}.round-tracker__queries{gap:6px;display:flex}.round-tracker__dot{border:2px solid var(--border);background:var(--bg-muted);border-radius:50%;width:14px;height:14px;transition:all .2s}.round-tracker__dot--used{background:var(--accent);border-color:var(--accent)}.round-tracker__history{gap:6px;margin-left:auto;font-size:12px;display:flex}.round-tracker__past-round{background:var(--bg-muted);border-radius:var(--radius-xs);font-family:var(--font-mono);color:var(--text-secondary);padding:4px 10px;font-size:12px}@media (width<=768px){.round-tracker{flex-wrap:wrap;gap:8px;padding:10px 14px}.round-tracker__history{flex-wrap:wrap;margin-left:0}}.history{width:100%}.history__title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px;font-size:12px;font-weight:700}.history__list{flex-direction:column;gap:8px;display:flex}.history__round{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px}.history__round-header{align-items:center;gap:10px;margin-bottom:6px;display:flex}.history__round-num{color:var(--accent);background:var(--accent-light,#3b82f61a);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700}.history__code{font-family:var(--font-mono);color:var(--text-primary);letter-spacing:2px;font-size:16px;font-weight:700}.history__queries{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.history__query{border-radius:var(--radius-xs);justify-content:space-between;align-items:center;padding:4px 8px;font-size:12px;display:flex}.history__query--true{background:var(--green-light,#22c55e1a)}.history__query--false{background:var(--red-light,#ef44441a)}.history__verifier-name{color:var(--text-secondary);font-weight:600}.history__result{font-size:14px;font-weight:700}.history__query--true .history__result{color:var(--green,#22c55e)}.history__query--false .history__result{color:var(--red,#ef4444)}.history__no-query{color:var(--text-tertiary);margin:0;font-size:11px}.game-board{grid-template:"tracker tracker tracker tracker""history verifiers center notes"1fr/200px auto 1fr 200px;gap:20px;max-width:1200px;min-height:100vh;margin:0 auto;padding:24px;display:grid}.game-board__tracker{grid-area:tracker}.game-board__verifiers{flex-wrap:wrap;grid-area:verifiers;align-content:flex-start;gap:12px;display:flex}.game-board__center{flex-direction:column;grid-area:center;align-items:center;gap:20px;padding-top:20px;display:flex}.game-board__actions{gap:10px;display:flex}.game-board__btn{border-radius:var(--radius-sm);font-size:14px;font-weight:600;font-family:var(--font-main);cursor:pointer;color:#fff;border:none;padding:10px 24px;transition:all .15s}.game-board__btn:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.game-board__btn:active:not(:disabled){transform:translateY(0)}.game-board__btn:disabled{opacity:.4;cursor:default}.game-board__btn--propose{background:var(--accent)}.game-board__btn--propose:hover:not(:disabled){background:var(--accent-hover)}.game-board__btn--final{background:var(--amber)}.game-board__btn--final:hover:not(:disabled){background:#d97706}.game-board__btn--next{background:var(--green)}.game-board__btn--next:hover:not(:disabled){background:#16a34a}.game-board__notes{grid-area:notes;max-height:calc(100vh - 100px);overflow-y:auto}.game-board__modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.game-board__modal{background:var(--bg-card);border:1px solid var(--border);text-align:center;max-width:400px;box-shadow:var(--shadow-lg);border-radius:16px;padding:40px}.game-board__modal h2{margin-bottom:12px;font-size:28px}.game-board__modal p{color:var(--text-secondary);margin-bottom:8px;font-size:15px}.game-board__modal--win h2{color:var(--green)}.game-board__modal--lose h2{color:var(--red)}.game-board__history{grid-area:history;max-height:calc(100vh - 100px);overflow-y:auto}@media (width<=768px){.game-board{grid-template:"tracker""center""verifiers""history""notes"/1fr;gap:14px;max-width:100%;padding:12px}.game-board__verifiers{justify-content:center}.game-board__notes,.game-board__history{max-height:none}.game-board__center{padding-top:0}.game-board__actions{flex-wrap:wrap;justify-content:center}}.player-list{flex-wrap:wrap;justify-content:center;gap:10px;padding:12px 0;display:flex}.player-list__card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:110px;box-shadow:var(--shadow-sm);flex-direction:column;align-items:center;gap:4px;padding:12px 18px;transition:box-shadow .15s;display:flex}.player-list__card--you{border-color:var(--accent);background:var(--accent-light)}.player-list__card--solved{border-color:var(--green);background:var(--green-light)}.player-list__card--failed{border-color:var(--red);background:var(--red-light);opacity:.7}.player-list__name{color:var(--text-primary);align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.player-list__you-badge{background:var(--accent);color:#fff;border-radius:10px;padding:2px 6px;font-size:10px;font-weight:600}.player-list__host-badge{background:var(--amber);color:#fff;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.player-list__status{color:var(--text-tertiary);font-size:11px}.player-list__yacha-btn{font-size:11px;font-weight:600;font-family:var(--font-main);background:var(--red,#ef4444);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:4px;padding:4px 10px;transition:all .15s}.player-list__yacha-btn:hover{background:#dc2626;transform:scale(1.05)}@media (width<=768px){.player-list{gap:8px}.player-list__card{min-width:90px;padding:8px 12px}.player-list__name{font-size:13px}}.lobby{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;padding:40px 20px;display:flex}.lobby__title{color:var(--text-primary);letter-spacing:-.5px;font-size:32px;font-weight:800}.lobby__subtitle{color:var(--text-tertiary);font-size:14px}.lobby__code-display{background:var(--bg-muted);border:2px dashed var(--border);border-radius:var(--radius);padding:16px 32px}.lobby__code{font-family:var(--font-mono);letter-spacing:6px;color:var(--text-primary);text-transform:uppercase;font-size:32px;font-weight:700}.lobby__error{color:var(--red);background:var(--red-light);border-radius:var(--radius-xs);padding:8px 16px;font-size:14px;font-weight:600}.lobby__actions{margin-top:12px}.lobby__btn--start{font-size:16px;font-weight:600;font-family:var(--font-main);background:var(--green);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:14px 44px;transition:all .15s}.lobby__btn--start:hover{box-shadow:var(--shadow-md);background:#16a34a;transform:translateY(-1px)}.lobby__btn--start:active{transform:translateY(0)}.lobby__waiting{color:var(--text-tertiary);font-size:14px}.lobby__spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite lobby-spin}@keyframes lobby-spin{to{transform:rotate(360deg)}}@media (width<=768px){.lobby{gap:16px;padding:24px 16px}.lobby__title{font-size:24px}.lobby__code{letter-spacing:4px;font-size:24px}.lobby__code-display{padding:12px 20px}}.room{gap:20px;min-height:100vh;padding:20px;display:flex}.room--loading{flex-direction:column;justify-content:center;align-items:center}.room__spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite room-spin}@keyframes room-spin{to{transform:rotate(360deg)}}.room__sidebar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:200px;box-shadow:var(--shadow-sm);flex-shrink:0;height:fit-content;padding:16px}.room__sidebar-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1.5px;text-align:center;margin-bottom:12px;font-size:12px;font-weight:700}.room__sidebar .player-list{flex-direction:column}.room__sidebar .player-list__card{min-width:unset;width:100%;padding:10px 14px}.room__main{flex-direction:column;flex:1;align-items:center;gap:20px;display:flex}.room__error{color:var(--red);background:var(--red-light);border-radius:var(--radius-xs);padding:8px 16px;font-size:14px;font-weight:600}.room__verifiers{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.room__verifier-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:200px;box-shadow:var(--shadow-sm);padding:0;transition:box-shadow .2s,transform .2s;overflow:hidden}.room__verifier-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.room__verifier-label{text-align:center;background:var(--bg-muted);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.5px;padding:14px 16px 12px;font-size:13px;font-weight:700}.room__verifier-criteria{margin:0;padding:12px 16px;list-style:none}.room__criterion{color:var(--text-secondary);border-bottom:1px solid var(--bg-muted);padding:6px 0;font-size:13px}.room__criterion:last-child{border-bottom:none}.room__query-btn{width:calc(100% - 32px);font-family:var(--font-main);background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;margin:0 16px 16px;padding:10px;font-size:13px;font-weight:600;transition:background .15s}.room__query-btn:hover:not(:disabled){background:var(--accent-hover)}.room__query-btn:disabled{opacity:.4;cursor:not-allowed}.room__query-result{text-align:center;border-radius:var(--radius-xs);margin:0 16px 16px;padding:8px 16px;font-size:14px;font-weight:700}.room__query-result--true{color:#166534;background:var(--green-light)}.room__query-result--false{color:#991b1b;background:var(--red-light)}.room__controls{flex-direction:column;align-items:center;gap:16px;display:flex}.room__actions{gap:10px;display:flex}.room__btn{font-size:14px;font-weight:600;font-family:var(--font-main);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:10px 28px;transition:all .15s}.room__btn--propose{background:var(--accent)}.room__btn--propose:hover{background:var(--accent-hover)}.room__btn--next{background:var(--green)}.room__btn--next:hover{background:#16a34a}.room__btn--final{background:var(--amber)}.room__btn--final:hover{background:#d97706}.room__btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.room__btn:active{transform:translateY(0)}.room__notes{width:100%;max-width:600px}.room__modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.room__modal{background:var(--bg-card);border:1px solid var(--border);text-align:center;box-shadow:var(--shadow-lg);border-radius:16px;width:90%;max-width:500px;padding:32px}.room__modal h2{margin-bottom:16px;font-size:28px}.room__modal--win h2{color:var(--green)}.room__modal--lose h2{color:var(--red)}.room__modal .room__btn{margin-top:20px}.yacha-toast{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;animation:.3s ease-out yacha-in;display:flex;position:fixed;inset:0}.yacha-toast__content{background:var(--red,#ef4444);color:#fff;text-align:center;border-radius:16px;padding:32px 48px;font-size:24px;font-weight:800;line-height:1.5;animation:.5s ease-in-out infinite alternate yacha-shake;box-shadow:0 20px 60px #ef444466}@keyframes yacha-in{0%{opacity:0}to{opacity:1}}@keyframes yacha-shake{0%{transform:rotate(-1deg)scale(1)}to{transform:rotate(1deg)scale(1.02)}}@media (width<=768px){.room{flex-direction:column;gap:14px;padding:12px}.room__sidebar{width:100%;padding:12px}.room__sidebar .player-list{flex-flow:wrap}.room__sidebar .player-list__card{width:auto;min-width:90px;padding:8px 12px}.room__verifiers{gap:10px}.room__verifier-card{width:100%;max-width:none}.room__controls{width:100%}.room__actions{flex-wrap:wrap;justify-content:center}.room__notes{max-width:100%}.room__modal{width:95%;padding:24px 16px}.yacha-toast__content{padding:24px 20px;font-size:18px}}
