.code-block{background:#1e1e1e;border-radius:8px;padding:12px 16px;overflow-x:auto;font-family:Courier New,Courier,monospace;font-size:14px;line-height:1.6;margin:8px 0}.code-block code{font-family:inherit;font-size:inherit}.code-line{display:block;white-space:pre;min-height:1.6em}.code-text{color:#d4d4d4}.inline-blank{font-family:inherit;font-size:inherit;line-height:inherit;background:#ffffff14;border:none;border-bottom:2px dashed var(--app-hint-color, #888);color:#e0e0e0;padding:0 2px;margin:0 1px;outline:none;display:inline;vertical-align:baseline;box-sizing:content-box}.inline-blank:focus{border-bottom-color:var(--app-link-color, #4fc3f7);background:#4fc3f71a}.inline-blank::placeholder{color:#888;font-style:normal}.inline-blank-correct{border-bottom:2px solid #4caf50;background:#4caf5026;color:#a5d6a7}.inline-blank-wrong{border-bottom:2px solid #f44336;background:#f4433626;color:#ef9a9a}.inline-blank[readonly]{cursor:default;opacity:.9}*{box-sizing:border-box}:root{--app-bg: #0e1117;--app-panel: #161b22;--app-card: #0d1117;--app-header: #0d1117;--app-text: #e6edf3;--app-muted: #8b949e;--app-link: #58a6ff;--app-button: #238636;--app-button-text: #ffffff;--app-border: #30363d;--app-accent: #58a6ff;--app-destructive: #f85149;--app-success: #3fb950;--app-warning: #d29922;color-scheme:dark}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--app-bg);color:var(--app-text);-webkit-font-smoothing:antialiased}.page{max-width:480px;margin:0 auto;padding:calc(16px + env(safe-area-inset-top)) 16px calc(72px + env(safe-area-inset-bottom));min-height:100dvh;display:flex;flex-direction:column;gap:16px}.page-title{margin:0 0 4px;font-size:24px;font-weight:700}.muted{color:var(--app-muted);font-size:14px}.error{color:var(--app-destructive);font-size:13px}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60dvh;gap:16px}.loading-spinner{width:36px;height:36px;border:3px solid var(--app-border);border-top-color:var(--app-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--app-muted);font-size:14px}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60dvh;gap:12px;text-align:center}.error-screen h2{margin:0;font-size:20px}button{background:var(--app-button);border:none;color:var(--app-button-text);padding:10px 16px;border-radius:10px;cursor:pointer;font-weight:600;font-size:14px;transition:opacity .15s}button:active{opacity:.8}button:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--app-button);color:var(--app-button-text)}.btn-secondary{background:var(--app-border);color:var(--app-text)}.btn-large{width:100%;padding:14px;font-size:16px;border-radius:12px}.btn-small{padding:6px 12px;font-size:13px;border-radius:8px}.btn-submit{background:var(--app-accent)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:0;background:var(--app-panel);border-top:1px solid var(--app-border);padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:100}.bottom-nav-item{flex:1;max-width:120px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;color:var(--app-muted);text-decoration:none;font-size:11px;font-weight:500;transition:color .15s}.bottom-nav-item.active{color:var(--app-accent)}.bottom-nav-item svg{width:22px;height:22px}.badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:600;text-transform:capitalize}.badge-free{background:#3fb95026;color:var(--app-success)}.badge-ticket{background:#d2992226;color:var(--app-warning)}.badge-difficulty,.badge-pending{background:#58a6ff26;color:var(--app-accent)}.badge-vouchered{background:#d2992226;color:var(--app-warning)}.badge-claimed{background:#3fb95026;color:var(--app-success)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;text-align:center;color:var(--app-muted)}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f851491a;border:1px solid rgba(248,81,73,.3);border-radius:10px;padding:10px 14px;color:var(--app-destructive);font-size:14px}.rooms-grid{display:grid;gap:10px}.room-card{display:flex;flex-direction:column;gap:6px;background:var(--app-panel);border:1px solid var(--app-border);border-radius:12px;padding:14px 16px;text-align:left;color:inherit;width:100%;transition:border-color .15s}.room-card:active{border-color:var(--app-accent)}.room-card-top{display:flex;justify-content:space-between;align-items:center}.room-card-timer{font-size:12px;color:var(--app-muted)}.room-card-title{font-size:16px;font-weight:600}.room-card-meta{display:flex;gap:8px;font-size:13px}.lobby-page{display:flex;flex-direction:column;gap:16px}.back-btn{background:none;color:var(--app-accent);padding:4px 0;font-size:14px;width:fit-content}.lobby-card{background:var(--app-panel);border:1px solid var(--app-border);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:8px}.lobby-card h2{margin:4px 0 0;font-size:22px}.lobby-info{display:flex;flex-direction:column;gap:6px;margin-top:8px}.lobby-info-row{display:flex;justify-content:space-between;font-size:14px}.lobby-leaderboard{margin-top:8px}.lobby-leaderboard h3{margin:0 0 8px;font-size:16px}.game-page{display:flex;flex-direction:column;gap:16px}.game-actions{display:flex;gap:10px;margin-top:4px}.game-actions .btn-primary{flex:1}.timer-bar-wrapper{position:relative;height:32px;background:var(--app-panel);border-radius:8px;overflow:hidden;display:flex;align-items:center}.timer-bar{position:absolute;left:0;top:0;bottom:0;border-radius:8px;transition:width 1s linear}.timer-green{background:#3fb95040}.timer-yellow{background:#d2992240}.timer-red{background:#f8514940}.timer-text{position:relative;z-index:1;width:100%;text-align:center;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.task-card{background:var(--app-panel);border:1px solid var(--app-border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}.task-card-header{display:flex;justify-content:space-between;align-items:center}.task-progress{font-size:13px;color:var(--app-muted);font-weight:500}.task-title{margin:0;font-size:17px}.task-prompt{margin:0;font-size:14px;color:var(--app-text);line-height:1.5}.task-code{background:var(--app-card);border:1px solid var(--app-border);border-radius:10px;padding:12px;font-size:13px;font-family:JetBrains Mono,Fira Code,monospace;overflow-x:auto;white-space:pre;line-height:1.5;margin:0}.task-blanks{display:flex;flex-direction:column;gap:10px}.blank-label{display:block;font-size:12px;color:var(--app-muted);margin-bottom:4px}.blank-choices{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--app-card);border:1px solid var(--app-border);color:var(--app-text);padding:8px 14px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:500;transition:border-color .15s,background .15s}.chip:active{opacity:.8}.chip-selected{border-color:var(--app-accent);background:#58a6ff1f;color:var(--app-accent)}.blank-input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--app-border);background:var(--app-card);color:var(--app-text);font-size:14px;font-family:JetBrains Mono,Fira Code,monospace;outline:none;transition:border-color .15s}.blank-input:focus{border-color:var(--app-accent)}.score-card{background:var(--app-panel);border:1px solid var(--app-border);border-radius:14px;padding:24px 20px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}.score-main{font-size:48px;font-weight:700;line-height:1}.score-label{font-size:14px;color:var(--app-muted);text-transform:uppercase;letter-spacing:1px}.score-details{display:flex;gap:24px;margin-top:12px}.score-detail{display:flex;flex-direction:column;align-items:center;gap:2px}.score-detail-value{font-size:20px;font-weight:600}.score-detail-label{font-size:12px;color:var(--app-muted)}.score-correct{color:var(--app-success)}.score-wrong{color:var(--app-destructive)}.score-meta{display:flex;gap:16px;font-size:13px;color:var(--app-muted);margin-top:8px}.score-rank{font-size:18px;font-weight:600;margin-top:8px}.leaderboard{display:flex;flex-direction:column;gap:2px}.leaderboard-row{display:grid;grid-template-columns:36px 1fr auto auto;gap:8px;align-items:center;padding:8px 12px;border-radius:8px;font-size:14px}.leaderboard-me{background:#58a6ff14}.leaderboard-rank{font-weight:600;font-size:13px;color:var(--app-muted)}.rank-1{color:gold}.rank-2{color:silver}.rank-3{color:#cd7f32}.leaderboard-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-score{font-weight:600;font-variant-numeric:tabular-nums}.leaderboard-time{font-size:12px;font-variant-numeric:tabular-nums}.result-page{display:flex;flex-direction:column;gap:16px}.result-leaderboard{margin-top:4px}.result-leaderboard h3{margin:0 0 8px;font-size:16px}.result-reward{background:#3fb9501a;border:1px solid rgba(63,185,80,.3);border-radius:14px;padding:16px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.result-reward-label{font-size:14px;color:var(--app-success);font-weight:600}.result-reward-amount{font-size:24px;font-weight:700}.result-actions{margin-top:8px}.profile-page{display:flex;flex-direction:column;gap:16px}.profile-section{background:var(--app-panel);border:1px solid var(--app-border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}.profile-section h3{margin:0;font-size:16px}.section-header{display:flex;justify-content:space-between;align-items:center}.wallet-row{display:flex;gap:10px;align-items:center}.reward-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-top:1px solid var(--app-border)}.reward-row:first-of-type{border-top:none}.reward-info{display:flex;gap:8px;align-items:center}.reward-amount{font-weight:600}.claim-result{font-size:13px;padding:8px;background:var(--app-card);border-radius:8px;word-break:break-all}textarea,input,select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--app-border);background:var(--app-card);color:var(--app-text);font-size:14px;outline:none}textarea:focus,input:focus,select:focus{border-color:var(--app-accent)}textarea{resize:vertical}.result-explanations{margin:16px 0;padding:12px;background:var(--app-section-bg-color, rgba(255, 255, 255, .05));border-radius:8px}.result-explanations h3{margin:0 0 12px;font-size:16px;color:var(--app-text-color, #fff)}.result-explanation{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--app-section-separator-color, rgba(255, 255, 255, .1))}.result-explanation:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.result-explanation-label{font-size:13px;font-weight:600;color:var(--app-subtitle-text-color, #aaa);margin:0 0 4px}.result-explanation-text{font-size:14px;color:var(--app-text-color, #e0e0e0);margin:0;line-height:1.5}
