:root{--bg-deep:#0c0c12;--bg-surface:#13131d;--bg-card:#1a1a28;--bg-card-hover:#1f1f30;--bg-elevated:#222234;--text-primary:#f0ece4;--text-secondary:#a8a4a0;--text-muted:#6b6760;--text-dim:#4a4640;--accent:#c8a84e;--accent-dim:#c8a84e26;--accent-glow:#c8a84e40;--board-light:#e8d5b5;--board-dark:#a47551;--board-border:#2a2520;--board-frame:#1e1a16;--speed-1:#3b82f6;--speed-2:#22c55e;--speed-3:#eab308;--speed-4:#f97316;--speed-5:#ef4444;--success:#22c55e;--error:#ef4444;--border:#ffffff0f;--border-strong:#ffffff1a;--font-display:"Cormorant Garamond", "Georgia", serif;--font-body:"DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}[data-board-theme=midnight]{--board-light:#dee3e6;--board-dark:#4b7399}[data-board-theme=emerald]{--board-light:#eeeed2;--board-dark:#769656}[data-board-theme=arctic]{--board-light:#ecf0f1;--board-dark:#95a5a6}[data-board-theme=rosewood]{--board-light:#f4e8d8;--board-dark:#8b4513}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg-deep);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;justify-content:center;min-height:100dvh;display:flex}body:before{content:"";opacity:.025;pointer-events:none;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");position:fixed;inset:0}#root{width:100%;max-width:600px}.app{flex-direction:column;align-items:center;min-height:100dvh;padding:16px;display:flex;position:relative}.header-wrap{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;width:100%;margin-bottom:12px;padding-bottom:12px;display:flex}.header{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.02em;align-items:center;gap:10px;margin-bottom:0;font-size:2.1rem;font-weight:600;display:flex}.header-icon{opacity:.6;width:1.5rem;height:1.5rem}.header-auth{align-items:center;gap:8px;font-size:.85rem;display:flex}.header-user-btn{border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:.82rem;font-weight:500;transition:background .2s,border-color .2s,color .2s;display:flex}.header-user-btn:hover{background:var(--bg-card-hover);border-color:var(--text-muted);color:var(--text-primary)}.home-screen{text-align:center;animation:fadeUp .5s var(--ease-out) both;flex-direction:column;flex:1;align-items:center;gap:0;padding-top:48px;display:flex}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.home-tagline{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.01em;animation:fadeUp .5s var(--ease-out) 50ms both;margin-bottom:12px;font-size:2.8rem;font-weight:700;line-height:1.1}.home-subtitle{font-family:var(--font-display);color:var(--text-secondary);animation:fadeUp .5s var(--ease-out) .1s both;margin-bottom:64px;font-size:1.5rem}.how-to-play-link{color:var(--text-muted);font-family:var(--font-body);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;margin:32px 0;font-size:1.05rem;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .15s,text-decoration-color .15s}.how-to-play-link:hover{color:var(--text-secondary);-webkit-text-decoration-color:var(--text-secondary);text-decoration-color:var(--text-secondary)}.play-button{font-family:var(--font-body);border-radius:var(--radius-md);background:var(--accent);color:#0c0c12;cursor:pointer;transition:transform .15s var(--ease-spring), box-shadow .2s, background .2s;letter-spacing:.02em;animation:fadeUp .5s var(--ease-out) .15s both;border:none;padding:14px 52px;font-size:1.05rem;font-weight:600;box-shadow:0 2px 12px #c8a84e33}.play-button:hover{background:#d4b45a;box-shadow:0 4px 20px #c8a84e4d}.play-button:active{transform:scale(.97);box-shadow:0 1px 8px #c8a84e26}.unlimited-button{color:var(--text-secondary);border:1px solid var(--border-strong);box-shadow:none;background:0 0;padding:12px 40px;font-size:.95rem;animation-delay:.2s}.unlimited-button:hover{background:var(--bg-card);border-color:var(--text-muted);color:var(--text-primary);box-shadow:none}.unlimited-button:active{box-shadow:none;transform:scale(.97)}.home-button{font-family:var(--font-body);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;transition:transform .15s var(--ease-spring), background .2s, border-color .2s;color:var(--text-secondary);background:0 0;padding:12px 24px;font-size:.95rem;font-weight:500}.home-button:hover{background:var(--bg-card);border-color:var(--text-muted)}.home-button:active{transform:scale(.97)}.home-buttons{flex-direction:row;gap:12px;width:100%;display:flex}.home-buttons .play-button,.home-buttons .share-button{flex:1;min-width:0}.home-board-preview{opacity:.45;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;max-width:min(80vw,400px);animation:fadeUp .6s var(--ease-out) .25s both;transition:opacity .3s}.home-board-preview .piece{width:70%;height:70%}.daily-completed{width:100%;max-width:420px;animation:fadeUp .5s var(--ease-out) both;flex-direction:column;align-items:center;gap:14px;margin-bottom:8px;display:flex}.daily-completed-title{font-family:var(--font-display);color:var(--success);font-size:1.4rem;font-weight:600}.daily-reset-note{font-family:var(--font-body);color:var(--text-muted);margin-top:-6px;margin-bottom:8px;font-size:.8rem}.daily-total{color:var(--text-primary);font-size:1rem;font-weight:600;font-family:var(--font-display);font-size:1.15rem}.daily-share{margin-top:4px}.coordinate-prompt{flex-direction:column;align-items:center;gap:2px;margin-top:20px;display:flex}.target-square{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.06em;font-size:3.2rem;font-weight:700;line-height:1.1}.perspective-badge{color:var(--text-muted);letter-spacing:.04em;align-items:center;gap:4px;font-size:.85rem;font-weight:500;display:flex}.perspective-icon{width:1em;height:1em}.board-container{background:var(--board-frame);border-radius:6px;width:100%;max-width:min(90vw,560px);padding:6px;box-shadow:inset 0 1px #ffffff0a,0 4px 24px #0006,0 1px 3px #0000004d}.board{aspect-ratio:1;border-radius:2px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:100%;display:grid;overflow:hidden}.square{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;padding:0;font-size:0;transition:filter .1s;display:flex;position:relative}.square:hover{filter:brightness(1.08)}.square-light{background-color:var(--board-light)}.square-dark{background-color:var(--board-dark)}.piece{pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 1px 1px #00000026);width:80%;height:80%}.square-shake{animation:shake .35s var(--ease-out)}.square-shake:after{content:"";background:#ef444459;animation:.35s ease-out flash;position:absolute;inset:0}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-3px)}30%{transform:translate(3px)}45%{transform:translate(-3px)}60%{transform:translate(2px)}75%{transform:translate(-1px)}}@keyframes flash{0%{opacity:1}to{opacity:0}}.square-correct{animation:pop .4s var(--ease-spring);z-index:2}.square-correct:after{content:"";background:#22c55e73;animation:.5s ease-out forwards pulseCorrect;position:absolute;inset:0}@keyframes pulseCorrect{0%{opacity:1;transform:scale(1)}50%{opacity:.6}to{opacity:0}}@keyframes pop{0%{transform:scale(1)}35%{transform:scale(1.08)}to{transform:scale(1)}}.timer-bar-container{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;width:100%;max-width:min(90vw,560px);height:8px;margin-left:6px;margin-right:6px;overflow:hidden}.timer-bar-fill{border:1.5px solid #0000;border-radius:3px;height:100%;transition:background-color .4s,border-color .4s}.round-indicator{align-items:center;gap:6px;margin-top:8px;margin-bottom:10px;display:flex}.round-dot{background:var(--bg-elevated);border:1px solid var(--border-strong);width:8px;height:8px;transition:all .3s var(--ease-out);border-radius:50%}.round-dot-active{background:var(--accent);border-color:var(--accent);box-shadow:0 0 6px var(--accent-glow)}.round-dot-done{background:var(--text-muted);border-color:var(--text-muted)}.game-screen{width:100%;transition:opacity .3s var(--ease-out);flex-direction:column;align-items:center;display:flex}.game-board-area{justify-content:center;width:100%;display:flex;position:relative}.countdown-overlay{z-index:10;pointer-events:none;background:#0c0c1266;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.countdown-number{font-family:var(--font-display);color:var(--text-primary);animation:countdownPulse 1.05s var(--ease-out) both;font-size:5rem;font-weight:700}@keyframes countdownPulse{0%{opacity:0;transform:scale(.5)}30%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(2)}}.summary-screen{width:100%;max-width:480px;animation:fadeUp .4s var(--ease-out) both;flex-direction:column;align-items:center;gap:16px;padding-top:8px;display:flex}.summary-screen h2{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.02em;font-size:1.6rem;font-weight:600}.results-list{flex-direction:column;gap:6px;width:100%;display:flex}.result-row{background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border);animation:resultSlide .4s var(--ease-out) both;align-items:center;gap:10px;padding:10px 14px;font-size:.95rem;transition:background .2s;display:flex}.result-row:first-child{animation-delay:50ms}.result-row:nth-child(2){animation-delay:.1s}.result-row:nth-child(3){animation-delay:.15s}.result-row:nth-child(4){animation-delay:.2s}.result-row:nth-child(5){animation-delay:.25s}@keyframes resultSlide{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.result-round{color:var(--text-muted);width:28px;font-size:.85rem;font-weight:600}.result-square{font-family:var(--font-display);width:28px;font-size:1.05rem;font-weight:700}.result-perspective{color:var(--text-dim);width:16px;font-size:.85rem}.result-blocks{flex:1;gap:3px;display:flex}.result-block{width:18px;height:18px;transition:transform .2s var(--ease-spring);border-radius:4px}.result-block:hover{transform:scale(1.15)}.result-time{text-align:right;font-variant-numeric:tabular-nums;width:48px;font-size:.9rem;font-weight:700}.result-wrong{color:var(--error);font-size:.8rem;font-weight:500}.total-time{font-family:var(--font-display);color:var(--text-primary);animation:fadeUp .4s var(--ease-out) .3s both;font-size:1.3rem;font-weight:600}.summary-actions{animation:fadeUp .4s var(--ease-out) .35s both;gap:12px;margin-top:4px;display:flex}.share-button,.play-again-button{font-family:var(--font-body);border-radius:var(--radius-md);cursor:pointer;transition:transform .15s var(--ease-spring), box-shadow .2s, background .2s;border:none;padding:12px 24px;font-size:.95rem;font-weight:600}.share-button{background:var(--success);color:#0c0c12;box-shadow:0 2px 10px #22c55e33}.share-button:hover{box-shadow:0 4px 16px #22c55e4d}.play-again-button{background:var(--accent);color:#0c0c12;box-shadow:0 2px 10px #c8a84e33}.play-again-button:hover{box-shadow:0 4px 16px #c8a84e4d}.share-button:active,.play-again-button:active{transform:scale(.97)}.home-footer{animation:fadeUp .5s var(--ease-out) .3s both;align-items:center;gap:8px;margin-top:auto;padding-top:24px;padding-bottom:8px;display:flex}.footer-link{color:var(--text-dim);font-size:.75rem;font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .2s,text-decoration-color .2s}.footer-link:hover{color:var(--text-muted);-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted)}.footer-sep{color:var(--text-dim);font-size:.75rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#000000bf;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:80vh;animation:modalSlideUp .3s var(--ease-out);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 16px 48px #00000080}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2{font-family:var(--font-display);color:var(--text-primary);margin:0;font-size:1.15rem}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.5rem;line-height:1;transition:color .15s}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:16px 20px;overflow-y:auto}.modal-draft-badge{background:var(--speed-4);color:#000;border-radius:4px;margin-bottom:12px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-block}.legal-text{font-family:var(--font-body);color:var(--text-secondary);white-space:pre-wrap;word-wrap:break-word;margin:0;font-size:.85rem;line-height:1.7}.htp-sections{flex-direction:column;gap:4px;display:flex}.htp-section{flex-direction:column;gap:6px;display:flex}.htp-heading{font-family:var(--font-display);color:var(--text-primary);font-size:1.2rem;font-weight:600}.htp-text{color:var(--text-secondary);font-size:.95rem;line-height:1.6}.htp-text strong{color:var(--text-primary);font-weight:600}.htp-text-small{color:var(--text-muted);font-size:.88rem;line-height:1.5}.htp-colors{gap:6px;padding:2px 0;display:flex}.htp-color-chip{border:1.5px solid #0000;border-radius:4px;width:28px;height:8px}.htp-divider{background:var(--border);height:1px;margin:8px 0}.htp-disclaimer{color:var(--text-secondary);text-align:center;padding:4px 8px;font-size:.85rem;line-height:1.5}.auth-screen{width:100%;max-width:400px;animation:fadeUp .4s var(--ease-out) both;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;padding:32px 0 16px;display:flex}.auth-card{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.auth-title{font-family:var(--font-display);color:var(--text-primary);font-size:3rem;font-weight:600}.auth-description{color:var(--text-secondary);text-align:center;max-width:320px;font-size:.9rem;line-height:1.5}.auth-description-muted{color:var(--text-muted);font-size:.8rem}.signup-perks{text-align:center;width:100%;padding:0;list-style:none}.signup-perks li{color:var(--text-secondary);padding:4px 0;font-size:.85rem}.google-button{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-card);width:100%;color:var(--text-primary);font-size:.95rem;font-weight:500;font-family:var(--font-body);cursor:pointer;justify-content:center;align-items:center;gap:10px;padding:12px 16px;transition:background .2s,border-color .2s;display:flex}.google-button:hover{background:var(--bg-card-hover);border-color:var(--text-dim)}.google-button:disabled{opacity:.6;cursor:not-allowed}.google-icon{flex-shrink:0}.auth-divider{width:100%;color:var(--text-dim);align-items:center;gap:12px;font-size:.8rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-form{flex-direction:column;gap:12px;width:100%;display:flex}.form-field{flex-direction:column;gap:4px;display:flex}.form-field label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.form-field input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);font-size:.95rem;font-family:var(--font-body);outline:none;padding:10px 12px;transition:border-color .2s,box-shadow .2s}.form-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.form-field input::placeholder{color:var(--text-dim)}.form-hint{color:var(--text-dim);font-size:.75rem}.auth-error{color:var(--error);text-align:center;border-radius:var(--radius-sm);background:#ef444414;border:1px solid #ef444426;padding:8px 12px;font-size:.85rem}.auth-submit{border-radius:var(--radius-md);background:var(--accent);color:#0c0c12;width:100%;font-size:1rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:transform .15s var(--ease-spring), box-shadow .2s, background .2s;border:none;padding:12px 16px;box-shadow:0 2px 10px #c8a84e33}.auth-submit:hover{box-shadow:0 4px 16px #c8a84e4d}.auth-submit:active{transform:scale(.98)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{color:var(--text-muted);font-size:.85rem}.auth-link{color:var(--accent);font-size:inherit;font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none;transition:color .15s}.auth-link:hover{color:#d4b45a}.forgot-link{font-size:.85rem}.back-link{color:var(--text-muted);font-size:.85rem}.back-link:hover{color:var(--text-secondary)}.auth-legal{color:var(--text-dim);text-align:center;font-size:.75rem}.auth-legal .auth-link{color:var(--text-muted);font-size:.75rem;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.auth-legal .auth-link:hover{-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted)}.insights-screen{width:100%;max-width:480px;animation:fadeUp .4s var(--ease-out) both;flex-direction:column;align-items:center;gap:28px;padding-top:8px;padding-bottom:32px;display:flex}.insights-loading{font-family:var(--font-display);color:var(--text-muted);animation:fadeUp .4s var(--ease-out) both;padding-top:80px;font-size:1.2rem}.insights-empty{text-align:center;flex-direction:column;align-items:center;gap:16px;padding-top:80px;display:flex}.insights-empty-heading{font-family:var(--font-display);color:var(--text-primary);font-size:1.6rem;font-weight:600}.insights-empty-text{color:var(--text-muted);font-size:.95rem;line-height:1.5}.stat-cards{width:100%;animation:fadeUp .4s var(--ease-out) 50ms both;grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;flex-direction:column;align-items:center;gap:4px;padding:16px 12px;transition:border-color .2s;display:flex}.stat-card-top{text-align:left;align-items:flex-start}.stat-cards-single{grid-template-columns:1fr;margin-top:-18px}.stat-card-value{font-family:var(--font-display);color:var(--text-primary);word-break:break-word;font-size:1.6rem;font-weight:700;line-height:1.2}.stat-card-label{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;font-size:.78rem;font-weight:500}.insights-section{flex-direction:column;gap:12px;width:100%;display:flex}.insights-section-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.01em;font-size:1.3rem;font-weight:600}.records-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.record-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:14px;display:flex}.record-card-empty{opacity:.6}.record-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:500}.record-value{font-family:var(--font-display);color:var(--accent);font-size:1.8rem;font-weight:700;line-height:1.1}.record-meta{align-items:center;gap:6px;margin-top:2px;display:flex}.record-square{font-family:var(--font-display);color:var(--text-primary);font-size:.95rem;font-weight:700}.record-badge{letter-spacing:.02em;text-transform:uppercase;border-radius:4px;padding:2px 7px;font-size:.7rem;font-weight:600}.record-badge-daily{background:var(--accent-dim);color:var(--accent)}.record-badge-unlimited{color:var(--speed-1);background:#3b82f626}.record-badge-white{color:var(--text-secondary);background:#ffffff1a}.record-badge-black{color:var(--text-muted);background:#ffffff0f}.record-empty-text{color:var(--text-dim);font-size:.85rem;font-style:italic}.heatmap-group{flex-direction:column;gap:8px;width:100%;display:flex}.heatmap-perspective-label{color:var(--text-secondary);letter-spacing:.02em;font-size:.85rem;font-weight:500}.heatmap-board-container{background:var(--board-frame);border-radius:6px;width:100%;max-width:min(90vw,560px);padding:6px;box-shadow:inset 0 1px #ffffff0a,0 4px 24px #0006,0 1px 3px #0000004d}.heatmap-square{position:relative}.heatmap-square.square-dark{background-color:color-mix(in srgb, var(--board-dark) 25%, var(--board-light))}.heatmap-overlay{pointer-events:none;position:absolute;inset:0}.heatmap-overlay-data{border-radius:var(--radius-sm);border:2px solid;inset:6px}.heatmap-square .piece{z-index:1;opacity:.7;width:70%;height:70%;position:relative}.heatmap-square-selected{outline:2px solid var(--accent);outline-offset:-2px;z-index:2}.heatmap-coord{z-index:2;color:#000000b3;pointer-events:none;font-size:.6rem;font-weight:700;line-height:1;position:absolute}.heatmap-coord-rank{top:4px;left:5px}.heatmap-coord-file{bottom:3px;right:5px}.square-detail{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);animation:fadeUp .25s var(--ease-out) both;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.square-detail-header{align-items:center;gap:8px;display:flex}.square-detail-name{font-family:var(--font-display);color:var(--text-primary);font-size:1.3rem;font-weight:700}.square-detail-perspective{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem}.square-detail-empty{color:var(--text-dim);font-size:.85rem;font-style:italic}.square-detail-stats{gap:20px;display:flex}.square-detail-stat{flex-direction:column;gap:2px;display:flex}.square-detail-stat-value{font-family:var(--font-display);color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:700}.square-detail-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem}.heatmap-legend{flex-wrap:wrap;justify-content:center;gap:10px 16px;padding:8px 0;display:flex}.heatmap-legend-item{align-items:center;gap:5px;display:flex}.heatmap-legend-chip{border-radius:3px;width:14px;height:14px}.heatmap-legend-chip-gray{border:1px solid var(--border);background:#ffffff14}.heatmap-legend-text{color:var(--text-muted);letter-spacing:.02em;font-size:.72rem}.insight-tab-nav{flex-wrap:wrap;gap:8px;width:100%;margin-bottom:4px;display:flex}.insight-tab-pill{font-family:var(--font-body);border-radius:var(--radius-sm);color:var(--text-muted);border:1px solid var(--border-strong);cursor:pointer;transition:all .2s var(--ease-out);-webkit-tap-highlight-color:transparent;background:0 0;padding:7px 14px;font-size:.82rem;font-weight:500}.insight-tab-pill:hover:not(.insight-tab-pill-active){border-color:var(--text-muted);color:var(--text-primary)}.insight-tab-pill:active{transform:scale(.95)}.insight-tab-pill-active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);box-shadow:0 0 6px var(--accent-glow)}.insight-tab-content{width:100%;animation:insightFadeIn .3s var(--ease-out) both;flex-direction:column;align-items:center;gap:8px;display:flex}@keyframes insightFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.insight-bar-chart-group{flex-direction:column;gap:4px;width:100%;display:flex}.insight-bar-time{color:var(--text-muted);white-space:nowrap;padding-bottom:2px;font-size:.62rem;font-weight:600;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.insight-bar-time-best{color:#3b82f6}.insight-bar-time-worst{color:#ef4444}.insight-bar-area{align-items:flex-end;gap:8px;width:100%;height:170px;padding-top:18px;display:flex}.insight-bar-col{flex-direction:column;flex:1;min-height:4px;display:flex;position:relative}.insight-bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;animation:barGrow .5s var(--ease-out) both;transform-origin:bottom;border-style:solid solid none;border-width:2px 2px medium;border-bottom-color:currentColor;flex:1}@keyframes barGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.insight-bar-labels-row{gap:8px;display:flex}.insight-bar-label{text-align:center;color:var(--text-dim);font-size:.72rem;font-weight:600;font-family:var(--font-body);flex:1}.insight-bar-divider{background:var(--border);width:100%;height:1px;margin:12px 0}.insight-callout{border-radius:var(--radius-sm);color:var(--text-secondary);background:#c8a84e0f;border:1px solid #c8a84e26;width:100%;padding:10px 14px;font-size:.8rem;line-height:1.5}.insight-legend-chip{border:1.5px solid}.insight-trend-chart{width:100%;position:relative}.trend-range-toggles{gap:4px;margin-bottom:12px;display:flex}.trend-range-pill{font-family:var(--font-body);border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:20px;padding:5px 12px;font-size:.75rem;font-weight:500;transition:background .2s,color .2s,border-color .2s}.trend-range-pill:hover{color:var(--text-secondary);border-color:var(--text-muted)}.trend-range-pill-active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.trend-empty{text-align:center;color:var(--text-muted);padding:32px 0;font-size:.85rem}.insight-trend-svg{width:100%;height:150px;animation:insightFadeIn .4s var(--ease-out) both;display:block}.insight-trend-dot{opacity:0;animation:trendDotAppear .3s var(--ease-out) both}@keyframes trendDotAppear{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.insight-trend-x-axis{width:100%;height:18px;margin-top:4px;position:relative}.insight-trend-x-label{color:var(--text-dim);white-space:nowrap;font-size:.62rem;font-weight:500;position:absolute;transform:translate(-50%)}.trend-legend{justify-content:center;gap:14px;margin-top:8px;display:flex}.trend-legend-item{color:var(--text-muted);align-items:center;gap:4px;font-size:.7rem;display:flex}.delete-dialog-warning{font-family:var(--font-body);color:var(--text-secondary);margin-bottom:20px;font-size:.9rem;line-height:1.6}.delete-dialog-label{font-family:var(--font-body);color:var(--text-muted);margin-bottom:8px;font-size:.85rem}.delete-dialog-input{background:var(--bg-deep);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-body);outline:none;padding:10px 12px;font-size:.9rem;transition:border-color .15s}.delete-dialog-input:focus{border-color:var(--error)}.delete-dialog-input::placeholder{color:var(--text-dim)}.delete-dialog-error{color:var(--error);margin-top:8px;font-size:.8rem}.delete-dialog-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.delete-dialog-cancel{border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;background:0 0;padding:10px 20px;font-size:.85rem;transition:background .15s,color .15s}.delete-dialog-cancel:hover{background:var(--bg-card-hover);color:var(--text-primary)}.delete-dialog-confirm{background:var(--error);border-radius:var(--radius-sm);color:#fff;font-family:var(--font-body);cursor:pointer;border:none;padding:10px 20px;font-size:.85rem;font-weight:600;transition:opacity .15s}.delete-dialog-confirm:disabled{opacity:.35;cursor:not-allowed}.delete-dialog-confirm:not(:disabled):hover{opacity:.9}.insights-empty-inline{flex-direction:column;align-items:center;gap:16px;display:flex}.account-management-section{width:100%;margin-top:0}.account-management-divider{background:var(--border);width:100%;height:1px;margin-bottom:24px}.account-management-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:16px;font-size:2.6rem}.account-management-rows{flex-direction:column;gap:0;display:flex}.account-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 0;display:flex}.account-row:last-child{border-bottom:none}.account-row-text{flex-direction:column;gap:6px;display:flex}.account-row-title{font-family:var(--font-body);color:var(--text-primary);font-size:.9rem;font-weight:500}.account-row-subtitle{font-family:var(--font-body);color:var(--text-muted);font-size:.8rem}.account-row-action{border-radius:var(--radius-sm);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;transition:background .15s,opacity .15s;display:flex}.account-row-action-danger{border:1px solid var(--error);color:var(--error);background:0 0}.account-row-action-danger:hover{background:#ef44441a}.theme-preview-mini{border:1px solid var(--border-strong);cursor:pointer;width:32px;height:32px;transition:transform .2s var(--ease-out), box-shadow .2s;border-radius:4px;flex-shrink:0;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.account-row-clickable:hover .theme-preview-mini{box-shadow:0 0 8px var(--accent-glow);transform:scale(1.08)}.theme-preview-mini-cell{width:100%;height:100%}.account-row-clickable{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.account-row-clickable:active{opacity:.8}.theme-picker{animation:fadeUp .3s var(--ease-out) both;flex-wrap:wrap;gap:10px;padding:12px 0 4px;display:flex}.theme-swatch{cursor:pointer;border-radius:var(--radius-sm);transition:border-color .2s, transform .2s var(--ease-out);-webkit-tap-highlight-color:transparent;background:0 0;border:2px solid #0000;flex-direction:column;align-items:center;gap:6px;padding:8px;display:flex}.theme-swatch:hover{transform:translateY(-2px)}.theme-swatch:active{transform:scale(.95)}.theme-swatch-active{border-color:var(--accent)}.theme-swatch-board{border:1px solid var(--border-strong);border-radius:4px;grid-template-columns:1fr 1fr;width:44px;height:44px;transition:box-shadow .2s;display:grid;overflow:hidden}.theme-swatch-active .theme-swatch-board{box-shadow:0 0 10px var(--accent-glow)}.theme-swatch-board-cell{width:100%;height:100%}.theme-swatch-label{font-family:var(--font-body);color:var(--text-secondary);font-size:.7rem;transition:color .15s}.theme-swatch-active .theme-swatch-label{color:var(--accent)}.rounds-pills{flex-shrink:0;gap:6px;display:flex}.rounds-pill{font-family:var(--font-body);border-radius:var(--radius-sm);border:1px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;transition:all .2s var(--ease-out);-webkit-tap-highlight-color:transparent;background:0 0;padding:4px 10px;font-size:.75rem;font-weight:500}.rounds-pill:hover:not(.rounds-pill-active){border-color:var(--text-muted);color:var(--text-primary)}.rounds-pill:active{transform:scale(.92)}.rounds-pill-active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);box-shadow:0 0 6px var(--accent-glow)}.account-row-wrap{flex-wrap:wrap;gap:8px}.recent-games-list{flex-direction:column;gap:6px;width:100%;display:flex}.view-all-link{color:var(--accent);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:8px 0;font-size:.9rem;font-weight:500;transition:color .15s}.view-all-link:hover{color:#d4b45a}.game-log-badge{font-family:var(--font-body);letter-spacing:.03em;text-transform:uppercase;border-radius:10px;flex-shrink:0;padding:2px 8px;font-size:.7rem;font-weight:600}.game-log-badge-daily{background:var(--accent-dim);color:var(--accent);border:1px solid #c8a84e4d}.game-log-badge-unlimited{color:#818cf8;background:#6366f11f;border:1px solid #6366f140}.game-log-screen{width:100%;max-width:480px;animation:fadeUp .4s var(--ease-out) both;flex-direction:column;gap:16px;padding-top:4px;padding-bottom:32px;display:flex}.game-log-header-bar{align-items:center;gap:12px;display:flex}.game-log-back{color:var(--text-muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:4px 0;font-size:.85rem;transition:color .15s;display:flex}.game-log-back:hover{color:var(--text-secondary)}.game-log-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.3rem;font-weight:600}.game-log-list,.game-log-date-group{flex-direction:column;gap:8px;display:flex}.game-log-date-header{z-index:10;font-family:var(--font-display);color:var(--text-primary);background:var(--bg-deep);padding:10px 0 6px;font-size:1.15rem;font-weight:600;position:sticky;top:0}.game-log-entry{background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;flex-direction:column;gap:8px;padding:14px 14px 12px;transition:border-color .15s;display:flex}.game-log-entry:hover{border-color:var(--border-strong)}.game-log-entry-copied{border-color:var(--success)}.game-log-entry-header{justify-content:space-between;align-items:center;display:flex}.game-log-entry-left{align-items:center;gap:8px;display:flex}.game-log-entry-date{font-family:var(--font-display);color:var(--text-secondary);font-size:.95rem;font-weight:500}.game-log-entry-time{font-family:var(--font-display);color:var(--text-primary);font-size:1.15rem;font-weight:600}.game-log-entry-avg{font-family:var(--font-body);color:var(--text-muted);font-size:.8rem}.game-log-blocks-row{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.game-log-round-blocks{gap:1px;display:flex}.game-log-block{border:1.5px solid;border-radius:3px;width:10px;height:10px}.game-log-entry-footer{justify-content:flex-start;align-items:baseline;gap:8px;display:flex}.game-log-round-count{color:var(--text-muted);font-size:.75rem}.game-log-badges{flex-wrap:wrap;gap:6px;display:flex}.game-log-achievement{font-family:var(--font-body);letter-spacing:.02em;border-radius:8px;padding:2px 8px;font-size:.65rem;font-weight:600}.game-log-achievement-gold{background:var(--accent-dim);color:var(--accent);border:1px solid #c8a84e4d}.game-log-achievement-blue{color:#60a5fa;background:#3b82f61a;border:1px solid #3b82f640}.game-log-loading-more{font-family:var(--font-body);color:var(--text-muted);text-align:center;padding:16px 0;font-size:.85rem}.game-log-end{font-family:var(--font-display);color:var(--text-dim);text-align:center;border-top:1px solid var(--border);margin-top:8px;padding:24px 0;font-size:.9rem}.game-log-today-empty{background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border);flex-direction:column;align-items:center;gap:16px;padding:24px 16px;display:flex}.game-log-today-greeting{font-family:var(--font-display);color:var(--text-secondary);text-align:center;font-size:1.1rem}.game-log-today-buttons{gap:10px;display:flex}.game-log-today-buttons .play-button{padding:10px 24px;font-size:.9rem;animation:none}.game-log-today-buttons .unlimited-button{animation:none}
