:root{--court:#2d5a1b;--court-light:#3a7523;--ace:#4ade80;--ace-dim:#b8cc1a;--clay:#c97b3a;--white:#f5f5f0;--off-white:#ece9e0;--dark:#111a0e;--mid:#1e2e18;--card:#19280f;--text-muted:#96b888;--correct:#4ade80;--wrong:#f87171;--border:#ffffff12;--border-subtle:#ffffff0f;--border-medium:#ffffff1f;--border-strong:#ffffff40;--hover-bg:#ffffff12;--hover-bg-subtle:#ffffff0f;--surface-overlay:#ffffff14;--modal-bg:#0e1a0b;--modal-shadow:0 24px 64px #000000b3;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--radius-pill:999px}body.light{--dark:#f0f4ee;--mid:#e2e8df;--card:#d8e0d4;--text-muted:#5a7a52;--white:#1a2e14;--off-white:#2a3e22;--ace:#4a7c1f;--ace-dim:#3a6018;--border:#00000014;--border-subtle:#0000000f;--border-medium:#0000001f;--border-strong:#00000040;--hover-bg:#0000000f;--hover-bg-subtle:#0000000a;--surface-overlay:#00000014;--modal-bg:#eef3ec;--modal-shadow:0 24px 64px #0000002e;background:var(--dark);color:var(--white)}html:has(body.light){background:#f0f4ee}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--dark);height:100%;color:var(--white);font-family:DM Sans,sans-serif;overflow:hidden}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}button:focus-visible,a:focus-visible{outline:2px solid var(--ace);outline-offset:2px}@media (hover:none){button:active{opacity:.65}}.windows .emoji{font-family:Noto Color Emoji,sans-serif}.flex-spacer{flex:1}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.nav-guard{pointer-events:none}.shell{z-index:1;flex-direction:column;height:100vh;display:flex;position:relative;overflow:hidden}.swipe-overlay{pointer-events:none;z-index:9999;opacity:0;justify-content:center;align-items:center;width:72px;transition:opacity .15s;display:flex;position:fixed;top:0;bottom:0}.swipe-overlay.left{background:linear-gradient(270deg,#e8ff472e,#0000);right:0}.swipe-overlay.right{background:linear-gradient(90deg,#e8ff472e,#0000);left:0}.swipe-overlay.show{opacity:1}.swipe-overlay .swipe-arrow{color:#e8ff47d9;filter:drop-shadow(0 0 6px #e8ff4780);font-size:1.6rem}body.light .swipe-overlay.left{background:linear-gradient(270deg,#5078002e,#0000)}body.light .swipe-overlay.right{background:linear-gradient(90deg,#5078002e,#0000)}body.light .swipe-overlay .swipe-arrow{color:#3c6400e6;filter:drop-shadow(0 0 6px #3c64004d)}header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#111a0ef2;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;display:flex}@media (hover:hover){.ghost-btn:hover{border-color:var(--border-strong);background:var(--hover-bg);color:var(--white)}body.light .ghost-btn:hover{color:var(--off-white);border-color:#00000038}}.ghost-btn:focus-visible{border-color:var(--border-strong);background:var(--hover-bg);color:var(--white)}body.light .ghost-btn:focus-visible{color:var(--off-white);border-color:#00000038}.logo{letter-spacing:.12em;color:var(--ace);font-family:Bebas Neue,sans-serif;font-size:1.65rem;line-height:1}.logo span{color:var(--white)}.logo .logo-text{color:var(--ace)}.logo-text>span{color:var(--white)}button.logo-btn{cursor:pointer;background:0 0;border:none;padding:0;transition:opacity .15s}@media (hover:hover){button.logo-btn:hover{opacity:.75}}.header-center{align-items:center;gap:10px;display:flex}.header-right{align-items:center;gap:8px;display:flex}.stat-pill{background:var(--mid);border:1px solid var(--surface-overlay);border-radius:var(--radius-pill);color:var(--text-muted);align-items:center;gap:6px;padding:4px 12px;font-family:DM Mono,monospace;font-size:.75rem;display:flex}.stat-pill strong{color:var(--ace);font-size:.9rem}.stat-vdivider{background:var(--border-strong);border-radius:1px;flex-shrink:0;width:1px;height:.85em}body.light .stat-vdivider{background:#0003}.streak-fire{color:var(--clay)}.stat-pill.stat-pill--blur{color:var(--text);border-color:var(--border-medium);-webkit-backdrop-filter:blur(8px);white-space:nowrap;padding:5px 14px;font-size:.82rem;font-weight:700}body.light .stat-pill.stat-pill--blur{border-color:var(--border-medium)}.theme-btn{background:var(--mid);border-radius:var(--radius-pill);cursor:pointer;color:var(--text-muted);letter-spacing:.05em;border:1px solid #ffffff1a;align-items:center;gap:7px;padding:4px 13px 4px 8px;font-family:DM Mono,monospace;font-size:.72rem;transition:border-color .2s,background .2s;display:flex}@media (hover:hover){.theme-btn:hover{background:var(--hover-bg-subtle);color:var(--white);border-color:#ffffff38}}.theme-btn:focus-visible{background:var(--hover-bg-subtle);color:var(--white);border-color:#ffffff38}.theme-swatch{align-items:center;gap:2px;display:flex}.theme-swatch span{border-radius:2px;width:8px;height:8px;transition:background .3s;display:block}.theme-name{transition:color .2s}.app-header{padding:10px 20px;padding-top:calc(env(safe-area-inset-top) + 10px);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#111a0ef2;flex:none;justify-content:space-between;align-self:stretch;align-items:center;display:flex;position:sticky;top:0}.app-header--fixed{pointer-events:none;position:fixed;top:0;left:0;right:0}.app-header-left,.app-header-right{z-index:1;pointer-events:all;align-items:center;gap:8px;display:flex;position:relative}.app-header-left{flex:auto;min-width:0}.header-left-group{align-items:center;gap:6px;display:flex}.header-calendar-btn{display:none}body:not(.native-app) .header-calendar-btn{width:34px;height:34px;display:inline-flex}.back-btn-text{cursor:pointer;color:var(--ace);background:0 0;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:2px;padding:4px 8px 4px 4px;font-size:.85rem;font-weight:600;transition:background .2s;display:flex}.back-btn-text:hover{background:var(--hover-bg-subtle)}body.light .back-btn-text:hover{background:#0000000d}.back-btn-text svg{flex-shrink:0;width:14px;height:14px}.back-btn-label{white-space:nowrap}.app-header-right{flex-shrink:0;min-width:0}.app-header-logo{left:50%;top:calc(50% + env(safe-area-inset-top) / 2);pointer-events:none;white-space:nowrap;letter-spacing:.12em;font-family:Bebas Neue,sans-serif;font-size:1.65rem;line-height:1;position:absolute;transform:translate(-50%,-50%)}.app-header-logo .logo-text{color:var(--ace)}.app-header-logo .logo-text>span{color:var(--white)}.app-header-logo--btn{cursor:pointer;pointer-events:all;z-index:2;background:0 0;border:none;padding:0;transition:opacity .15s}@media (hover:hover){.app-header-logo--btn:hover{opacity:.72}}.app-header-center{left:50%;top:calc(50% + env(safe-area-inset-top) / 2);pointer-events:all;white-space:nowrap;align-items:center;gap:6px;display:flex;position:absolute;transform:translate(-50%,-50%)}.header-logo-inline{letter-spacing:.12em;white-space:nowrap;opacity:1;pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:1;min-width:0;max-width:12rem;font-family:Bebas Neue,sans-serif;font-size:1.65rem;line-height:1;transition:max-width .2s,opacity .15s;overflow:hidden}.header-logo-inline .logo-text{color:var(--ace)}.header-logo-inline .logo-text>span{color:var(--white)}body.light .app-header{border-bottom-color:var(--surface-overlay);background:#f0f4eef2}.app-back-btn{background:var(--mid);border-radius:var(--radius-pill);cursor:pointer;letter-spacing:.06em;color:var(--text-muted);border:1px solid #ffffff1a;flex-shrink:0;align-items:center;gap:5px;padding:5px 14px 5px 10px;font-family:DM Mono,monospace;font-size:.7rem;transition:border-color .2s,background .2s,color .2s;display:flex}body.light .app-back-btn{background:var(--card);border-color:var(--border-medium);color:var(--text-muted)}.home-nav-btn{background:var(--mid);border-radius:var(--radius-md);cursor:pointer;width:34px;height:34px;color:var(--text-muted);border:1px solid #ffffff1a;flex-shrink:0;justify-content:center;align-items:center;font-size:1.3rem;line-height:1;transition:border-color .2s,background .2s,color .2s;display:flex}.home-nav-btn[aria-expanded=true]{border-color:var(--border-strong);background:var(--hover-bg);color:var(--white)}body.light .home-nav-btn{background:var(--card);border-color:var(--border-medium);color:var(--text-muted)}body.light .home-nav-btn[aria-expanded=true]{background:var(--hover-bg);color:var(--off-white);border-color:#00000038}.home-nav-backdrop{z-index:998;background:#0000008c;animation:.2s fadeIn;position:fixed;inset:0}.home-nav-sidebar{width:260px;padding-top:env(safe-area-inset-top);border-right:1px solid var(--border);z-index:999;background:#0e1a0b;flex-direction:column;animation:.22s cubic-bezier(.25,.46,.45,.94) slideInLeft;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:6px 0 32px #0009}.home-nav-sidebar--expanded{flex-direction:row;width:400px;overflow-y:hidden}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}body.light .home-nav-sidebar{border-right-color:var(--surface-overlay);background:#f0f4ee}.home-nav-sidebar-close{width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;transition:background .15s,color .15s;display:flex}@media (hover:hover){.home-nav-sidebar-close:hover{background:var(--surface-overlay);color:var(--white)}body.light .home-nav-sidebar-close:hover{background:var(--hover-bg);color:#111}}.home-nav-sidebar-close:focus-visible{background:var(--surface-overlay);color:var(--white)}body.light .home-nav-sidebar-close:focus-visible{background:var(--hover-bg);color:#111}.home-nav-sidebar-menu-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px 10px 20px;display:flex}.home-nav-sidebar-menu-logo{letter-spacing:.12em;font-family:Bebas Neue,sans-serif;font-size:1.5rem;line-height:1;text-decoration:none;transition:opacity .15s}.home-nav-sidebar-menu-logo .logo-text{color:var(--ace)}.home-nav-sidebar-menu-logo .logo-text>span{color:var(--white)}body.light .home-nav-sidebar-menu-logo .logo-text>span{color:#1a1a1a}@media (hover:hover){.home-nav-sidebar-menu-logo:hover{opacity:.72}}.home-nav-sidebar-menu-btn{text-align:left;width:100%;color:var(--white);cursor:pointer;background:0 0;border:none;border-bottom:1px solid #ffffff0a;align-items:center;gap:14px;padding:14px 20px;font-family:DM Sans,sans-serif;text-decoration:none;transition:background .15s;display:flex}.home-nav-sidebar-menu-btn:last-child{border-bottom:none}body.light .home-nav-sidebar-menu-btn{color:#1a1a1a;border-bottom-color:#0000000d}@media (hover:hover){.home-nav-sidebar-menu-btn:hover,body.light .home-nav-sidebar-menu-btn:hover{background:var(--hover-bg-subtle)}}.home-nav-sidebar-menu-btn:focus-visible,body.light .home-nav-sidebar-menu-btn:focus-visible{background:var(--hover-bg-subtle)}.home-nav-sidebar-menu-btn--bottom{border-top:1px solid var(--border-subtle);margin-top:auto}body.light .home-nav-sidebar-menu-btn--bottom{border-top-color:var(--border-subtle)}.home-nav-sidebar-menu-icon{flex-shrink:0;font-size:1.3rem}.home-nav-sidebar-menu-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.home-nav-sidebar-menu-label{font-size:1rem;font-weight:500}.home-nav-sidebar-menu-tagline{color:var(--text-muted);font-size:.72rem;font-weight:400;line-height:1.3}body.light .home-nav-sidebar-menu-tagline{color:#0000009e}.home-nav-sidebar-menu-chevron{color:var(--text-muted);flex-shrink:0}.home-nav-sidebar-rail{width:68px;margin-top:calc(-1 * env(safe-area-inset-top));padding:10px 0;padding-top:calc(env(safe-area-inset-top) + 10px);background:#0000002e;border-right:1px solid #ffffff0d;flex-direction:column;flex-shrink:0;align-items:center;display:flex}body.light .home-nav-sidebar-rail{background:var(--hover-bg-subtle);border-right-color:var(--border-subtle)}.home-nav-sidebar-rail .home-nav-sidebar-close{margin-bottom:8px}.home-nav-sidebar-rail-groups{flex-direction:column;gap:2px;width:100%;display:flex}.home-nav-sidebar-rail-btn{width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-left:3px solid #0000;flex-direction:column;align-items:center;gap:3px;padding:10px 4px;font-size:1.3rem;text-decoration:none;transition:color .15s,background .15s,border-color .15s;display:flex}.home-nav-sidebar-rail-btn--active{color:var(--ace);border-left-color:var(--ace);background:#ffffff0d}@media (hover:hover){.home-nav-sidebar-rail-btn:hover{color:var(--white);background:var(--hover-bg-subtle)}body.light .home-nav-sidebar-rail-btn:hover{color:#111;background:#0000000d}}.home-nav-sidebar-rail-btn:focus-visible{color:var(--white);background:var(--hover-bg-subtle)}body.light .home-nav-sidebar-rail-btn:focus-visible{color:#111;background:#0000000d}body.light .home-nav-sidebar-rail-btn{color:#0000009e}body.light .home-nav-sidebar-rail-btn--active{color:var(--ace);background:var(--hover-bg-subtle);border-left-color:var(--ace)}.home-nav-sidebar-rail-label{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-family:DM Sans,sans-serif;font-size:.55rem;font-weight:600;line-height:1}.home-nav-sidebar-rail-bottom{border-top:1px solid var(--border-subtle);flex-direction:column;gap:2px;width:100%;margin-top:auto;padding-top:8px;display:flex}body.light .home-nav-sidebar-rail-bottom{border-top-color:var(--border-subtle)}.home-nav-sidebar-panel{flex-direction:column;flex:1;min-width:0;display:flex;overflow-y:auto}.home-nav-sidebar-panel-title{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:14px 16px 8px;font-family:DM Sans,sans-serif;font-size:.65rem;font-weight:700}body.light .home-nav-sidebar-panel-title{color:#0000009e}.home-nav-sidebar-item{text-align:left;width:100%;color:var(--white);cursor:pointer;background:0 0;border:none;border-bottom:1px solid #ffffff0a;align-items:flex-start;gap:10px;padding:10px 16px;font-family:DM Sans,sans-serif;font-size:.88rem;font-weight:500;text-decoration:none;transition:background .15s;display:flex}.home-nav-sidebar-item:last-child{border-bottom:none}body.light .home-nav-sidebar-item{color:#1a1a1a;border-bottom-color:#0000000d}@media (hover:hover){.home-nav-sidebar-item:hover,body.light .home-nav-sidebar-item:hover{background:var(--hover-bg-subtle)}}.home-nav-sidebar-item:focus-visible,body.light .home-nav-sidebar-item:focus-visible{background:var(--hover-bg-subtle)}.home-nav-sidebar-item--active{background:var(--surface-overlay)}body.light .home-nav-sidebar-item--active{background:var(--hover-bg)}.home-nav-sidebar-icon{flex-shrink:0;padding-top:1px;font-size:1.05rem}.home-nav-sidebar-item-label{flex-direction:column;gap:2px;min-width:0;display:flex}.home-nav-sidebar-item-tagline{color:var(--text-muted);font-size:.68rem;font-weight:400;line-height:1.3}body.light .home-nav-sidebar-item-tagline{color:#0000009e}.header-game-right{align-items:center;gap:8px;display:flex}.header-stats{align-items:center;gap:6px;display:flex}.header-controls{align-items:center;gap:4px;display:flex}.score-screen-with-header{justify-content:flex-start!important;align-items:stretch!important}.score-content{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:32px 20px 40px;display:flex;overflow-y:auto}.settings-btn{background:var(--mid);border-radius:var(--radius-md);cursor:pointer;width:32px;height:32px;color:var(--text-muted);border:1px solid #ffffff1a;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;transition:border-color .2s,background .2s,color .2s;display:flex}.settings-btn--wide{letter-spacing:.04em;white-space:nowrap;gap:3px;width:auto;padding:0 8px;font-family:DM Mono,monospace;font-size:.7rem}.settings-btn--wide .emoji{font-size:.85rem}body.light .settings-btn{background:var(--card);border-color:var(--border-medium);color:var(--text-muted)}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#0009;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-backdrop.open{animation:.2s fadeIn;display:flex}.modal{border-radius:var(--radius-lg);background:#0e1a0b;border:1px solid #ffffff1a;width:320px;padding:24px 26px;animation:.25s cubic-bezier(.34,1.56,.64,1) slideUp;box-shadow:0 24px 64px #000000b3}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title{letter-spacing:.08em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.4rem}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:1.2rem;line-height:1;transition:color .15s,background .15s}@media (hover:hover){.modal-close:hover{color:var(--white);background:var(--hover-bg)}}.modal-close:focus-visible{color:var(--white);background:var(--hover-bg)}.modal-section{margin-bottom:18px}.modal-section:last-child{margin-bottom:0}.modal-section-label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-family:DM Mono,monospace;font-size:.62rem}.hand-toggle{grid-template-columns:1fr 1fr;gap:8px;display:grid}.hand-btn{background:var(--card);border:1.5px solid var(--surface-overlay);border-radius:var(--radius-md);cursor:pointer;text-align:center;color:var(--text-muted);padding:10px 12px;font-family:DM Sans,sans-serif;font-size:.82rem;transition:all .15s}.hand-btn .hand-icon{margin-bottom:4px;font-size:1.3rem;display:block}.hand-btn .hand-label{letter-spacing:.04em;font-size:.75rem}@media (hover:hover){.hand-btn:hover{color:var(--white);border-color:#fff3}}.hand-btn:focus-visible{color:var(--white);border-color:#fff3}.hand-btn.active{border-color:var(--ace);color:var(--ace);background:#e8ff4714}.modal-divider{background:var(--hover-bg-subtle);height:1px;margin:18px 0}.modal-note{color:var(--text-muted);font-size:.72rem;font-style:italic;line-height:1.5}.get-app-btn{border:1.5px solid var(--border-medium);height:32px;color:var(--text-muted);letter-spacing:.06em;cursor:pointer;white-space:nowrap;background:0 0;border-radius:7px;flex-shrink:0;align-items:center;gap:5px;padding:0 10px;font-family:Bebas Neue,sans-serif;font-size:.82rem;transition:border-color .2s,background .2s,color .2s;display:flex}body.light .get-app-btn{background:var(--card);border-color:var(--border-medium)}.get-app-short{display:none}@media (width<=600px){.get-app-btn{display:none}}.get-app-modal{text-align:center;width:340px}.get-app-qr{flex-direction:column;align-items:center;gap:10px;padding:8px 0 16px;display:flex}.get-app-qr-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin:0;font-family:DM Mono,monospace;font-size:.68rem}.get-app-qr-placeholder{border-radius:10px;justify-content:center;align-items:center;display:flex;overflow:hidden}.get-app-divider-text{color:var(--text-muted);margin:0 0 16px;font-size:.78rem}.get-app-stores{flex-direction:column;align-items:center;gap:10px;display:flex}.get-app-store-link{border-radius:var(--radius-md);background:var(--surface-overlay);color:#fff;border:1.5px solid #ffffff26;align-items:center;gap:10px;width:200px;height:44px;padding:0 16px;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:flex}body.light .get-app-store-link{background:#1a1a1a;border-color:#1a1a1a}@media (hover:hover){.get-app-store-link:hover{border-color:var(--border-strong);background:#ffffff24;transform:translateY(-1px)}body.light .get-app-store-link:hover{background:#333;border-color:#333}}.get-app-store-link:focus-visible{outline:2px solid var(--ace);outline-offset:2px}.get-app-store-link svg{flex-shrink:0}.get-app-store-text{text-align:left;flex-direction:column;font-family:DM Sans,sans-serif;font-size:.88rem;font-weight:600;line-height:1.2;display:flex}.get-app-store-sub{letter-spacing:.02em;opacity:.8;font-size:.58rem;font-weight:400}.confirm-modal{border-radius:var(--radius-lg);text-align:center;background:#0e1a0b;border:1px solid #ffffff1a;width:290px;padding:28px 26px 22px;animation:.25s cubic-bezier(.34,1.56,.64,1) slideUp;box-shadow:0 24px 64px #000000b3}.confirm-icon{margin-bottom:10px;font-size:2.2rem}.confirm-title{letter-spacing:.08em;color:var(--white);margin-bottom:8px;font-family:Bebas Neue,sans-serif;font-size:1.4rem}.confirm-msg{color:var(--text-muted);margin-bottom:20px;font-size:.8rem;line-height:1.55}.confirm-checkbox{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;margin:-8px 0 16px;font-size:.78rem;display:flex}.confirm-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--ace);cursor:pointer}.confirm-actions{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.confirm-actions.confirm-actions-centered{grid-template-columns:1fr 1fr;max-width:280px;margin:0 auto}.confirm-cancel{background:var(--card);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;border:1px solid #ffffff1a;padding:10px;font-family:DM Sans,sans-serif;font-size:.85rem;transition:all .15s}@media (hover:hover){.confirm-cancel:hover{color:var(--white);border-color:#ffffff38}}.confirm-cancel:focus-visible{color:var(--white);border-color:#ffffff38}.confirm-menu{background:var(--card);border-radius:var(--radius-md);color:#4fc3f7;letter-spacing:.06em;cursor:pointer;border:1px solid #4fc3f740;padding:10px;font-family:Bebas Neue,sans-serif;font-size:1rem;transition:all .15s}@media (hover:hover){.confirm-menu:hover{background:#4fc3f714;border-color:#4fc3f780;transform:translateY(-1px)}}.confirm-menu:focus-visible{background:#4fc3f714;border-color:#4fc3f780}.confirm-ok{background:var(--wrong);border-radius:var(--radius-md);color:#fff;letter-spacing:.06em;cursor:pointer;border:none;padding:10px;font-family:Bebas Neue,sans-serif;font-size:1rem;transition:all .15s}.confirm-ok.confirm-ok--green{background:var(--ace);color:var(--dark)}@media (hover:hover){.confirm-ok:hover{background:#ef4444;transform:translateY(-1px)}.confirm-ok.confirm-ok--green:hover{background:#fff}}.confirm-ok:focus-visible{background:#ef4444}.confirm-ok.confirm-ok--green:focus-visible{background:#fff}.upgrade-modal{border:1px solid var(--border-medium);border-radius:var(--radius-lg);text-align:center;background:#0e1a0b;width:300px;padding:28px 26px 22px;animation:.25s cubic-bezier(.34,1.56,.64,1) slideUp;box-shadow:0 24px 64px #000000b3}.upgrade-icon{margin-bottom:10px;font-size:2.2rem}.upgrade-title{letter-spacing:.08em;color:var(--white);margin-bottom:8px;font-family:Bebas Neue,sans-serif;font-size:1.4rem}.upgrade-msg{color:var(--text-muted);margin-bottom:20px;font-size:.8rem;line-height:1.55}.upgrade-actions{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.upgrade-dismiss{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;padding:10px;font-family:DM Sans,sans-serif;font-size:.85rem;transition:all .15s}@media (hover:hover){.upgrade-dismiss:hover{border-color:var(--border-strong);color:var(--white)}}.upgrade-dismiss:focus-visible{border-color:var(--border-strong);color:var(--white)}.upgrade-cta{background:var(--ace);border-radius:var(--radius-md);color:var(--dark);letter-spacing:.06em;cursor:pointer;border:none;padding:10px;font-family:Bebas Neue,sans-serif;font-size:1rem;font-weight:700;transition:all .15s}@media (hover:hover){.upgrade-cta:hover{background:#fff;transform:translateY(-1px)}}.upgrade-cta:focus-visible{background:#fff}.upgrade-plans-link{color:var(--ace);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-family:DM Sans,sans-serif;font-size:.75rem;text-decoration:underline;transition:color .15s}@media (hover:hover){.upgrade-plans-link:hover{color:var(--white)}}body.light .upgrade-modal{border-color:var(--border-medium);background:#fafcf8;box-shadow:0 24px 64px #0000001f}.confirm-ok--danger{background:var(--wrong)}@media (hover:hover){.confirm-ok--danger:hover{background:#dc2626}}.delete-confirm-body{flex-direction:column;gap:12px;width:100%;margin-top:4px;display:flex}.delete-confirm-input{text-align:center;font-size:1rem}.delete-confirm-final{width:100%;padding:12px;font-size:1.1rem}.delete-confirm-back{color:var(--fg);opacity:.6;cursor:pointer;background:0 0;border:none;margin-top:8px;font-size:.9rem}.delete-confirm-back:hover{opacity:1}.info-modal{flex-direction:column;width:380px;max-width:calc(100vw - 32px);max-height:80vh;display:flex}.info-modal-body{scrollbar-width:thin;scrollbar-color:var(--court) transparent;flex:1;padding-right:4px;overflow-y:auto}.info-modal-body::-webkit-scrollbar{width:6px}.info-modal-body::-webkit-scrollbar-track{background:0 0}.info-modal-body::-webkit-scrollbar-thumb{background:var(--court);border-radius:3px}@media (hover:hover){.info-modal-body::-webkit-scrollbar-thumb:hover{background:var(--court-light)}}.info-section{margin-bottom:16px}.info-section:last-child{margin-bottom:0}.info-modal .info-section-heading{letter-spacing:.18em;text-transform:uppercase;color:var(--white);margin-bottom:6px;font-family:DM Mono,monospace;font-size:.62rem}.info-section-line{color:var(--text-muted);margin:0 0 4px;font-size:.82rem;line-height:1.55}.info-section-line:last-child{margin-bottom:0}.flag-icon{vertical-align:middle;border-radius:1px;display:inline-block}.puzzle-jump-body{max-width:320px}#puzzle-jump-modal .confirm-actions{grid-template-columns:1fr 1fr}.puzzle-jump-input{background:var(--card);border:1.5px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--white);text-align:center;box-sizing:border-box;outline:none;margin-bottom:16px;padding:10px 14px;font-family:DM Mono,monospace;font-size:1.1rem;transition:border-color .15s}.puzzle-jump-input:focus-visible{border-color:var(--ace)}.puzzle-jump-input::placeholder{color:var(--text-muted)}body.light .puzzle-jump-input{border-color:var(--border-medium);color:var(--off-white);background:#0000000d}.input-error{border-color:var(--wrong)!important}.settings-section-last{margin-bottom:0}.score-msg{color:var(--text-muted);font-size:.82rem}.score-btn-menu{background:var(--card);color:var(--off-white);border:1px solid #ffffff1a;margin-top:-4px}.score-btn-home{background:var(--card);color:var(--off-white);border:1px solid var(--border-subtle);opacity:.7;margin-top:-4px;font-size:1rem}.score-stats-card{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:320px;padding:20px 28px;display:flex}.score-bar-track{background:var(--surface-overlay);border-radius:4px;width:100%;height:8px;position:relative;overflow:visible}.score-bar-fill{background:var(--ace);border-radius:4px;height:100%;transition:width .6s}.score-bar-best-marker{background:#fff6;border-radius:1px;width:2px;position:absolute;top:-4px;bottom:-4px;transform:translate(-50%)}.score-bar-labels{width:100%;color:var(--text-muted);justify-content:space-between;font-size:.72rem;display:flex}.score-nav-row{gap:10px;width:100%;max-width:320px;display:flex}.score-btn-nav{background:var(--card);color:var(--off-white);border:1px solid var(--surface-overlay);border-radius:var(--radius-md);letter-spacing:.08em;cursor:pointer;flex:1;padding:9px 12px;font-family:Bebas Neue,sans-serif;font-size:1rem;transition:background .15s}@media (hover:hover){.score-btn-nav:hover{background:var(--hover-bg-subtle)}}.score-btn-nav:focus-visible{background:var(--hover-bg-subtle)}.score-trophy-new-record{filter:drop-shadow(0 0 12px #e8ff4780)}body.light .score-stats-card{background:var(--card);border-color:var(--border)}body.light .score-bar-track{background:var(--surface-overlay)}body.light .score-bar-best-marker{background:#0000004d}body.light .score-btn-nav{background:var(--card);color:#1a2e10;border-color:#0000001a}@media (hover:hover){body.light .score-btn-nav:hover{background:var(--hover-bg-subtle)}}.score-btn-chart{color:var(--ace);background:#e8ff471a;border:1px solid #e8ff4740;margin-top:4px;margin-bottom:4px}@media (hover:hover){.score-btn-chart:hover{background:#e8ff472e}}.diff-chart-modal{width:min(540px,94vw);padding:22px 20px 18px}.diff-chart-svg{width:100%;height:auto;display:block;overflow:visible}.diff-chart-label{font-family:DM Mono,monospace;font-size:10px}.diff-chart-xlabel{letter-spacing:.12em;text-transform:uppercase;font-family:DM Mono,monospace;font-size:9px}body.light .score-btn-chart{color:var(--ace);background:#4a7c1f1a;border-color:#4a7c1f4d}@media (hover:hover){body.light .score-btn-chart:hover{background:#4a7c1f2e}}body.light .diff-chart-svg line{stroke:var(--border)}body.light .diff-chart-svg polyline{stroke:#0003}body.light .diff-chart-svg circle{stroke:#eef3ec}body.light .diff-chart-tick{fill:#0000009e}body.light .diff-chart-xlabel{fill:#0000004d}.auth-btn{background:var(--mid);border-radius:var(--radius-pill);cursor:pointer;letter-spacing:.06em;color:var(--text-muted);white-space:nowrap;border:1px solid #ffffff1a;flex-shrink:0;align-items:center;gap:6px;padding:5px 12px;font-family:DM Mono,monospace;font-size:.7rem;transition:border-color .2s,background .2s,color .2s;display:flex}body.light .auth-btn{background:var(--card);border-color:var(--border-medium)}.auth-btn--avatar{width:32px;height:32px;color:var(--ace);border-color:var(--ace);background:#e8ff4714;justify-content:center;padding:0;font-size:.85rem;font-weight:700}@media (hover:hover){.auth-btn--avatar:hover{border-color:var(--ace);color:var(--ace);background:#e8ff4726}}.auth-btn--avatar:focus-visible{border-color:var(--ace);color:var(--ace);background:#e8ff4726}.user-menu-dropdown{background:var(--mid);border:1px solid var(--border-medium);z-index:200;border-radius:10px;flex-direction:column;gap:2px;min-width:180px;padding:6px;display:flex;position:fixed}body.light .user-menu-dropdown{background:var(--card);border-color:var(--border-medium)}.user-menu-email{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;padding:6px 10px 4px;font-family:DM Mono,monospace;font-size:.68rem;overflow:hidden}.user-menu-signout{text-align:left;cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:6px;width:100%;padding:7px 10px;font-family:DM Mono,monospace;font-size:.72rem;text-decoration:none;transition:background .15s,color .15s}@media (hover:hover){.user-menu-signout:hover{background:var(--hover-bg);color:var(--white)}body.light .user-menu-signout:hover{background:var(--hover-bg);color:var(--off-white)}}.user-menu-signout:focus-visible{background:var(--hover-bg);color:var(--white)}body.light .user-menu-signout:focus-visible{background:var(--hover-bg);color:var(--off-white)}.auth-modal{width:320px}.auth-modal-tabs{border-radius:var(--radius-md);background:#ffffff0a;gap:4px;margin-bottom:18px;padding:4px;display:flex}body.light .auth-modal-tabs{background:#0000000d}.auth-modal-tab{cursor:pointer;letter-spacing:.06em;color:var(--text-muted);background:0 0;border:none;border-radius:6px;flex:1;padding:7px 6px;font-family:DM Mono,monospace;font-size:.68rem;transition:background .15s,color .15s}.auth-modal-tab.active{background:var(--mid);color:var(--white)}body.light .auth-modal-tab.active{background:var(--card);color:#1a1a1a}@media (hover:hover){.auth-modal-tab:not(.active):hover{color:var(--white)}body.light .auth-modal-tab:not(.active):hover{color:#1a1a1a}}.auth-modal-body{flex-direction:column;gap:10px;display:flex}.auth-modal-input{border-radius:var(--radius-md);width:100%;color:var(--white);box-sizing:border-box;background:#ffffff0d;border:1px solid #ffffff1a;outline:none;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:1rem;transition:border-color .15s}body.light .auth-modal-input{background:var(--hover-bg-subtle);border-color:var(--border-medium);color:#1a1a1a}.auth-modal-input::placeholder{color:var(--text-muted)}.auth-modal-input:focus-visible{border-color:var(--ace)}.auth-modal-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.auth-modal-submit{background:var(--ace);border:1.5px solid var(--ace);border-radius:var(--radius-md);cursor:pointer;letter-spacing:.06em;color:#0b1409;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-family:DM Mono,monospace;font-size:.78rem;font-weight:700;transition:opacity .15s;display:flex}body.light .auth-modal-submit{color:#fff}.auth-modal-submit:disabled{opacity:.5;cursor:not-allowed}@media (hover:hover){.auth-modal-submit:not(:disabled):hover{opacity:.85}}.auth-modal-submit--outline{color:var(--text-muted);background:0 0;border-color:#ffffff26}body.light .auth-modal-submit--outline{color:var(--text-muted);border-color:#00000026}@media (hover:hover){.auth-modal-submit--outline:not(:disabled):hover{color:var(--white);border-color:var(--border-strong);opacity:1;background:#ffffff0d}body.light .auth-modal-submit--outline:not(:disabled):hover{color:#1a1a1a;opacity:1;background:#0000000d;border-color:#00000040}}.auth-modal-submit--outline:not(:disabled):focus-visible{color:var(--white);border-color:var(--border-strong);background:#ffffff0d}body.light .auth-modal-submit--outline:not(:disabled):focus-visible{color:#1a1a1a;background:#0000000d;border-color:#00000040}.auth-modal-google,body.light .auth-modal-google{color:#3c4043;background:#fff;border-color:#00000026}@media (hover:hover){.auth-modal-google:not(:disabled):hover{opacity:1;background:#f8f8f8}}.auth-modal-divider{color:var(--text-muted);letter-spacing:.06em;align-items:center;gap:12px;margin:14px 0;font-size:.72rem;display:flex}.auth-modal-divider:before,.auth-modal-divider:after{content:"";background:#ffffff1a;flex:1;height:1px}body.light .auth-modal-divider:before,body.light .auth-modal-divider:after{background:#0000001a}.auth-modal-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-top:6px;padding:0;font-size:.78rem;text-decoration:underline}.auth-modal-link:hover:not(:disabled){color:var(--ace)}.auth-modal-link:disabled{opacity:.5;cursor:not-allowed}.auth-modal-error{color:#ff6b6b;text-align:center;margin-top:10px;font-size:.78rem}.auth-modal-success{color:var(--ace);text-align:center;margin-top:10px;font-size:.78rem}.auth-modal-signed-in{flex-direction:column;align-items:center;gap:16px;padding:8px 0;display:flex}.auth-modal-confirm-msg{color:var(--text-muted);text-align:center;margin:0;font-size:.85rem}.auth-modal-submit--danger{color:#fff;background:#c0392b;border-color:#c0392b}@media (hover:hover){.auth-modal-submit--danger:not(:disabled):hover{opacity:1;background:#a93226;border-color:#a93226}}.auth-modal-submit--danger:not(:disabled):focus-visible{background:#a93226;border-color:#a93226}.auth-modal-user-email{color:var(--text-muted);word-break:break-all;text-align:center;font-size:.85rem}.welcome-modal{max-width:380px}.welcome-modal-body{flex-direction:column;gap:14px;padding:0 4px;display:flex}.welcome-modal-subtitle{color:var(--text-muted);margin:0 0 4px;font-size:.82rem;line-height:1.4}.welcome-modal-skip{color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:none;margin-top:2px;padding:0;font-size:.78rem;text-decoration:underline}.welcome-modal-skip:hover:not(:disabled){color:var(--ace)}.welcome-modal-skip:disabled{opacity:.5;cursor:not-allowed}.invisible{visibility:hidden}.progress-bar-wrap{background:var(--hover-bg-subtle);flex:0 0 3px}.progress-bar-fill{background:linear-gradient(90deg, var(--court-light), var(--ace));height:100%;box-shadow:0 0 8px var(--ace);transition:width .6s cubic-bezier(.34,1.56,.64,1)}.app-footer{text-align:center;padding:24px 16px 32px}.app-footer__links{flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 6px;margin-bottom:8px;display:flex}.app-footer__link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px 0;font-family:inherit;font-size:.72rem}.app-footer__link:hover{color:var(--text)}.app-footer__sep{color:var(--text-muted);opacity:.4;-webkit-user-select:none;user-select:none;padding-left:6px;font-size:.72rem}.app-footer__copy{color:var(--text-muted);margin:4px 0 14px;font-size:.68rem}.app-footer__icons{justify-content:center;gap:18px;display:flex}.app-footer__icon{color:var(--text-muted);opacity:.6;align-items:center;transition:opacity .15s;display:flex}.app-footer__icon:hover{opacity:1}.app-footer__icon svg{fill:currentColor;width:18px;height:18px}.mobile-tab-bar{z-index:100;-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);background:#111a0ef2;justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-tab-bar__tab{color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:8px 0 6px;transition:color .15s;display:flex}.mobile-tab-bar__tab--active{color:var(--ace);box-shadow:inset 0 2px 0 var(--ace)}.mobile-tab-bar__icon{width:22px;height:22px;transition:transform .15s}@keyframes tab-icon-pop{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.mobile-tab-bar__icon--pop:not(.mobile-tab-bar__icon--wide){animation:.5s ease-out tab-icon-pop}.tab-racket{transform-origin:27px 19px}.tab-ball{transform-origin:5px 20.5px}@keyframes tab-racket-swing{0%{transform:rotate(0)}30%{transform:rotate(-22deg)}45%{transform:rotate(-15deg)}to{transform:rotate(0)}}@keyframes tab-ball-squish{0%{opacity:1;transform:translate(0)scale(1)}25%{opacity:1;transform:translate(0)scale(1)}35%{opacity:1;transform:translate(0)scale(1.2,.7)}50%{opacity:1;transform:translate(-6px,-6px)scale(.9,1.1)}65%{opacity:1;transform:translate(-14px,-10px)scale(1)}80%{opacity:.6;transform:translate(-22px,-8px)scale(1)}90%{opacity:0;transform:translate(-28px,-4px)scale(1)}91%{opacity:0;transform:translate(0)scale(1)}to{opacity:1;transform:translate(0)scale(1)}}.mobile-tab-bar__icon--pop .tab-racket{animation:.5s ease-in-out tab-racket-swing}.mobile-tab-bar__icon--pop .tab-ball{animation:.5s ease-in-out tab-ball-squish}.tab-dpad{transform-origin:8px 11px}@keyframes tab-dpad-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mobile-tab-bar__icon--pop .tab-dpad{animation:.5s ease-in-out tab-dpad-spin}.tab-cal-dot{transform-box:fill-box;transform-origin:50%}@keyframes tab-cal-dot-pulse{0%,60%,to{transform:scale(1)}30%{transform:scale(1.7)}}.mobile-tab-bar__icon--pop .tab-cal-dot{animation:.5s ease-in-out tab-cal-dot-pulse}.mobile-tab-bar__icon--pop .tab-cal-dot--1{animation-delay:0s}.mobile-tab-bar__icon--pop .tab-cal-dot--2{animation-delay:50ms}.mobile-tab-bar__icon--pop .tab-cal-dot--3{animation-delay:.1s}.mobile-tab-bar__icon--pop .tab-cal-dot--4{animation-delay:.15s}.mobile-tab-bar__icon--pop .tab-cal-dot--5{animation-delay:.2s}.mobile-tab-bar__icon--wide{width:28px}.mobile-tab-bar__label{letter-spacing:.02em;font-size:10px;font-weight:500;line-height:1}body.pwa .mobile-tab-bar{padding-bottom:0}body.light .mobile-tab-bar{background:#f0f4ee;border-top-color:#0000001a}body.light .mobile-tab-bar__tab{color:var(--text-muted)}body.light .mobile-tab-bar__tab--active{color:#1a6b0a;font-weight:600;box-shadow:inset 0 2px #1a6b0a}:root{--tab-bar-h:0px}body.native-app{--tab-bar-h:calc(48px + env(safe-area-inset-bottom))}body.pwa{--tab-bar-h:48px}body.tab-bar-hidden{--tab-bar-h:0px}body.native-app #home-screen,body.native-app #games-screen,body.native-app #oncourt-screen,body.native-app #coach-screen,body.native-app .info-screen,body.native-app #drill-lab-menu,body.native-app #drill-lab-view,body.native-app #lesson-plan-list,body.native-app #lesson-plan-edit,body.native-app #trivia-menu,body.native-app #serve-menu-screen,body.native-app #menu-screen,body.native-app #point-play-menu-screen,body.native-app #smart-practice-setup-screen,body.native-app #smart-practice-result-screen,body.native-app #session-insights-list,body.native-app #session-insights-edit,body.native-app #string-lab-list,body.native-app #string-lab-edit,body.native-app #custom-drill-edit,body.native-app #profile-screen,body.native-app #loading-screen{bottom:var(--tab-bar-h)}body.native-app .shell{height:calc(100dvh - var(--tab-bar-h));min-height:calc(100dvh - var(--tab-bar-h))}body.native-app .drill-view-actions{bottom:var(--tab-bar-h);padding:8px 16px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}body.native-app .drill-view-actions .menu-start-btn{padding:8px;font-size:1.1rem}body.native-app .drill-view-actions .drill-prev-btn{height:34px;padding:0 14px;font-size:.85rem}body.native-app .trivia-body{margin-bottom:100px}body.native-app .drill-view-inner{margin-bottom:calc(100px + var(--tab-bar-h))}body.native-app .result-area{padding-bottom:20px!important;bottom:0!important}body.native-app .serve-result-panel{padding-bottom:22px}body.native-app .modal-backdrop,body.native-app .plan-preview-backdrop{padding-bottom:var(--tab-bar-h)}:is(.modal-backdrop:has(>.session-insights-view-modal),.modal-backdrop:has(>.class-session-view-modal)){align-items:center}body.native-app .court-zoom-hint{bottom:20px}body.native-app .slam-start-match-btn{padding-bottom:12px}.more-screen-body{max-width:500px;margin:0 auto;padding:20px 16px 40px}.more-screen-list{flex-direction:column;gap:2px;margin-bottom:32px;display:flex}.more-screen-item{color:var(--white);cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:14px;width:100%;padding:14px 12px;font-family:inherit;font-size:15px;transition:background .15s;display:flex}.more-screen-item:hover{background:#ffffff0d}.more-screen-item:active{background:var(--surface-overlay)}.more-screen-item-icon{text-align:center;flex-shrink:0;width:28px;font-size:20px}.more-screen-item-label{flex:1}.more-screen-item-chevron{color:var(--text-muted);flex-shrink:0}.more-screen-social{justify-content:center;gap:16px;margin-bottom:16px;display:flex}.more-screen-disclaimer{text-align:center;color:var(--text-muted);margin-bottom:8px;font-size:11px}.more-screen-copyright{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin:0 auto;padding:4px 8px;font-family:inherit;font-size:11px;display:block}body.light .more-screen-item{color:#1a1a1a}body.light .more-screen-item:hover{background:var(--hover-bg-subtle)}body.light .more-screen-item:active{background:var(--surface-overlay)}.error-boundary-fallback{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:60vh;padding:2rem;display:flex}.error-boundary-icon{background:var(--wrong);width:56px;height:56px;color:var(--dark);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.5rem;font-size:1.75rem;font-weight:700;display:flex}.error-boundary-fallback h2{color:var(--white);font-size:1.35rem;font-weight:600}.error-boundary-fallback p{color:var(--text-muted);max-width:320px;font-size:.95rem;line-height:1.5}.error-boundary-btn{border-radius:var(--radius-md);background:var(--ace);color:var(--dark);cursor:pointer;border:none;margin-top:.75rem;padding:.65rem 1.75rem;font-size:.95rem;font-weight:600;transition:opacity .15s}.error-boundary-btn:hover{opacity:.85}.cookie-consent-banner{left:0;right:0;bottom:calc(var(--tab-bar-h,0px) + env(safe-area-inset-bottom,0px));z-index:9998;pointer-events:none;padding:12px;position:fixed}.cookie-consent-banner__inner{pointer-events:auto;background:var(--bg,#1a1a1a);border:1px solid var(--border-medium);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:center;gap:16px;max-width:900px;margin:0 auto;padding:14px 18px;display:flex;box-shadow:0 10px 30px #00000059}body.light .cookie-consent-banner__inner{background:#fff;box-shadow:0 10px 30px #0000001f}.cookie-consent-banner__text{flex:260px;margin:0;font-size:.9rem;line-height:1.5}.cookie-consent-banner__link{color:var(--ace);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.cookie-consent-banner__actions{flex-shrink:0;gap:8px;display:flex}.cookie-consent-banner__btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--border-medium);color:inherit;background:0 0;padding:8px 16px;font-size:.9rem;font-weight:600;transition:background .12s,border-color .12s}.cookie-consent-banner__btn:hover{background:var(--hover-bg-subtle)}.cookie-consent-banner__btn--accept{background:var(--ace);border-color:var(--ace);color:var(--dark)}body.light .cookie-consent-banner__btn--accept{color:#fff}.cookie-consent-banner__btn--accept:hover{opacity:.9;background:var(--ace)}body.light .cookie-consent-banner__btn--accept:hover{opacity:1;background:#3a6018}@media (width<=540px){.cookie-consent-banner__inner{padding:12px 14px}.cookie-consent-banner__actions{width:100%}.cookie-consent-banner__btn{flex:1}}.streak-btn{background:var(--mid);border-radius:var(--radius-md);cursor:pointer;width:auto;min-width:32px;height:32px;color:var(--text-muted);border:1px solid #ffffff1a;justify-content:center;align-items:center;gap:3px;padding:0 6px;display:flex}.streak-btn .emoji{opacity:.35;filter:grayscale()}.streak-btn--active .emoji{opacity:.55;filter:grayscale(.6)}.streak-btn--active .streak-btn-count{color:#f59e0b}body.light .streak-btn--active .streak-btn-count{color:#d97706}.streak-btn--done .emoji{opacity:1;filter:none}.streak-btn--done .streak-btn-count{color:var(--ace)}.streak-btn-count{letter-spacing:.02em;font-family:DM Mono,monospace;font-size:.75rem;font-weight:600}body.light .streak-btn{background:var(--card);border-color:var(--border-medium)}.streak-modal{text-align:center;width:340px}.streak-modal-body{flex-direction:column;align-items:center;gap:16px;padding-top:4px;display:flex}.streak-flame{line-height:1}.streak-count-display{letter-spacing:.06em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.6rem}.streak-subtitle{color:var(--text-muted);margin-top:-8px;font-size:.8rem}.streak-week-row{justify-content:center;gap:8px;display:flex}.streak-week-day{flex-direction:column;align-items:center;gap:4px;display:flex}.streak-week-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-family:DM Mono,monospace;font-size:.65rem}.streak-week-check{justify-content:center;align-items:center;width:24px;height:24px;display:flex}.streak-week-empty{border:1px solid var(--border-medium);background:var(--mid);border-radius:3px;width:16px;height:16px;display:block}body.light .streak-week-empty{background:var(--card)}.streak-week-day--today .streak-week-label{color:var(--white);font-weight:600}.streak-week-day--today:not(.streak-week-day--completed) .streak-week-empty{border-color:#f59e0b}body.light .streak-week-day--today:not(.streak-week-day--completed) .streak-week-empty{border-color:#d97706}.streak-best{color:var(--text-muted);font-size:.8rem}.streak-message{color:var(--text-secondary);max-width:260px;font-size:.85rem;line-height:1.4}.main{flex:1 1 0;grid-template-columns:1fr 1fr;min-height:0;display:grid;overflow:hidden}.court-panel{background:radial-gradient(at 50% 55%,#2d5a1b33 0%,#0000 70%);border-right:1px solid #ffffff0d;flex-direction:column;justify-content:flex-start;align-items:center;gap:8px;padding:80px 24px 16px;display:flex;position:relative;overflow:hidden}.court-header{flex-direction:column;align-items:center;gap:4px;height:80px;padding:12px 24px 8px;display:flex;position:absolute;top:4px;left:0;right:0;overflow:hidden}.court-meta{align-items:center;gap:10px;width:100%;display:flex}.court-inline-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.puzzle-id-tag{opacity:.55;border-left:1px solid #ffffff26;padding-left:8px}body.light .puzzle-id-tag{border-left-color:#00000026}.player-name-tag{opacity:1;color:var(--white);letter-spacing:.08em;border-left:1px solid #ffffff26;padding-left:8px;font-weight:600}body.light .player-name-tag{color:var(--off-white);border-left-color:#00000026}.court-tag{letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.62rem}.scenario-title{letter-spacing:.06em;text-align:center;color:var(--white);width:100%;font-family:Bebas Neue,sans-serif;font-size:1.9rem;line-height:1}.court-wrapper{flex-shrink:0;width:100%;max-width:270px;position:relative;overflow:hidden}.court-svg{filter:drop-shadow(0 4px 12px #0009);border-radius:6px;width:100%;display:block}@keyframes pulse-player{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes pulse-ball{0%,to{r:5.5}50%{r:7.5}}@keyframes racket-swing{0%{transform:rotate(0)}40%{transform:rotate(-180deg)}to{transform:rotate(0)}}.player-icon{transform-origin:50%;animation:2s ease-in-out infinite pulse-player}.ball-dot{animation:1.2s ease-in-out infinite pulse-ball}.pp-racket-swing{transform-origin:0 0;animation:.5s ease-in-out racket-swing}.ball-trail{stroke:#e8ff4780;stroke-width:2px;fill:none;stroke-dasharray:5 4}.incoming-trail{stroke:#ffffff73;stroke-width:1.8px;fill:none;stroke-dasharray:3 5}.court-labels{fill:#ffffffd9;font-family:DM Mono,monospace;font-size:8px}.legend{color:var(--text-muted);gap:16px;font-size:.7rem;display:flex}.legend-item{align-items:center;gap:5px;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px}.legend-dot.you{background:#4fc3f7}.legend-dot.opponent{background:var(--clay)}.legend-dot.ball{background:#c8e600}.court-toast{color:var(--off-white);letter-spacing:.1em;border-radius:var(--radius-pill);pointer-events:none;opacity:0;z-index:200;white-space:nowrap;-webkit-backdrop-filter:blur(8px);background:#141e10eb;border:1px solid #ffffff26;padding:8px 18px;font-family:DM Mono,monospace;font-size:.72rem;transition:opacity .2s,transform .2s;position:absolute;top:56px;left:50%;transform:translate(-50%)translateY(-6px)}.court-toast.show{opacity:1;transform:translate(-50%)translateY(0)}body.light .court-toast{color:#f0f5eb;background:#1e2819eb;border-color:#00000040}.side-panel{background:#0e160a99;flex-direction:column;gap:10px;min-height:0;padding:14px 20px;display:flex;overflow-y:auto}.panel-top{flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.panel-top-meta{align-items:center;gap:8px;display:flex}.puzzle-number{letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.62rem}.difficulty-badge{border-radius:var(--radius-pill);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:4px;padding:2px 9px;font-family:DM Mono,monospace;font-size:.6rem;display:inline-flex}.difficulty-badge.beginner{color:var(--correct);background:#4ade801f;border:1px solid #4ade8040}.difficulty-badge.intermediate{color:var(--ace);background:#e8ff471a;border:1px solid #e8ff4733}.difficulty-badge.advanced{color:var(--clay);background:#c97b3a1f;border:1px solid #c97b3a40}.info-box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;flex:none;gap:4px;padding:10px 14px;transition:border-color .3s;display:flex;position:relative}.info-box:before{content:"";background:linear-gradient(180deg, var(--ace), var(--court-light));border-radius:3px 0 0 3px;width:3px;transition:background .3s;position:absolute;top:0;bottom:0;left:0}.info-label{letter-spacing:.18em;text-transform:uppercase;color:var(--ace-dim);font-family:DM Mono,monospace;font-size:.58rem;transition:color .3s}.info-text{color:var(--off-white);font-size:.8rem;line-height:1.55}.question-prompt{letter-spacing:.05em;color:var(--white);flex:none;font-family:Bebas Neue,sans-serif;font-size:1.2rem}.options-grid{flex:none;grid-template-columns:1fr;gap:7px;display:grid}.option-btn{background:var(--card);border:1.5px solid var(--surface-overlay);border-radius:var(--radius-md);cursor:pointer;text-align:left;padding:9px 12px;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s}@media (hover:hover){.option-btn:hover:not(:disabled){background:#2d5a1b40;border-color:#e8ff4759;box-shadow:0 4px 14px #0000004d}}.option-btn:focus-visible:not(:disabled){background:#2d5a1b40;border-color:#e8ff4759;box-shadow:0 4px 14px #0000004d}.option-btn:disabled{cursor:not-allowed}.option-letter{display:none}.option-shot-container{align-items:center;display:flex}.option-shot{letter-spacing:.04em;color:var(--white);margin-bottom:2px;font-family:Bebas Neue,sans-serif;font-size:1rem;line-height:1.05}.option-desc{color:var(--text-muted);font-size:.75rem;line-height:1.35}.option-num{letter-spacing:.05em;color:var(--text-muted);background:var(--hover-bg);border:1px solid var(--border-medium);vertical-align:middle;border-radius:4px;justify-content:center;align-items:center;margin-right:10px;padding:0 4px;font-family:DM Mono,monospace;font-size:.65rem;font-weight:700;line-height:1.6;display:inline-flex}body.light .option-num{color:#0000009e;background:#0000000d;border-color:#0000001a}.option-btn.correct{border-color:var(--correct);background:#4ade801a;animation:.5s correctPulse}.option-btn.wrong{border-color:var(--wrong);background:#f8717114;animation:.4s shake}.option-btn.reveal-correct{background:#4ade800f;border-color:#4ade8073}.option-btn.acceptable{background:#fbbf241a;border-color:#fbbf24b3;animation:.5s correctPulse}@keyframes correctPulse{0%{transform:scale(1)}40%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.result-court-row{flex-direction:column;flex-shrink:0;align-items:center;gap:10px;width:100%;display:flex}.result-court-svg{width:100%;max-width:min(260px,62.5vh - 175px);margin:0 auto}.result-court-svg svg{border-radius:var(--radius-md);filter:drop-shadow(0 6px 20px #0000008c);width:100%;height:auto;display:block}#result-verdict-col{flex-direction:row;align-items:center;gap:10px;width:100%;display:flex}.result-area{border-radius:var(--radius-md);flex-direction:column;flex-shrink:0;gap:8px;padding:12px 14px;display:none}.result-area.visible{animation:.25s resultFadeIn;display:flex}@keyframes resultFadeIn{0%{opacity:0}to{opacity:1}}.result-area.correct-popup{background:#4ade8012;border:1.5px solid #4ade804d}.result-area.acceptable-popup{background:#fbbf2412;border:1.5px solid #fbbf2459}.result-area.wrong-popup{background:#f8717112;border:1.5px solid #f8717147}.debug-badge{letter-spacing:.08em;text-transform:uppercase;vertical-align:middle;border-radius:4px;margin-left:6px;padding:1px 5px;font-family:DM Mono,monospace;font-size:.6rem;font-weight:700;display:inline-block}.debug-best{color:#4ade80;background:#4ade802e;border:1px solid #4ade8066}.debug-ok{color:#fbbf24;background:#fbbf242e;border:1px solid #fbbf2466}.debug-wrong{color:#f87171;background:#f8717126;border:1px solid #f8717159}.result-verdict{align-items:center;gap:10px;display:flex}.result-icon{flex-shrink:0;font-size:1.6rem;line-height:1}.result-verdict-text{flex:1}.result-verdict-label{letter-spacing:.1em;margin-bottom:2px;font-family:Bebas Neue,sans-serif;font-size:1.25rem;line-height:1}.correct-popup .result-verdict-label{color:var(--correct)}.acceptable-popup .result-verdict-label{color:#fbbf24}.wrong-popup .result-verdict-label{color:var(--wrong)}.result-shot-name{letter-spacing:.12em;color:var(--text-muted);text-transform:uppercase;font-family:DM Mono,monospace;font-size:.7rem}.result-your-shot{letter-spacing:.12em;color:var(--text-muted);text-transform:uppercase;opacity:.75;margin-top:2px;font-family:DM Mono,monospace;font-size:.7rem}.result-explanation{color:var(--off-white);border-top:1px solid var(--border);padding-top:8px;font-size:.85rem;line-height:1.5}.result-tip{color:var(--text-muted);font-size:.76rem;font-style:italic;line-height:1.4}.result-actions{gap:8px;display:flex}.result-btn-try,.result-btn-replay{flex:1}.result-btn-next{flex:0 0 50%}.result-btn-try{border-radius:var(--radius-md);color:var(--wrong);letter-spacing:.08em;cursor:pointer;background:#f871711f;border:1.5px solid #f8717159;padding:9px 12px;font-family:Bebas Neue,sans-serif;font-size:1rem;transition:all .15s}@media (hover:hover){.result-btn-try:hover{background:#f8717138}}.result-btn-try:focus-visible{background:#f8717138}.result-btn-replay{background:var(--hover-bg-subtle);border-radius:var(--radius-md);color:var(--off-white);letter-spacing:.08em;cursor:pointer;border:1.5px solid #ffffff26;padding:9px 12px;font-family:Bebas Neue,sans-serif;font-size:1rem;transition:all .15s}@media (hover:hover){.result-btn-replay:hover{background:var(--border-medium)}}.result-btn-replay:focus-visible{background:var(--border-medium)}.result-btn-next{background:var(--ace);border-radius:var(--radius-md);color:var(--dark);letter-spacing:.08em;cursor:pointer;border:none;padding:9px 12px;font-family:Bebas Neue,sans-serif;font-size:1rem;transition:background .15s,box-shadow .15s}@media (hover:hover){.result-btn-next:hover{background:#fff;box-shadow:0 4px 16px #e8ff474d}}.result-btn-next:focus-visible{background:#fff;box-shadow:0 4px 16px #e8ff474d}.result-area{z-index:120;opacity:0;pointer-events:none;transition:transform .32s cubic-bezier(.34,1.1,.64,1),opacity .22s;bottom:0;left:0;right:0;transform:translateY(100%);padding:20px 18px calc(20px + env(safe-area-inset-bottom))!important;border-radius:18px 18px 0 0!important;gap:14px!important;display:flex!important;position:fixed!important}.result-area.visible{pointer-events:all;opacity:1!important;animation:none!important;transform:translateY(0)!important}.result-area.correct-popup{box-shadow:0 -8px 40px #4ade801f,0 -2px #4ade8066;background:#0d1f10!important;border:1.5px solid #4ade8059!important;border-bottom:none!important}.result-area.acceptable-popup{box-shadow:0 -8px 40px #fbbf241a,0 -2px #fbbf2466;background:#1f1800!important;border:1.5px solid #fbbf2461!important;border-bottom:none!important}.result-area.wrong-popup{box-shadow:0 -8px 40px #f871711a,0 -2px #f8717159;background:#1f0d0d!important;border:1.5px solid #f8717152!important;border-bottom:none!important}body.light .result-area.correct-popup{background:#eef8f1!important}body.light .result-area.acceptable-popup{background:#fdf9e8!important}body.light .result-area.wrong-popup{background:#fdf0f0!important}.result-area:before{content:"";background:#ffffff26;border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:-8px auto 4px;display:block}body.light .result-area:before{background:var(--border-medium)}.result-verdict-label{font-size:1.4rem!important}.result-explanation{font-size:.8rem!important}.result-btn-try,.result-btn-next{padding:12px!important;font-size:1.05rem!important}.result-backdrop{z-index:119;opacity:0;pointer-events:none;background:#00000073;transition:opacity .25s;position:fixed;inset:0;display:block!important}.result-backdrop.visible{opacity:1;pointer-events:all}.btn-push-right{margin-left:auto}.stat-divider{color:var(--text-muted)}.theme-btn-rotate-icon{opacity:.4}.legend-dot.secondary{opacity:.5}.court-tag-sm{font-size:.6rem}.skip-btn{background:var(--card);border-radius:var(--radius-pill);color:var(--text-muted);letter-spacing:.14em;cursor:pointer;border:1.5px solid #ffffff1a;padding:8px 16px;font-family:DM Mono,monospace;font-size:.68rem;transition:border-color .15s,color .15s,background .15s;position:static}.skip-btn.hidden{display:none}body.light .skip-btn{border-color:var(--border-medium)}@media (hover:hover){.skip-btn:hover{color:var(--white);background:var(--hover-bg);border-color:#ffffff47}body.light .skip-btn:hover{background:var(--hover-bg);border-color:#00000047}}.skip-btn:focus-visible{color:var(--white);background:var(--hover-bg);border-color:#ffffff47}body.light .skip-btn:focus-visible{background:var(--hover-bg);border-color:#00000047}.prev-btn{background:var(--card);border-radius:var(--radius-pill);color:var(--text-muted);letter-spacing:.14em;cursor:pointer;border:1.5px solid #ffffff1a;padding:8px 16px;font-family:DM Mono,monospace;font-size:.68rem;transition:border-color .15s,color .15s,background .15s;position:static}.prev-btn.hidden{display:none}body.light .prev-btn{border-color:var(--border-medium)}@media (hover:hover){.prev-btn:hover{color:var(--white);background:var(--hover-bg);border-color:#ffffff47}body.light .prev-btn:hover{background:var(--hover-bg);border-color:#00000047}}.prev-btn:focus-visible{color:var(--white);background:var(--hover-bg);border-color:#ffffff47}body.light .prev-btn:focus-visible{background:var(--hover-bg);border-color:#00000047}.nav-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.nav-row .prev-btn.hidden~.skip-btn{margin-left:auto}.nav-row:has(.prev-btn.hidden) .skip-btn{margin-left:auto}.nav-row .prev-btn.hidden~.trivia-next-btn{margin-left:auto}.nav-row:has(.prev-btn.hidden) .trivia-next-btn{margin-left:auto}@media (hover:none) and (pointer:coarse){.option-num,.pp-shot-key,.pp-approach-key{display:none!important}body.native-app .nav-row,body.pwa .nav-row{padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom));background:var(--dark);border-top:1px solid var(--border);z-index:10;position:fixed;bottom:0;left:0;right:0}body.native-app .side-panel,body.pwa .side-panel{padding-bottom:70px}@media (width<=600px){body.native-app .approach-shell,body.pwa .approach-shell{overflow-y:auto}body.native-app .approach-shell .main,body.pwa .approach-shell .main{flex:none}body.native-app .approach-shell .side-panel,body.pwa .approach-shell .side-panel{padding-bottom:calc(90px + env(safe-area-inset-bottom))}}}#point-play-menu-screen{background:var(--dark);z-index:145;flex-direction:column;align-items:center;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#point-play-menu-screen.active{display:flex}.pp-role-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.pp-role-btn{background:var(--card);cursor:pointer;text-align:center;border:1.5px solid #ffffff1a;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;transition:border-color .15s,background .15s;display:flex}@media (hover:hover){.pp-role-btn:hover{background:#2d5a1b40;border-color:#e8ff4766}}.pp-role-btn:focus-visible{background:#2d5a1b40;border-color:#e8ff4766}.pp-role-icon{font-size:1.6rem;line-height:1}.pp-role-title{letter-spacing:.06em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.1rem}.pp-role-desc{letter-spacing:.1em;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.6rem}.pp-role-btn.selected{background:#2d5a1b59;border-color:#e8ff47b3}body.light .pp-role-btn{border-color:#0000001a}body.light .pp-role-btn.selected{background:#2d5a1b26;border-color:#2d5a1bb3}@media (hover:hover){body.light .pp-role-btn:hover{background:#2d5a1b14;border-color:#2d5a1b66}}.pp-scoreboard{background:var(--sb-bg,#1b3312);border-radius:3px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 2px 8px #00000080}.pp-sb-row{grid-template-columns:120px 14px 26px 40px;align-items:stretch;display:grid}.pp-sb-name{letter-spacing:.06em;text-transform:uppercase;color:#ffffffeb;align-items:center;gap:3px;padding:4px 6px 4px 5px;font-family:DM Mono,monospace;font-size:.54rem;font-weight:700;display:flex;overflow:hidden}.pp-sb-serve-col{justify-content:center;align-items:center;display:flex}.pp-sb-serve-dot{color:#ffffffd9;flex-shrink:0;font-size:.42rem;line-height:1}.pp-sb-cell{text-align:center;color:#fffffff2;justify-content:center;align-items:center;font-family:Bebas Neue,sans-serif;font-size:1.1rem;line-height:1;display:flex}.pp-sb-games{background:var(--sb-bg,#1b3312)}.pp-sb-pts{background:var(--sb-pts,#3d7a26);font-size:.9rem}.pp-sb-ad{color:#fff;font-size:.78rem}.pp-serve-indicator{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);text-align:center;padding:4px 0 2px;font-family:DM Mono,monospace;font-size:.6rem}.pp-role-badge{letter-spacing:.14em;color:var(--ace-dim,#e8ff4799);padding-bottom:8px;font-family:Bebas Neue,sans-serif;font-size:.85rem}.pp-shot-section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);min-height:1.2em;padding-bottom:6px;font-family:DM Mono,monospace;font-size:.62rem}.pp-shot-grid{grid-template-columns:1fr;gap:7px;display:grid}.pp-shot-btn{background:var(--card);border:1.5px solid var(--surface-overlay);border-radius:var(--radius-md);cursor:pointer;text-align:left;flex-direction:row;align-items:center;gap:0;width:100%;padding:10px 14px;transition:border-color .15s,background .15s,opacity .15s;display:flex}@media (hover:hover){.pp-shot-btn:hover:not(:disabled){background:#2d5a1b38;border-color:#e8ff4759}}.pp-shot-btn:focus-visible:not(:disabled){background:#2d5a1b38;border-color:#e8ff4759}.pp-shot-btn:disabled{opacity:.42;cursor:not-allowed}.pp-shot-key{color:var(--text-muted);background:var(--hover-bg);border:1px solid var(--border-medium);border-radius:4px;flex-shrink:0;justify-content:center;align-self:center;align-items:center;min-width:20px;margin-right:10px;padding:0 5px;font-family:DM Mono,monospace;font-size:.65rem;font-weight:700;line-height:1.7;display:inline-flex}body.light .pp-shot-key{color:#0000009e;background:#0000000d;border-color:#0000001a}.pp-shot-label{letter-spacing:.05em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1rem;line-height:1.1}.pp-shot-desc{letter-spacing:.1em;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.58rem}body.light .pp-shot-btn{border-color:#0000001a}@media (hover:hover){body.light .pp-shot-btn:hover:not(:disabled){background:#2d5a1b14;border-color:#2d5a1b66}}.pp-shot-odds-row{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.pp-shot-odds-cell{flex-direction:column;align-items:center;gap:1px;display:flex}.pp-shot-odds-win,.pp-shot-odds-err{letter-spacing:.04em;white-space:nowrap;font-family:DM Mono,monospace;font-size:.8rem;line-height:1.3}.pp-shot-odds-win{color:var(--correct)}.pp-shot-odds-err{color:var(--clay)}body.light .pp-shot-odds-win{color:var(--ace)}.pp-odds-btn{font-family:DM Mono,monospace;font-size:.7rem;font-weight:700}.pp-odds-btn--on{color:var(--correct,#7ee860)!important;background:#2d5a1b38!important;border-color:#7ee86099!important}body.light .pp-odds-btn--on{color:#1a7a2e!important;background:#2d5a1b1f!important;border-color:#2d5a1bb3!important}.pp-stats-panel-btn{font-family:DM Mono,monospace;font-size:1rem;font-weight:700;line-height:1}.pp-stats-panel-btn--on{color:#60b4e8!important;background:#143c6438!important;border-color:#60b4e899!important}body.light .pp-stats-panel-btn--on{color:#1456aa!important;background:#1450961a!important;border-color:#14509680!important}.pp-stats-backdrop{z-index:199;position:fixed;inset:0}.pp-live-stats-panel{z-index:200;background:var(--modal-bg,#12161ef7);border:1px solid var(--border-medium);border-radius:10px;width:220px;padding:10px 12px 12px;position:fixed;top:56px;right:8px;box-shadow:0 8px 32px #00000080}body.light .pp-live-stats-panel{border-color:var(--border-medium);background:#f5f7fafa;box-shadow:0 8px 32px #00000026}.pp-rally-context{min-height:1.5em;margin-top:8px}.pp-context-warning{letter-spacing:.12em;color:var(--clay,#e07040);background:#e070402e;border:1.5px solid #e0704099;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-family:Bebas Neue,sans-serif;font-size:1rem;animation:.18s pp-fade-in;display:flex}@keyframes pp-fade-in{0%{opacity:0}to{opacity:1}}.pp-context-at-net{letter-spacing:.12em;color:var(--correct,#7ee860);background:#7ee8601f;border:1.5px solid #7ee86080;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-family:Bebas Neue,sans-serif;font-size:1rem;animation:.18s pp-fade-in;display:flex}body.light .pp-context-at-net{color:#1a7a2e;background:#2d8c1e1a;border-color:#2d8c1e80}.pp-opp-return-label{opacity:.6;text-transform:none;letter-spacing:.06em}.pp-context-danger{letter-spacing:.12em;color:var(--clay,#e07040);background:#e070401f;border:1.5px solid #e0704080;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-family:Bebas Neue,sans-serif;font-size:1rem;animation:.18s pp-fade-in;display:flex}.pp-approach-toggle{background:var(--card);cursor:pointer;text-align:left;width:100%;max-width:180px;color:var(--text-muted);border:1.5px dashed #ffffff26;border-radius:6px;align-items:center;gap:6px;margin-top:4px;margin-right:auto;padding:5px 10px;transition:border-color .15s,background .15s;display:flex}@media (hover:hover){.pp-approach-toggle:hover{background:#2d5a1b24;border-color:#7ee86066}}.pp-approach-toggle:focus-visible{background:#2d5a1b24;border-color:#7ee86066}.pp-approach-toggle.pp-approach-active{color:var(--correct,#7ee860);background:#2d5a1b38;border-style:solid;border-color:#7ee86099}.pp-approach-icon{flex-shrink:0;font-size:.9rem}.pp-approach-label{letter-spacing:.08em;flex:1;font-family:DM Mono,monospace;font-size:.62rem}.pp-approach-key{background:var(--hover-bg);border:1px solid var(--border-medium);border-radius:4px;flex-shrink:0;padding:0 5px;font-family:DM Mono,monospace;font-size:.58rem;font-weight:700;line-height:1.7}body.light .pp-approach-toggle{border-color:var(--border-medium);color:#00000080}body.light .pp-approach-toggle.pp-approach-active{color:#1a7a2e;background:#2d5a1b1f;border-color:#2d5a1bb3}@media (hover:hover){body.light .pp-approach-toggle:hover{background:#2d5a1b14;border-color:#2d5a1b66}}body.light .pp-approach-key{background:#0000000d;border-color:#0000001a}.pp-result-flash{text-align:center;z-index:100;-webkit-backdrop-filter:blur(8px);pointer-events:none;background:#0a120aeb;border:1px solid #ffffff26;border-radius:12px;padding:16px 28px;animation:.2s pp-flash-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pp-flash-in{0%{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}.pp-result-label{letter-spacing:.08em;font-family:Bebas Neue,sans-serif;font-size:2rem;line-height:1}.pp-result-label.pp-win{color:var(--correct,#7ee860)}.pp-result-label.pp-loss{color:var(--clay,#e07040)}.pp-result-label.pp-fault{color:#f5a623}body.light .pp-result-label.pp-win{color:var(--ace,#7ee860)}body.light .pp-result-label.pp-fault{color:#d47800}.pp-result-arrow{vertical-align:middle;margin:0 6px;font-size:1.6rem}.pp-result-sub{color:var(--text-muted);margin-top:5px;font-family:DM Mono,monospace;font-size:.72rem}body.light .pp-result-flash{border-color:var(--border-medium);background:#f0f8f0f2}.modal-backdrop:has(.pp-scoreboard-modal){align-items:center}.pp-scoreboard-modal{border:1px solid var(--border-medium);background:#0e1a0b;border-radius:16px;width:340px;max-height:90dvh;animation:.25s cubic-bezier(.34,1.56,.64,1) slideUp;overflow-y:auto;box-shadow:0 24px 64px #000000b3}.pp-scoreboard-banner{text-align:center;letter-spacing:.14em;padding:16px 24px;font-family:Bebas Neue,sans-serif;font-size:1.5rem}.pp-scoreboard-banner.pp-win{color:var(--correct,#4ade80);background:#4ade801f;border-bottom:1px solid #4ade8033}.pp-scoreboard-banner.pp-loss{color:var(--clay,#c97b3a);background:#c97b3a1f;border-bottom:1px solid #c97b3a33}.pp-scoreboard-body{flex-direction:column;align-items:center;gap:18px;padding:22px 24px 20px;display:flex}.pp-scoreboard-score-row{justify-content:center;align-items:center;gap:16px;width:100%;display:flex}.pp-scoreboard-player{text-align:center;flex:1}.pp-scoreboard-name{letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-family:DM Mono,monospace;font-size:.6rem}.pp-scoreboard-score{color:var(--white);font-family:Bebas Neue,sans-serif;font-size:4rem;line-height:1}.pp-scoreboard-score.pp-win{color:var(--correct,#4ade80)}.pp-scoreboard-score.pp-loss{color:var(--clay,#c97b3a)}.pp-scoreboard-dash{color:var(--text-muted);padding-top:12px;font-family:Bebas Neue,sans-serif;font-size:2rem}.pp-scoreboard-serve-badge{border-radius:var(--radius-pill);letter-spacing:.1em;padding:5px 16px;font-family:DM Mono,monospace;font-size:.68rem}.pp-scoreboard-serve-badge.badge-held{color:var(--correct,#4ade80);background:#4ade801a;border:1px solid #4ade804d}.pp-scoreboard-serve-badge.badge-break{color:var(--correct,#4ade80);background:#4ade8026;border:1px solid #4ade8066}.pp-scoreboard-serve-badge.badge-broken{color:#f87171;background:#f871711a;border:1px solid #f871714d}.pp-scoreboard-serve-badge.badge-opp-held{color:var(--clay,#c97b3a);background:#c97b3a1a;border:1px solid #c97b3a4d}.pp-scoreboard-retry{width:100%;color:var(--clay,#c97b3a);border-radius:var(--radius-md);letter-spacing:.12em;cursor:pointer;background:0 0;border:1px solid #c97b3a66;margin-bottom:8px;padding:11px;font-family:Bebas Neue,sans-serif;font-size:1.2rem;transition:filter .15s,transform .15s}@media (hover:hover){.pp-scoreboard-retry:hover{filter:brightness(1.15);transform:translateY(-1px)}}.pp-scoreboard-retry:focus-visible{filter:brightness(1.15)}.pp-scoreboard-continue{background:var(--ace);width:100%;color:var(--dark);border-radius:var(--radius-md);letter-spacing:.12em;cursor:pointer;border:none;padding:13px;font-family:Bebas Neue,sans-serif;font-size:1.3rem;transition:filter .15s,transform .15s}@media (hover:hover){.pp-scoreboard-continue:hover{filter:brightness(1.12);transform:translateY(-1px)}}.pp-scoreboard-continue:focus-visible{filter:brightness(1.12)}.pp-stats-tabs{gap:6px;margin-bottom:10px;display:flex}.pp-stats-tab{background:var(--hover-bg-subtle);color:var(--text-muted);letter-spacing:.08em;cursor:pointer;border:1px solid #ffffff1a;border-radius:6px;flex:1;padding:5px 0;font-family:DM Mono,monospace;font-size:.68rem;transition:background .15s,color .15s}.pp-stats-tab--active{border-color:var(--border-strong);color:var(--text-muted);background:#ffffff24}body.light .pp-stats-tab{color:var(--text-muted);background:#0000000d;border-color:#0000001a}body.light .pp-stats-tab--active{background:var(--border-medium);color:var(--text-muted);border-color:#0003}.pp-stats-table{width:100%;font-family:DM Mono,monospace;font-size:.72rem}.pp-stats-header{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;text-align:right;grid-template-columns:1fr 48px 48px;gap:2px;padding:0 4px 4px;font-size:.62rem;display:grid}.pp-stats-header .pp-stats-label{text-align:left}.pp-stats-section-title{letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);opacity:.6;border-top:1px solid var(--border);margin-top:4px;padding:6px 4px 2px;font-size:.6rem}.pp-stats-section-title:first-of-type{border-top:none;margin-top:0}.pp-stats-row{border-radius:4px;grid-template-columns:1fr 48px 48px;gap:2px;padding:3px 4px;display:grid}.pp-stats-row:nth-child(odd){background:#ffffff08}.pp-stats-label{color:var(--text-muted);text-align:left}.pp-stats-col{color:var(--white);text-align:right}body.light .pp-stats-section-title{border-top-color:var(--surface-overlay)}body.light .pp-stats-row:nth-child(odd){background:var(--hover-bg-subtle)}body.light .pp-stats-col{color:var(--ace-dim)!important}body.light .pp-stats-label{color:#96b888!important}body.light .pp-stats-header{color:#0000009e!important}body.light .pp-scoreboard-modal{background:#f0f4ee;border-color:#0000001a}body.light .pp-scoreboard-banner.pp-win{color:var(--ace);background:#1a7a2e1a;border-bottom-color:#1a7a2e33}body.light .pp-scoreboard-banner.pp-loss{color:var(--clay);background:#b5401014;border-bottom-color:#b5401026}body.light .pp-scoreboard-score.pp-win{color:#1a7a2e}body.light .pp-scoreboard-score.pp-loss{color:#b54010}body.light .pp-scoreboard-serve-badge.badge-held{color:#1a7a2e;background:#1a7a2e14;border-color:#1a7a2e66}body.light .pp-scoreboard-serve-badge.badge-break{color:#1a7a2e;background:#1a7a2e1a;border-color:#1a7a2e80}body.light .pp-scoreboard-serve-badge.badge-broken{color:#c0230d;background:#c0230d12;border-color:#c0230d59}body.light .pp-scoreboard-serve-badge.badge-opp-held{color:#b54010;background:#b5401012;border-color:#b5401059}body.light .pp-scoreboard-continue{color:#fff}:is(.modal-backdrop:has(.pp-matchup-modal),.modal-backdrop:has(.slam-win-modal)){align-items:center}.pp-matchup-modal{border:1px solid var(--border-medium);background:#0e1a0b;border-radius:16px;width:320px;animation:.25s cubic-bezier(.34,1.56,.64,1) slideUp;overflow:hidden;box-shadow:0 24px 64px #000000b3}.pp-matchup-header{text-align:center;letter-spacing:.22em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:14px 24px;font-family:Bebas Neue,sans-serif;font-size:1.1rem}.pp-matchup-body{flex-direction:column;align-items:center;gap:14px;padding:24px 24px 20px;display:flex}.pp-matchup-vs-row{justify-content:center;align-items:flex-start;gap:12px;width:100%;display:flex}.pp-matchup-side{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.pp-matchup-label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.58rem}.pp-matchup-name-lg{letter-spacing:.06em;color:var(--white);text-align:center;font-family:Bebas Neue,sans-serif;font-size:1.3rem}.pp-matchup-country{color:var(--text-muted);letter-spacing:.08em;font-family:DM Mono,monospace;font-size:.58rem}.pp-matchup-stats{gap:8px;margin-top:2px;display:flex}.pp-matchup-stat{color:var(--text-muted);font-family:DM Mono,monospace;font-size:.62rem}.pp-matchup-role-badge{letter-spacing:.12em;text-transform:uppercase;color:var(--ace);border-radius:var(--radius-pill);background:#4ade8014;border:1px solid #4ade8033;margin-top:4px;padding:3px 10px;font-family:DM Mono,monospace;font-size:.6rem}.pp-matchup-vs{letter-spacing:.1em;color:var(--text-muted);flex-shrink:0;padding-top:22px;font-family:Bebas Neue,sans-serif;font-size:1.4rem}.pp-matchup-h2h{border-radius:var(--radius-pill);border:1px solid var(--surface-overlay);background:#ffffff0a;align-items:center;gap:8px;padding:6px 14px;display:flex}.pp-matchup-h2h-label{letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.58rem}.pp-matchup-h2h-record{font-family:DM Mono,monospace;font-size:.78rem}.pp-matchup-h2h-wins{color:var(--ace,#4ade80)}.pp-matchup-h2h-sep{color:var(--text-muted)}.pp-matchup-h2h-losses{color:var(--clay,#c97b3a)}body.light .pp-matchup-h2h{background:var(--hover-bg-subtle);border-color:var(--surface-overlay)}body.light .pp-matchup-h2h-wins{color:#1a7a2e}body.light .pp-matchup-h2h-losses{color:#b54010}.pp-matchup-action-row{gap:8px;width:100%;display:flex}.pp-matchup-action-row .pp-matchup-randomize{flex:1;width:auto}.pp-matchup-randomize{border:1px solid var(--border-medium);border-radius:var(--radius-md);letter-spacing:.06em;width:100%;color:var(--text-muted);cursor:pointer;background:0 0;padding:10px;font-family:DM Mono,monospace;font-size:.78rem;transition:border-color .15s,color .15s}@media (hover:hover){.pp-matchup-randomize:hover{color:var(--white);border-color:#ffffff47}}.pp-matchup-randomize:focus-visible{color:var(--white);border-color:#ffffff47}.pp-matchup-browse-overlay{background:var(--dark);z-index:201;flex-direction:column;transition:transform .35s cubic-bezier(.34,1.2,.64,1);display:flex;position:fixed;inset:0;overflow:hidden;transform:translateY(100%)}.pp-matchup-browse-overlay.open{transform:translateY(0)}.pp-matchup-start{background:var(--ace);width:100%;color:var(--dark);border-radius:var(--radius-md);letter-spacing:.12em;cursor:pointer;border:none;padding:13px;font-family:Bebas Neue,sans-serif;font-size:1.3rem;transition:filter .15s,transform .15s}@media (hover:hover){.pp-matchup-start:hover{filter:brightness(1.12);transform:translateY(-1px)}}.pp-matchup-start:focus-visible{filter:brightness(1.12)}body.light .pp-matchup-modal{color:#111a0e;background:#f0f4ee;border-color:#0000001a}body.light .pp-matchup-header{border-bottom-color:var(--surface-overlay);color:var(--ace)}body.light .pp-matchup-name-lg{color:#111a0e}body.light .pp-matchup-role-badge{color:#1a7a2e;background:#1a7a2e12;border-color:#1a7a2e40}body.light .pp-matchup-randomize{color:#00000080;border-color:#00000024}body.light .pp-matchup-start{color:#fff}@media (hover:hover){body.light .pp-matchup-randomize:hover{color:#1a2e28;border-color:#0000004d}}.pp-game-layout{flex-direction:column;display:flex}.pp-game-layout .court-panel{border-right:none;border-bottom:1px solid var(--border-subtle);flex:1 1 0;justify-content:center;align-items:center;min-height:0;padding:8px 16px 4px}.pp-game-layout .court-panel>div:first-child{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;position:relative}.pp-game-layout .court-wrapper{aspect-ratio:300/480;width:auto;max-width:100%;height:100%;max-height:100%}.pp-game-layout .side-panel{border-top:1px solid var(--border-subtle);background:#0e160ae0;flex-direction:column;flex:none;gap:4px;min-height:100px;padding:6px 10px 10px;display:flex;overflow:hidden}.pp-game-layout .panel-top{display:none}.pp-game-layout .pp-rally-context{flex-shrink:0;order:1;justify-content:center;align-items:center;height:28px;min-height:0;margin-top:0;display:flex}.pp-game-layout .pp-context-warning,.pp-game-layout .pp-context-at-net,.pp-game-layout .pp-context-danger{justify-content:center;width:100%;max-width:fit-content;padding:4px 14px}.pp-game-layout .pp-approach-toggle{margin-top:3px;padding:4px 10px}.pp-game-layout .pp-shot-section-label{text-align:center;padding-bottom:0}.pp-game-layout .pp-shot-grid{order:3;grid-template-columns:repeat(4,1fr);gap:6px}.pp-game-layout .pp-shot-btn{text-align:left;flex-direction:row;justify-content:flex-start;align-items:center;gap:0;padding:8px 10px}.pp-game-layout .pp-shot-key{flex-shrink:0;align-self:center;margin-bottom:0;margin-right:10px}.pp-game-layout .pp-shot-btn>div:not(.pp-shot-key){flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.pp-game-layout .pp-shot-desc{display:block}.pp-middle-panel{width:100%}@media (hover:none) and (pointer:coarse){.pp-game-layout .pp-shot-grid{justify-content:center;align-items:stretch;margin-top:auto;margin-bottom:auto}.pp-game-layout .pp-shot-btn{text-align:center;justify-content:center;align-items:center;height:100%}.pp-game-layout .pp-shot-btn>div:not(.pp-shot-key){align-items:center}.pp-game-layout .pp-shot-key{margin-right:6px}.pp-game-layout .pp-shot-label{font-size:.82rem}.pp-game-layout .pp-shot-desc{display:none}}.pp-sb-in-left{display:none}.pp-sb-in-center{display:contents}@media (width<=600px){.pp-sb-row{grid-template-columns:95px 14px 26px 40px}.pp-sb-in-left{align-items:center;margin-left:6px;display:flex}.pp-sb-in-center{display:none}}.pp-mode-desc{color:var(--text-muted);text-align:center;letter-spacing:.02em;margin-top:6px;font-family:DM Mono,monospace;font-size:.68rem}.slam-select-modal{border:1px solid var(--border-medium);background:#0e1a0b;border-radius:16px;width:min(92vw,400px);animation:.2s fadeIn;overflow:hidden}.slam-select-header{text-align:center;letter-spacing:.1em;color:var(--ace);border-bottom:1px solid var(--surface-overlay);padding:14px 24px;font-family:Bebas Neue,sans-serif;font-size:1.3rem}.slam-select-body{flex-direction:column;gap:14px;padding:20px;display:flex}.slam-card-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.slam-card{cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;transition:border-color .15s,background .15s;display:flex}@media (hover:hover){.slam-card:hover{border-color:var(--border-strong);background:var(--hover-bg)}}.slam-card:focus-visible{border-color:var(--border-strong);background:var(--hover-bg)}.slam-card--active{border-color:var(--ace);background:#4ade8014}.slam-card-icon{font-size:1.7rem}.slam-card-name{letter-spacing:.06em;color:var(--white);text-align:center;font-family:Bebas Neue,sans-serif;font-size:.85rem;line-height:1.15}.slam-card-surface{color:var(--text-muted);letter-spacing:.05em;font-family:DM Mono,monospace;font-size:.58rem}.slam-draw-section{flex-direction:column;gap:6px;display:flex}.slam-draw-label{letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;text-align:center;font-family:DM Mono,monospace;font-size:.65rem}.slam-draw-toggle{justify-content:center}.slam-start-btn{background:var(--ace);width:100%;color:var(--dark);letter-spacing:.08em;cursor:pointer;border:none;border-radius:10px;padding:13px;font-family:Bebas Neue,sans-serif;font-size:1.05rem;transition:opacity .15s}.slam-start-btn:disabled{opacity:.35;cursor:not-allowed}@media (hover:hover){.slam-start-btn:not(:disabled):hover{opacity:.88}}.slam-cancel-btn{border:1px solid var(--border-medium);letter-spacing:.06em;width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:10px;padding:11px;font-family:DM Mono,monospace;font-size:.75rem;transition:border-color .15s,color .15s}@media (hover:hover){.slam-cancel-btn:hover{color:var(--white);border-color:#ffffff47}}.slam-cancel-btn:focus-visible{color:var(--white);border-color:#ffffff47}body.light .slam-select-modal{color:#111a0e;background:#f0f4ee;border-color:#0000001a}body.light .slam-select-header{border-bottom-color:var(--surface-overlay)}body.light .slam-card{background:#00000008;border-color:#0000001a}@media (hover:hover){body.light .slam-card:hover{background:var(--border);border-color:#0003}}body.light .slam-card--active{background:#1a7a2e0f;border-color:#1a7a2e}body.light .slam-card-name{color:#111a0e}body.light .slam-cancel-btn{color:#00000080;border-color:#00000024}@media (hover:hover){body.light .slam-cancel-btn:hover{color:#111a0e;border-color:#0000004d}}.slam-bracket-backdrop{align-items:stretch!important}.slam-bracket-modal{width:100%;height:calc(100% - env(safe-area-inset-top));max-height:calc(100vh - env(safe-area-inset-top));margin-top:env(safe-area-inset-top);background:#0e1a0b;border:1px solid #ffffff1a;border-radius:0;flex-direction:column;animation:.2s fadeIn;display:flex;overflow:hidden}@media (width>=600px){.slam-bracket-backdrop{align-items:center!important}.slam-bracket-modal{border-radius:16px;width:min(96vw,800px);height:min(96vh,700px)}}.slam-bracket-header{border-bottom:1px solid var(--surface-overlay);flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;display:flex}.slam-bracket-title{letter-spacing:.08em;color:var(--ace);align-items:center;gap:6px;font-family:Bebas Neue,sans-serif;font-size:1.1rem;display:flex}.slam-bracket-icon{font-size:1.2rem}.slam-bracket-round-label{letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;font-family:DM Mono,monospace;font-size:.65rem}.slam-bracket-menu-btn{color:var(--text-muted);letter-spacing:.04em;cursor:pointer;background:0 0;border:1px solid #ffffff2e;border-radius:6px;flex-shrink:0;margin-left:auto;padding:4px 10px;font-family:DM Mono,monospace;font-size:.7rem;transition:border-color .15s,color .15s}body.light .slam-bracket-menu-btn{color:#00000080;border-color:#00000024}@media (hover:hover){.slam-bracket-menu-btn:hover{color:var(--white);border-color:#ffffff59}body.light .slam-bracket-menu-btn:hover{color:#111a0e;border-color:#0000004d}}.slam-bracket-menu-btn:focus-visible{color:var(--white);border-color:#ffffff59}body.light .slam-bracket-menu-btn:focus-visible{color:#111a0e;border-color:#0000004d}.slam-bracket-scroll{flex:1;padding:12px 8px;overflow:auto}.slam-bracket-rounds{align-items:flex-start;gap:6px;min-width:max-content;display:flex}.slam-bracket-col{flex-direction:column;gap:4px;min-width:120px;display:flex}.slam-bracket-col--current .slam-bracket-col-label{color:var(--ace)}.slam-bracket-col-label{letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;text-align:center;padding-bottom:4px;font-family:DM Mono,monospace;font-size:.58rem}.slam-bracket-col-matches{flex-direction:column;gap:3px;display:flex}.bracket-match{border:1px solid var(--surface-overlay);background:#ffffff0a;border-radius:6px;flex-direction:column;gap:2px;min-height:38px;padding:5px 7px;display:flex}.bracket-match--player{background:#4ade800d;border-color:#4ade804d}.bracket-entry-name{color:var(--white);white-space:nowrap;text-overflow:ellipsis;letter-spacing:.02em;font-family:DM Mono,monospace;font-size:.6rem;overflow:hidden}.bracket-entry-name .emoji{padding-right:6px}.bracket-entry--you{color:var(--ace);font-weight:700}.bracket-entry--opp{color:#fbbf24}.bracket-entry--winner{font-weight:700}.bracket-entry--eliminated{color:var(--text-muted);opacity:.5;text-decoration:line-through}.slam-bracket-footer{padding:12px 16px;padding-bottom:max(12px, env(safe-area-inset-bottom));border-top:1px solid var(--surface-overlay);flex-direction:column;flex-shrink:0;gap:8px;display:flex}.slam-start-match-btn{margin-bottom:0}.slam-bracket-status{text-align:center;letter-spacing:.08em;padding:8px;font-family:Bebas Neue,sans-serif;font-size:1.1rem}.slam-bracket-status--elim{color:var(--wrong)}.slam-bracket-status--won{color:var(--ace)}body.light .slam-bracket-modal{background:#f0f4ee;border-color:#0000001a}body.light .slam-bracket-header{border-bottom-color:var(--surface-overlay)}body.light .bracket-match{background:#00000008;border-color:#0000001a}body.light .bracket-match--player{background:#1a7a2e0a;border-color:#1a7a2e4d}body.light .bracket-entry-name{color:#111a0e}body.light .bracket-entry--eliminated{color:#999}body.light .slam-bracket-footer{border-top-color:var(--surface-overlay)}.slam-win-modal{border:1px solid var(--border-medium);text-align:center;background:#0e1a0b;border-radius:16px;flex-direction:column;align-items:center;gap:8px;width:min(90vw,360px);padding:32px 24px 24px;animation:.25s fadeIn;display:flex}.slam-win-trophy{font-size:3rem;line-height:1}.slam-win-icon{margin-top:-4px;font-size:2rem;line-height:1}.slam-win-headline{letter-spacing:.1em;color:var(--ace);margin-top:4px;font-family:Bebas Neue,sans-serif;font-size:2.2rem}.slam-win-name{letter-spacing:.06em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.1rem}.slam-win-sub{color:var(--text-muted);margin-bottom:8px;font-family:DM Mono,monospace;font-size:.68rem;line-height:1.5}.slam-win-actions{flex-direction:column;gap:8px;width:100%;margin-top:8px;display:flex}body.light .slam-win-modal{background:#f0f4ee;border-color:#0000001a}body.light .slam-win-name{color:#111a0e}.pp-duel-layout{background:#0a1408;flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.pp-duel-p1-panel,.pp-duel-p2-panel{background:#0e160aeb;flex-direction:column;flex:0 0 80px;justify-content:flex-end;gap:5px;height:80px;padding:8px 10px;transition:opacity .18s;display:flex;overflow:hidden}.pp-duel-p2-panel{border-bottom:1px solid var(--border);flex:0 0 calc(80px + env(safe-area-inset-top,0px));height:calc(80px + env(safe-area-inset-top,0px));padding-bottom:calc(8px + env(safe-area-inset-top,0px));transform:rotate(180deg)}.pp-duel-p1-panel{border-top:1px solid var(--border);flex:0 0 calc(80px + env(safe-area-inset-bottom,0px));height:calc(80px + env(safe-area-inset-bottom,0px));padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}.pp-duel-panel--inactive{opacity:.32;pointer-events:none}.pp-duel-panel--active{opacity:1}.pp-duel-middle{flex-direction:row;flex:1 1 0;align-items:stretch;min-height:0;display:flex;overflow:hidden}.pp-duel-scoreboard-wrap{border-right:1px solid var(--border-subtle);flex:0 0 50px;align-self:stretch;width:50px;position:relative;overflow:hidden}.pp-duel-sb{width:92px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}.pp-duel-sb-row{grid-template-columns:22px 12px 22px 36px}.pp-duel-court-section{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden}.pp-duel-court-wrapper{aspect-ratio:300/480;width:auto;max-width:100%;height:100%;max-height:100%;display:flex}.pp-duel-court-wrapper>svg{width:100%;height:100%}.pp-duel-shot-grid{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.pp-duel-shot-btn{text-align:center!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:2px!important;padding:7px 4px!important}.pp-duel-shot-btn .pp-shot-key{align-self:center;margin-bottom:2px;margin-right:0!important}.pp-duel-shot-btn .pp-shot-label{font-size:.72rem}.pp-duel-turn-label{letter-spacing:.16em;text-align:center;color:var(--text-muted);font-family:Bebas Neue,sans-serif;font-size:.78rem}.pp-duel-panel--active .pp-duel-turn-label{color:#e8ff47b3}.pp-duel-controls-row{flex-direction:row;align-items:center;display:flex}.pp-duel-approach-slot{flex:1;justify-content:center;align-items:center;display:flex}.pp-duel-approach--hidden{opacity:0!important;pointer-events:none!important}.pp-duel-on-run-banner{letter-spacing:.08em;color:#e8ff47d9;pointer-events:none;visibility:hidden;flex:1;justify-content:center;align-items:center;gap:4px;font-family:Bebas Neue,sans-serif;font-size:.72rem;display:flex}.pp-duel-on-run-banner--visible{visibility:visible}.pp-duel-approach{font-size:.58rem;justify-content:center!important;max-width:100%!important;margin-top:0!important;padding:4px 8px!important}.pp-duel-theme-btn{top:8px;left:50%;transform:translate(-50%);background:#ffffff0d!important;border-radius:5px!important;flex-direction:column!important;align-items:center!important;gap:2px!important;width:36px!important;min-width:0!important;padding:3px 4px!important;display:flex!important;position:absolute!important}.pp-duel-theme-btn .theme-name{letter-spacing:.03em;text-overflow:ellipsis;white-space:nowrap;max-width:34px;overflow:hidden;font-size:.38rem!important}.pp-duel-back-btn{background:var(--hover-bg-subtle);border:1px solid var(--border-medium);color:#ffffffb3;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.7rem;transition:background .15s,color .15s;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.pp-duel-back-btn:hover{background:var(--border-medium);color:#fff9}body.light .pp-duel-layout{background:#e8f0e5}body.light .pp-duel-p1-panel,body.light .pp-duel-p2-panel{border-color:var(--surface-overlay);background:#e6f0e1f2}body.light .pp-duel-scoreboard-wrap{border-right-color:var(--surface-overlay)}body.light .pp-duel-back-btn{background:var(--hover-bg-subtle);border-color:var(--border-medium);color:var(--border-strong)}body.light .pp-duel-turn-label{color:#00000059}body.light .pp-duel-panel--active .pp-duel-turn-label{color:#2d6b1a}body.light .pp-duel-on-run-banner{color:#b85c00}.menu-title-wrap{text-align:center;width:min(700px,90vw)}.browse-btn-row{gap:8px;width:100%;max-width:340px;display:flex}.browse-btn{flex:1}.browse-list.browse-players-grid{grid-template-columns:1fr 1fr;gap:0;padding:0;display:grid}.browse-column{flex-direction:column;padding:0 10px 24px;display:flex;overflow-y:auto}.browse-column .browse-group-label{background:var(--dark);z-index:1;padding-top:16px;position:sticky;top:0}body.light .browse-column .browse-group-label{background:var(--bg,#f4f8f0)}@media (width<=480px){.browse-list.browse-players-grid{flex-direction:column;display:flex;overflow:hidden}.browse-column{flex:1;min-height:0}}.browse-disclaimer{text-align:center;box-sizing:border-box;width:100%;padding:12px 16px 16px;margin:0 auto!important}.home-disclaimer{text-align:center;width:100%;margin:0;padding:16px 0 20px}#menu-screen{background:var(--dark);z-index:150;flex-direction:column;align-items:center;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#menu-screen.active{display:flex}#home-screen{background:var(--dark);z-index:150;flex-direction:column;align-items:center;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow:hidden auto}#home-screen.active{display:flex}#games-screen,#oncourt-screen,#coach-screen{background:var(--dark);z-index:150;flex-direction:column;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow:hidden auto}#games-screen.active,#oncourt-screen.active,#coach-screen.active{display:flex}.hub-screen-inner{z-index:1;flex-direction:column;flex:1;align-items:center;gap:24px;width:100%;max-width:540px;margin:0 auto;padding:16px 12px;display:flex;position:relative}.hub-screen-inner .home-modes{flex-direction:column;display:flex}.gallery-frame{border-radius:var(--radius-md);cursor:pointer;border:none;flex-shrink:0;width:min(700px,90vw);max-width:none;height:280px;margin-top:10px;position:relative;overflow:hidden}.gallery-img{object-fit:contain;opacity:0;will-change:opacity;width:100%;height:100%;transition:opacity .4s;position:absolute;inset:0}.gallery-img.active{opacity:1}.gallery-dots{justify-content:center;gap:8px;margin-top:8px;display:flex}.gallery-dot{cursor:pointer;background:#ffffff59;border:1.5px solid #00000040;border-radius:50%;width:12px;height:12px;padding:0;transition:background .2s,transform .2s}.gallery-dot.active{background:#e8ff47e6;border-color:#b4c80099;transform:scale(1.25)}body.light .gallery-dot{background:#0003;border-color:#0000004d}body.light .gallery-dot.active{background:#5a8c20;border-color:#3a6010}@media (hover:hover){.gallery-dot:hover:not(.active){background:#ffffffb3}body.light .gallery-dot:hover:not(.active){background:#0006}}.get-app-banner{display:none}@media (width<=600px){.get-app-banner{border-radius:var(--radius-md);background:var(--hover-bg-subtle);cursor:pointer;letter-spacing:.05em;width:92vw;max-width:100%;color:var(--text-muted);box-sizing:border-box;border:1px solid #ffffff1a;justify-content:center;align-items:center;gap:8px;margin:10px auto 0;padding:8px 14px;font-family:Bebas Neue,sans-serif;font-size:.85rem;transition:background .2s,border-color .2s;display:flex}body.light .get-app-banner{background:var(--hover-bg-subtle);border-color:#0000001a}.get-app-banner:active{background:#ffffff1a}body.light .get-app-banner:active{background:var(--surface-overlay)}}.gallery-arrow{color:#fff;cursor:pointer;opacity:0;z-index:2;text-shadow:0 1px 6px #000c;background:#ffffff2e;border:none;justify-content:center;align-items:center;width:44px;height:72px;padding:0;font-size:2.4rem;line-height:1;transition:opacity .18s,background .18s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gallery-arrow-prev{border-radius:0 6px 6px 0;left:50px}.gallery-arrow-next{border-radius:6px 0 0 6px;right:50px}@media (hover:hover){.gallery-frame:hover .gallery-arrow,.gallery-lightbox:hover .gallery-lightbox-arrow{opacity:1}.gallery-arrow:hover{opacity:1;background:#ffffff59}}.gallery-lightbox-arrow{opacity:0;background:#ffffff26;width:56px;height:96px;font-size:3rem;position:fixed;top:50%}.gallery-lightbox-arrow.gallery-arrow-prev{border-radius:0 8px 8px 0;left:0}.gallery-lightbox-arrow.gallery-arrow-next{border-radius:8px 0 0 8px;right:0}body.light .gallery-arrow{text-shadow:none;background:#00000040}body.light .gallery-lightbox-arrow{background:#0000004d}@media (hover:hover){.gallery-lightbox-arrow:hover{opacity:1;background:#ffffff4d}body.light .gallery-arrow:hover{background:#00000080}body.light .gallery-lightbox-arrow:hover{background:#0000008c}}.gallery-lightbox{z-index:9999;cursor:pointer;background:#000000eb;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.gallery-lightbox img{object-fit:contain;border-radius:6px;max-width:95vw;max-height:92vh;box-shadow:0 8px 48px #000000b3}.gallery-lightbox-close{color:#fff;cursor:pointer;opacity:.7;background:0 0;border:none;font-size:2rem;line-height:1;transition:opacity .15s;position:absolute;top:16px;right:20px}@media (hover:hover){.gallery-lightbox-close:hover{opacity:1}}.home-header-login-btn{background:var(--ace);color:var(--dark);letter-spacing:.06em;cursor:pointer;white-space:nowrap;border:none;border-radius:7px;height:32px;padding:0 12px;font-family:Bebas Neue,sans-serif;font-size:.85rem;transition:filter .15s,transform .15s,box-shadow .15s;box-shadow:0 0 12px #e8ff4726}.login-short{display:none}@media (width<=600px){.login-full{display:none}.login-short{display:inline}}@media (hover:hover){.home-header-login-btn:hover{filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 4px 16px #e8ff474d}}.home-header-login-btn:focus-visible{filter:brightness(1.12);box-shadow:0 4px 16px #e8ff474d}body.light .home-header-login-btn{background:var(--ace);color:#fff}@media (hover:hover){body.light .home-header-login-btn:hover{background:#3a6018}}.home-inner{z-index:1;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;gap:28px;width:min(700px,90vw);padding:16px 12px;display:flex}body.native-app #home-screen .home-inner{justify-content:flex-start;width:100%;max-width:540px;padding:12px 12px 24px}.on-tour-banner{background:var(--card);border-radius:var(--radius-md);border:1px solid #0000;flex-direction:column;width:100%;margin-bottom:10px;padding:12px 16px;display:flex}.on-tour-banner.surface-clay{border-color:#c46a3a99}.on-tour-banner.surface-grass{border-color:#4a9e5c99}.on-tour-banner.surface-hard{border-color:#64a0e699}.on-tour-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ace);text-align:center;margin-bottom:4px;font-family:DM Mono,monospace;font-size:.55rem;line-height:1.2}.on-tour-row{color:inherit;text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:6px 10px;text-decoration:none;transition:background .15s;display:flex}.on-tour-trophy{flex-shrink:0;font-size:1.1rem;line-height:1}.on-tour-details{flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0;display:flex}@media (hover:hover){.on-tour-row:hover{background:#ffffff0d}body.light .on-tour-row:hover{background:var(--hover-bg-subtle)}}.on-tour-row+.on-tour-row{border-top:1px solid var(--border-subtle);margin-top:8px;padding-top:8px}.on-tour-name{letter-spacing:.06em;color:var(--white);white-space:nowrap;font-family:Bebas Neue,sans-serif;font-size:.95rem;line-height:1.1}.on-tour-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;font-family:DM Mono,monospace;font-size:.62rem;line-height:1.2;display:flex}.on-tour-surface{letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-md);padding:1px 7px;font-family:DM Mono,monospace;font-size:.55rem}.on-tour-surface.surface-clay{color:#c46a3a;background:#c46a3a1a;border:1px solid #c46a3a40}.on-tour-surface.surface-grass{color:#4a9e5c;background:#4a9e5c1a;border:1px solid #4a9e5c40}.on-tour-surface.surface-hard{color:#64a0e6;background:#64a0e61a;border:1px solid #64a0e640}body.light .on-tour-banner{background:#ffffffb3}body.light .on-tour-row+.on-tour-row{border-top-color:var(--surface-overlay)}body.light .on-tour-banner.surface-clay{border-color:#b45a2e80}body.light .on-tour-banner.surface-grass{border-color:#3a8a4a80}body.light .on-tour-banner.surface-hard{border-color:#508cd280}body.light .on-tour-name{color:#111a0e}body.light .on-tour-surface.surface-clay{color:#9a4a1e;background:#b45a2e14;border-color:#b45a2e33}body.light .on-tour-surface.surface-grass{color:#2e7a3e;background:#3a8a4a14;border-color:#3a8a4a33}body.light .on-tour-surface.surface-hard{color:#3670b8;background:#508cd214;border-color:#508cd233}@media (width<=420px){.on-tour-row{gap:6px}}.on-tour-header{padding:0 10px;position:relative}.on-tour-header .on-tour-label{text-align:center;margin-bottom:0;display:block}.on-tour-schedule-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;transition:color .15s;display:flex;position:absolute;top:-6px;right:0}@media (hover:hover){.on-tour-schedule-btn:hover,body.light .on-tour-schedule-btn:hover{color:var(--white)}}.about-home-banner{background:var(--card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--white);text-align:left;flex-direction:column;gap:14px;margin:0;padding:16px 18px;font-size:.85rem;line-height:1.5;transition:border-color .15s;display:flex}@media (hover:hover){.about-home-banner:hover{border-color:var(--ace)}}.about-home-banner-cols{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.about-home-banner-col{flex-direction:column;gap:6px;display:flex}.about-home-banner-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ace);font-family:DM Mono,monospace;font-size:.7rem;font-weight:600;display:block}.about-home-banner-desc{display:block}.about-home-banner-footer{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:16px;padding-top:12px;display:flex}.about-home-banner-note{color:var(--text-muted);font-size:.78rem}.about-home-banner-cta{letter-spacing:.08em;text-transform:uppercase;color:var(--ace);white-space:nowrap;flex-shrink:0;font-family:DM Mono,monospace;font-size:.7rem}@media (width<=600px){.about-home-banner-footer{flex-direction:column;align-items:stretch;gap:8px}.about-home-banner-note,.about-home-banner-cta{text-align:center}}body.light .about-home-banner{color:var(--text);background:#ffffffb3}@media (width<=700px){.about-home-banner-cols{grid-template-columns:1fr;gap:14px}}.healthkit-home-banner{background:var(--card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--white);text-align:left;align-items:center;gap:10px;margin:0;padding:6px 12px;font-size:.85rem;line-height:1.4;transition:border-color .15s;display:flex}@media (hover:hover){.healthkit-home-banner:hover{border-color:var(--ace)}}.healthkit-home-banner-icon{flex-shrink:0;font-size:1.2rem}.healthkit-home-banner-text{flex:1}.healthkit-home-banner-arrow{color:var(--text-muted);flex-shrink:0}body.light .healthkit-home-banner{color:var(--text);background:#ffffffb3}.tour-schedule-body{gap:0}.tour-filter-tabs{gap:6px;width:100%;margin-bottom:8px;display:flex}.tour-filter-tab{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;flex:1;padding:6px 0;font-family:DM Mono,monospace;font-size:.6rem;transition:background .15s,color .15s,border-color .15s}.tour-filter-tab.tour-filter-active{color:var(--ace);border-color:var(--ace);background:#4a9e5c14}@media (hover:hover){.tour-filter-tab:not(.tour-filter-active):hover{color:var(--white);background:#ffffff0a}body.light .tour-filter-tab:not(.tour-filter-active):hover{background:var(--hover-bg-subtle);color:var(--dark)}}body.light .tour-filter-tab.tour-filter-active{background:#3a8a4a14}.tour-month-section{width:100%;padding:0}.tour-month-heading{letter-spacing:.1em;color:var(--ace);border:none;border-bottom:2px solid var(--ace);background:var(--dark);cursor:pointer;z-index:2;justify-content:space-between;align-items:center;width:100%;margin:0;padding:14px 6px 8px;font-family:Bebas Neue,sans-serif;font-size:1.3rem;display:flex;position:sticky;top:0}body.light .tour-month-heading{background:#fff}.tour-month-right{align-items:center;gap:8px;display:flex}.tour-month-count{color:var(--text-muted);text-align:center;min-width:18px;font-family:DM Mono,monospace;font-size:.55rem}.tour-month-live{letter-spacing:.06em;text-transform:uppercase;color:var(--ace);border:1px solid var(--ace);border-radius:var(--radius-md);padding:0 5px;font-family:DM Mono,monospace;font-size:.48rem;line-height:1.6}.tour-chevron{color:var(--text-muted);transition:transform .2s}.tour-chevron-open{transform:rotate(180deg)}.tour-event-row{border-bottom:1px solid var(--border-subtle);border-radius:var(--radius-md);align-items:flex-start;gap:12px;padding:10px;display:flex}.tour-event-dates{color:var(--text-muted);white-space:normal;overflow-wrap:break-word;flex-shrink:0;width:58px;padding-top:2px;font-family:DM Mono,monospace;font-size:.58rem;line-height:1.4}body.light .tour-event-dates{color:#666}.tour-event-row.tour-past .tour-event-dates{color:#7a8e72}body.light .tour-event-row.tour-past .tour-event-dates{color:#757575}.tour-event-info{flex:1;min-width:0}.tour-event-row.tour-past .tour-event-name{color:#9a9e96}.tour-event-row.tour-past .tour-event-meta{color:#7a8e72}.tour-event-row.tour-past .tour-event-badge{opacity:.5}body.light .tour-event-row.tour-past .tour-event-name{color:#717a6d}body.light .tour-event-row.tour-past .tour-event-meta{color:#757575}.tour-event-row.tour-active{opacity:1}.tour-event-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tour-event-name{letter-spacing:.05em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:.9rem;line-height:1.2}.tour-event-badge{letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-md);flex-shrink:0;align-self:center;margin-left:auto;padding:1px 6px;font-family:DM Mono,monospace;font-size:.5rem}.tour-event-badge.surface-clay{color:#c46a3a;background:#c46a3a1a;border:1px solid #c46a3a40}.tour-event-badge.surface-grass{color:#4a9e5c;background:#4a9e5c1a;border:1px solid #4a9e5c40}.tour-event-badge.surface-hard{color:#64a0e6;background:#64a0e61a;border:1px solid #64a0e640}body.light .tour-event-badge.surface-clay{color:#9a4a1e;background:#b45a2e14;border-color:#b45a2e33}body.light .tour-event-badge.surface-grass{color:#2e7a3e;background:#3a8a4a14;border-color:#3a8a4a33}body.light .tour-event-badge.surface-hard{color:#3670b8;background:#508cd214;border-color:#508cd233}.tour-event-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;font-family:DM Mono,monospace;font-size:.6rem;line-height:1.4;display:flex}.tour-event-dot{opacity:.4}.tour-live-badge{letter-spacing:.08em;text-transform:uppercase;color:var(--ace);border:1px solid var(--ace);border-radius:var(--radius-md);padding:0 5px;font-family:DM Mono,monospace;font-size:.48rem;line-height:1.6}a.tour-event-row,a.tour-event-row:hover,a.tour-event-row:visited,a.tour-event-row:active{color:inherit;transition:background .15s;text-decoration:none!important}@media (hover:hover){a.tour-event-row:hover{background:#ffffff0a}body.light a.tour-event-row:hover{background:var(--hover-bg-subtle)}}body.light .tour-event-name{color:#111a0e}body.light .tour-event-meta{color:#666}@media (width<=600px){#tour-schedule .info-hero{padding-top:12px}#tour-schedule .info-hero h1{font-size:1.8rem}}.home-modes{flex-direction:column;gap:12px;width:100%;display:flex}.mode-card{background:var(--card);border:1.5px solid var(--surface-overlay);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:16px;width:100%;padding:18px 20px;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s;display:flex}@media (hover:hover){.mode-card:hover{filter:brightness(1.12);border-color:#e8ff4766;transform:translateY(-1px);box-shadow:0 6px 20px #0000004d}}.mode-card:focus-visible{filter:brightness(1.12);border-color:#e8ff4766;box-shadow:0 6px 20px #0000004d}.mode-card-icon{text-align:center;flex-shrink:0;width:48px;font-size:2rem}.mode-card-body{flex:1}.mode-card-title{letter-spacing:.08em;color:var(--white);margin-bottom:4px;font-family:Bebas Neue,sans-serif;font-size:1.3rem;line-height:1}.mode-card-desc{color:var(--text-muted);font-family:DM Sans,sans-serif;font-size:.78rem;line-height:1.4}.mode-card-arrow{color:var(--text-muted);flex-shrink:0;font-size:1.1rem;transition:color .15s,transform .15s}body.light .mode-card{border-color:var(--surface-overlay);background:#ffffffb3}body.light .mode-card-title{color:#111a0e}body.light .mode-card-desc{color:#0000008c}body.light .mode-card-arrow{color:#0000004d}@media (hover:hover){.mode-card:hover .mode-card-arrow{color:var(--ace);transform:translate(3px)}body.light .mode-card:hover{border-color:#37601359}body.light .mode-card:hover .mode-card-arrow{color:var(--ace)}}.home-scroll-sections{flex-direction:column;gap:12px;width:100%;display:flex}.home-scroll-section{width:100%}.home-scroll-strip{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:10px;padding:2px 0 6px;display:flex;overflow-x:auto}.home-scroll-strip::-webkit-scrollbar{display:none}.home-scroll-hero{border-radius:var(--radius-md);cursor:pointer;text-align:left;background:#e8ff470f;border:1.5px solid #e8ff472e;flex-shrink:0;align-items:center;gap:12px;width:192px;padding:10px 14px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.home-scroll-hero:active{transform:scale(.97)}.home-scroll-hero-icon{flex-shrink:0;font-size:1.6rem;line-height:1}.home-scroll-hero-body{flex-direction:column;gap:2px;min-width:0;display:flex}.home-scroll-hero-title{letter-spacing:.08em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.15rem;line-height:1}.home-scroll-hero-desc{color:var(--text-muted);font-family:DM Sans,sans-serif;font-size:.65rem;line-height:1.3}body.light .home-scroll-hero{background:#f7fff0;border-color:#4a7c1f4d}body.light .home-scroll-hero-title{color:#111a0e}.home-scroll-card{background:var(--card);border:1px solid var(--surface-overlay);border-radius:var(--radius-md);cursor:pointer;text-align:center;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:8px;width:96px;padding:10px 8px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.home-scroll-card:active{transform:scale(.95)}.home-scroll-card-icon{font-size:1.4rem;line-height:1}.home-scroll-card-label{letter-spacing:.06em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:.82rem;line-height:1.1}body.light .home-scroll-card{border-color:var(--surface-overlay);background:#ffffffb3}body.light .home-scroll-card-label{color:#111a0e}@media (hover:hover){.home-scroll-hero:hover{border-color:#e8ff4766;transform:translateY(-1px);box-shadow:0 4px 16px #00000040}.home-scroll-card:hover{border-color:#e8ff4759;transform:translateY(-1px);box-shadow:0 4px 12px #0003}body.light .home-scroll-hero:hover{border-color:#37601359}body.light .home-scroll-card:hover{border-color:#3760134d}}.quickstart-section{width:100%;margin-top:16px}.quickstart-heading{letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);opacity:.7;margin-bottom:8px;font-family:DM Mono,monospace;font-size:.6rem}.quickstart-list{flex-direction:column;gap:4px;width:100%;display:flex}.home-court-deco{cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;width:85%;margin:12px auto 0}.home-court-svg{filter:none;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:6px;outline:none;width:100%;height:auto;transition:filter .2s;display:block}.court-ball{transition:cx .6s cubic-bezier(.22,.68,.36,1),cy .6s cubic-bezier(.22,.68,.36,1)}.home-court-theme-btn{border:1px solid var(--border-medium);cursor:pointer;background:#ffffff0a;border-radius:6px;align-items:center;gap:6px;margin-top:8px;padding:4px 10px;transition:border-color .2s,background .2s;display:inline-flex}.home-court-theme-btn:hover{background:var(--surface-overlay);border-color:#ffffff38}body.light .home-court-theme-btn{border-color:var(--border-medium);background:#00000008}body.light .home-court-theme-btn:hover{background:var(--hover-bg)}.home-court-theme-name{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.55rem}body.light .home-court-theme-name{color:#00000080}.quickstart-card{background:var(--card);border-radius:var(--radius-md);cursor:pointer;text-align:left;border:1px solid #ffffff0a;align-items:center;gap:10px;width:100%;padding:10px 12px;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s;display:flex}@media (hover:hover){.quickstart-card:hover{filter:brightness(1.12);border-color:#e8ff4766;transform:translateY(-1px);box-shadow:0 4px 14px #00000040}.quickstart-card:hover .quickstart-arrow{color:var(--ace);opacity:1}body.light .quickstart-card:hover{border-color:#37601359}body.light .quickstart-card:hover .quickstart-arrow{color:var(--ace)}}.quickstart-icon{text-align:center;flex-shrink:0;width:24px;font-size:1rem}.quickstart-label{letter-spacing:.06em;color:var(--white);opacity:.85;flex:1;font-family:Bebas Neue,sans-serif;font-size:.95rem;line-height:1}.quickstart-arrow{color:var(--text-muted);opacity:.5;flex-shrink:0;font-size:.85rem}body.light .quickstart-card{background:#fff;border-color:#0000000a}body.light .quickstart-label{color:#111a0e}body.light .quickstart-arrow{color:#0003}.menu-court-glow{pointer-events:none;background:radial-gradient(100% 100%,oklch(45% .14 145/.18) 0%,#0000 70%);position:fixed;inset:0}body.light .menu-court-glow{background:radial-gradient(100% 100%,oklch(45% .14 145/.08) 0%,#0000 70%)}.menu-inner{z-index:1;flex-direction:column;flex:1;align-items:center;gap:28px;width:100%;max-width:520px;padding:24px;display:flex;position:relative}.menu-logo{letter-spacing:.1em;color:var(--ace);text-shadow:0 0 60px #e8ff4740;font-family:Bebas Neue,sans-serif;font-size:4.5rem;line-height:1}.menu-logo.menu-logo-lg{font-size:3rem}.menu-logo span{color:var(--white)}.menu-tagline{letter-spacing:.25em;text-transform:uppercase;color:var(--text-muted);text-align:center;margin-top:4px;font-family:DM Mono,monospace;font-size:.82rem}.menu-slam-status{text-align:center;background:#1a3d10;border:1.5px solid #0000;border-radius:10px;margin-top:24px;padding:10px 16px 12px}.menu-slam-status-label{letter-spacing:.25em;text-transform:uppercase;color:var(--ace);justify-content:center;align-items:center;gap:7px;font-family:DM Mono,monospace;font-size:.72rem;font-weight:700;display:flex}.menu-slam-status-dot{background:var(--ace);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.8s ease-in-out infinite slam-dot-pulse}@keyframes slam-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.menu-slam-status-detail{letter-spacing:.08em;color:var(--ace);margin-top:5px;font-family:DM Mono,monospace;font-size:.68rem}body.light .menu-slam-status{background:#f6fff5}body.light .menu-slam-status-label{color:#3a7518}body.light .menu-slam-status-dot{background:#3a7518}body.light .menu-slam-status-detail{color:#3a7518}.menu-section{width:100%}.menu-section-label{letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;padding-left:2px;font-family:DM Mono,monospace;font-size:.6rem}.menu-section-label--row{justify-content:space-between;align-items:center;display:flex}.menu-section-label-actions{gap:8px;display:flex}.menu-select-all-btn{letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-family:DM Mono,monospace;font-size:.6rem;transition:color .15s,border-color .15s}@media (hover:hover){.menu-select-all-btn:hover{color:var(--accent);border-color:var(--accent)}}.menu-select-all-btn:focus-visible{color:var(--accent);border-color:var(--accent)}.menu-toggle-group{gap:8px;display:flex}.menu-toggle-group--row{flex-wrap:nowrap}.menu-toggle-group--row .menu-toggle-btn{flex:1}#menu-screen .menu-toggle-group--row .menu-toggle-btn{padding:9px 12px}#trivia-menu .menu-toggle-group{flex-wrap:wrap;justify-content:center;width:100%;display:flex}#trivia-menu .trivia-categories>.menu-toggle-btn{flex:0 0 calc(33.333% - 6px)}#trivia-menu .menu-btn-icon{margin-bottom:3px;font-size:1.4rem}#trivia-menu .menu-btn-label{font-size:1rem}#trivia-menu .menu-btn-sub{font-size:.65rem}.menu-toggle-btn{background:var(--card);border:1.5px solid var(--surface-overlay);cursor:pointer;text-align:center;color:var(--text-muted);border-radius:10px;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:12px 8px;font-family:DM Sans,sans-serif;transition:all .15s;display:flex;position:relative}@media (hover:hover){.menu-toggle-btn:hover{color:var(--white);border-color:#fff3}}.menu-toggle-btn:focus-visible{color:var(--white);border-color:#fff3}.menu-toggle-btn.active{border-color:var(--ace);color:var(--ace);background:#e8ff4714}.menu-toggle-btn.active-green{border-color:var(--ace);color:var(--ace);background:#1a3d10}.menu-btn-check{opacity:0;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;font-size:.6rem;font-weight:700;transition:opacity .15s;display:flex;position:absolute;top:-7px;left:-7px}.menu-toggle-btn.active .menu-btn-check,.menu-toggle-btn.active-green .menu-btn-check{background:var(--ace);color:var(--dark);opacity:1}.menu-btn-icon{flex-shrink:0;font-size:1.2rem;line-height:1}.menu-btn-label{letter-spacing:.06em;flex-direction:row;justify-content:center;align-items:center;gap:5px;margin-top:2px;font-family:Bebas Neue,sans-serif;font-size:1.2rem;display:flex}.menu-btn-sub{color:var(--text-muted);letter-spacing:.04em;margin-top:2px;font-size:.85rem;display:block}.menu-toggle-btn.active .menu-btn-sub,.menu-toggle-btn.active-green .menu-btn-sub{color:inherit;opacity:.7}.menu-start-btn{background:var(--ace);width:100%;color:var(--dark);letter-spacing:.12em;cursor:pointer;border:none;border-radius:10px;padding:16px;font-family:Bebas Neue,sans-serif;font-size:1.5rem;transition:all .15s;box-shadow:0 0 30px #e8ff4733}@media (hover:hover){.menu-start-btn:hover{filter:brightness(1.12);transform:translateY(-2px);box-shadow:0 8px 30px #e8ff4759}}.menu-start-btn:focus-visible{filter:brightness(1.12);box-shadow:0 8px 30px #e8ff4759}.menu-start-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none;transform:none}.menu-count-hint{color:var(--text-muted);letter-spacing:.1em;text-align:center;font-family:DM Mono,monospace;font-size:.65rem}.menu-count-hint span{color:var(--ace)}.menu-section--disabled{opacity:.4;pointer-events:none;-webkit-user-select:none;user-select:none}.menu-mode-desc{color:var(--text-muted);letter-spacing:.05em;text-align:center;margin-top:8px;font-family:DM Mono,monospace;font-size:.68rem}.menu-court-btn{z-index:2;padding:6px 14px 6px 10px;position:absolute;top:20px;right:130px}body.light header{background:#f0f4eef2;border-bottom-color:#0000001a}body.light .stat-pill{border-color:#0000001a}body.light .settings-btn{border-color:var(--border-medium)}@media (hover:hover){body.light .settings-btn:hover{background:var(--hover-bg);border-color:#00000038}}@media (width<=500px),(width>=601px) and (width<=700px){body.light button.logo-btn{border-color:var(--border-medium)}@media (hover:hover){body.light button.logo-btn:hover{background:var(--border-subtle);border-color:#00000038}}}body.light .theme-btn{border-color:var(--border-medium)}@media (hover:hover){body.light .theme-btn:hover{background:#0000000d;border-color:#00000038}}body.light .court-panel{border-right-color:var(--surface-overlay);background:radial-gradient(at 40% 55%,#2d5a1b1a 0%,#0000 70%)}body.light .side-panel{background:#e6eee2b3}body.light .info-box,body.light .option-btn{background:var(--card);border-color:#0000001a}@media (hover:hover){body.light .option-btn:hover:not(:disabled){background:#2d5a1b1f;border-color:#64a03c80}}body.light .option-btn.correct{background:#1a7a3a1f;border-color:#1a7a3a}body.light .option-btn.wrong{background:#c0392b1a;border-color:#c0392b}body.light .option-btn.reveal-correct{background:#1a7a3a12;border-color:#1a7a3a80}body.light .correct-popup .result-verdict-label{color:#1a7a3a}body.light .acceptable-popup .result-verdict-label{color:#92610a}body.light .option-btn.acceptable{background:#fbbf241f;border-color:#b48200b3}body.light .result-explanation{border-top-color:var(--surface-overlay)}body.light .modal,body.light .confirm-modal{border-color:var(--border-medium);background:#eef3ec;box-shadow:0 24px 64px #0000002e}@media (hover:hover){body.light .modal-close:hover{background:var(--hover-bg)}}body.light .modal-divider{background:var(--surface-overlay)}body.light .hand-btn{background:#dce6d8;border-color:#0000001a}@media (hover:hover){body.light .hand-btn:hover{border-color:#00000038}}body.light .confirm-cancel{background:#dce6d8;border-color:#0000001a}@media (hover:hover){body.light .confirm-cancel:hover{border-color:#00000040}}body.light .confirm-menu{color:#0a6494;background:#0e64a014;border-color:#0e64a04d}@media (hover:hover){body.light .confirm-menu:hover{background:#0e64a024;border-color:#0e64a080}}body.light .confirm-ok.confirm-ok--green{color:#fff}@media (hover:hover){body.light .confirm-ok.confirm-ok--green:hover{background:#3a6018}}body.light .modal-backdrop{background:#0000004d}body.light .progress-bar-wrap{background:var(--surface-overlay)}body.light #menu-screen{background:var(--dark)}body.light .menu-toggle-btn{background:var(--card);border-color:#0000001a}@media (hover:hover){body.light .menu-toggle-btn:hover{border-color:#00000038}}body.light .menu-toggle-btn.active,body.light .hand-btn.active{border-color:var(--ace);color:var(--ace);background:#4a7c1f1a}body.light .result-btn-next{background:var(--ace);color:#fff}@media (hover:hover){body.light .result-btn-next:hover{background:#3a6018;box-shadow:0 4px 16px #4a7c1f4d}}body.light .menu-start-btn{background:var(--ace);color:#fff;box-shadow:0 0 30px #4a7c1f33}@media (hover:hover){body.light .menu-start-btn:hover{background:#3a6018;box-shadow:0 8px 30px #4a7c1f59}}body.light .restart-btn{background:var(--ace);color:#fff}@media (hover:hover){body.light .restart-btn:hover{background:#3a6018}}body.light .score-title{color:var(--ace)}body.light .progress-bar-fill{background:linear-gradient(90deg,#4a7c1f,#6aaa2a);box-shadow:0 0 8px #4a7c1f66}body.light .menu-toggle-btn.active-green{color:#3a7518;background:#dde3d5;border-color:#3a7518}body.light .menu-toggle-btn.active-green .menu-btn-check{background:var(--ace);color:#fff}body.light #score-screen{background:#f0f4eefa}body.light .incoming-trail{stroke:#ffffffb3}body.light .difficulty-badge.beginner{color:#1e7a3a;background:#22783c1a;border-color:#22783c4d}body.light .difficulty-badge.intermediate{color:#3a6018;background:#4a7c1f1a;border-color:#4a7c1f4d}.menu-browse-btn{border:1.5px solid var(--border-medium);color:var(--text-muted);letter-spacing:.1em;cursor:pointer;background:0 0;border-radius:10px;width:100%;padding:10px 20px;font-family:DM Mono,monospace;font-size:.72rem;transition:border-color .2s,color .2s,background .2s}body.light .menu-browse-btn{border-color:#00000024}@media (hover:hover){.menu-browse-btn:hover{color:var(--white);background:#ffffff0a;border-color:#ffffff47}body.light .menu-browse-btn:hover{background:var(--hover-bg-subtle);border-color:#00000047}}.menu-browse-btn:focus-visible{color:var(--white);background:#ffffff0a;border-color:#ffffff47}body.light .menu-browse-btn:focus-visible{background:var(--hover-bg-subtle);border-color:#00000047}.menu-disclaimer{color:var(--text-muted);text-align:center;opacity:.6;max-width:320px;margin:0;font-size:.7rem;line-height:1.5}.trivia-nav-row{width:100%;max-width:460px}@media (hover:none) and (pointer:coarse){.trivia-nav-row{padding:12px 20px;padding-bottom:calc(12px + env(safe-area-inset-bottom));background:var(--dark);border-top:1px solid var(--border);z-index:10;margin-top:auto;position:fixed;bottom:0;left:0;right:0}.trivia-body{margin-bottom:calc(100px + env(safe-area-inset-bottom))}}#trivia-menu{background:var(--dark);z-index:150;flex-direction:column;align-items:center;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#trivia-menu.active{display:flex}#trivia-screen{background:var(--dark);z-index:140;flex-direction:column;animation:.3s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#trivia-screen.active{display:flex}.trivia-body{flex-direction:column;flex:1;justify-content:flex-start;align-items:center;gap:20px;width:100%;max-width:700px;margin:0 auto;padding:24px 20px;display:flex;position:relative}.trivia-category-tag{letter-spacing:.15em;text-transform:uppercase;color:var(--ace);border-radius:var(--radius-pill);background:#e8ff4714;border:1px solid #e8ff4726;padding:4px 12px;font-family:DM Mono,monospace;font-size:.65rem}.trivia-question{color:var(--white);text-align:center;max-width:500px;font-family:DM Sans,sans-serif;font-size:1.2rem;font-weight:500;line-height:1.5}.trivia-options{grid-template-columns:1fr;gap:10px;width:100%;max-width:460px;display:grid}.trivia-option-btn{background:var(--card);cursor:pointer;text-align:center;color:var(--white);border:1.5px solid #ffffff1a;border-radius:10px;justify-content:center;align-items:center;gap:14px;padding:14px 18px;font-family:DM Sans,sans-serif;font-size:.92rem;transition:border-color .15s,background .15s,transform .1s;display:flex;position:relative}@media (hover:hover){.trivia-option-btn:hover:not(.locked){background:#2d5a1b33;border-color:#e8ff4759;transform:translateY(-1px)}}.trivia-option-btn:focus-visible:not(.locked){background:#2d5a1b33;border-color:#e8ff4759}.trivia-option-btn>span:not(.trivia-opt-letter){text-align:center;box-sizing:border-box;width:100%;padding:0 44px}.trivia-option-btn .trivia-opt-letter{background:var(--hover-bg-subtle);width:30px;height:30px;color:var(--text-muted);border:1px solid var(--surface-overlay);border-right:1px solid #fff3;border-radius:6px;justify-content:center;align-items:center;font-family:DM Mono,monospace;font-size:.8rem;font-weight:600;display:flex;position:absolute;left:18px}.trivia-option-btn.correct-answer{border-color:var(--correct)!important;background:#4ade801f!important}.trivia-option-btn.correct-answer .trivia-opt-letter{background:var(--correct);color:var(--dark)}.trivia-option-btn.wrong-answer{border-color:var(--wrong)!important;background:#f871711f!important}.trivia-option-btn.wrong-answer .trivia-opt-letter{background:var(--wrong);color:var(--dark)}.trivia-option-btn.dimmed{opacity:.4}.trivia-option-btn.locked{cursor:default;pointer-events:none}.trivia-explanation{border:1px solid var(--border);max-width:460px;color:var(--text-muted);text-align:center;background:#ffffff0a;border-radius:10px;width:100%;padding:14px 18px;font-size:.82rem;line-height:1.55;animation:.3s fadeIn}.trivia-next-btn{background:var(--ace);color:var(--dark);border-radius:var(--radius-md);letter-spacing:.08em;cursor:pointer;border:none;padding:12px 36px;font-family:Bebas Neue,sans-serif;font-size:1.2rem;transition:background .15s,transform .15s}@media (hover:hover){.trivia-next-btn:hover{background:#fff;transform:translateY(-1px)}}.trivia-next-btn:focus-visible{background:#fff}#trivia-score-screen{z-index:160;background:#0b1208f7;flex-direction:column;animation:.4s fadeIn;display:none;position:fixed;inset:0}#trivia-score-screen.active{display:flex}body.light .trivia-option-btn{border-color:var(--surface-overlay);color:#111a0e;background:#ffffffb3}@media (hover:hover){body.light .trivia-option-btn:hover:not(.locked){background:#4a7c1f14;border-color:#4a7c1f4d}}body.light .trivia-option-btn .trivia-opt-letter{background:var(--hover-bg);color:var(--text-muted);border-color:#0000001a}body.light .trivia-option-btn.correct-answer{background:#1a7a3a1a!important;border-color:#1a7a3a!important}body.light .trivia-option-btn.correct-answer .trivia-opt-letter{color:#fff;background:#1a7a3a}body.light .trivia-explanation{background:var(--hover-bg-subtle);border-color:var(--surface-overlay)}body.light .trivia-category-tag{color:var(--ace);background:#4a7c1f1a;border-color:#4a7c1f40}body.light #trivia-menu,body.light #trivia-screen{background:var(--dark)}body.light #trivia-score-screen{background:#f0f4eefa}.serve-clock{flex-shrink:0;position:relative}.serve-clock svg{display:block}.serve-clock__progress{transition:stroke-dashoffset .2s linear}.serve-clock__track{stroke:var(--border-medium)}.serve-clock__label{text-align:center;pointer-events:none;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.serve-clock__number{font-variant-numeric:tabular-nums;color:currentColor;font-family:DM Mono,monospace;font-size:1rem;font-weight:700}.serve-clock__timeout{text-transform:uppercase;letter-spacing:.05em;color:currentColor;font-size:.4rem;font-weight:700}.serve-clock--safe{color:#4ade80}.serve-clock--warn{color:#e8ff47}.serve-clock--danger{color:#f87171}body.light .serve-clock__track{stroke:#00000026}body.light .serve-clock--safe{color:#1a7a3a}body.light .serve-clock--warn{color:#7a6a00}body.light .serve-clock--danger{color:#c0392b}@keyframes clock-pulse{0%,to{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-50%)scale(1.07)}}.serve-clock--urgent .serve-clock__label{animation:.6s ease-in-out infinite clock-pulse}.serve-clock-float{z-index:10;position:absolute;top:12px;right:14px}.trivia-tier-badge{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:20px;padding:4px 14px;font-size:.85rem;font-weight:700}.trivia-nav-row .trivia-tier-badge{margin-right:auto}.trivia-tier-ace{color:#e8ff47;background:#e8ff4726;border:1px solid #e8ff4766}.trivia-tier-winner{color:#4ade80;background:#4ade8026;border:1px solid #4ade8066}.trivia-tier-rally{color:#4fc3f7;background:#4fc3f71f;border:1px solid #4fc3f74d}.trivia-tier-timeout{color:#f87171;background:#f871711f;border:1px solid #f871714d}body.light .trivia-tier-ace{color:#7a6400;background:#7864001a;border-color:#78640059}body.light .trivia-tier-winner{color:#1a7a3a;background:#1a7a3a1a;border-color:#1a7a3a59}body.light .trivia-tier-rally{color:#006494;background:#0064a014;border-color:#0064a04d}body.light .trivia-tier-timeout{color:#b42828;background:#b4282814;border-color:#b428284d}.trivia-timeout-advancing{color:var(--text-muted);text-align:center;letter-spacing:.04em;padding:8px 0;font-size:.8rem}.trivia-new-highscore{letter-spacing:.12em;color:#e8ff47;text-align:center;border-radius:var(--radius-md);background:#e8ff471a;border:2px solid #e8ff4780;padding:10px 28px;font-size:1.2rem;font-weight:800;animation:1.5s ease-in-out infinite alternate pulse-glow;box-shadow:0 0 18px #e8ff4740}@keyframes pulse-glow{0%{box-shadow:0 0 8px #e8ff4740}to{box-shadow:0 0 24px #e8ff47a6}}body.light .trivia-new-highscore{color:#5a7a00;background:#5a7a0017;border-color:#5a7a0066;animation:1.5s ease-in-out infinite alternate pulse-glow-light;box-shadow:0 0 18px #5a7a0026}@keyframes pulse-glow-light{0%{box-shadow:0 0 8px #5a7a0026}to{box-shadow:0 0 24px #5a7a0073}}.trivia-highscore-row{opacity:.6;letter-spacing:.04em;font-size:.8rem}#score-screen{z-index:100;background:#0b1208f7;flex-direction:column;animation:.4s fadeIn;display:none;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#score-screen.active{display:flex}.score-trophy{font-size:4rem;animation:.6s .2s both bounce}@keyframes bounce{0%{transform:scale(0)rotate(-10deg)}60%{transform:scale(1.2)rotate(3deg)}to{transform:scale(1)rotate(0)}}.score-title{letter-spacing:.08em;color:var(--ace);font-family:Bebas Neue,sans-serif;font-size:3.2rem;line-height:1}.score-subtitle{color:var(--text-muted);max-width:300px;font-size:.9rem}.score-number{color:var(--white);font-family:DM Mono,monospace;font-size:2.6rem}.score-number span{color:var(--text-muted);font-size:1.2rem}.grade-badge{border-radius:var(--radius-md);letter-spacing:.1em;padding:8px 28px;font-family:Bebas Neue,sans-serif;font-size:1.5rem}.grade-ace{color:#e8ff47;background:#e8ff4726;border:2px solid #e8ff4766}.grade-winner{color:#4ade80;background:#4ade8026;border:2px solid #4ade8066}.grade-in-play{color:#4fc3f7;background:#4fc3f71f;border:2px solid #4fc3f74d}.grade-fault{color:#f87171;background:#f871711f;border:2px solid #f871714d}.grade-genius{color:#e8ff47;background:#e8ff4726;border:2px solid #e8ff4766}.grade-expert{color:#4ade80;background:#4ade8026;border:2px solid #4ade8066}.grade-club{color:var(--ace);background:#e8ff471a;border:2px solid #e8ff474d}.grade-casual{color:var(--clay);background:#c97b3a26;border:2px solid #c97b3a4d}.grade-rookie{color:var(--wrong);background:#f871711f;border:2px solid #f871714d}body.light .grade-ace,body.light .grade-genius{color:#7a6400;background:#7864001a;border-color:#78640059}body.light .grade-winner,body.light .grade-expert{color:#1a7a3a;background:#1a7a3a1a;border-color:#1a7a3a59}body.light .grade-in-play,body.light .grade-club{color:#006494;background:#0064a014;border-color:#0064a04d}body.light .grade-casual{color:#8c4610;background:#8c460a1a;border-color:#8c460a4d}body.light .grade-fault,body.light .grade-rookie{color:#b42828;background:#b4282814;border-color:#b428284d}.restart-btn{background:var(--ace);color:var(--dark);border-radius:var(--radius-md);letter-spacing:.1em;cursor:pointer;border:none;margin-top:6px;padding:12px 36px;font-family:Bebas Neue,sans-serif;font-size:1.3rem;transition:background .15s,transform .15s}@media (hover:hover){.restart-btn:hover{background:#fff;transform:translateY(-2px)}}.restart-btn:focus-visible{background:#fff}#drill-lab-menu{background:var(--dark);z-index:150;flex-direction:column;align-items:center;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#drill-lab-menu.active{display:flex}#drill-lab-view{background:var(--dark);z-index:150;flex-direction:column;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#drill-lab-view.active{display:flex}.drill-format-group{justify-content:center}.drill-format-group .menu-toggle-btn{flex:0 0 calc(33% - 6px)}.drill-tag-filter-row{flex-wrap:wrap;gap:6px;display:flex}.drill-tag-filter-chip{background:var(--card);color:var(--text-muted);cursor:pointer;white-space:nowrap;border:1.5px solid #ffffff21;border-radius:20px;flex-shrink:0;padding:6px 12px;font-family:inherit;font-size:.78rem;transition:border-color .15s,background .15s,color .15s}@media (hover:hover){.drill-tag-filter-chip:hover{border-color:var(--color-green);color:var(--white)}}.drill-tag-filter-chip:focus-visible{border-color:var(--color-green);color:var(--white)}.drill-tag-filter-chip.active{border-color:var(--ace);color:var(--ace);background:#e8ff4714;font-weight:600}.drill-tag-filter-chip--custom.active{color:var(--color-green)}body.light .drill-tag-filter-chip{border-color:var(--border-medium)}body.light .drill-tag-filter-chip.active{color:#3a6018;background:#4a7c1f24;border-color:#5a8c20}.drill-browse-toggle{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-muted);letter-spacing:.1em;cursor:pointer;background:0 0;margin-top:10px;padding:10px;font-family:DM Mono,monospace;font-size:.7rem;transition:color .15s,border-color .15s}@media (hover:hover){.drill-browse-toggle:hover:not(:disabled){color:var(--ace);border-color:var(--ace)}}.drill-browse-toggle:focus-visible:not(:disabled){color:var(--ace);border-color:var(--ace)}.drill-browse-toggle:disabled{opacity:.4;cursor:default}.drill-browse-grid{flex-direction:column;gap:6px;margin-top:10px;padding-bottom:20px;display:flex}.drill-card{background:var(--card);border:1px solid var(--surface-overlay);border-radius:var(--radius-md);text-align:left;cursor:pointer;width:100%;padding:10px 14px;transition:border-color .15s,background .15s}@media (hover:hover){.drill-card:hover{background:#e8ff470a;border-color:#e8ff474d}}.drill-card:focus-visible{background:#e8ff470a;border-color:#e8ff474d}.drill-card-name{letter-spacing:.05em;color:var(--white);margin-bottom:5px;font-family:Bebas Neue,sans-serif;font-size:1rem}.drill-card-tags{flex-wrap:wrap;gap:5px;display:flex}.drill-focus-tag,.drill-format-tag,.drill-players-tag,.drill-ball-stage{letter-spacing:.12em;border-radius:var(--radius-pill);border:1px solid;align-items:center;gap:4px;padding:2px 8px;font-family:DM Mono,monospace;font-size:.6rem;line-height:1;display:inline-flex}.drill-focus-baseline{color:#4ade80;background:#4ade8014;border-color:#4ade804d}.drill-focus-net{color:var(--ace);background:#e8ff4714;border-color:#e8ff474d}.drill-focus-serve-return{color:#5aacff;background:#5aacff14;border-color:#5aacff4d}.drill-focus-point-play{color:#c97b3a;background:#c97b3a14;border-color:#c97b3a4d}.drill-focus-custom{color:var(--text-muted);background:0 0;border-color:#ffffff26}.drill-format-tag,.drill-players-tag{color:var(--text-muted);border-color:var(--border-medium);background:0 0}.drill-ball-stage--red{color:#f05252;background:#f0525214;border-color:#f052524d}.drill-ball-stage--orange{color:#f59e0b;background:#f59e0b14;border-color:#f59e0b4d}.drill-ball-stage--green{color:#4ade80;background:#4ade8014;border-color:#4ade804d}.drill-view-inner{flex-direction:column;flex:1;gap:24px;width:100%;max-width:900px;margin:0 auto;padding:24px 32px 32px;display:flex}.drill-view-layout{align-items:flex-start;gap:36px;display:flex}.drill-court-wrap{flex:0 0 260px;width:260px;position:relative}.drill-layout-rotated{flex-direction:column}.drill-layout-rotated .drill-court-wrap{flex:none;align-self:center;width:100%;max-width:700px}.drill-court-svg{border-radius:6px;width:100%;height:auto;display:block;overflow:hidden}.drill-view-info{flex:1;min-width:0}.drill-view-tags{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.drill-view-name-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.drill-view-name{letter-spacing:.05em;color:var(--white);margin:0;font-family:Bebas Neue,sans-serif;font-size:1.8rem;line-height:1.1}.drill-view-name-row .drill-fav-btn{border-radius:6px;flex-shrink:0;padding:4px 8px;font-size:1rem}.drill-view-desc{color:var(--off-white);margin:0 0 14px;font-size:.88rem;line-height:1.55}.drill-steps-label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-family:DM Mono,monospace;font-size:.6rem}.drill-steps{counter-reset:drill-step;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.drill-steps li{counter-increment:drill-step;color:var(--off-white);gap:10px;font-size:.84rem;line-height:1.5;display:flex}.drill-steps li:before{content:counter(drill-step);color:var(--ace);background:#e8ff471a;border:1px solid #e8ff4740;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;margin-top:1px;font-family:DM Mono,monospace;font-size:.65rem;display:flex}.drill-view-actions{align-items:center;gap:10px;padding-bottom:20px;display:flex}@media (hover:none) and (pointer:coarse){.drill-view-actions{padding:12px 20px;padding-bottom:calc(12px + env(safe-area-inset-bottom));background:var(--dark);border-top:1px solid var(--border);z-index:10;position:fixed;bottom:0;left:0;right:0}.drill-view-inner{margin-bottom:calc(100px + env(safe-area-inset-bottom))}}.drill-prev-btn{border:1.5px solid var(--border);height:48px;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:10px;padding:0 22px;font-family:inherit;font-size:.95rem;transition:color .15s,border-color .15s}@media (hover:hover){.drill-prev-btn:hover:not(:disabled){color:var(--text);border-color:var(--text-muted)}}#drill-browse-panel{background:var(--dark);z-index:200;flex-direction:column;transition:transform .35s cubic-bezier(.34,1.2,.64,1);display:flex;position:fixed;inset:0;transform:translateY(100%)}#drill-browse-panel.open{transform:translateY(0)}.drill-cta-row{flex-direction:column;gap:8px;width:100%;display:flex}.drill-cta-secondary{gap:8px;width:100%;display:flex}.drill-cta-secondary .menu-toggle-btn{flex:1;padding:10px 8px;font-size:1rem}.menu-start-btn--sm{padding:10px;font-size:1.15rem}.drill-cta-fav-btn{color:var(--ace);letter-spacing:.04em;cursor:pointer;white-space:nowrap;background:0 0;border:1.5px solid #e8ff4773;border-radius:10px;flex-shrink:0;padding:0 18px;font-family:Bebas Neue,sans-serif;font-size:1rem;transition:background .15s,border-color .15s}body.light .drill-cta-fav-btn{color:#3a6018;border-color:#4a7c1f73}@media (hover:hover){.drill-cta-fav-btn:hover{border-color:var(--ace);background:#e8ff4714}body.light .drill-cta-fav-btn:hover{background:#4a7c1f14;border-color:#4a7c1f}}.drill-cta-fav-btn:focus-visible{border-color:var(--ace);background:#e8ff4714}body.light .drill-cta-fav-btn:focus-visible{background:#4a7c1f14;border-color:#4a7c1f}.drill-fav-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:1.5px solid #ffffff24;border-radius:10px;flex-shrink:0;padding:10px 16px;font-size:1.1rem;transition:color .15s,border-color .15s,background .15s}.drill-fav-btn.active{color:#ff6b8a;border-color:#ff6b8a8c}body.light .drill-fav-btn{border-color:#00000024}body.light .drill-fav-btn.active{color:#c03060;border-color:#c0306073}@media (hover:hover){.drill-fav-btn:hover{color:#ff6b8a;border-color:#ff6b8a80}body.light .drill-fav-btn:hover{color:#c03060;border-color:#c0306073}}.drill-fav-btn:focus-visible{color:#ff6b8a;border-color:#ff6b8a80}body.light .drill-fav-btn:focus-visible{color:#c03060;border-color:#c0306073}@media (hover:hover){.drill-plan-add-btn:hover{color:var(--ace);border-color:#e8ff4773}body.light .drill-plan-add-btn:hover{color:#6a8800;border-color:#6a880073}}.drill-plan-add-btn:focus-visible{color:var(--ace);border-color:#e8ff4773}body.light .drill-plan-add-btn:focus-visible{color:#6a8800;border-color:#6a880073}#drill-plan-picker{background:var(--dark);z-index:210;border-top:1.5px solid #ffffff17;border-radius:14px 14px 0 0;flex-direction:column;max-height:60vh;transition:transform .3s cubic-bezier(.34,1.2,.64,1);display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}#drill-plan-picker.open{transform:translateY(0)}body.light #drill-plan-picker{border-top-color:var(--surface-overlay);background:#f0f4ee}.drill-plan-picker-backdrop{z-index:209;background:#00000073;position:fixed;inset:0}body.light .drill-plan-picker-backdrop{background:#00000040}.drill-plan-picker-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px 10px;display:flex}.drill-plan-picker-title{letter-spacing:.04em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.15rem}body.light .drill-plan-picker-title{color:#1a1a1a}.drill-plan-picker-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1rem}body.light .drill-plan-picker-close{color:#999}.drill-plan-picker-list{flex-direction:column;gap:6px;padding:4px 12px 18px;display:flex;overflow-y:auto}.drill-plan-picker-empty{color:var(--text-muted);text-align:center;margin:0;padding:24px 0;font-size:.9rem}body.light .drill-plan-picker-empty{color:#666}.drill-plan-picker-item{cursor:pointer;color:var(--white);text-align:left;background:#ffffff0a;border:1.5px solid #ffffff17;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 16px;font-family:inherit;font-size:.95rem;transition:background .15s,border-color .15s;display:flex}body.light .drill-plan-picker-item{color:#1a1a1a;background:#fff;border-color:#00000017}.drill-plan-picker-item.already-in{opacity:.55;cursor:default}.drill-plan-picker-item.already-in .drill-plan-picker-item-meta{color:var(--ace)}body.light .drill-plan-picker-item.already-in .drill-plan-picker-item-meta{color:#3a6018}@media (hover:hover){.drill-plan-picker-item:not(.already-in):hover{background:#e8ff4712;border-color:#e8ff474d}body.light .drill-plan-picker-item:not(.already-in):hover{background:#6a880012;border-color:#6a88004d}}.drill-plan-picker-item-name{font-weight:500}.drill-plan-picker-item-meta{color:var(--text-muted);flex-shrink:0;margin-left:12px;font-size:.8rem}body.light .drill-plan-picker-item-meta{color:#666}.drill-edit-icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px 8px;font-size:.7rem;transition:color .15s,border-color .15s}.drill-browse-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:5px;display:flex}.drill-controls-divider{background:#ffffff26;border-radius:1px;flex-shrink:0;width:1px;height:14px;display:inline-block}body.light .drill-controls-divider{background:#00000026}.drill-filter-tab{background:var(--card);border-radius:var(--radius-pill);color:var(--text-muted);letter-spacing:.06em;cursor:pointer;white-space:nowrap;border:1px solid #ffffff1a;padding:4px 9px;font-family:DM Mono,monospace;font-size:.6rem;transition:all .15s}@media (hover:hover){.drill-filter-tab:hover{color:var(--white);border-color:var(--border-strong)}}.drill-filter-tab:focus-visible{color:var(--white);border-color:var(--border-strong)}.drill-filter-tab.active{border-color:var(--ace);color:var(--ace);background:#e8ff471a}body.light .drill-filter-tab{background:var(--hover-bg-subtle);border-color:var(--border-medium);color:var(--text-muted)}body.light .drill-filter-tab.active{color:#3a6018;background:#4a7c1f1a;border-color:#5a8c20}.drill-sort-btn{background:var(--card);border-radius:var(--radius-pill);color:var(--text-muted);letter-spacing:.06em;cursor:pointer;white-space:nowrap;border:1px solid #ffffff1a;padding:4px 9px;font-family:DM Mono,monospace;font-size:.6rem;transition:all .15s}@media (hover:hover){.drill-sort-btn:hover{color:var(--white);border-color:var(--border-strong)}}.drill-sort-btn:focus-visible{color:var(--white);border-color:var(--border-strong)}.drill-sort-btn.active{border-color:var(--ace);color:var(--ace);background:#e8ff471a}body.light .drill-sort-btn{background:var(--hover-bg-subtle);border-color:var(--border-medium);color:var(--text-muted)}body.light .drill-sort-btn.active{color:#3a6018;background:#4a7c1f1a;border-color:#5a8c20}body.light .drill-card{background:var(--hover-bg-subtle);border-color:#0000001a}@media (hover:hover){body.light .drill-card:hover{background:var(--border-subtle);border-color:#0003}}body.light .drill-card-name{color:var(--white)}body.light .drill-browse-toggle{color:var(--text-muted);border-color:#0003}body.light .drill-steps li{color:var(--white)}body.light .drill-steps li:before{color:#3a7a00;background:#3a7a001a;border-color:#3a7a004d}body.light .drill-view-desc{color:var(--white)}body.light .drill-focus-baseline{color:#1a7a3a;background:#1a7a3a1a;border-color:#1a7a3a66}body.light .drill-focus-net{color:#6b7a00;background:#6b7a0014;border-color:#6b7a0059}body.light .drill-focus-serve-return{color:#1a5fa8;background:#1a5fa814;border-color:#1a5fa859}body.light .drill-focus-point-play{color:#a04a10;background:#a04a1014;border-color:#a04a1059}body.light .drill-focus-custom{color:var(--text-muted);background:0 0;border-color:#00000026}.result-backdrop{display:none}.legend-row{align-items:center;width:100%;margin-top:6px;display:flex;position:relative}.legend-row .legend{flex:1;justify-content:center}.court-header-btns{flex-direction:row;flex-shrink:0;gap:5px;display:flex;position:absolute;right:0}.court-zoom-btn,.court-rotate-btn{color:#ffffffb3;cursor:pointer;background:#111a0ed1;border:1px solid #ffffff2e;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;transition:background .15s,border-color .15s,color .15s;display:flex}.court-rotate-btn.active{color:var(--ace);background:#e8ff4726;border-color:#e8ff4780}@media (hover:hover){.court-zoom-btn:hover,.court-rotate-btn:hover{color:var(--ace);background:#e8ff4726;border-color:#e8ff4780}}.court-zoom-btn:focus-visible,.court-rotate-btn:focus-visible{color:var(--ace);background:#e8ff4726;border-color:#e8ff4780}body.light .court-zoom-btn,body.light .court-rotate-btn{color:#0009;background:#f0f4eed9;border-color:#00000026}.court-header-row{justify-content:center;align-items:center;gap:8px;width:100%;max-width:300px;display:flex}.court-zoom-overlay{z-index:300;opacity:0;pointer-events:none;background:#080e06f7;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px 16px;transition:opacity .22s;display:flex;position:fixed;inset:0}.court-zoom-overlay.open{opacity:1;pointer-events:all}body.light .court-zoom-overlay{background:#e6eee2f7}.court-zoom-close{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));background:var(--surface-overlay);border-radius:var(--radius-md);color:#ffffffbf;cursor:pointer;border:1px solid #ffffff26;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;transition:background .15s;display:flex;position:absolute}@media (hover:hover){.court-zoom-close:hover{color:#fff;background:#ffffff26}}body.light .court-zoom-close{background:var(--hover-bg);border-color:var(--border-medium);color:#0009}.court-zoom-inner{flex-shrink:0;width:100%;max-width:min(85vw,50vh)}.court-zoom-inner svg{border-radius:var(--radius-md);filter:drop-shadow(0 8px 40px #000000b3);width:100%;height:auto;display:block}.court-zoom-legend{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:14px;font-size:.72rem;display:flex}.court-zoom-hint{letter-spacing:.16em;text-transform:uppercase;color:#ffffff40;bottom:max(20px, env(safe-area-inset-bottom));font-family:DM Mono,monospace;font-size:.6rem;position:absolute}body.light .court-zoom-hint{color:#00000040}@keyframes courtZoomIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.court-zoom-overlay.open .court-zoom-inner{animation:.25s cubic-bezier(.34,1.3,.64,1) both courtZoomIn}.court-wrapper.rotated{justify-content:center!important;align-items:center!important;width:100%!important;max-width:none!important;height:38vw!important;min-height:120px!important;max-height:200px!important;display:flex!important;position:relative!important;overflow:hidden!important}.court-wrapper.rotated .court-svg{transform-origin:50%!important;width:auto!important;height:160%!important;max-height:none!important;position:absolute!important}@media (width>=821px){.court-wrapper.rotated{height:28vw!important;max-height:300px!important}}@media (hover:none) and (pointer:coarse){.trivia-opt-letter{display:none!important}}#custom-drill-edit{background:var(--dark);z-index:160;flex-direction:column;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#custom-drill-edit.active{display:flex}.custom-drill-edit-inner{flex-direction:column;flex:1;gap:0;padding:16px 16px 40px;display:flex;overflow-y:auto}.cde-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim);margin-bottom:14px;font-size:.7rem;font-weight:700}.cde-fields-wrapper{flex-direction:row;gap:10px;display:flex}@media (width<=820px){.cde-fields-wrapper{flex-direction:column}.cde-fields-group{flex-basis:100%}}.cde-fields-group{flex-grow:1;flex-basis:calc(50% - 20px);margin:0 10px}.cde-fields-grid{background-color:var(--dark);border-radius:10px;gap:12px 16px;margin-bottom:10px;padding:10px;display:grid;box-shadow:0 7px 29px #64646f33}.cde-field{margin-bottom:0}.custom-drill-edit-inner>.cde-field{margin-bottom:18px}.cde-field--min-players{flex-direction:column;display:flex}.cde-label{letter-spacing:.07em;text-transform:uppercase;color:var(--white);margin-bottom:5px;font-size:.68rem;font-weight:700;display:block}.cde-label-row{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.cde-label-row .cde-label{margin-bottom:0}.cde-copy-from-btn{letter-spacing:.05em;text-transform:uppercase;color:var(--ace);border:1px solid var(--ace);cursor:pointer;opacity:.85;background:0 0;border-radius:4px;padding:2px 8px;font-size:.65rem;font-weight:600}.plan-name-header{justify-content:space-between;align-items:center;width:100%;margin-bottom:4px;display:flex}.plan-name-header .plan-section-label{width:auto}.cde-count{opacity:.6;letter-spacing:0;text-transform:none;font-size:.68rem;font-weight:400}.cde-input,.cde-textarea,.cde-step-input{background:var(--color-bg);border:1.5px solid var(--color-border);width:100%;color:var(--color-text);box-sizing:border-box;resize:none;border:1px solid #d3d3d3;border-radius:7px;outline:none;padding:9px 11px;font-family:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s}.cde-input:focus-visible,.cde-textarea:focus-visible,.cde-step-input:focus-visible{border-color:var(--color-green);box-shadow:inset 0 1px 3px #0000002e,0 0 0 2px #4ade8026}.cde-tag-presets{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.cde-tag-preset-btn{border:1px solid var(--color-border);background:var(--color-panel);color:var(--color-text);cursor:pointer;white-space:nowrap;border-radius:20px;flex-shrink:0;padding:6px 12px;font-family:inherit;font-size:.78rem;transition:border-color .15s,background .15s,color .15s}.cde-tag-preset-btn:hover{border-color:var(--color-green)}.cde-tag-preset-btn--custom{opacity:.75;font-style:italic}.cde-tag-preset-btn.active{border-color:var(--color-green);color:var(--color-green);background:#4ade801f;font-weight:600}body.light .cde-tag-preset-btn.active{color:#3a6018;background:#4a7c1f24;border-color:#5a8c20}.cde-tag-input-row{align-items:center;gap:6px;display:flex}.cde-tag-text-input{flex:1}.cde-tag-text-input::placeholder{color:var(--text-muted)}.cde-tag-add-btn{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-panel);color:var(--color-text);cursor:pointer;flex-shrink:0;padding:7px 14px;font-family:inherit;font-size:.82rem;transition:border-color .15s,background .15s}.cde-tag-add-btn:hover{border-color:var(--color-green)}.cde-tag-chips{flex-wrap:wrap;gap:5px;min-height:0;margin-top:8px;display:flex}.cde-tag-chip{border:1px solid var(--color-green);color:var(--color-green);background:#4ade801a;border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-family:DM Mono,monospace;font-size:.76rem;display:inline-flex}body.light .cde-tag-chip{color:#3a6018;background:#4a7c1f1a;border-color:#5a8c20}.cde-tag-chip-remove{cursor:pointer;color:inherit;opacity:.7;background:0 0;border:none;padding:0;font-size:.85rem;line-height:1;transition:opacity .1s}.cde-tag-chip-remove:hover{opacity:1}.cde-stepper{align-items:center;gap:10px;display:flex}.cde-stepper-btn{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-panel);width:32px;height:32px;color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;font-size:1.1rem;transition:border-color .15s;display:flex}.cde-stepper-btn:disabled{opacity:.3;cursor:default}.cde-stepper-btn:not(:disabled):hover{border-color:var(--color-green)}.cde-stepper-val{text-align:center;min-width:24px;font-size:1rem;font-weight:700}.cde-step-list{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.cde-step-row{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:center;gap:6px;padding:8px;transition:border-color .15s;display:flex}.cde-step-row.drag-over{border-color:var(--color-green);background:#4ade800f}.cde-drag-handle{cursor:grab;color:var(--color-text-dim);-webkit-user-select:none;user-select:none;flex-shrink:0;padding:4px 2px;font-size:1rem}.cde-step-num{color:var(--color-text-dim);flex-shrink:0;min-width:18px;font-size:.75rem;font-weight:700}.cde-step-input{flex:1;min-height:48px;padding:8px 10px;font-size:1rem}.cde-step-btns{flex-direction:row;flex-shrink:0;align-items:center;gap:3px;display:flex}.cde-step-move{border:1px solid var(--color-border);background:var(--color-panel);width:26px;height:22px;color:var(--color-text-dim);cursor:pointer;border-radius:5px;font-size:.65rem}.cde-step-move:disabled{opacity:.25;cursor:default}.cde-step-remove{border:1px solid var(--color-border);background:var(--color-panel);width:26px;height:22px;color:var(--color-text-dim);cursor:pointer;border-radius:5px;margin-top:2px;font-size:.7rem}.cde-add-step-btn{border-radius:var(--radius-md);border:1px dashed var(--color-border);width:100%;color:var(--color-text-dim);cursor:pointer;background:0 0;padding:9px;font-size:.82rem;transition:border-color .15s,color .15s}.cde-add-step-btn:hover{border-color:var(--color-green);color:var(--color-green)}.cde-footer{gap:10px;margin-top:8px;display:flex}.drill-court-editor{flex-direction:column;gap:8px;display:flex}.dce-toolbar{flex-wrap:wrap;gap:6px;display:flex}.dce-tool-btn{border:1px solid var(--color-border);background:var(--color-panel);color:var(--color-text);cursor:pointer;border-radius:7px;padding:7px 12px;font-family:inherit;font-size:.78rem;transition:border-color .12s,background .12s}.dce-tool-btn.active{border-color:var(--color-green);color:var(--color-green);background:#4ade801f;font-weight:600}body.light .dce-tool-btn.active{color:#3a6018;background:#4a7c1f24;border-color:#5a8c20}.dce-delete-btn:not(:disabled):hover{color:#f87171;border-color:#f87171}.dce-delete-btn:disabled{opacity:.3;cursor:default}.dce-panel-area{min-height:54px}.dce-player-setup{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.dce-label-input{border:1px solid var(--color-border);background:var(--color-bg);width:48px;color:var(--color-text);text-transform:uppercase;text-align:center;border-radius:6px;outline:none;padding:6px 8px;font-family:DM Mono,monospace;font-size:1rem;font-weight:700}.dce-label-input:focus-visible{border-color:var(--color-green)}.dce-color-swatches{flex-wrap:wrap;gap:5px;display:flex}.dce-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0;transition:border-color .12s,transform .1s}.dce-swatch.active{border-color:#fff;transform:scale(1.2)}.dce-place-btn{border:1px solid var(--color-green);color:var(--color-green);cursor:pointer;background:#4ade801f;border-radius:7px;padding:6px 12px;font-family:inherit;font-size:.78rem}body.light .dce-place-btn{color:#3a6018;background:#4a7c1f24;border-color:#5a8c20}.dce-color-row{align-items:center;gap:10px;display:flex}.dce-color-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-dim);font-size:.72rem;font-weight:600}.dce-hint{color:var(--color-text-dim);text-align:center;padding:4px 0;font-size:.76rem}.dce-hint-sm{opacity:.7;font-size:.7rem}.dce-svg{border-radius:var(--radius-md);-webkit-user-select:none;user-select:none;width:100%;max-height:500px;overflow:hidden}.cde-my-drills-row{justify-content:space-between;align-items:center;margin-top:8px;padding:8px 4px;display:flex}.cde-my-drills-label{color:var(--color-text-dim);font-size:.78rem}.cde-my-drills-link{color:var(--color-green);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.78rem}.drill-create-custom-btn{opacity:1;background:var(--ace)!important;color:var(--dark)!important;letter-spacing:0!important;border:none!important;border-radius:8px!important;padding:8px 16px!important;font-family:DM Mono,monospace!important;font-size:.82rem!important;font-weight:600!important}.drill-custom-tag{color:#c084fc;background:#c084fc26;border:1px solid #c084fc4d;border-radius:12px;align-items:center;gap:3px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.drill-edit-btn{border:1px solid var(--color-border);background:var(--color-panel);color:var(--color-text);cursor:pointer;border-radius:10px;padding:10px 18px;font-family:inherit;font-size:.85rem}.plan-drill-edit-btn{border:1px solid var(--color-border);background:var(--color-panel);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;display:flex}.cde-share-section{margin-top:16px}.cde-share-error{color:var(--wrong);margin-top:6px;font-size:.75rem}.cde-share-hint{color:var(--text-muted);margin-top:6px;font-size:.7rem;line-height:1.4}.share-code-generate-btn{letter-spacing:.04em;width:100%;color:var(--ace);border:1px dashed var(--ace);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:10px 16px;font-size:.78rem;font-weight:600;transition:background .15s}.share-code-generate-btn:hover{background:var(--hover-bg)}.share-code-generate-btn:disabled{opacity:.5;cursor:not-allowed}.share-code-list{flex-direction:column;gap:8px;margin-top:10px;display:flex}.share-code-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.share-code-item--redeemed{opacity:.6}.share-code-value{align-items:center;gap:10px;display:flex}.share-code-value code{letter-spacing:.12em;color:var(--white);font-size:.85rem;font-weight:700}.share-code-expiry{color:var(--text-muted);font-size:.68rem}.share-code-status{color:var(--text-muted);font-size:.68rem;font-style:italic}.share-code-actions{gap:6px;display:flex}.share-code-copy-btn,.share-code-revoke-btn{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:3px 10px;font-size:.68rem;font-weight:600}.share-code-copy-btn{color:var(--ace);background:#4ade801a}.share-code-copy-btn:hover{background:#4ade8033}.share-code-revoke-btn{color:var(--wrong);background:#f871711a}.share-code-revoke-btn:hover{background:#f8717133}.plan-remove-shared-btn{border:1px solid var(--border);width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;font-size:.7rem;transition:all .15s;display:flex}.plan-remove-shared-btn:hover{color:var(--wrong);border-color:var(--wrong)}.share-revoke-actions{gap:10px;margin-top:16px;display:flex}.share-revoke-cancel{color:var(--text-muted);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;flex:1;padding:10px;font-size:.82rem;font-weight:600}.share-revoke-confirm{color:#fff;background:var(--wrong);border-radius:var(--radius-md);cursor:pointer;border:none;flex:1;padding:10px;font-size:.82rem;font-weight:700}.share-revoke-confirm:hover{opacity:.9}.redeem-code-modal{text-align:center}.redeem-code-modal .modal-header{text-align:left}.redeem-description{color:var(--text-muted);margin-bottom:16px;font-size:.8rem;line-height:1.4}.redeem-code-input{letter-spacing:.2em;text-align:center;text-transform:uppercase;background:var(--dark);border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--white);outline:none;padding:12px 16px;font-size:1.1rem;font-weight:700}.redeem-code-input:focus{border-color:var(--ace)}.redeem-error{color:var(--wrong);margin-top:10px;font-size:.78rem}.redeem-submit-btn{letter-spacing:.05em;width:100%;color:var(--dark);background:var(--ace);border-radius:var(--radius-md);cursor:pointer;border:none;margin-top:16px;padding:12px;font-size:.85rem;font-weight:700;transition:opacity .15s}.redeem-submit-btn:hover{opacity:.9}.redeem-submit-btn:disabled{opacity:.4;cursor:not-allowed}.redeem-success{padding:16px 0}.redeem-success-icon{color:var(--ace);margin-bottom:12px;font-size:2.5rem}.redeem-success p{color:var(--white);margin-bottom:16px;font-size:.9rem}.redeem-done-btn{color:var(--dark);background:var(--ace);border-radius:var(--radius-md);cursor:pointer;border:none;padding:10px 32px;font-size:.85rem;font-weight:600}#browse-panel{background:var(--dark);z-index:200;flex-direction:column;transition:transform .35s cubic-bezier(.34,1.2,.64,1);display:flex;position:fixed;inset:0;transform:translateY(100%)}#browse-panel.open{transform:translateY(0)}#browse-players-panel{background:var(--dark);z-index:200;flex-direction:column;transition:transform .35s cubic-bezier(.34,1.2,.64,1);display:flex;position:fixed;inset:0;overflow:hidden;transform:translateY(100%)}#browse-players-panel.open{transform:translateY(0)}#browse-stats-panel{background:var(--dark);z-index:200;flex-direction:column;transition:transform .35s cubic-bezier(.34,1.2,.64,1);display:flex;position:fixed;inset:0;overflow:hidden;transform:translateY(100%)}#browse-stats-panel.open{transform:translateY(0)}body.light #browse-stats-panel{background:var(--bg,#f4f8f0)}.stats-panel-body{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;flex-direction:column;flex:1;gap:20px;width:100%;max-width:480px;margin:0 auto;padding:24px 20px 32px;display:flex;overflow-y:auto}.stats-panel-body::-webkit-scrollbar{width:4px}.stats-panel-body::-webkit-scrollbar-track{background:0 0}.stats-panel-body::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}body.light .stats-panel-body{scrollbar-color:#00000026 transparent}body.light .stats-panel-body::-webkit-scrollbar-thumb{background:#00000026}.stats-total-row{background:var(--card);border:1px solid var(--surface-overlay);border-radius:var(--radius-lg);align-items:center;gap:16px;padding:20px 24px;display:flex}body.light .stats-total-row{background:var(--hover-bg-subtle);border-color:var(--surface-overlay)}.stats-total-trophy{font-size:2.2rem;line-height:1}.stats-total-info{flex-direction:column;gap:2px;display:flex}.stats-total-label{letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;font-family:DM Mono,monospace;font-size:.68rem}.stats-total-count{color:var(--ace);letter-spacing:.04em;font-family:Bebas Neue,sans-serif;font-size:2.4rem;line-height:1}.stats-total-divider{background:#ffffff1a;align-self:stretch;width:1px;margin:0 4px}body.light .stats-total-divider{background:#0000001a}.stats-section-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding-bottom:4px;display:flex}body.light .stats-section-header{border-bottom-color:var(--surface-overlay)}.stats-section-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);flex:1;font-family:DM Mono,monospace;font-size:.65rem}.stats-draw-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);text-align:center;min-width:28px;font-family:DM Mono,monospace;font-size:.6rem}.stats-slam-list{flex-direction:column;gap:6px;display:flex}.stats-slam-row{background:var(--card);border:1px solid var(--border-subtle);opacity:.55;border-radius:10px;align-items:center;gap:12px;padding:12px 16px;display:flex}body.light .stats-slam-row{border-color:var(--border);background:#00000008}.stats-slam-row--won{opacity:1;border-color:var(--border-medium)}body.light .stats-slam-row--won{border-color:#00000024}.stats-slam-icon{flex-shrink:0;font-size:1.4rem;line-height:1}.stats-slam-name{color:var(--white);letter-spacing:.02em;flex:1;font-family:DM Mono,monospace;font-size:.78rem}body.light .stats-slam-name{color:#111a0e}.stats-slam-count{color:var(--ace);letter-spacing:.04em;text-align:center;min-width:28px;font-family:Bebas Neue,sans-serif;font-size:1.3rem}.stats-pp-list{flex-direction:column;gap:4px;display:flex}.stats-pp-row{border-radius:var(--radius-md);background:var(--card);border:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:7px 12px;display:flex}body.light .stats-pp-row{border-color:var(--border);background:#00000008}.stats-pp-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-family:DM Mono,monospace;font-size:.72rem}.stats-pp-value{color:var(--ace);letter-spacing:.04em;font-family:Bebas Neue,sans-serif;font-size:1.15rem}.stats-pp-empty{color:var(--text-muted);text-align:center;padding:16px 0;font-family:DM Mono,monospace;font-size:.75rem}.career-reset-trigger{border-radius:var(--radius-md);color:#e05555;text-transform:uppercase;letter-spacing:.07em;cursor:pointer;background:0 0;border:1px solid #ff505040;width:100%;margin-top:12px;padding:8px 0;font-family:DM Mono,monospace;font-size:.72rem;transition:background .15s,border-color .15s}.career-reset-trigger:hover{background:#ff505014;border-color:#ff505080}body.light .career-reset-trigger{color:#c0392b;border-color:#c0392b4d}body.light .career-reset-trigger:hover{background:#c0392b12;border-color:#c0392b8c}.player-browse-item{background:var(--card);border:1px solid var(--border-subtle);border-radius:10px;align-items:center;gap:12px;padding:10px 14px;font-family:DM Sans,sans-serif;display:flex}body.light .player-browse-item{border-color:var(--border);background:#00000008}.player-browse-flag{flex-shrink:0;font-size:1.4rem;line-height:1}.player-browse-info{flex:1;min-width:0}.player-browse-name{color:var(--white);font-size:.9rem;font-weight:600}.player-browse-country{color:var(--text-muted);margin-top:1px;font-size:.72rem}.player-browse-stats{flex-direction:row;flex-shrink:0;align-items:center;gap:8px;display:flex}.player-browse-item--selectable{cursor:pointer;width:100%;font:inherit;color:inherit;text-align:left}@media (hover:hover){.player-browse-item--selectable:hover{background:#ffffff0a;border-color:#ffffff2e}body.light .player-browse-item--selectable:hover{background:var(--border-subtle);border-color:#0000002e}}.player-browse-h2h{white-space:nowrap;align-items:center;gap:2px;font-family:DM Mono,monospace;font-size:.68rem;display:flex}.player-browse-h2h-w{color:var(--ace,#4ade80);font-weight:700}.player-browse-h2h-sep{color:var(--text-muted)}.player-browse-h2h-l{color:var(--clay,#c97b3a)}body.light .player-browse-h2h-w{color:#1a7a2e}body.light .player-browse-h2h-l{color:#b54010}.player-stat{white-space:nowrap;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.72rem}.player-stat.gs{color:var(--ace);font-weight:700}#browse-players-list{grid-template-columns:1fr 1fr;align-items:start;gap:0 12px;display:grid}.player-sort-group{align-items:center;gap:5px;display:flex}.player-sort-btn{background:var(--card);color:var(--text-muted);letter-spacing:.06em;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;border:1px solid #ffffff1a;padding:4px 9px;font-family:DM Mono,monospace;font-size:.6rem;transition:all .15s}@media (hover:hover){.player-sort-btn:hover{color:var(--white);border-color:var(--border-strong)}}.player-sort-btn:focus-visible{color:var(--white);border-color:var(--border-strong)}.player-sort-btn.active{border-color:var(--ace);color:var(--ace);background:#e8ff471a}body.light .player-sort-btn{background:var(--hover-bg-subtle);border-color:var(--border-medium);color:var(--text-muted)}body.light .player-sort-btn.active{color:#3a6018;background:#4a7c1f1a;border-color:#5a8c20}.browse-header{padding:18px 24px 14px;padding-top:calc(env(safe-area-inset-top) + 18px);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.browse-header-center{flex-direction:column;align-items:center;gap:8px;display:flex}body.light .browse-header{border-bottom-color:var(--surface-overlay)}.browse-title{letter-spacing:.1em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.5rem}.browse-search{width:100%;max-width:320px}.browse-search-input{box-sizing:border-box;background:var(--hover-bg-subtle);border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--white);outline:none;padding:6px 10px;font-size:1rem;transition:border-color .15s,background .15s}.browse-search-input::placeholder{color:var(--text-muted)}.browse-search-input:focus-visible{border-color:var(--ace);background:#ffffff17}body.light .browse-search-input{color:var(--text,#1a1a1a);background:#0000000d;border-color:#00000026}body.light .browse-search-input:focus-visible{border-color:var(--ace);background:var(--surface-overlay)}.browse-close{color:var(--text-muted);cursor:pointer;top:calc(env(safe-area-inset-top) + 12px);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1.2rem;line-height:1;transition:color .15s,background .15s;position:absolute;right:16px}@media (hover:hover){.browse-close:hover{color:var(--white);background:var(--hover-bg)}body.light .browse-close:hover{background:var(--hover-bg)}}.browse-close:focus-visible{color:var(--white);background:var(--hover-bg)}body.light .browse-close:focus-visible{background:var(--hover-bg)}.browse-list{scrollbar-width:thin;scrollbar-color:var(--court) var(--card);flex-direction:column;flex:1;gap:6px;padding:16px 20px 24px;display:flex;overflow-y:auto}.browse-list::-webkit-scrollbar{width:6px}.browse-list::-webkit-scrollbar-track{background:var(--card);border-radius:3px}.browse-list::-webkit-scrollbar-thumb{background:var(--court);border-radius:3px}@media (hover:hover){.browse-list::-webkit-scrollbar-thumb:hover{background:var(--court-light)}}.browse-group-label{letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);margin-bottom:2px;padding:10px 4px 6px;font-family:DM Mono,monospace;font-size:.6rem}.browse-group-label:first-child{padding-top:10px}body.light .browse-group-label{border-bottom-color:var(--border)}.browse-item{background:var(--card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;width:100%;font:inherit;color:inherit;text-align:left;grid-template-columns:90px 1fr auto auto;align-items:center;gap:8px;padding:10px 14px;transition:border-color .15s,background .15s;display:grid}.browse-item--no-badge{grid-template-columns:1fr auto auto}.browse-item--has-secondary{grid-template-columns:90px 1fr auto auto auto}.browse-item--no-badge.browse-item--has-secondary{grid-template-columns:1fr auto auto auto}body.light .browse-item{border-color:var(--surface-overlay)}@media (hover:hover){.browse-item:hover{background:#2d5a1b33;border-color:#e8ff474d}body.light .browse-item:hover{background:#4a7c1f12;border-color:#4a7c1f59}}.browse-item:focus-visible{background:#2d5a1b33;border-color:#e8ff474d}body.light .browse-item:focus-visible{background:#4a7c1f12;border-color:#4a7c1f59}.browse-item-badge{border-radius:var(--radius-pill);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;justify-content:center;justify-self:start;align-items:center;padding:2px 8px;font-family:DM Mono,monospace;font-size:.55rem;display:inline-flex}.browse-item-badge.beginner{color:var(--correct);background:#4ade801f;border:1px solid #4ade8040}.browse-item-badge.intermediate{color:var(--ace);background:#e8ff471a;border:1px solid #e8ff4733}.browse-item-badge.advanced{color:var(--clay);background:#c97b3a1f;border:1px solid #c97b3a40}body.light .browse-item-badge.beginner{color:#1e7a3a;background:#22783c1a;border-color:#22783c4d}body.light .browse-item-badge.intermediate{color:#3a6018;background:#4a7c1f1a;border-color:#4a7c1f4d}.browse-item-fav{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:4px 8px;font-size:1rem;line-height:1;transition:color .15s}.browse-item-fav.active{color:#ff6b8a}body.light .browse-item-fav.active{color:#c03060}@media (hover:hover){.browse-item-fav:hover{color:#ff6b8a}body.light .browse-item-fav:hover{color:#c03060}}.browse-item-info{min-width:0;overflow:hidden}.browse-item-title{letter-spacing:.04em;color:var(--white);white-space:nowrap;text-overflow:ellipsis;font-family:Bebas Neue,sans-serif;font-size:.95rem;line-height:1.1;overflow:hidden}.browse-item-meta{color:var(--text-muted);letter-spacing:.05em;margin-top:2px;font-family:DM Mono,monospace;font-size:.62rem}.browse-item-play{letter-spacing:.06em;color:var(--ace);opacity:.7;font-family:Bebas Neue,sans-serif;font-size:.85rem;transition:opacity .15s}@media (hover:hover){.browse-item:hover .browse-item-play{opacity:1}}.browse-item-secondary{letter-spacing:.06em;color:var(--ace);cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;padding:0;font-family:Bebas Neue,sans-serif;font-size:.85rem;transition:opacity .15s}@media (hover:hover){.browse-item:hover .browse-item-secondary{opacity:1}}.info-screen{background:var(--dark);z-index:150;flex-direction:column;align-items:center;animation:.35s fadeIn;display:flex;position:fixed;inset:0;overflow:hidden auto}.info-screen-body{background:var(--dark);flex-direction:column;align-items:flex-start;gap:12px;width:100%;max-width:650px;padding:24px;display:flex;box-shadow:0 7px 29px #64646f33}body.light .info-screen-body{background:#fff}.info-screen-body ul{margin-left:40px}.info-screen-body hr{width:100%}.info-screen-title{color:var(--text);margin:0;font-size:1.6rem;font-weight:700}.info-screen-desc{color:var(--text-muted);margin:0;font-size:.95rem}.info-hero{flex-direction:column;gap:6px;width:100%;padding:28px 0 16px;display:flex}.info-hero-icon{margin-bottom:4px;font-size:2.2rem;line-height:1}.info-hero h1{letter-spacing:.08em;color:var(--ace);margin:0;font-family:Bebas Neue,sans-serif;font-size:2.4rem;line-height:1.1}.info-hero p{color:var(--text-muted);margin:0;font-size:.95rem}.info-divider{background:var(--hover-bg);width:100%;height:1px;margin:4px 0}.info-section-heading{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin:8px 0 2px;font-size:.7rem;font-weight:700}.info-body-text{color:var(--off-white);margin:0;font-size:.95rem;line-height:1.65}.info-body-text strong{color:var(--white)}.contact-card{background:var(--mid);border:1px solid var(--border-subtle);border-radius:12px;align-items:center;gap:16px;width:100%;padding:18px 20px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.contact-card:hover{border-color:var(--ace);background:#4ade800d}.contact-card-icon{flex-shrink:0;font-size:1.6rem}.contact-card-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.7rem;font-weight:700}.contact-card-email{color:var(--ace);margin:2px 0 0;font-size:.95rem;font-weight:600}.info-screen-body h2{color:var(--white);margin:8px 0 0;font-size:1rem;font-weight:700}.info-screen-body h3{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:6px 0 0;font-size:.75rem;font-weight:700}.info-screen-body li{color:var(--off-white);font-size:.9rem;line-height:1.6}.info-screen-body a{color:var(--ace);text-decoration:none}.info-screen-body a:hover{text-decoration:underline}body.light .info-screen-body h2{color:#111}body.light .info-screen-body h3{color:#4a6a42}body.light .info-screen-body li{color:#333}body.light .info-screen-body a{color:var(--court)}body.light .info-hero h1{color:var(--ace)}body.light .info-hero p{color:#666}body.light .info-divider{background:#0000001a}body.light .info-screen .info-section-heading{color:#888}body.light .info-body-text{color:#333}body.light .info-body-text strong{color:#111}body.light .contact-card{border-color:var(--surface-overlay);background:#f5f5f0}body.light .contact-card:hover{border-color:var(--ace);background:#2d5a1b0a}body.light .contact-card-label{color:#888}.about-cards{grid-template-columns:1fr 1fr;gap:14px;width:100%;display:grid}@media (width<=480px){.about-cards{grid-template-columns:1fr}}.about-card{background:var(--mid);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px}.about-card h3{margin:0 0 8px}.about-card p{color:var(--off-white);margin:0;font-size:.9rem;line-height:1.6}body.light .about-card{border-color:var(--surface-overlay);background:#f5f5f0}body.light .about-card p{color:#333}body.light .contact-card-email{color:var(--ace)}.about-help-link{font:inherit;color:var(--ace);cursor:pointer;background:0 0;border:none;padding:0}.about-help-link:hover{text-decoration:underline}body.light .about-help-link{color:var(--court)}.profile-form{flex-direction:column;gap:18px;width:100%;max-width:420px;padding:24px 0 8px;display:flex}.profile-name-row{gap:12px;display:flex}.profile-name-row .profile-field{flex:1;min-width:0}.profile-field{flex-direction:column;gap:6px;display:flex}.profile-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.68rem;font-weight:700}.profile-input{background:var(--mid);border-radius:var(--radius-md);width:100%;color:var(--white);border:1.5px solid #7a9a6a4d;outline:none;padding:10px 13px;font-family:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s}.profile-input:focus-visible{border-color:var(--ace);box-shadow:0 0 0 2px #4ade8026}.profile-input--error{border-color:var(--wrong)}.profile-input--error:focus{border-color:var(--wrong);box-shadow:0 0 0 2px #f8717126}.profile-field-error{color:var(--wrong);font-size:.75rem}.profile-save-btn{background:var(--ace);color:var(--dark);letter-spacing:.1em;cursor:pointer;border:none;border-radius:10px;margin-top:6px;padding:13px 20px;font-family:Bebas Neue,sans-serif;font-size:1.3rem;transition:filter .15s,transform .15s,box-shadow .15s;box-shadow:0 0 20px #4ade8033}@media (hover:hover){.profile-save-btn:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 24px #4ade804d}}.profile-save-btn:focus-visible{filter:brightness(1.1);box-shadow:0 6px 24px #4ade804d}.profile-save-btn:disabled{opacity:.55;cursor:default;box-shadow:none;filter:none;transform:none}.profile-save-success{color:var(--correct);font-size:.82rem}.profile-save-error{color:var(--wrong);font-size:.82rem}.profile-signout-btn{border:1px solid var(--wrong);letter-spacing:.1em;color:var(--wrong);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:10px;width:100%;margin-top:4px;padding:12px 20px;font-family:Bebas Neue,sans-serif;font-size:1.2rem;transition:background .15s,color .15s}.profile-signout-btn:active{background:#f871711f}.profile-secondary-btn{border:1px solid var(--border-medium);letter-spacing:.08em;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:10px;width:100%;margin-top:4px;padding:12px 20px;font-family:Bebas Neue,sans-serif;font-size:1.1rem;transition:background .15s,border-color .15s}.profile-secondary-btn:hover,.profile-secondary-btn:focus-visible{background:var(--hover-bg-subtle);border-color:var(--border-strong)}.profile-secondary-btn:active{background:var(--hover-bg-subtle)}.profile-secondary-btn:disabled{opacity:.55;cursor:default}.profile-secondary-btn--compact,.profile-signout-btn--compact{letter-spacing:.06em;padding:8px 16px;font-size:.95rem}.settings-group{border:none;flex-direction:column;gap:4px;margin:0;padding:0;display:flex}.settings-group .profile-settings-heading{margin-bottom:8px;padding:0}.settings-group-hint{opacity:.75;margin:0 0 10px;font-size:.88rem;line-height:1.45}.profile-delete-btn{letter-spacing:.06em;color:var(--wrong);cursor:pointer;opacity:.7;-webkit-tap-highlight-color:transparent;background:0 0;border:none;width:100%;margin-top:4px;padding:8px 16px;font-family:Bebas Neue,sans-serif;font-size:.85rem;transition:opacity .15s}.profile-delete-btn:hover,.profile-delete-btn:focus-visible{opacity:1}body.light .profile-input{color:#111;background:#fff;border-color:#0000002e}body.light .profile-input:focus-visible{border-color:var(--court);box-shadow:0 0 0 2px #2d5a1b1f}body.light .profile-input--error{border-color:#e53e3e}body.light .profile-label{color:#888}body.light .profile-field-error{color:#e53e3e}body.light .profile-save-success{color:var(--court)}body.light .profile-save-error{color:#e53e3e}.profile-settings-section{flex-direction:column;gap:14px;width:100%;display:flex}.profile-settings-heading{letter-spacing:.08em;color:var(--white);margin:0;font-family:Bebas Neue,sans-serif;font-size:1.2rem}body.light .profile-settings-heading{color:#222}.profile-toggle-row{cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;gap:12px;display:flex}.profile-toggle-label{color:var(--white);flex:1;min-width:0;font-size:.88rem}body.light .profile-toggle-label{color:#222}.profile-toggle{border-radius:var(--radius-lg);background:var(--mid);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;width:48px;min-width:48px;height:28px;padding:0;transition:background .2s;position:relative}.profile-toggle.active{background:var(--ace)}.profile-toggle-knob{background:var(--white);pointer-events:none;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px}.profile-toggle.active .profile-toggle-knob{transform:translate(20px)}body.light .profile-toggle{background:#ccc}body.light .profile-toggle.active{background:var(--court)}body.light .profile-toggle-knob{background:#fff}.plans-trial-banner{background:var(--card);border:1px solid var(--ace);border-radius:var(--radius-md);max-width:400px;color:var(--text);align-items:flex-start;gap:10px;margin:12px auto 0;padding:12px 14px;font-size:.92rem;line-height:1.4;display:flex}.plans-trial-banner-icon{font-size:1.2rem;line-height:1}.plans-grid{flex-direction:column;gap:18px;width:100%;max-width:400px;margin:0 auto;padding:8px 0 24px;display:flex}.profile-plan-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;align-items:flex-start;padding:22px 20px;display:flex;position:relative}.profile-plan-card--featured{border-color:var(--ace);box-shadow:0 0 20px #4ade8014}.profile-plan-card--current{border-color:var(--ace)}.plan-header{align-items:baseline;gap:10px;margin-bottom:2px;display:flex}.plan-badge{background:var(--ace);color:var(--dark);letter-spacing:.08em;border-radius:var(--radius-pill);padding:3px 10px;font-family:Bebas Neue,sans-serif;font-size:.72rem;font-weight:700;position:absolute;top:-10px;right:16px}.plan-name{letter-spacing:.08em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.5rem}.billing-toggle{background:var(--border-subtle);border-radius:var(--radius-md);margin-bottom:20px;justify-content:center;gap:4px;width:fit-content;margin-inline:auto;padding:3px;display:flex}.billing-toggle-btn{letter-spacing:.05em;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:6px 18px;font-family:Bebas Neue,sans-serif;font-size:.95rem;transition:background .2s,color .2s}.billing-toggle-btn--active{background:var(--ace);color:#111}.plan-price{letter-spacing:.04em;color:var(--ace);font-family:Bebas Neue,sans-serif;font-size:1.3rem}.plan-billing-link{letter-spacing:.04em;color:var(--text-muted);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-left:.4em;padding:0;font-family:Bebas Neue,sans-serif;font-size:.85rem;text-decoration:underline}.plan-tagline{color:var(--text-muted);margin-bottom:14px;font-size:.78rem}.plan-highlights{flex-direction:column;align-self:stretch;align-items:flex-start;gap:7px;margin:0 0 16px;padding:0;list-style:none;display:flex}.plan-highlights li{color:var(--white);padding-left:18px;font-size:.82rem;line-height:1.4;position:relative}.plan-highlights li:before{content:"✓";color:var(--ace);font-size:.78rem;font-weight:700;position:absolute;left:0}.plan-cta{background:var(--ace);color:var(--dark);border-radius:var(--radius-md);letter-spacing:.08em;cursor:pointer;border:none;align-self:stretch;padding:12px;font-family:Bebas Neue,sans-serif;font-size:1.1rem;font-weight:700;transition:all .15s}.plan-cta:disabled{opacity:.5;cursor:default}@media (hover:hover){.plan-cta:not(:disabled):hover{filter:brightness(1.1);transform:translateY(-1px)}}body.light .profile-plan-card{border-color:var(--border-medium);background:#fff}body.light .profile-plan-card--featured,body.light .profile-plan-card--current{border-color:var(--ace)}body.light .plan-name{color:#222}body.light .billing-toggle-btn{color:#555}body.light .billing-toggle-btn--active{background:var(--ace);color:#fff}body.light .plan-price{color:var(--ace)}body.light .plan-highlights li{color:#333}body.light .plan-highlights li:before{color:var(--ace)}.profile-plan-row{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.profile-plan-info{align-items:center;gap:8px;display:flex}.profile-email-row{border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:8px;margin-bottom:12px;padding:10px 14px;display:flex}.profile-email-label{color:var(--text-muted);font-size:.9rem}.profile-email-value{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.9rem;overflow:hidden}body.light .profile-email-row{border-color:var(--border-medium);background:#fff}.profile-plan-label{color:var(--text-muted);font-size:.82rem}.profile-plan-tier{letter-spacing:.06em;color:var(--ace);font-family:Bebas Neue,sans-serif;font-size:1rem}.profile-plan-link{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--ace);cursor:pointer;background:0 0;padding:6px 14px;font-family:DM Sans,sans-serif;font-size:.78rem;transition:all .15s}@media (hover:hover){.profile-plan-link:hover{border-color:var(--ace);background:#4ade800f}}body.light .profile-plan-row{border-color:var(--border-medium);background:#fff}body.light .profile-plan-tier,body.light .profile-plan-link{color:var(--ace)}.profile-redeem-btn{width:100%;margin-top:10px}#serve-menu-screen{background:var(--dark);z-index:145;flex-direction:column;align-items:center;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#serve-menu-screen.active{display:flex}.serve-menu-hint{color:var(--text-muted);text-align:center;opacity:.75;margin-top:.25rem;margin-bottom:.5rem;font-size:.8rem}#serve-menu-screen .menu-section-label{justify-content:space-between;align-items:center;display:flex}.serve-speed-value{color:var(--ace);letter-spacing:.04em;font-size:.85rem;font-weight:700}.serve-speed-slider-wrap{align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.serve-speed-tick{color:var(--text-muted);white-space:nowrap;text-align:center;min-width:2.2rem;font-size:.75rem}.serve-speed-slider{appearance:none;cursor:pointer;background:#ffffff26;border-radius:3px;outline:none;flex:1;height:6px}.serve-speed-slider:focus-visible{outline:2px solid var(--ace);outline-offset:4px;border-radius:3px}.serve-speed-slider::-webkit-slider-thumb{appearance:none;background:var(--correct);cursor:pointer;border-radius:50%;width:20px;height:20px;transition:transform .1s;box-shadow:0 0 6px #0006}@media (hover:hover){.serve-speed-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}}.serve-speed-slider::-moz-range-thumb{background:var(--correct);cursor:pointer;border:none;border-radius:50%;width:20px;height:20px;box-shadow:0 0 6px #0006}.serve-speed-slider::-moz-range-track{background:#ffffff26;border-radius:3px;height:6px}.serve-range-toggle{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.6rem;margin-top:1.25rem;font-size:.92rem;display:flex}.serve-range-toggle input[type=checkbox]{appearance:none;border-radius:var(--radius-pill);cursor:pointer;background:#ffffff26;border:1.5px solid #ffffff2e;flex-shrink:0;width:36px;height:20px;transition:background .2s,border-color .2s;position:relative}.serve-range-toggle input[type=checkbox]:after{content:"";background:#ffffff80;border-radius:50%;width:12px;height:12px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.serve-range-toggle input[type=checkbox]:checked{background:var(--correct);border-color:var(--correct)}.serve-range-toggle input[type=checkbox]:checked:after{background:#111a0e;transform:translate(16px)}body.light .serve-range-toggle{color:#444}body.light .serve-range-toggle input[type=checkbox]{background:#00000026;border-color:#00000040}body.light .serve-range-toggle input[type=checkbox]:after{background:#fff}body.light .serve-range-toggle input[type=checkbox]:checked{background:var(--ace-dim);border-color:var(--ace-dim)}body.light .serve-range-toggle input[type=checkbox]:checked:after{background:#fff}body.light .serve-speed-slider::-webkit-slider-thumb{background:var(--ace)}body.light .serve-speed-slider::-moz-range-thumb{background:var(--ace)}body.light .serve-dual-input::-webkit-slider-thumb{background:var(--ace)}body.light .serve-dual-input::-moz-range-thumb{background:var(--ace)}body.light .serve-dual-fill{background:var(--ace)}body.light{--serve-slider-fill:var(--ace)}.serve-dual-slider{flex-direction:column;flex:1;gap:0;display:flex}.serve-dual-track{background:#ffffff26;border-radius:3px;height:6px;margin:9px 0;position:relative}.serve-dual-fill{background:var(--correct);pointer-events:none;border-radius:3px;height:100%;position:absolute}.serve-dual-inputs{height:24px;margin-top:-21px;position:relative}.serve-dual-input{appearance:none;pointer-events:none;background:0 0;outline:none;width:100%;height:24px;position:absolute}.serve-dual-input:focus-visible{outline:2px solid var(--ace);outline-offset:2px}.serve-dual-input::-webkit-slider-thumb{appearance:none;background:var(--correct);cursor:pointer;pointer-events:all;border-radius:50%;width:20px;height:20px;transition:transform .1s;box-shadow:0 0 6px #0006}@media (hover:hover){.serve-dual-input::-webkit-slider-thumb:hover{transform:scale(1.15)}}.serve-dual-input::-moz-range-thumb{background:var(--correct);cursor:pointer;pointer-events:all;border:none;border-radius:50%;width:20px;height:20px;box-shadow:0 0 6px #0006}#serve-sim-screen{z-index:130;background:#0a1408;display:none;position:fixed;inset:0}#serve-sim-screen.active{display:block}.serve-canvas-mount{width:100%;height:100%;position:absolute;inset:0}.serve-canvas-mount canvas{display:block;width:100%!important;height:100%!important}.serve-hud-top{z-index:10;pointer-events:none;align-items:center;gap:12px;padding:16px 20px;display:flex;position:absolute;top:0;left:0;right:0}.serve-hud-top>*{pointer-events:all}.serve-hud-center{pointer-events:none;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.serve-back-btn{cursor:pointer;-webkit-backdrop-filter:blur(8px);padding:7px 14px;font-family:DM Sans,sans-serif;font-size:.82rem}.serve-back-icon-btn{justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:1rem;display:inline-flex}.serve-hud-left{flex:1;align-items:center;gap:10px;display:flex}.serve-logo-btn{color:#e8ff47;text-shadow:0 0 12px #e8ff474d}.serve-logo-btn span{color:#f5f5f0}.serve-logo-btn .logo-text,body.light .serve-logo-btn{color:#e8ff47}body.light .serve-logo-btn span{color:#f5f5f0}body.light .serve-logo-btn .logo-text{color:#e8ff47}.serve-theme-btn{-webkit-backdrop-filter:blur(8px)}.serve-hud-right{flex:1;justify-content:flex-end;align-items:center;gap:8px;display:flex;position:relative}.serve-keys-btn{justify-content:center;align-items:center;padding:6px 10px;line-height:0;display:flex}.serve-shortcuts-popup{-webkit-backdrop-filter:blur(16px);z-index:20;background:#0a1408f5;border:1px solid #ffffff24;border-radius:12px;min-width:230px;padding:14px 18px;animation:.15s fadeIn;position:absolute;top:calc(100% + 10px);right:0}.serve-shortcuts-title{letter-spacing:.15em;text-transform:uppercase;color:#7a9a6a;margin-bottom:10px;font-family:DM Mono,monospace;font-size:.68rem}.serve-shortcut-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:5px 0;display:flex}.serve-shortcut-row:last-child{border-bottom:none}.serve-shortcut-key{color:#e8ff47;white-space:nowrap;background:#e8ff4714;border:1px solid #e8ff4733;border-radius:5px;padding:3px 8px;font-family:DM Mono,monospace;font-size:.74rem}.serve-shortcut-desc{color:#f5f5f0;text-align:right;font-size:.8rem}.keys-btn-wrap{position:relative}.keys-popup-btn{line-height:0}.keys-popup{background:var(--card);border:1px solid var(--border-medium);-webkit-backdrop-filter:blur(16px);z-index:200;border-radius:12px;min-width:230px;padding:14px 18px;animation:.15s fadeIn}body.light .keys-popup{background:#ffffffeb;border-color:#0000001a}.keys-popup-title{letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-family:DM Mono,monospace;font-size:.68rem}.keys-popup-row{border-bottom:1px solid #8080801f;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;display:flex}.keys-popup-row:last-child{border-bottom:none}.keys-popup-key{color:var(--ace-dim);white-space:nowrap;background:#b8cc1a14;border:1px solid #b8cc1a33;border-radius:5px;padding:3px 8px;font-family:DM Mono,monospace;font-size:.74rem}.keys-popup-desc{color:var(--white);text-align:right;font-size:.8rem}body.light .keys-popup-title{color:#2d5a1b}body.light .keys-popup-key{color:#111a0e;background:var(--hover-bg);border-color:var(--border-strong)}body.light .keys-popup-desc{color:#111a0e}@media (hover:none),(pointer:coarse){.keys-btn-wrap,.serve-keys-btn{display:none}}.serve-countdown{animation:.2s ease-out countdownPop;color:#fffffff2!important;letter-spacing:0!important;text-transform:none!important;font-size:2.8rem!important;font-weight:900!important}@keyframes countdownPop{0%{opacity:.5;transform:translate(-50%)scale(1.5)}to{opacity:1;transform:translate(-50%)scale(1)}}.serve-phase-label{letter-spacing:.2em;text-transform:uppercase;color:#ffffff73;z-index:10;pointer-events:none;white-space:nowrap;font-family:DM Mono,monospace;font-size:.75rem;animation:.3s fadeIn;position:absolute;top:18%;left:50%;transform:translate(-50%)}.serve-cta-wrap{z-index:10;width:min(320px,88vw);position:absolute;bottom:80px;left:50%;transform:translate(-50%)}.serve-start-btn{width:100%}.serve-reaction-row{z-index:10;gap:10px;animation:.2s fadeIn;display:flex;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}.serve-reaction-btn{color:#f5f5f0;letter-spacing:.08em;cursor:pointer;-webkit-backdrop-filter:blur(8px);white-space:nowrap;background:#0a1408e0;border:1.5px solid #ffffff2e;border-radius:10px;padding:14px 24px;font-family:Bebas Neue,sans-serif;font-size:1.1rem;transition:border-color .12s,background .12s,transform .1s}@media (hover:hover){.serve-reaction-btn:hover{background:#2d5a1b8c;border-color:#e8ff47;transform:translateY(-2px)}}.serve-reaction-btn:focus-visible{background:#2d5a1b8c;border-color:#e8ff47}.serve-reaction-btn:active{transform:translateY(0)}.serve-result-panel{z-index:11;padding:22px 24px calc(22px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(18px);border-radius:18px 18px 0 0;flex-direction:column;align-items:center;gap:8px;animation:.32s cubic-bezier(.34,1.1,.64,1) slideUpSheet;display:flex;position:absolute;bottom:0;left:0;right:0}.serve-result-panel.correct{background:#0a1c0cf5;border:1.5px solid #4ade8059;border-bottom:none;box-shadow:0 -6px 32px #4ade801a}.serve-result-panel.wrong{background:#1c0a0af5;border:1.5px solid #f8717152;border-bottom:none;box-shadow:0 -6px 32px #f8717114}.serve-result-panel.neutral{background:#0a1408f5;border:1.5px solid #ffffff1a;border-bottom:none}.serve-result-verdict{letter-spacing:.1em;color:#f5f5f0;font-family:Bebas Neue,sans-serif;font-size:1.55rem}.serve-result-panel.correct .serve-result-verdict{color:#4ade80}.serve-result-panel.wrong .serve-result-verdict{color:#f87171}.serve-result-detail{letter-spacing:.08em;color:#7a9a6a;text-align:center;font-family:DM Mono,monospace;font-size:.76rem}.serve-result-detail strong{color:#e8ff47}.serve-again-btn{color:#111a0e;border-radius:var(--radius-md);letter-spacing:.1em;cursor:pointer;background:#e8ff47;border:none;margin-top:6px;padding:11px 34px;font-family:Bebas Neue,sans-serif;font-size:1.2rem;transition:background .15s,transform .12s}@media (hover:hover){.serve-again-btn:hover{background:#fff;transform:translateY(-1px)}}.serve-again-btn:focus-visible{background:#fff}.serve-again-btn:active{transform:translateY(0)}@media (width<=600px){.serve-reaction-btn{padding:12px 16px;font-size:.95rem}.serve-reaction-row{gap:7px;bottom:52px}.serve-cta-wrap{bottom:60px}.serve-phase-label{font-size:.68rem}}#lesson-plan-list{background:var(--dark);z-index:150;flex-direction:column;align-items:center;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#lesson-plan-list.active{display:flex}#lesson-plan-edit{background:var(--dark);z-index:150;flex-direction:column;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#lesson-plan-edit.active{display:flex}#lesson-plan-table{background:var(--dark);z-index:150;flex-direction:column;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#lesson-plan-table.active{display:flex}.lp-table-inner{width:100%;max-width:1100px;padding:14px 16px calc(var(--tab-bar-h,0px) + 32px);flex-direction:column;flex:1;gap:14px;margin:0 auto;display:flex}.lp-table-titlerow{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.lp-table-title{flex:auto;min-width:0;margin:0;font-family:DM Sans,sans-serif;font-size:1.3rem}.lp-table-shared-by{color:var(--text-muted);font-size:.8rem;font-style:italic}.lp-table-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=600px){.lp-table-grid{grid-template-columns:1fr}}.lp-table-court{flex-direction:column;gap:8px;min-width:0;display:flex}.lp-table-court-heading{border-bottom:1px solid var(--border-subtle,#ffffff1f);justify-content:space-between;align-items:baseline;gap:8px;margin:0;padding-bottom:6px;font-family:DM Sans,sans-serif;font-size:.95rem;display:flex}.lp-table-court-count{color:var(--text-muted);font-size:.78rem;font-weight:400}.lp-table-drill-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lp-table-empty{color:var(--text-muted);padding:10px 4px;font-size:.85rem;font-style:italic}.lp-table-drill-card{text-align:left;background:var(--card-bg,#ffffff0a);border:1px solid var(--border-subtle,#ffffff1a);border-radius:var(--radius-md);width:100%;color:inherit;cursor:pointer;align-items:center;gap:10px;padding:10px 12px;font-family:DM Sans,sans-serif;font-size:.9rem;transition:border-color .15s,background .15s;display:flex}@media (hover:hover){.lp-table-drill-card:hover{border-color:var(--ace);background:var(--hover-bg-subtle,#4ade800f)}}.lp-table-drill-card:focus-visible{border-color:var(--ace);outline:none}.lp-table-drill-card--missing{opacity:.6;cursor:default}.lp-table-drill-num{width:22px;height:22px;color:var(--text-muted);background:var(--hover-bg-subtle,#ffffff0f);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.78rem;display:inline-flex}.lp-table-drill-name{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.plan-tabs{justify-content:center;gap:6px;margin-bottom:4px;display:flex}.plan-list{flex-direction:column;gap:10px;width:100%;max-width:500px;padding:0 0 32px;display:flex}.plan-list-header{justify-content:center;margin-bottom:6px;display:flex}.plan-shared-section-header{color:var(--ace);opacity:.8}body.light .plan-shared-section-header{color:#3a6018}.plan-new-btn{background:var(--ace);color:var(--dark);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;flex-shrink:0;padding:8px 16px;font-family:DM Mono,monospace;font-size:.82rem;font-weight:600;transition:filter .15s,transform .15s}@media (hover:hover){.plan-new-btn:hover{filter:brightness(1.12);transform:translateY(-1px)}}.plan-empty{color:var(--text-muted);text-align:center;padding:32px 0;font-size:.88rem}.plan-card{background:var(--card);border:1px solid var(--surface-overlay);border-radius:10px;align-items:center;gap:12px;padding:14px 16px;transition:border-color .15s;display:flex}@media (hover:hover){.plan-card:hover{border-color:#4ade8033}}.plan-card:focus-visible{border-color:#4ade8033}.plan-card[draggable=true]{cursor:grab}.plan-card[draggable=true]:active{cursor:grabbing}.plan-card.drag-over{border-color:var(--ace);background:#4ade800f}.plan-card-info{flex:1;min-width:0}.plan-card-name{letter-spacing:.05em;color:var(--white);white-space:nowrap;align-items:center;gap:4px;font-family:Bebas Neue,sans-serif;font-size:1.1rem;display:flex;overflow:hidden}.plan-card-name-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.plan-card-court-chip{letter-spacing:.04em;text-transform:uppercase;color:var(--ace);background:var(--hover-bg-subtle,#4ade801a);border:1px solid var(--ace);border-radius:var(--radius-sm);flex:none;padding:1px 6px;font-family:DM Sans,sans-serif;font-size:.6rem;line-height:1.4}.plan-card-meta{color:var(--text-muted);margin-top:2px;font-size:.72rem}.plan-welcome-modal{background:var(--mid);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);flex-direction:column;gap:12px;width:min(420px,90vw);padding:22px 22px 18px;animation:.2s slideUp;display:flex}.plan-welcome-title{letter-spacing:.06em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.4rem}.plan-welcome-body{color:var(--text);margin:0;font-size:.92rem;line-height:1.45}.plan-welcome-cta{background:var(--ace);color:#0a1a0a;border-radius:var(--radius-md);letter-spacing:.06em;cursor:pointer;border:none;margin-top:6px;padding:11px 14px;font-family:Bebas Neue,sans-serif;font-size:1rem}body.light .plan-welcome-cta{color:#fff}@media (hover:hover){.plan-welcome-cta:hover{filter:brightness(1.08)}}body.light .plan-welcome-modal{background:#fff;border-color:#0000001a}.plan-card-count{color:var(--text-muted);font-family:DM Mono,monospace;font-size:.72rem;font-weight:400}.plan-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.plan-run-btn{background:var(--ace);color:#111a0e;letter-spacing:.08em;cursor:pointer;white-space:nowrap;border:none;border-radius:7px;padding:9px 28px;font-family:Bebas Neue,sans-serif;font-size:1.1rem;transition:background .15s,transform .1s}@media (hover:hover){.plan-run-btn:hover{background:#fff;transform:translateY(-1px)}}.plan-run-btn:focus-visible{background:#fff}.plan-run-btn:active{transform:translateY(0)}.plan-run-btn:disabled{opacity:.35;cursor:default;transform:none}.plan-edit-btn{color:var(--white);cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;transition:border-color .15s,color .15s;display:flex}@media (hover:hover){.plan-edit-btn:hover{color:var(--ace);border-color:#4ade8066}}.plan-edit-btn:focus-visible{color:var(--ace);border-color:#4ade8066}.plan-delete-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;transition:border-color .15s,color .15s;display:flex}@media (hover:hover){.plan-delete-btn:hover{color:var(--wrong);border-color:#f8717166}}.plan-delete-btn:focus-visible{color:var(--wrong);border-color:#f8717166}.plan-edit-inner{flex-direction:column;flex:1;align-items:center;gap:16px;width:100%;max-width:560px;margin:0 auto;padding:20px 24px 32px;display:flex}.plan-section-label{letter-spacing:.15em;text-transform:uppercase;color:var(--white);width:100%;font-family:DM Mono,monospace;font-size:.65rem;font-weight:700}.plan-name-input{background:var(--mid);border-radius:var(--radius-md);width:100%;color:var(--white);border:1.5px solid #ffffff1a;outline:none;padding:12px 16px;font-family:DM Sans,sans-serif;font-size:1rem;transition:border-color .15s}.plan-name-input:focus-visible{border-color:var(--ace)}.plan-name-input::placeholder{color:var(--text-muted)}.plan-drill-list{flex-direction:column;gap:6px;width:100%;display:flex}.plan-drag-handle{color:var(--text-muted);cursor:grab;opacity:.5;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:1rem}.plan-drag-handle:active{cursor:grabbing}.plan-drill-row.drag-over{border-color:var(--ace);background:#4ade800f}.plan-drill-list-empty{color:var(--text-muted);text-align:center;padding:20px 0 8px;font-size:.82rem}.plan-drill-row{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:8px;padding:10px 12px;display:flex}.plan-drill-row-info{flex:1;min-width:0}.plan-drill-row-name{color:var(--white);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;overflow:hidden}.plan-drill-move-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;transition:color .12s,border-color .12s;display:flex}.plan-drill-move-btn:disabled{opacity:.2;cursor:default}@media (hover:hover){.plan-drill-move-btn:hover:not(:disabled){color:var(--ace);border-color:#4ade8059}}.plan-drill-move-btn:focus-visible:not(:disabled){color:var(--ace);border-color:#4ade8059}.plan-drill-remove-btn{border:1px solid var(--surface-overlay);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.8rem;transition:color .12s,border-color .12s;display:flex}@media (hover:hover){.plan-drill-remove-btn:hover{color:var(--wrong);border-color:#f8717159}}.plan-drill-remove-btn:focus-visible{color:var(--wrong);border-color:#f8717159}.plan-add-drills-btn{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;border:1.5px dashed #fff3;width:100%;padding:11px;font-family:DM Sans,sans-serif;font-size:.88rem;transition:border-color .15s,color .15s}@media (hover:hover){.plan-add-drills-btn:hover{color:var(--ace);border-color:#4ade8066}}.plan-add-drills-btn:focus-visible{color:var(--ace);border-color:#4ade8066}.plan-add-court2-btn{border:1.5px dashed var(--border-subtle,#ffffff2e);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;width:100%;margin-top:8px;padding:10px;font-family:DM Sans,sans-serif;font-size:.85rem;transition:border-color .15s,color .15s}@media (hover:hover){.plan-add-court2-btn:hover{border-color:var(--ace);color:var(--ace)}}.plan-add-court2-btn:focus-visible{border-color:var(--ace);color:var(--ace)}.plan-court2-header{justify-content:space-between;align-items:baseline;gap:12px;margin-top:18px;display:flex}.plan-remove-court2-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 6px;font-family:DM Sans,sans-serif;font-size:.78rem;transition:color .15s}@media (hover:hover){.plan-remove-court2-btn:hover{color:var(--wrong)}}.plan-remove-court2-btn:focus-visible{color:var(--wrong);outline:1px solid var(--wrong)}.plan-edit-footer{gap:10px;width:100%;margin-top:auto;padding-top:8px;display:flex}.plan-cancel-btn{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #ffffff26;flex:1;padding:11px;font-family:DM Sans,sans-serif;font-size:.9rem;transition:border-color .15s,color .15s}@media (hover:hover){.plan-cancel-btn:hover{color:var(--white);border-color:#ffffff4d}}.plan-cancel-btn:focus-visible{color:var(--white);border-color:#ffffff4d}.plan-save-btn{background:var(--ace);border-radius:var(--radius-md);color:#111a0e;letter-spacing:.08em;cursor:pointer;border:none;flex:2;padding:11px;font-family:Bebas Neue,sans-serif;font-size:1.05rem;transition:background .15s,transform .1s}@media (hover:hover){.plan-save-btn:hover{background:#fff;transform:translateY(-1px)}}.plan-save-btn:focus-visible{background:#fff}.plan-save-btn:active{transform:translateY(0)}.plan-save-btn:disabled{opacity:.35;cursor:default;transform:none}.plan-context-bar{letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);text-align:center;padding:6px 0 2px;font-family:DM Mono,monospace;font-size:.65rem}.plan-context-shared-badge{color:#4ade80;background:#4ade801f;border:1px solid #4ade804d;border-radius:12px;align-items:center;gap:3px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-flex}body.light .plan-context-shared-badge{color:#3a6018;background:#4ade8026;border-color:#3a601840}#plan-add-drill-panel,#lp-copy-from-panel,#cde-copy-from-panel,#playbook-add-content-panel{background:var(--dark);z-index:200;flex-direction:column;transition:transform .35s cubic-bezier(.34,1.2,.64,1);display:flex;position:fixed;inset:0;transform:translateY(100%)}#plan-add-drill-panel.open,#lp-copy-from-panel.open,#cde-copy-from-panel.open,#playbook-add-content-panel.open{transform:translateY(0)}.plan-add-count{color:var(--text-muted);letter-spacing:.08em;font-family:DM Mono,monospace;font-size:.68rem}.plan-add-drills-label{color:var(--text-muted);letter-spacing:.05em;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;min-width:0;font-family:DM Mono,monospace;font-size:.68rem;display:-webkit-box;overflow:hidden}.plan-delete-plan-btn{color:var(--wrong);cursor:pointer;opacity:.7;background:0 0;border:none;align-self:center;padding:4px 0 0;font-family:DM Sans,sans-serif;font-size:.82rem;transition:opacity .15s,color .15s}@media (hover:hover){.plan-delete-plan-btn:hover{opacity:1}}.plan-toast{background:var(--mid);color:var(--ace);letter-spacing:.06em;z-index:300;pointer-events:none;white-space:nowrap;border:1px solid #4ade8040;border-radius:20px;padding:7px 16px;font-family:DM Mono,monospace;font-size:.72rem;animation:.2s toastIn;position:fixed;top:64px;left:50%;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(-6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.plan-preview-btn{letter-spacing:.05em;color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;margin-top:3px;padding:0;font-family:DM Mono,monospace;font-size:.65rem;transition:color .12s}@media (hover:hover){.plan-preview-btn:hover{color:var(--ace)}}.plan-preview-backdrop{z-index:250;background:#0009;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.plan-preview-modal{background:var(--mid);border-radius:var(--radius-lg);border:1px solid #ffffff1a;flex-direction:column;width:min(420px,90vw);max-height:70vh;animation:.2s slideUp;display:flex;overflow:hidden}.plan-preview-modal--multi{width:min(720px,92vw)}.plan-preview-grid{grid-template-columns:1fr 1fr;gap:14px;padding:12px 16px 14px;display:grid;overflow-y:auto}@media (width<=600px){.plan-preview-grid{grid-template-columns:1fr}}.plan-preview-court{flex-direction:column;gap:6px;min-width:0;display:flex}.plan-preview-court-heading{letter-spacing:.03em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle,#ffffff1a);margin:0 0 4px;padding-bottom:4px;font-family:DM Sans,sans-serif;font-size:.82rem}.plan-preview-empty{color:var(--text-muted);padding:6px 4px;font-size:.82rem;font-style:italic}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.plan-preview-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 18px 12px;display:flex}.plan-preview-title{letter-spacing:.06em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.2rem}.plan-preview-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:.9rem;line-height:1;transition:color .12s}@media (hover:hover){.plan-preview-close:hover{color:var(--white)}}.plan-preview-list{flex-direction:column;gap:6px;padding:10px 14px 16px;display:flex;overflow-y:auto}.plan-preview-row{background:var(--card);border:1px solid #ffffff0d;border-radius:7px;align-items:center;gap:8px;padding:8px 10px;display:flex}.plan-preview-num{color:var(--text-muted);text-align:right;flex-shrink:0;min-width:16px;font-family:DM Mono,monospace;font-size:.68rem}.plan-preview-drill-name{color:var(--white);flex:1;font-size:.88rem}.plan-missing-label{opacity:.5;font-style:italic}.plan-preview-row-missing,.plan-drill-row-missing{opacity:.55}body.light .plan-card{border-color:var(--surface-overlay);background:#fff}@media (hover:hover){body.light .plan-card:hover{border-color:#1a7a3a4d}}body.light .plan-card-name{color:#1a1a1a}body.light .plan-card-meta{color:#666}body.light .plan-preview-btn{color:#888}@media (hover:hover){body.light .plan-preview-btn:hover{color:#3a6018}}body.light .plan-preview-modal{background:#fff;border-color:#0000001a}body.light .plan-preview-header{border-bottom-color:var(--surface-overlay)}body.light .plan-preview-title{color:#1a1a1a}body.light .plan-preview-close{color:#999}@media (hover:hover){body.light .plan-preview-close:hover{color:#1a1a1a}}body.light .plan-preview-row{border-color:var(--border-subtle);background:#f4f4f0}body.light .plan-preview-drill-name{color:#1a1a1a}body.light .plan-name-input{color:#1a1a1a;background:#fff;border-color:#00000026}body.light .plan-name-input:focus-visible{border-color:#1a7a3a}body.light .plan-drill-row{border-color:var(--surface-overlay);background:#fff}body.light .plan-drill-row-name{color:#1a1a1a}body.light .plan-run-btn{background:var(--ace);color:#fff}@media (hover:hover){body.light .plan-run-btn:hover{background:#3a6018}}body.light .plan-save-btn{background:var(--ace);color:#fff}@media (hover:hover){body.light .plan-save-btn:hover{background:#3a6018}}body.light .plan-add-drills-btn{color:#3a6018;border-color:#4a7c1f73}@media (hover:hover){body.light .plan-add-drills-btn:hover{color:#3a6018;border-color:#3a6018}}body.light .plan-edit-btn{color:#444;border-color:#00000026}@media (hover:hover){body.light .plan-edit-btn:hover{color:#1a7a3a;border-color:#1a7a3a66}}body.light .plan-cancel-btn{color:#555;border-color:#00000026}@media (hover:hover){body.light .plan-cancel-btn:hover{color:#1a1a1a;border-color:#0000004d}}body.light .plan-drill-move-btn{border-color:var(--border-medium);color:#666}@media (hover:hover){body.light .plan-drill-move-btn:hover:not(:disabled){color:#1a7a3a;border-color:#1a7a3a59}}body.light .plan-drill-remove-btn{color:#888;border-color:#0000001a}@media (hover:hover){body.light .plan-drill-remove-btn:hover{color:#c0392b;border-color:#c0392b59}}body.light .plan-delete-plan-btn{color:#c0392b}@media (hover:hover){body.light .plan-delete-plan-btn:hover{color:#922b21}}body.light .plan-add-drills-label{color:#666}body.light .plan-toast{color:#fff;background:#1a7a3a}#loading-screen{background:var(--dark);z-index:150;flex-direction:column;justify-content:center;align-items:center;animation:.35s fadeIn;display:flex;position:fixed;inset:0}.loading-inner{z-index:1;flex-direction:column;align-items:center;gap:20px;display:flex;position:relative}.loading-ball{filter:drop-shadow(0 12px 6px #00000059);font-size:3rem;animation:.9s ease-in-out infinite loadingBounce}.loading-status{letter-spacing:.35em;text-transform:uppercase;color:var(--text-muted);padding-left:16px;font-family:DM Mono,monospace;font-size:.72rem;animation:1.4s ease-in-out infinite loadingFade}.og-image-brand{letter-spacing:.12em;text-align:center;margin-top:4px;padding-left:8px;font-family:Bebas Neue,sans-serif;font-size:1.65rem}.og-image-brand.logo-text{color:var(--ace)}.og-image-brand.logo-text>span{color:var(--white)}.og-image-brand.og-tagline{text-transform:uppercase;letter-spacing:.25em;color:var(--text-muted);margin-top:4px;font-family:DM Mono,monospace;font-size:.8rem;font-style:normal}@keyframes loadingBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}@keyframes loadingFade{0%,to{opacity:.4}50%{opacity:1}}body.light .loading-ball{filter:drop-shadow(0 10px 5px #0000002e)}.loading-iq-ball{vertical-align:top;width:auto;height:1em;overflow:visible}.plan-preview-action{color:var(--ace);white-space:nowrap;margin-left:auto;font-size:.72rem;font-weight:600}#playbook-list{background:var(--dark);z-index:150;flex-direction:column;align-items:center;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#playbook-list.active{display:flex}#playbook-edit{background:var(--dark);z-index:150;flex-direction:column;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#playbook-edit.active{display:flex}#smart-practice-setup-screen,#smart-practice-result-screen{background:var(--dark);z-index:150;flex-direction:column;animation:.3s fadeIn;display:none;position:fixed;inset:0;overflow-y:auto}#smart-practice-setup-screen.active,#smart-practice-result-screen.active{display:flex}.smart-practice-setup-inner,.smart-practice-result-inner{z-index:1;flex-direction:column;flex:1;align-items:center;gap:24px;width:100%;max-width:540px;margin:0 auto;padding:16px 20px 32px;display:flex}.smart-practice-form{flex-direction:column;gap:24px;width:100%;display:flex}.sp-field{flex-direction:column;gap:10px;display:flex}.sp-field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.72rem}.sp-field-label-row{justify-content:space-between;align-items:center;display:flex}.sp-match-count{color:var(--text-muted);padding-top:2px;font-size:.75rem}.sp-generate-btn{background:var(--ace);color:#111;cursor:pointer;border:none;border-radius:10px;width:100%;margin-top:4px;padding:14px;font-family:inherit;font-size:1rem;font-weight:700;transition:opacity .15s}.sp-generate-btn:disabled{opacity:.4;cursor:not-allowed}@media (hover:hover){.sp-generate-btn:not(:disabled):hover{opacity:.88}}.sp-drill-list{flex-direction:column;gap:10px;width:100%;display:flex}.sp-empty{text-align:center;color:var(--text-muted);padding:24px 0;font-size:.9rem}.sp-drill-item{background:var(--card);border:1px solid var(--border);border-radius:10px;align-items:center;gap:14px;padding:12px 14px;display:flex}.sp-drill-actions{flex-direction:row;flex-shrink:0;align-items:center;gap:12px;display:flex}.sp-drill-drag-handle{color:var(--text-muted);opacity:.4;cursor:grab;touch-action:none;flex-shrink:0;padding:2px 0;font-size:1rem;line-height:1}.sp-drill-drag-handle:active{cursor:grabbing;opacity:.7}.sp-drill-item--drag-over{border-color:var(--ace);background:#4ade8014}.sp-drill-view-btn{letter-spacing:.06em;color:var(--ace);opacity:.7;cursor:pointer;background:0 0;border:none;padding:0;font-family:Bebas Neue,sans-serif;font-size:.85rem;transition:opacity .15s}@media (hover:hover){.sp-drill-view-btn:hover{opacity:1}}.sp-drill-keep{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:.72rem;display:flex}.sp-drill-keep input[type=checkbox]{accent-color:var(--ace);cursor:pointer;width:13px;height:13px}.sp-drill-item--kept{background:#4ade800d;border-color:#4ade8040}.sp-drill-number{background:var(--surface-overlay);width:24px;height:24px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:.75rem;font-weight:700;display:flex}.sp-drill-info{flex-direction:column;flex:1;gap:6px;display:flex}.sp-drill-name{color:var(--white);font-size:.92rem;font-weight:600;line-height:1.3}.sp-drill-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sp-drill-players{color:var(--text-muted);font-size:.72rem}.sp-actions{flex-direction:column;gap:10px;width:100%;margin-top:4px;display:flex}.sp-secondary-actions{gap:10px;display:flex}.sp-secondary-actions .plan-cancel-btn{background:var(--card);color:var(--white)}.sp-action-btn{cursor:pointer;border:1.5px solid #ffffff21;border-radius:10px;width:100%;padding:12px;font-family:inherit;font-size:.95rem;font-weight:600;transition:opacity .15s,border-color .15s,background .15s}.sp-action-btn:disabled{opacity:.4;cursor:not-allowed}.sp-action-btn--primary{background:var(--ace);color:#111;border-color:#0000}@media (hover:hover){.sp-action-btn--primary:not(:disabled):hover{opacity:.88}}.sp-action-btn--secondary{background:var(--card);color:var(--white)}@media (hover:hover){.sp-action-btn--secondary:not(:disabled):hover{border-color:var(--color-green)}}.sp-action-btn--saved{color:var(--color-green);background:#4ade800f;border-color:#4ade804d}body.light #smart-practice-setup-screen,body.light #smart-practice-result-screen{background:var(--bg,#f4f8f0)}body.light .sp-generate-btn{background:var(--ace);color:#fff}body.light .sp-action-btn--primary{color:#fff}body.light .sp-drill-item{border-color:var(--surface-overlay);background:#fff}body.light .sp-drill-name{color:#111}body.light .sp-drill-number{background:var(--hover-bg);color:#0000009e}body.light .sp-action-btn--secondary,body.light .sp-secondary-actions .plan-cancel-btn{border-color:var(--border-medium);color:#111;background:#fff}body.light .sp-action-btn--saved{color:#2e7d32;background:#2e7d320f;border-color:#2e7d324d}#session-insights-list,#session-insights-edit{background:var(--bg);flex-direction:column;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}#session-insights-list .app-header,#session-insights-edit .app-header{flex-shrink:0;width:100%}.session-insights-list-header{justify-content:flex-end;gap:8px;margin-bottom:12px;display:flex}.session-insights-cards{flex-direction:column;gap:10px;width:100%;display:flex}.healthkit-suggestions{flex-direction:column;gap:8px;width:100%;margin-bottom:12px;display:flex}.healthkit-suggestions-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding-left:2px;font-family:DM Mono,monospace;font-size:.72rem}.healthkit-suggestion-card{background:var(--card);border:1.5px dashed #ff646440;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.healthkit-suggestion-info{flex-direction:column;gap:2px;min-width:0;display:flex}.healthkit-suggestion-date{color:var(--text);font-family:DM Mono,monospace;font-size:.82rem;font-weight:600}.healthkit-suggestion-detail{color:var(--text-muted);font-size:.75rem}.healthkit-suggestion-actions{flex-shrink:0;gap:6px;display:flex}.healthkit-suggestion-btn{cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:1rem;font-weight:700;transition:opacity .15s;display:flex}.healthkit-suggestion-btn:active{opacity:.7}.healthkit-suggestion-btn--confirm{color:#4ade80;background:#4ade802e}.healthkit-suggestion-btn--dismiss{background:var(--surface-overlay);color:var(--text-muted)}.session-insights-card{background:var(--card);border:1px solid var(--surface-overlay);text-align:left;cursor:pointer;border-radius:10px;width:100%;padding:14px 16px;transition:border-color .15s;position:relative}@media (hover:hover){.session-insights-card:hover{border-color:#4ade8040}}.session-insights-card:focus-visible{border-color:#4ade8040}.session-insights-card-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.session-insights-date{color:var(--text-muted);flex-shrink:0;font-family:DM Mono,monospace;font-size:.78rem}.session-insights-badges{flex-wrap:wrap;justify-content:flex-end;gap:5px;margin-left:auto;display:flex}.session-insights-type-badge{letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border-medium);color:var(--text-muted);border-radius:4px;padding:2px 7px;font-family:DM Mono,monospace;font-size:.68rem}.session-insights-type-badge--match{color:var(--ace);border-color:#4ade804d}.session-insights-type-badge--lesson{color:#60a5fa;border-color:#60a5fa4d}.session-insights-result-badge{letter-spacing:.06em;border-radius:4px;padding:1px 8px;font-family:Bebas Neue,sans-serif;font-size:.88rem}.session-insights-result-badge--win{color:var(--ace);background:#4ade8026;border:1px solid #4ade804d}.session-insights-result-badge--loss{color:var(--wrong);background:#f871711a;border:1px solid #f8717140}.session-insights-surface-badge{text-transform:uppercase;letter-spacing:.05em;background:var(--hover-bg-subtle);color:var(--text-muted);border:1px solid var(--surface-overlay);border-radius:4px;padding:2px 7px;font-family:DM Mono,monospace;font-size:.68rem}.session-insights-card-body{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.session-insights-opponent{letter-spacing:.05em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1rem}.session-insights-score{color:var(--text-muted);font-family:DM Mono,monospace;font-size:.78rem}.session-insights-card-tags{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.session-insights-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:2px 8px;font-family:DM Mono,monospace;font-size:.65rem}.session-insights-tag--good{color:var(--ace);background:#4ade801a;border:1px solid #4ade8033}.session-insights-tag--work{color:#d4a800;background:#facc1514;border:1px solid #facc1533}.session-insights-card-edit-btn{border:1px solid var(--border-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:5px 10px;font-family:DM Mono,monospace;font-size:.68rem;transition:border-color .15s,color .15s}@media (hover:hover){.session-insights-card-edit-btn:hover{border-color:var(--ace);color:var(--ace)}}.session-insights-card-edit-btn:focus-visible{border-color:var(--ace);color:var(--ace)}.session-insights-edit-inner{flex-direction:column;flex:1;align-items:center;width:100%;padding:20px 20px 48px;display:flex}.session-insights-edit-form{flex-direction:column;gap:22px;width:100%;max-width:540px;display:flex}.session-insights-field{flex-direction:column;gap:8px;display:flex}.session-insights-label{letter-spacing:.12em;text-transform:uppercase;color:var(--white);font-family:DM Mono,monospace;font-size:.68rem;font-weight:700}.session-insights-optional{text-transform:none;letter-spacing:0;opacity:.7;font-size:.65rem}.session-insights-date-input,.session-insights-text-input{background:var(--mid);border-radius:var(--radius-md);width:100%;color:var(--white);appearance:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border:1.5px solid #ffffff1a;outline:none;padding:11px 14px;font-family:DM Sans,sans-serif;font-size:16px;transition:border-color .15s}.session-insights-date-input:focus-visible,.session-insights-text-input:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.session-insights-text-input::placeholder{color:var(--text-muted)}.session-insights-date-input::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer;opacity:.7}.session-insights-score-wrap{flex-direction:row;align-items:flex-end;gap:10px;display:flex}.session-insights-score-table{border-collapse:collapse}.session-insights-score-th-label{width:32px}.session-insights-score-th{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);text-align:center;min-width:44px;padding:0 2px 6px;font-family:DM Mono,monospace;font-size:.65rem}.session-insights-score-row-label{color:var(--text-muted);white-space:nowrap;padding-right:6px;font-family:DM Mono,monospace;font-size:.72rem}.session-insights-score-cell-wrap{padding:3px 2px}.session-insights-score-cell{background:var(--mid);width:40px;color:var(--white);text-align:center;appearance:textfield;border:1.5px solid #ffffff1a;border-radius:6px;outline:none;padding:7px 4px;font-family:DM Mono,monospace;font-size:16px;transition:border-color .15s}.session-insights-score-cell::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.session-insights-score-cell::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.session-insights-score-cell:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.session-insights-score-cell::placeholder{color:#fff3}.session-insights-score-btns{flex-direction:column;gap:6px;padding-bottom:3px;display:flex}.session-insights-score-add-btn,.session-insights-score-remove-btn{border:1px solid var(--border-medium);letter-spacing:.04em;cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:5px 10px;font-family:DM Mono,monospace;font-size:.68rem;transition:border-color .15s,color .15s}.session-insights-score-add-btn{color:var(--ace);border-color:#4ade8040}.session-insights-score-remove-btn{color:var(--text-muted)}@media (hover:hover){.session-insights-score-add-btn:hover{border-color:var(--ace)}.session-insights-score-remove-btn:hover{color:var(--white);border-color:#ffffff4d}}.session-insights-toggle-sep{color:var(--text-muted);opacity:.4;-webkit-user-select:none;user-select:none;align-items:center;padding:0 2px;font-size:1rem;display:flex}.session-insights-toggle-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.session-insights-toggle-btn{background:var(--mid);color:var(--text-muted);cursor:pointer;border:1.5px solid #ffffff1a;border-radius:7px;padding:8px 16px;font-family:DM Sans,sans-serif;font-size:.88rem;transition:border-color .15s,color .15s,background .15s}.session-insights-toggle-btn.active{border-color:var(--ace);color:var(--ace);background:#4ade8014}.session-insights-toggle-btn--win.active{border-color:var(--ace);color:var(--ace);background:#4ade801a}.session-insights-toggle-btn--loss.active{border-color:var(--wrong);color:var(--wrong);background:#f8717114}.session-insights-toggle-btn--format{border-radius:20px;padding:6px 13px;font-size:.82rem}.session-insights-toggle-btn--indoor{border-style:dashed}.session-insights-toggle-btn--indoor.active{color:#93c5fd;background:#93c5fd12;border-style:solid;border-color:#93c5fd80}@media (hover:hover){.session-insights-toggle-btn:not(.active):hover{border-color:var(--border-strong);color:var(--white)}}.session-insights-toggle-btn:not(.active):focus-visible{border-color:var(--border-strong);color:var(--white)}.session-insights-rating-pill{color:var(--ace);border-radius:var(--radius-pill);white-space:nowrap;background:#6ccb5f1a;border:1px solid #6ccb5f40;padding:2px 10px;font-size:.72rem;font-weight:600}body.light .session-insights-rating-pill{color:var(--ace);background:#22783a12;border-color:#22783a40}.session-insights-chips{flex-wrap:wrap;gap:7px;display:flex}.session-insights-chip{background:var(--mid);color:var(--text-muted);cursor:pointer;border:1.5px solid #ffffff1a;border-radius:20px;padding:6px 13px;font-family:DM Sans,sans-serif;font-size:.82rem;transition:border-color .15s,color .15s,background .15s}.session-insights-chip--good.active{color:var(--ace);background:#4ade801a;border-color:#4ade8080}.session-insights-chip--work.active{color:#d4a800;background:#facc1512;border-color:#facc1566}@media (hover:hover){.session-insights-chip:not(.active):hover{border-color:var(--border-strong);color:var(--white)}}.session-insights-chip:not(.active):focus-visible{border-color:var(--border-strong);color:var(--white)}.session-insights-textarea{background:var(--mid);border-radius:var(--radius-md);width:100%;color:var(--white);resize:vertical;border:1.5px solid #ffffff1a;outline:none;min-height:70px;padding:11px 14px;font-family:DM Sans,sans-serif;font-size:16px;transition:border-color .15s}.session-insights-textarea:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.session-insights-textarea::placeholder{color:var(--text-muted)}.session-insights-actions{flex-direction:column;gap:10px;padding-top:8px;display:flex}.session-insights-delete-btn{border-radius:var(--radius-md);letter-spacing:.08em;color:var(--wrong);cursor:pointer;background:0 0;border:1.5px solid #f871714d;padding:12px;font-family:Bebas Neue,sans-serif;font-size:1.05rem;transition:background .15s,border-color .15s}@media (hover:hover){.session-insights-delete-btn:hover{border-color:var(--wrong);background:#f8717114}}.session-insights-delete-btn:focus-visible{border-color:var(--wrong);background:#f8717114}.session-insights-cancel-btn{border-radius:var(--radius-md);letter-spacing:.08em;color:var(--text-muted);cursor:pointer;background:0 0;border:1.5px solid #ffffff1a;padding:12px;font-family:Bebas Neue,sans-serif;font-size:1.05rem;transition:border-color .15s,color .15s}@media (hover:hover){.session-insights-cancel-btn:hover{border-color:var(--border-strong);color:var(--white)}}.session-insights-cancel-btn:focus-visible{border-color:var(--border-strong);color:var(--white)}.session-insights-view-modal{background:var(--card);border-radius:var(--radius-lg);width:min(92vw,520px);max-height:85dvh;max-height:calc(85dvh - var(--tab-bar-h,0px));border:1px solid #ffffff1a;flex-direction:column;animation:.18s fadeIn;display:flex;overflow:hidden}.session-insights-view-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 16px 12px;display:flex}.session-insights-view-header-left{flex-direction:column;gap:6px;display:flex}.session-insights-view-date{color:var(--text-muted);font-family:DM Mono,monospace;font-size:.82rem}.session-insights-view-badges{flex-wrap:wrap;gap:5px;display:flex}.session-insights-view-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:1rem;line-height:1;transition:color .15s}@media (hover:hover){.session-insights-view-close:hover{color:var(--white)}}.session-insights-view-body{flex-direction:column;flex:1;gap:16px;padding:14px 16px;display:flex;overflow-y:auto}.session-insights-view-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.session-insights-view-opponent{letter-spacing:.05em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.05rem}.session-insights-view-section{flex-direction:column;gap:6px;display:flex}.session-insights-view-section-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);opacity:.7;font-family:DM Mono,monospace;font-size:.63rem}.session-insights-view-chips{flex-wrap:wrap;gap:5px;display:flex}.session-insights-view-text{color:#fffc;white-space:pre-wrap;font-size:.9rem;line-height:1.5}.session-insights-view-score-table{border-collapse:collapse;font-family:DM Mono,monospace;font-size:.82rem}.session-insights-view-score-table th{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;text-align:center;min-width:36px;padding:0 8px 4px;font-size:.65rem}.session-insights-view-score-table td{text-align:center;color:var(--white);border-radius:4px;padding:4px 8px}.session-insights-view-score-table td:first-child{color:var(--text-muted);text-align:left;padding-right:12px}.session-insights-view-footer{border-top:1px solid var(--border);flex-shrink:0;padding:12px 16px 16px}body.light #session-insights-list,body.light #session-insights-edit{background:var(--bg,#f4f8f0)}body.light .healthkit-suggestion-card{background:#fff;border-color:#c83c3c38}body.light .healthkit-suggestion-btn--confirm{color:#1a7a3a;background:#22783a1f}body.light .healthkit-suggestion-btn--dismiss{background:var(--hover-bg);color:#00000073}body.light .session-insights-card{border-color:var(--surface-overlay);background:#fff}@media (hover:hover){body.light .session-insights-card:hover{border-color:#22783a40}}body.light .session-insights-card-edit-btn{border-color:var(--border-medium);color:#0000009e}@media (hover:hover){body.light .session-insights-card-edit-btn:hover{color:#1a7a3a;border-color:#1a7a3a}}body.light .session-insights-result-badge--win{color:#1a7a3a;background:#22783a1f;border-color:#22783a66}body.light .session-insights-result-badge--loss{color:#b91c1c;background:#c828281a;border-color:#c8282859}body.light .session-insights-date{color:#0000009e}body.light .session-insights-type-badge{color:#0000009e;border-color:var(--border-medium)}body.light .session-insights-type-badge--match{color:#1a7a3a;border-color:#22783a59}body.light .session-insights-type-badge--lesson{color:#2563eb;border-color:#2563eb59}body.light .session-insights-surface-badge{color:#0000009e;background:#0000000d;border-color:#0000001a}body.light .session-insights-opponent{color:#111}body.light .session-insights-score{color:#00000080}body.light .session-insights-tag--good{color:#1a7a3a;background:#22783a14;border-color:#22783a33}body.light .session-insights-tag--work{color:#a07700;background:#a0770012;border-color:#a0770033}body.light .session-insights-date-input,body.light .session-insights-text-input,body.light .session-insights-textarea{border-color:var(--border-medium);color:#111;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff}body.light .session-insights-date-input:focus-visible,body.light .session-insights-text-input:focus-visible,body.light .session-insights-textarea:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}body.light .session-insights-text-input::placeholder,body.light .session-insights-textarea::placeholder{color:#00000059}body.light .session-insights-date-input::-webkit-calendar-picker-indicator{filter:none;opacity:.5}body.light .session-insights-score-cell{border-color:var(--border-medium);color:#111;background:#fff}body.light .session-insights-score-cell:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}body.light .session-insights-score-cell::placeholder{color:#0003}body.light .session-insights-score-add-btn{color:#1a7a3a;border-color:#1a7a3a4d}body.light .session-insights-score-remove-btn{border-color:var(--border-medium);color:#0000009e}body.light .session-insights-toggle-btn{border-color:var(--border-medium);color:#00000080;background:#fff}body.light .session-insights-toggle-btn.active{background:#22783a12}body.light .session-insights-toggle-btn--indoor.active{color:#2563eb;background:#3b82f60f;border-color:#3b82f666}@media (hover:hover){body.light .session-insights-toggle-btn:not(.active):hover{border-color:var(--border-strong);color:#111}}body.light .session-insights-chip{color:#00000080;background:#fff;border-color:#0000001a}body.light .session-insights-chip--good.active{color:#1a7a3a;background:#22783a12;border-color:#22783a59}body.light .session-insights-chip--work.active{color:#a07700;background:#a0770012;border-color:#a077004d}@media (hover:hover){body.light .session-insights-chip:not(.active):hover{border-color:var(--border-strong);color:#111}}body.light .session-insights-cancel-btn{border-color:var(--border-medium);color:#00000080}@media (hover:hover){body.light .session-insights-cancel-btn:hover{color:#111;border-color:#0000004d}}body.light .session-insights-view-modal{background:#fff;border-color:#0000001a}body.light .session-insights-view-header{border-bottom-color:var(--border)}body.light .session-insights-view-footer{border-top-color:var(--border)}body.light .session-insights-view-date,body.light .session-insights-view-close{color:#0000009e}body.light .session-insights-view-close:hover,body.light .session-insights-view-opponent{color:#111}body.light .session-insights-view-text{color:#000000bf}body.light .session-insights-view-score-table th{color:#0000009e}body.light .session-insights-view-score-table td{color:#111}body.light .session-insights-view-score-table td:first-child{color:#0000009e}.trends-container{flex-direction:column;gap:16px;width:100%;display:flex}.trends-free-upsell{background:var(--card);border:1px solid var(--ace);border-radius:var(--radius-sm);color:var(--ace);text-align:left;cursor:pointer;width:100%;padding:10px 14px;font-size:.95rem}.trends-free-upsell:hover{background:var(--hover-bg-subtle)}.trends-cards{flex-direction:column;gap:14px;display:flex}.trends-card{background:var(--card);border:1px solid var(--border-subtle);border-radius:10px;flex-direction:column;gap:10px;padding:16px 18px;display:flex}.trends-card-title{letter-spacing:.06em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.05rem;line-height:1}.trends-stat-row{gap:28px;display:flex}.trends-stat{flex-direction:column;gap:2px;display:flex}.trends-stat-value{letter-spacing:.04em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1.6rem;line-height:1}.trends-stat-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.6rem}.trends-empty{color:var(--text-muted);text-align:center;padding:32px 0;font-family:DM Mono,monospace;font-size:.78rem}.trends-preview{flex-direction:column;gap:12px;width:100%;margin-top:24px;display:flex}.trends-preview-header{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.trends-preview-badge{text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:999px;padding:3px 10px;font-family:DM Mono,monospace;font-size:.62rem}.trends-preview-caption{color:var(--text-muted);max-width:36ch;font-size:.9rem;line-height:1.4}.trends-preview-stage{opacity:.85;pointer-events:none;border:1px dashed var(--border-subtle);border-radius:var(--radius-md,12px);background:var(--hover-bg-subtle,transparent);padding:12px;position:relative}.trends-container--preview{pointer-events:none}.trends-hbar{flex-direction:column;gap:6px;display:flex}.trends-hbar-row{align-items:center;gap:8px;display:flex}.trends-hbar-label{color:var(--text-muted);text-align:right;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:100px;font-family:DM Mono,monospace;font-size:.62rem;overflow:hidden}.trends-hbar-track{background:#ffffff0a;border-radius:5px;flex:1;height:10px;overflow:hidden}.trends-hbar-fill{border-radius:5px;height:100%;transition:width .3s}.trends-hbar-fill--good{background:var(--ace)}.trends-hbar-fill--work{background:#f59e0b}.trends-hbar-count{color:var(--text-muted);text-align:right;flex-shrink:0;width:20px;font-family:DM Mono,monospace;font-size:.6rem}.trends-stacked{flex-direction:column;gap:6px;display:flex}.trends-stacked-bar{border-radius:7px;height:14px;display:flex;overflow:hidden}.trends-stacked-fill--win{background:var(--ace)}.trends-stacked-fill--loss{background:var(--wrong)}.trends-stacked-legend{gap:12px;font-family:DM Mono,monospace;font-size:.65rem;display:flex}.trends-stacked-label--win{color:var(--ace)}.trends-stacked-label--loss{color:var(--wrong)}.trends-stacked-label--pct{color:var(--text-muted);margin-left:auto}.trends-surface-records{flex-direction:column;gap:8px;margin-top:4px;display:flex}.trends-surface-record-row{flex-direction:column;gap:4px;display:flex}.trends-surface-record-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-family:DM Mono,monospace;font-size:.6rem}.trends-rating-svg{width:100%;height:80px}.trends-grid-line{stroke:var(--border-subtle);stroke-width:.5px}.trends-axis-label{fill:var(--text-muted);font-family:DM Mono,monospace;font-size:8px}.trends-rating-line{fill:none;stroke:var(--ace);stroke-width:1.5px;stroke-linejoin:round}.trends-rating-dot{fill:var(--ace)}.trends-spark-svg{width:100%;height:32px}.trends-spark-bar{fill:#4ade8059}.trends-spark-label-wrap{flex-direction:column;align-items:center;display:flex}.trends-spark-caption{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-top:2px;font-size:.65rem}.trends-surface{flex-direction:column;gap:8px;display:flex}.trends-surface-bar{border-radius:6px;gap:2px;height:12px;display:flex;overflow:hidden}.trends-surface-seg{min-width:8px}.trends-surface-seg:first-child{border-radius:6px 0 0 6px}.trends-surface-seg:last-child{border-radius:0 6px 6px 0}.trends-surface-seg:only-child{border-radius:6px}.trends-surface-legend{flex-wrap:wrap;gap:14px;display:flex}.trends-surface-item{color:var(--text-muted);align-items:center;gap:5px;font-family:DM Mono,monospace;font-size:.62rem;display:flex}.trends-surface-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.trends-insights{flex-direction:column;gap:8px;display:flex}.trends-insight-text{color:var(--white);border-left:2px solid var(--ace);padding-left:12px;font-family:DM Mono,monospace;font-size:.72rem;font-style:italic;line-height:1.5}body.light .trends-card{border-color:var(--surface-overlay);background:#ffffffb3}body.light .trends-card-title,body.light .trends-stat-value{color:#111a0e}body.light .trends-hbar-track{background:#0000000d}body.light .trends-hbar-fill--good{background:#1a7a3a}body.light .trends-hbar-fill--work{background:#b45309}body.light .trends-grid-line{stroke:var(--surface-overlay)}body.light .trends-axis-label{fill:#00000073}body.light .trends-rating-line{stroke:#1a7a3a}body.light .trends-rating-dot{fill:#1a7a3a}body.light .trends-spark-bar{fill:#1a7a3a4d}body.light .trends-stacked-fill--win{background:#1a7a3a}body.light .trends-stacked-fill--loss{background:#b91c1c}body.light .trends-stacked-label--win{color:#1a7a3a}body.light .trends-stacked-label--loss{color:#b91c1c}body.light .trends-insight-text{color:#111a0e;border-left-color:#1a7a3a}#string-lab-list,#string-lab-edit{background:var(--bg);flex-direction:column;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}#string-lab-list .app-header,#string-lab-edit .app-header{flex-shrink:0;width:100%}.string-lab-card-main{flex-direction:column;gap:2px;margin-top:6px;display:flex}.string-lab-card-name{color:var(--white);font-size:1rem;font-weight:600}.string-lab-card-racket{color:var(--text-muted);font-size:.8rem}.string-lab-card-meta{color:var(--text-muted);gap:10px;margin-top:6px;font-size:.78rem;display:flex}.string-lab-card-rating{color:var(--ace);font-weight:600}.string-lab-sort-select{background:var(--card);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;padding:6px 10px;font-family:DM Mono,monospace;font-size:.75rem}.string-lab-sort-select:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.string-lab-row{gap:12px;display:flex}.string-lab-hours-input{align-items:center;gap:8px;display:flex}.string-lab-hours-cap{color:var(--ace);font-size:.78rem;font-weight:600}.string-lab-rating-10{flex-wrap:wrap}.string-lab-rating-dot{width:28px;height:28px;font-size:.72rem}.string-lab-rating-dot--view{cursor:default;width:24px;height:24px;font-size:.68rem}.string-lab-slider-wrap{align-items:center;gap:12px;display:flex}.string-lab-slider{appearance:none;cursor:pointer;background:#ffffff1f;border-radius:3px;outline:none;flex:1;height:6px}.string-lab-slider:focus-visible{outline:2px solid var(--ace);outline-offset:4px}.string-lab-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ace);border:2px solid var(--ace);cursor:pointer;border-radius:50%;width:22px;height:22px}.string-lab-slider::-moz-range-thumb{background:var(--ace);border:2px solid var(--ace);cursor:pointer;border-radius:50%;width:22px;height:22px}.string-lab-slider-value{text-align:center;min-width:32px;color:var(--ace);font-family:DM Mono,monospace;font-size:1rem;font-weight:600}.string-lab-view-meta{flex-direction:column;gap:2px;display:flex}.string-lab-view-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.string-lab-view-tags{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.string-lab-view-tags .session-insights-tag{white-space:nowrap}.string-lab-view-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);opacity:.75;flex-shrink:0;font-family:DM Mono,monospace;font-size:.68rem}.string-lab-view-section{margin-top:14px}.string-lab-view-rating{align-items:baseline;gap:8px;margin-top:4px;display:flex}.string-lab-view-rating-value{color:var(--ace);font-family:DM Mono,monospace;font-size:1.2rem;font-weight:700}body.light #string-lab-list,body.light #string-lab-edit{background:var(--bg,#f4f8f0)}body.light .string-lab-card-name{color:#111}body.light .string-lab-card-racket,body.light .string-lab-card-meta{color:#00000080}body.light .string-lab-card-rating{color:var(--ace)}body.light .string-lab-sort-select{border-color:var(--border-medium);color:#00000080;background:#fff}body.light .string-lab-slider{background:#0000001a}body.light .string-lab-slider-value,body.light .string-lab-view-rating-value{color:var(--ace)}.session-insights-label-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.session-insights-manage-btn{border:1px solid var(--border-default,#ffffff26);border-radius:var(--radius-sm,6px);color:var(--text-muted);cursor:pointer;background:0 0;padding:2px 7px;font-size:.78rem;line-height:1;transition:color .15s,border-color .15s,background .15s}@media (hover:hover){.session-insights-manage-btn:hover{color:var(--white);border-color:var(--border-strong)}}.session-insights-manage-btn:focus-visible{color:var(--white);border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.session-insights-chip--ghost{opacity:.55;font-style:italic;border-style:dashed!important}.session-insights-chip--ghost.active{opacity:.75}body.light .session-insights-manage-btn{border-color:var(--border-medium);color:#00000080}@media (hover:hover){body.light .session-insights-manage-btn:hover{color:#111;border-color:#0000004d}}.custom-categories-modal{background:var(--card);border-radius:var(--radius-lg);width:min(92vw,460px);max-height:85dvh;max-height:calc(85dvh - var(--tab-bar-h,0px));border:1px solid #ffffff1a;flex-direction:column;animation:.18s fadeIn;display:flex;overflow:hidden}.custom-categories-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 16px 12px;display:flex}.custom-categories-header-left{flex-direction:column;gap:4px;display:flex}.custom-categories-title{letter-spacing:.06em;color:var(--white);margin:0;font-family:Bebas Neue,sans-serif;font-size:1.25rem}.custom-categories-counter{color:var(--text-muted);font-family:DM Mono,monospace;font-size:.72rem}.custom-categories-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:1.4rem;line-height:1;transition:color .15s}@media (hover:hover){.custom-categories-close:hover{color:var(--white)}}.custom-categories-close:focus-visible{color:var(--white);outline:2px solid var(--ace);outline-offset:2px}.custom-categories-body{flex-direction:column;flex:1;gap:12px;padding:14px 16px 18px;display:flex;overflow-y:auto}.custom-categories-help{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.4}.custom-categories-empty{color:var(--text-muted);padding:8px 0;font-size:.85rem;font-style:italic}.custom-categories-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.custom-categories-item{background:var(--mid);border-radius:var(--radius-md);border:1px solid #ffffff14;align-items:center;gap:8px;padding:8px 10px;display:flex}.custom-categories-name{color:var(--white);word-break:break-word;flex:1;font-family:DM Sans,sans-serif;font-size:.95rem}.custom-categories-row-actions{flex-shrink:0;gap:4px;display:flex}.custom-categories-icon-btn{border-radius:var(--radius-sm,6px);color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;padding:4px 8px;font-size:.95rem;line-height:1;transition:color .15s,background .15s,border-color .15s}@media (hover:hover){.custom-categories-icon-btn:hover{color:var(--white);background:var(--hover-bg,#ffffff0f)}.custom-categories-icon-btn--danger:hover{color:#f87171}}.custom-categories-icon-btn:focus-visible{color:var(--white);border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.custom-categories-input{background:var(--dark,var(--mid));border-radius:var(--radius-md);color:var(--white);border:1.5px solid #ffffff1a;outline:none;flex:1;min-width:0;padding:10px 12px;font-family:DM Sans,sans-serif;font-size:16px;transition:border-color .15s}.custom-categories-input:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.custom-categories-input::placeholder{color:var(--text-muted)}.custom-categories-input:disabled{opacity:.6;cursor:not-allowed}.custom-categories-add-row{gap:8px;margin-top:4px;display:flex}.custom-categories-add-btn{background:var(--ace);color:#111;border-radius:var(--radius-md);cursor:pointer;border:none;flex-shrink:0;padding:0 16px;font-family:DM Sans,sans-serif;font-size:.9rem;font-weight:700;transition:opacity .15s,filter .15s}.custom-categories-add-btn:disabled{opacity:.45;cursor:not-allowed}@media (hover:hover){.custom-categories-add-btn:not(:disabled):hover{filter:brightness(1.08)}}.custom-categories-add-btn:focus-visible{outline:2px solid var(--ace);outline-offset:2px}.custom-categories-error{color:#f87171;font-size:.82rem}.custom-categories-footer-hint{color:var(--text-muted);font-size:.75rem}body.light .custom-categories-modal{background:#fff;border-color:#0000001a}body.light .custom-categories-title{color:#111}body.light .custom-categories-counter,body.light .custom-categories-help,body.light .custom-categories-footer-hint{color:#0009}body.light .custom-categories-close{color:#0000009e}@media (hover:hover){body.light .custom-categories-close:hover{color:#111}}body.light .custom-categories-item{background:#fff;border-color:#0000001a}body.light .custom-categories-name{color:#111}body.light .custom-categories-input{color:#111;background:#fff;border-color:#00000026}body.light .custom-categories-input::placeholder{color:#00000059}body.light .custom-categories-icon-btn{color:#0000008c}@media (hover:hover){body.light .custom-categories-icon-btn:hover{color:#111;background:#0000000d}body.light .custom-categories-icon-btn--danger:hover{color:#c0392b}}body.light .custom-categories-add-btn{color:#fff}.coach-today-classes{flex-direction:column;gap:6px;width:100%;max-width:460px;margin:0 auto 18px;display:flex}.coach-today-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:2px;font-family:DM Mono,monospace;font-size:.72rem}.coach-today-card{background:var(--card);cursor:default;text-align:left;border:1px solid #4ade8040;border-radius:10px;align-items:center;gap:10px;width:100%;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}@media (hover:hover){.coach-today-card:hover{background:#4ade801f;border-color:#4ade8073}}.coach-today-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.coach-today-name{letter-spacing:.05em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1rem}.coach-today-meta{color:var(--text-muted);font-family:DM Mono,monospace;font-size:.72rem}.coach-today-action{cursor:pointer;white-space:nowrap;border-radius:7px;flex-shrink:0;padding:7px 14px;font-family:DM Mono,monospace;font-size:.75rem;font-weight:600;transition:border-color .15s,background .15s}.coach-today-action--add{background:var(--ace);color:var(--dark);border:none}@media (hover:hover){.coach-today-action--add:hover{background:#fff}}.coach-today-action--view{color:var(--ace);background:0 0;border:1px solid #4ade8059}@media (hover:hover){.coach-today-action--view:hover{border-color:var(--ace);background:#4ade8014}}body.light .coach-today-card{background:#fff;border-color:#0000}body.light .coach-today-name{color:#111}body.light .coach-today-action--add{background:var(--ace);color:#fff}body.light .coach-today-action--view{color:#1a7a3a;border-color:#1a7a3a59}body.light .coach-today-action--view:hover{background:#1a7a3a0f;border-color:#1a7a3a}#class-list,#class-session-list{background:var(--dark);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}#class-edit,#class-session-edit,#student-detail,#student-list{background:var(--dark);flex-direction:column;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden auto}#class-edit .app-header,#class-session-edit .app-header,#student-detail .app-header,#student-list .app-header{flex-shrink:0;width:100%}#student-detail .class-list-inner,#student-list .class-list-inner{flex:none;overflow-y:visible}.class-list-inner{z-index:1;-webkit-overflow-scrolling:touch;padding:20px 16px calc(var(--tab-bar-h,0px) + 16px);flex:auto;width:100%;max-width:540px;margin:0 auto;position:relative;overflow-y:auto}.class-edit-inner{z-index:1;padding:20px 16px calc(var(--tab-bar-h,0px) + 16px);width:100%;max-width:540px;position:relative}.class-list-top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.class-list-title{letter-spacing:.04em;color:var(--white);margin:0;font-family:Bebas Neue,sans-serif;font-size:1.5rem}.class-session-subtitle{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:2px 0 0;font-family:DM Mono,monospace;font-size:.75rem}.class-new-btn{background:var(--ace);color:var(--dark);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;flex-shrink:0;padding:8px 16px;font-family:DM Mono,monospace;font-size:.82rem;font-weight:600}.class-search-input{background:var(--card);border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--white);box-sizing:border-box;margin-bottom:12px;padding:8px 12px;font-size:1rem}.class-search-input:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.class-search-input::placeholder{color:var(--text-muted)}.class-empty{text-align:center;color:var(--text-muted);padding:40px 16px;font-size:.9rem}.class-cards{flex-direction:column;gap:10px;display:flex}.class-card{background:var(--card);border:1px solid var(--surface-overlay);cursor:pointer;border-radius:10px;padding:14px 16px;transition:border-color .15s,background .15s}@media (hover:hover){.class-card:hover{background:#e8ff470a;border-color:#e8ff474d}}.class-card-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.class-card-name{letter-spacing:.05em;color:var(--white);font-family:Bebas Neue,sans-serif;font-size:1rem}.class-card-edit-btn{cursor:pointer;opacity:.6;background:0 0;border:none;padding:2px 4px;font-size:.85rem;transition:opacity .15s}.class-card-edit-btn:hover{opacity:1}.class-card-location{color:var(--text-muted);margin-bottom:6px;font-size:.82rem}.class-card-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.class-card-days{flex-wrap:nowrap;flex-shrink:0;gap:3px;display:inline-flex}.class-day-badge{color:var(--ace);letter-spacing:.03em;background:#e8ff471f;border-radius:4px;padding:2px 6px;font-family:DM Mono,monospace;font-size:.7rem;font-weight:600}.class-card-time{color:var(--text-muted);font-family:DM Mono,monospace;font-size:.78rem}.class-card-actions{align-items:center;gap:8px;display:flex}.class-card-sessions-btn{color:var(--ace);cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:6px;padding:4px 12px;font-family:DM Mono,monospace;font-size:.78rem;transition:border-color .15s}.class-card-sessions-btn:hover{border-color:var(--ace)}.class-card-delete-btn{cursor:pointer;opacity:.5;background:0 0;border:none;padding:2px 4px;font-size:.85rem;transition:opacity .15s}.class-card-delete-btn:hover{opacity:1}.class-session-card{align-items:center;gap:12px;display:flex}.class-session-card-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.class-session-card-date{letter-spacing:.05em;color:var(--white);white-space:nowrap;font-family:Bebas Neue,sans-serif;font-size:1rem}.class-session-attendance{margin-bottom:6px}.class-attendance-badge{color:var(--correct);background:#4ade8026;border-radius:4px;padding:2px 8px;font-family:DM Mono,monospace;font-size:.75rem;font-weight:600}.class-session-plans{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.class-session-card-info .class-session-plans{margin-bottom:0}.class-plan-chip{color:var(--ace);background:#e8ff471a;border-radius:4px;padding:2px 8px;font-family:DM Mono,monospace;font-size:.7rem}.class-session-notes{color:var(--text-muted);font-size:.8rem;line-height:1.35}.class-edit-title{letter-spacing:.04em;color:var(--white);margin:0 0 20px;font-family:Bebas Neue,sans-serif;font-size:1.4rem}.class-edit-form{flex-direction:column;gap:18px;display:flex}.class-field{flex-direction:column;gap:6px;display:flex}.class-label{text-transform:uppercase;letter-spacing:.06em;color:var(--white);font-family:DM Mono,monospace;font-size:.72rem;font-weight:700}.class-text-input{background:var(--card);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--white);box-sizing:border-box;width:100%;padding:10px 14px;font-size:1rem}.class-time-input,.class-date-input{background:var(--card);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--white);box-sizing:border-box;max-width:200px;padding:10px 14px;font-size:1rem}.class-text-input:focus-visible,.class-date-input:focus-visible,.class-time-input:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.class-text-input::placeholder{color:var(--text-muted)}.class-time-row{flex-direction:column;gap:12px}.class-time-field{flex-direction:column;gap:6px;display:flex}.class-textarea{background:var(--card);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--white);resize:vertical;box-sizing:border-box;width:100%;min-height:60px;padding:10px 14px;font-size:1rem}.class-textarea:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.class-textarea::placeholder{color:var(--text-muted)}.class-day-toggles{flex-wrap:wrap;gap:6px;display:flex}.class-day-toggle{background:var(--card);border:1.5px solid var(--border-medium);border-radius:var(--radius-md);color:var(--white);cursor:pointer;padding:8px 12px;font-family:DM Mono,monospace;font-size:.8rem;transition:border-color .15s,background .15s}.class-day-toggle--active{border-color:var(--ace);color:var(--ace);background:#e8ff471f}.class-plan-chips{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--card);flex-wrap:wrap;gap:6px;max-height:160px;padding:4px;display:flex;overflow-y:auto}.class-plan-toggle{background:var(--card);border:1.5px solid var(--border-medium);border-radius:var(--radius-md);color:var(--white);cursor:pointer;padding:6px 12px;font-size:.82rem;transition:border-color .15s,background .15s}.class-plan-toggle--active{border-color:var(--ace);color:var(--ace);background:#e8ff471f}.class-student-list{flex-direction:column;gap:6px;display:flex}.class-student-row{align-items:center;gap:6px;display:flex}.class-student-name{background:var(--card);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--white);flex:1;padding:8px 12px;font-size:1rem}.class-student-name:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.class-student-name::placeholder{color:var(--text-muted)}.class-presence-toggle{border-radius:var(--radius-md);border:1.5px solid var(--border-medium);background:var(--card);cursor:pointer;flex-shrink:0;align-items:center;gap:5px;padding:6px 10px;transition:border-color .15s,background .15s,color .15s;display:flex}.class-presence-toggle-icon{font-size:.9rem}.class-presence-toggle-label{letter-spacing:.03em;font-family:DM Mono,monospace;font-size:.72rem;font-weight:600}.class-presence-toggle--present{border-color:var(--correct);color:var(--correct);background:#4ade8026}.class-presence-toggle--absent{border-color:var(--wrong);color:var(--wrong);background:#f871711f}.class-student-remove{color:var(--text-muted);cursor:pointer;opacity:.6;background:0 0;border:none;flex-shrink:0;padding:4px;font-size:1.1rem;transition:opacity .15s}.class-student-remove:hover{opacity:1;color:var(--wrong)}.class-add-student-btn{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;border:1.5px dashed #ffffff2e;margin-top:4px;padding:10px;font-family:DM Mono,monospace;font-size:.82rem;transition:border-color .15s,color .15s}.class-add-student-btn:hover{border-color:var(--ace);color:var(--ace)}.class-edit-actions{flex-direction:column;gap:10px;margin-top:24px;padding-bottom:20px;display:flex}.class-save-btn{background:var(--ace);color:var(--dark);cursor:pointer;border:none;border-radius:10px;padding:14px;font-family:DM Mono,monospace;font-size:.92rem;font-weight:700;transition:opacity .15s}.class-save-btn:disabled{opacity:.4;cursor:not-allowed}.class-delete-btn{color:var(--wrong);cursor:pointer;background:0 0;border:1.5px solid #f8717166;border-radius:10px;padding:12px;font-family:DM Mono,monospace;font-size:.85rem;transition:border-color .15s,background .15s}.class-delete-btn:hover{border-color:var(--wrong);background:#f8717114}.class-cancel-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:1.5px solid #ffffff26;border-radius:10px;padding:12px;font-family:DM Mono,monospace;font-size:.85rem}.class-active-row{flex-direction:column;gap:6px;display:flex}.class-active-toggle{background:var(--card);border:1.5px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;align-self:flex-start;padding:8px 16px;font-family:DM Mono,monospace;font-size:.85rem;transition:border-color .15s,background .15s,color .15s}.class-active-toggle--active{border-color:var(--ace);color:var(--ace);background:#e8ff471f}.class-active-hint{color:var(--text-muted);font-size:.75rem;line-height:1.3}.class-list-card--inactive{opacity:.55}.class-inactive-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-sm);color:var(--text-muted);vertical-align:middle;background:#ffffff14;margin-left:6px;padding:1px 6px;font-size:.65rem;font-weight:600;display:inline-block}.class-inactive-section{margin-top:16px}.class-inactive-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:8px 4px;font-family:DM Mono,monospace;font-size:.8rem;display:flex}.class-inactive-toggle:hover{color:var(--white)}.class-inactive-toggle-arrow{font-size:.7rem}.class-session-view-modal{background:var(--card);border-radius:var(--radius-lg);border:1px solid #ffffff1a;flex-direction:column;width:min(92vw,520px);max-height:85dvh;animation:.18s fadeIn;display:flex;overflow:hidden}.class-session-view-header{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:16px 40px 12px 16px;display:flex;position:relative}.class-session-view-class-info{flex-direction:column;gap:2px;width:100%;display:flex}.class-session-view-class-name{color:var(--white);letter-spacing:.02em;font-family:DM Mono,monospace;font-size:1rem;font-weight:700}.class-session-view-location{color:var(--text-muted);font-family:DM Mono,monospace;font-size:.75rem}.class-session-view-date{color:var(--text-muted);flex:1;font-family:DM Mono,monospace;font-size:.82rem}.class-session-view-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:1rem;line-height:1;transition:color .15s;position:absolute;top:12px;right:12px}@media (hover:hover){.class-session-view-close:hover{color:var(--white)}}.class-session-view-body{flex-direction:column;flex:1;gap:16px;padding:14px 16px;display:flex;overflow-y:auto}.class-session-view-section{flex-direction:column;gap:6px;display:flex}.class-session-view-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);opacity:.7;font-family:DM Mono,monospace;font-size:.63rem}.class-session-view-students{flex-direction:column;gap:4px;display:flex}.class-session-view-student{align-items:center;gap:8px;font-size:.88rem;display:flex}.class-session-view-presence{text-align:center;width:18px;font-size:.85rem;font-weight:700}.class-session-view-presence--present{color:var(--correct)}.class-session-view-presence--absent{color:var(--wrong)}.class-session-view-student-name{color:var(--white)}.class-session-view-text{color:var(--white);white-space:pre-wrap;font-size:.88rem;line-height:1.45}.class-session-view-footer{border-top:1px solid var(--border);flex-shrink:0;padding:12px 16px 16px}body.light .class-session-view-modal{background:#fff;border-color:#0000001a}body.light .class-session-view-header{border-bottom-color:var(--border)}body.light .class-session-view-class-name{color:#111}body.light .class-session-view-footer{border-top-color:var(--border)}body.light .class-session-view-date,body.light .class-session-view-close{color:#0000009e}body.light .class-session-view-close:hover,body.light .class-session-view-student-name,body.light .class-session-view-text{color:#111}body.light #class-list,body.light #class-edit,body.light #class-session-list,body.light #class-session-edit,body.light #student-detail,body.light #student-list{background:var(--dark)}body.light .class-card{border-color:var(--surface-overlay);background:#fff}body.light .class-card:hover{background:#f0faf2;border-color:#1a7a3a4d}body.light .class-text-input,body.light .class-date-input,body.light .class-time-input,body.light .class-textarea,body.light .class-student-name,body.light .class-search-input,body.light .class-day-toggle{border-color:var(--border-medium);color:var(--white);background:#fff}body.light .class-day-toggle--active{color:#1a7a3a;background:#e8f5ec;border-color:#1a7a3a}body.light .class-plan-toggle{border-color:var(--border-medium);color:var(--white);background:#f7f7f7}body.light .class-plan-toggle--active{color:#1a7a3a;background:#e8f5ec;border-color:#1a7a3a}body.light .class-day-badge{color:#1a7a3a;background:#1a7a3a1f}body.light .class-plan-chip{color:#1a7a3a;background:#1a7a3a1a}body.light .class-attendance-badge{color:#1a7a3a;background:#1a7a3a1f}body.light .class-presence-toggle{border-color:var(--border-medium);background:#f7f7f7}body.light .class-presence-toggle--present{color:#1a7a3a;background:#e8f5ec;border-color:#1a7a3a}body.light .class-presence-toggle--absent{color:#b91c1c;background:#fde8e8;border-color:#b91c1c}body.light .class-delete-btn{background:#fff;border-color:#b91c1c4d}body.light .class-delete-btn:hover{background:#fde8e8;border-color:#b91c1c}body.light .class-add-student-btn{border-color:var(--border-strong);color:#00000080}body.light .class-add-student-btn:hover{color:#1a7a3a;border-color:#1a7a3a}body.light .class-cancel-btn{color:var(--white);background:#fff;border-color:#0003}body.light .class-active-toggle{border-color:var(--border-medium);color:var(--white);background:#fff}body.light .class-active-toggle--active{border-color:var(--ace);color:var(--ace);background:#e8f5ec}body.light .class-inactive-badge{color:var(--text-muted);background:#0000000f}.session-reflection-section{border-top:1px solid var(--border);margin-top:8px;padding-top:4px}.session-reflection-header{color:var(--ace);letter-spacing:.01em;padding:10px 0;font-size:.88rem;font-weight:600}.session-reflection-body{flex-direction:column;gap:10px;padding-bottom:4px;display:flex}.session-rating{gap:8px;display:flex}.session-rating-dot{color:#ffffff80;cursor:pointer;background-color:#0000;border:2px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.82rem;font-weight:600;display:flex}.session-rating-dot--active{border-color:var(--ace);background-color:var(--ace);color:var(--dark)}.session-rating-dot:focus{outline:none}.session-rating-dot:focus-visible{outline:2px solid var(--ace);outline-offset:2px}.session-rating-label{color:var(--ace);margin-top:2px;font-size:.78rem;font-weight:500}.class-session-view-rating{align-items:center;gap:6px;margin-bottom:8px;display:flex}.session-rating-dot-view{color:#ffffff59;border:2px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.72rem;font-weight:600;display:flex}.session-rating-dot-view--filled{border-color:var(--ace);background:var(--ace);color:var(--dark)}.class-session-view-reflection-item{margin-bottom:6px}.class-session-view-reflection-label{color:#ffffff80;margin-bottom:2px;font-size:.78rem;font-weight:500;display:block}body.light .session-reflection-section{border-top-color:var(--border)}body.light .session-reflection-header{color:var(--ace)}body.light .session-rating-dot{color:#0006;background-color:#fff;border-color:#00000026}body.light .session-rating-dot--active{border-color:var(--ace);background-color:var(--ace);color:#fff}body.light .session-rating-label{color:var(--ace)}body.light .session-rating-dot-view{border-color:var(--border-medium);color:#0000004d}body.light .session-rating-dot-view--filled{border-color:var(--ace);background:var(--ace);color:#fff}body.light .class-session-view-reflection-label{color:#00000073}#calendar-view{background:var(--dark);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden auto}.calendar-inner{flex:1;width:100%;max-width:600px;margin:0 auto;padding:12px 16px 40px}.calendar-nav{align-items:center;gap:8px;margin-bottom:12px;display:flex}.calendar-nav-btn{color:var(--white);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1.4rem;line-height:1;transition:background .15s}.calendar-nav-btn:hover{background:var(--hover-bg-subtle)}.calendar-nav-title{text-align:center;color:var(--white);flex:1;font-size:1rem;font-weight:600}.calendar-today-btn{color:var(--white);border-radius:var(--radius-lg);cursor:pointer;background:0 0;border:1px solid #ffffff2e;padding:4px 10px;font-size:.78rem;font-weight:500;transition:all .15s}.calendar-today-btn:hover{border-color:var(--ace);color:var(--ace)}.calendar-tour-btn{color:var(--white);border-radius:var(--radius-lg);cursor:pointer;background:0 0;border:1px solid #ffffff2e;padding:4px 14px;font-size:.78rem;font-weight:500;transition:all .15s}.calendar-tour-btn:hover{border-color:var(--ace);color:var(--ace)}body.light .calendar-tour-btn{color:var(--white);border-color:#00000026}body.light .calendar-tour-btn:hover{border-color:var(--ace);color:var(--ace)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.calendar-grid--header{margin-bottom:4px}.calendar-header-cell{text-align:center;color:#ffffff73;text-transform:uppercase;letter-spacing:.04em;padding:4px 0;font-size:.72rem;font-weight:600}.calendar-cell{border-radius:var(--radius-md);cursor:pointer;background:0 0;border:2px solid #0000;flex-direction:column;align-items:center;min-height:52px;padding:6px 2px 4px;transition:all .12s;display:flex;position:relative}.calendar-cell:hover{background:#ffffff0a}.calendar-cell--other-month{opacity:.3}.calendar-cell--today .calendar-cell-day{background:var(--ace);color:var(--dark);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.calendar-cell--selected{border-color:var(--ace);background:#4ade800f}.calendar-cell-day{color:var(--white);justify-content:center;align-items:center;width:26px;height:26px;font-size:.82rem;font-weight:500;line-height:1;display:flex}.calendar-dots{flex-wrap:wrap;justify-content:center;gap:3px;max-width:100%;margin-top:4px;display:flex}.calendar-dot{border-radius:50%;width:6px;height:6px}.calendar-dot--insight-match{background:var(--ace)}.calendar-dot--insight-practice{background:#60a5fa}.calendar-dot--insight-lesson{background:#fb923c}.calendar-dot--class-logged{background:#c084fc}.calendar-dot--class-scheduled{background:0 0;border:1.5px solid #ffffff4d}.calendar-hint{text-align:center;color:#ffffff59;margin-top:14px;font-size:.78rem}.calendar-day-detail{border:1px solid var(--surface-overlay);background:#ffffff0a;border-radius:12px;margin-top:16px;padding:14px 16px}.calendar-day-detail-header{color:var(--white);margin-bottom:10px;font-size:.88rem;font-weight:600}.calendar-day-empty{color:#fff6;padding:4px 0 8px;font-size:.82rem}.calendar-entry-card{border:1px solid var(--surface-overlay);border-radius:var(--radius-md);cursor:pointer;text-align:left;background:#ffffff0a;align-items:center;gap:8px;width:100%;margin-bottom:6px;padding:10px 12px;transition:all .15s;display:flex}.calendar-entry-card:hover{border-color:#fff3}.calendar-entry-card--unlogged{opacity:.7;border-style:dashed}.calendar-entry-card--unlogged:hover{opacity:1}.calendar-entry-type{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.72rem;font-weight:600}.calendar-entry-type--match{color:var(--ace);background:#4ade8026}.calendar-entry-type--practice{color:#60a5fa;background:#60a5fa26}.calendar-entry-type--lesson{color:#fb923c;background:#fb923c26}.calendar-entry-type--class{color:#c084fc;background:#c084fc26}.calendar-entry-type--scheduled{background:var(--hover-bg-subtle);color:#ffffff80}.calendar-entry-detail{color:var(--white);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.82rem;overflow:hidden}.calendar-entry-arrow{color:#ffffff59;flex-shrink:0;font-size:.88rem}.calendar-log-btn{border-radius:var(--radius-md);color:#ffffff80;cursor:pointer;background:0 0;border:1px dashed #ffffff2e;width:100%;margin-top:8px;padding:8px;font-size:.82rem;transition:all .15s;display:block}.calendar-log-btn:hover{border-color:var(--ace);color:var(--ace)}body.light #calendar-view{background:var(--dark)}body.light .calendar-nav-btn{color:var(--white)}body.light .calendar-nav-btn:hover{background:var(--hover-bg-subtle)}body.light .calendar-nav-title{color:var(--white)}body.light .calendar-today-btn{color:var(--white);border-color:#00000026}body.light .calendar-today-btn:hover{border-color:var(--ace);color:var(--ace)}body.light .calendar-header-cell{color:#00000073}body.light .calendar-cell:hover{background:#00000008}body.light .calendar-cell--today .calendar-cell-day{background:var(--ace);color:#fff}body.light .calendar-cell--selected{border-color:var(--ace);background:#4ade800f}body.light .calendar-cell-day{color:var(--white)}body.light .calendar-dot--class-scheduled{border-color:var(--border-strong)}body.light .calendar-entry-type--scheduled{color:#00000073;background:#0000000d}body.light .calendar-hint{color:#00000059}body.light .calendar-day-detail{border-color:var(--surface-overlay);background:#00000005}body.light .calendar-day-detail-header{color:var(--white)}body.light .calendar-day-empty{color:#00000059}body.light .calendar-entry-card{border-color:var(--surface-overlay);background:#fff}body.light .calendar-entry-card:hover{border-color:#0003}body.light .calendar-entry-detail{color:var(--white)}body.light .calendar-entry-arrow{color:#0000004d}body.light .calendar-log-btn{color:#0006;border-color:#00000026}body.light .calendar-log-btn:hover{border-color:var(--ace);color:var(--ace)}.recently-deleted-body{max-width:600px;margin:0 auto;padding:20px 16px 40px}.recently-deleted-empty{text-align:center;color:var(--text-muted);padding:40px 0}.recently-deleted-error{text-align:center;color:#ef4444;padding:16px 0}.recently-deleted-section{margin-bottom:24px}.recently-deleted-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px;font-size:.8rem;font-weight:600}.recently-deleted-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.recently-deleted-item{border:1px solid var(--border-subtle);background:#ffffff0a;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.recently-deleted-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.recently-deleted-item-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.recently-deleted-item-date{color:var(--text-muted);font-size:.75rem}.recently-deleted-item-actions{flex-shrink:0;gap:6px;display:flex}.recently-deleted-btn{cursor:pointer;border:1px solid #0000;border-radius:6px;padding:5px 12px;font-size:.78rem;font-weight:500;transition:background .15s,border-color .15s}.recently-deleted-btn.recover{color:#4ade80;background:#22c55e1f;border-color:#22c55e33}.recently-deleted-btn.recover:hover{background:#22c55e33}.recently-deleted-btn.recover:disabled{opacity:.5;cursor:default}.recently-deleted-btn.purge{color:#f87171;background:#ef44441a;border-color:#ef44442e}.recently-deleted-btn.purge:hover{background:#ef44442e}.recently-deleted-btn.purge:disabled{opacity:.5;cursor:default}body.light .recently-deleted-item{border-color:var(--surface-overlay);background:#fff}body.light .recently-deleted-btn.recover{color:#15803d;background:#16a34a1a;border-color:#16a34a33}body.light .recently-deleted-btn.recover:hover{background:#16a34a2e}body.light .recently-deleted-btn.purge{color:#b91c1c;background:#dc262614;border-color:#dc262626}body.light .recently-deleted-btn.purge:hover{background:#dc262626}#session-checklist-screen{background:var(--dark);z-index:150;flex-direction:column;align-items:center;animation:.35s fadeIn;display:none;position:fixed;inset:0;overflow:hidden auto}#session-checklist-screen.active{display:flex}#session-checklist-screen .app-header{flex-shrink:0;width:100%}body.light #session-checklist-screen{background:var(--dark)}.session-checklist-tabs,.session-checklist-progress,.session-checklist-group{width:100%}.session-checklist-tabs{background:var(--mid);border-radius:10px;gap:0;padding:3px;display:flex}.session-checklist-tab{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:9px 0;font-family:DM Sans,sans-serif;font-size:.88rem;font-weight:600;transition:background .2s,color .2s}.session-checklist-tab.active{background:var(--card);color:var(--white);box-shadow:0 1px 4px #00000026}@media (hover:hover){.session-checklist-tab:not(.active):hover{color:var(--white)}}.session-checklist-progress{align-items:center;gap:10px;display:flex}.session-checklist-progress-bar{background:var(--mid);border-radius:3px;flex:1;height:6px;overflow:hidden}.session-checklist-progress-fill{background:var(--ace);border-radius:3px;height:100%;transition:width .3s}.session-checklist-progress-label{color:var(--text-muted);text-align:right;min-width:40px;font-family:DM Mono,monospace;font-size:.72rem}.session-checklist-group{flex-direction:column;gap:0;display:flex}.session-checklist-group-title{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:center;padding:8px 0 4px;font-family:DM Mono,monospace;font-size:.68rem;display:flex}.session-checklist-item{background:var(--mid);border:1.5px solid var(--border-subtle);cursor:pointer;text-align:left;color:var(--white);border-radius:10px;align-items:center;gap:12px;margin-top:6px;padding:12px 14px;font-family:DM Sans,sans-serif;font-size:.88rem;transition:border-color .2s,opacity .2s;display:flex}.session-checklist-item.checked{opacity:.65;border-color:#4ade804d}.session-checklist-item.checked .session-checklist-label{color:var(--text-muted);text-decoration:line-through}@media (hover:hover){.session-checklist-item:not(.checked):hover{border-color:#fff3}}.session-checklist-item:focus-visible{outline:2px solid var(--ace);outline-offset:2px;border-color:#ffffff4d}.session-checklist-check{border:2px solid #fff3;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.78rem;font-weight:700;transition:border-color .2s,background .2s;display:flex}.session-checklist-item.checked .session-checklist-check{background:var(--ace);border-color:var(--ace);color:#000}.session-checklist-label{flex:1;line-height:1.35}.session-checklist-reset{border:1.5px solid var(--border-medium);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:4px 12px;font-family:DM Mono,monospace;font-size:.7rem;transition:border-color .2s,color .2s}@media (hover:hover){.session-checklist-reset:hover{color:var(--white);border-color:#ffffff4d}}body.light .session-checklist-tabs{background:#f0f0f0}body.light .session-checklist-tab.active{color:#1a1a1a;box-shadow:0 1px 3px var(--surface-overlay);background:#fff}body.light .session-checklist-tab:not(.active){color:#00000073}body.light .session-checklist-progress-bar{background:#e5e5e5}body.light .session-checklist-group-title{color:#00000073}body.light .session-checklist-item{border-color:var(--surface-overlay);color:#1a1a1a;background:#fff}body.light .session-checklist-item.checked{border-color:#16a34a40}body.light .session-checklist-item.checked .session-checklist-label{color:#0006}body.light .session-checklist-check{border-color:#00000026}body.light .session-checklist-item.checked .session-checklist-check{background:var(--ace);border-color:var(--ace)}body.light .session-checklist-reset{color:#0006;border-color:#0000001a}@media (hover:hover){body.light .session-checklist-item:not(.checked):hover{border-color:#0003}body.light .session-checklist-reset:hover{border-color:var(--border-strong);color:#1a1a1a}}.session-checklist-edit-toolbar{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.session-checklist-edit-btn{border:1.5px solid var(--border-medium);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-family:DM Mono,monospace;font-size:.7rem;transition:border-color .2s,color .2s}.session-checklist-edit-btn--save{border-color:var(--ace);color:var(--ace)}.session-checklist-edit-btn--cancel,.session-checklist-edit-btn--reset{color:var(--text-muted)}@media (hover:hover){.session-checklist-edit-btn--save:hover{background:#4ade8014}.session-checklist-edit-btn--cancel:hover,.session-checklist-edit-btn--reset:hover{color:var(--white);border-color:var(--border-strong)}}.session-checklist-confirm-bar{background:var(--mid);border-radius:var(--radius-md);color:var(--text-muted);align-items:center;gap:10px;padding:8px 12px;font-family:DM Sans,sans-serif;font-size:.82rem;display:flex}.session-checklist-confirm-bar span{flex:1}.session-checklist-group-header-edit{align-items:center;gap:8px;padding:8px 0 4px;display:flex}.session-checklist-group-title-input{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);background:0 0;border:none;border-bottom:1px dashed #fff3;outline:none;flex:1;padding:0;font-family:DM Mono,monospace;font-size:1rem}.session-checklist-group-title-input:focus-visible{border-bottom-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}.session-checklist-item--edit{cursor:default}.session-checklist-item--edit .session-checklist-item-input{color:var(--white);background:0 0;border:none;outline:none;flex:1;min-width:0;font-family:DM Sans,sans-serif;font-size:1rem}.session-checklist-item--edit .session-checklist-item-input:focus-visible{outline:2px solid var(--ace);outline-offset:2px}.session-checklist-item--edit .session-checklist-item-input::placeholder{color:var(--text-muted);opacity:.5}.session-checklist-delete-btn{width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;transition:color .2s,background .2s;display:flex}@media (hover:hover){.session-checklist-delete-btn:hover{color:#ef4444;background:#ef44441a}}.session-checklist-add-btn{color:var(--ace);cursor:pointer;opacity:.7;text-align:left;background:0 0;border:none;padding:6px 0;font-family:DM Sans,sans-serif;font-size:.78rem;transition:opacity .2s}.session-checklist-add-btn:hover{opacity:1}.session-checklist-add-section{letter-spacing:.06em;margin-top:8px;padding:10px 0;font-family:DM Mono,monospace;font-size:.72rem}.session-checklist-customize{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;border:1.5px solid #ffffff1a;align-self:center;margin-top:12px;padding:8px 20px;font-family:DM Mono,monospace;font-size:.7rem;transition:border-color .2s,color .2s}@media (hover:hover){.session-checklist-customize:hover{border-color:var(--border-strong);color:var(--white)}}.session-checklist-profanity-error{color:#ef4444;padding:4px 0;font-family:DM Sans,sans-serif;font-size:.8rem}body.light .session-checklist-edit-btn{border-color:#0003}body.light .session-checklist-edit-btn--save{border-color:var(--ace);color:var(--ace)}body.light .session-checklist-edit-btn--cancel,body.light .session-checklist-edit-btn--reset{color:#0000008c}body.light .session-checklist-confirm-bar{color:#000000b3;background:#e8e8e8}body.light .session-checklist-group-title-input{color:#0000008c;border-bottom-color:#0003}body.light .session-checklist-group-title-input:focus{border-bottom-color:var(--ace)}body.light .session-checklist-item--edit .session-checklist-item-input{color:#1a1a1a}body.light .session-checklist-item--edit .session-checklist-item-input::placeholder,body.light .session-checklist-delete-btn{color:#0006}body.light .session-checklist-customize{color:#0000008c;border-color:#0000002e}@media (hover:hover){body.light .session-checklist-edit-btn--save:hover{background:#16a34a14}body.light .session-checklist-edit-btn--cancel:hover,body.light .session-checklist-edit-btn--reset:hover{color:#1a1a1a;border-color:#00000059}body.light .session-checklist-delete-btn:hover{color:#ef4444;background:#ef444414}body.light .session-checklist-customize:hover{color:#1a1a1a;border-color:#0000004d}}.student-edit-form{flex-direction:column;gap:16px;display:flex}.student-edit-error{color:var(--wrong);font-size:.78rem}.student-orphan-banner{color:var(--white);border-radius:var(--radius-md);background:#eab3081f;border:1px solid #eab30859;margin:12px 0;padding:10px 14px;font-size:.85rem}body.light .student-orphan-banner{color:#1a1a1a;background:#eab30824;border-color:#b4870066}.student-detail-notes{color:var(--text-muted);white-space:pre-wrap;margin:6px 0 14px;font-size:.9rem;line-height:1.5}.student-picker-list{flex-direction:column;gap:6px;max-height:40vh;padding:4px 0;display:flex;overflow-y:auto}.student-picker-row{text-align:left;background:var(--mid);border-radius:var(--radius-md);width:100%;color:var(--white);cursor:pointer;border:1.5px solid #ffffff1a;padding:12px 14px;font-family:DM Sans,sans-serif;font-size:.95rem;transition:border-color .15s,background .15s}@media (hover:hover){.student-picker-row:hover{border-color:var(--ace)}}.student-picker-row.active{border-color:var(--ace);background:#4ade801f}body.light .student-picker-row{color:#1a1a1a;background:#fff;border-color:#0000001f}body.light .student-picker-row.active{background:#16a34a14}.session-insights-student-picker-btn{background:var(--mid);border-radius:var(--radius-md);width:100%;color:var(--white);cursor:pointer;text-align:left;border:1.5px solid #ffffff1a;justify-content:space-between;align-items:center;padding:11px 14px;font-family:DM Sans,sans-serif;font-size:16px;transition:border-color .15s;display:flex}.session-insights-student-picker-btn:focus-visible{border-color:var(--ace)}.session-insights-student-picker-arrow{color:var(--text-muted);font-size:1.2rem;line-height:1}body.light .session-insights-student-picker-btn{color:#1a1a1a;background:#fff;border-color:#0000001f}.session-insights-student-badge{color:var(--ace);letter-spacing:.04em;background:#4ade8024;border:1px solid #4ade8059;border-radius:999px;padding:3px 10px;font-family:DM Mono,monospace;font-size:.7rem}body.light .session-insights-student-badge{color:var(--ace);background:#16a34a1a;border-color:#16a34a59}.session-insights-student-filter{align-items:center;gap:8px;margin:10px 0 6px;display:flex}.session-insights-student-filter-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.68rem}.session-insights-student-filter-select{background:var(--mid);border-radius:var(--radius-md);color:var(--white);cursor:pointer;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border:1.5px solid #ffffff1a;padding:8px 12px;font-family:DM Sans,sans-serif;font-size:16px}.session-insights-student-filter-select:focus-visible{border-color:var(--ace);outline:2px solid var(--ace);outline-offset:2px}body.light .session-insights-student-filter-select{color:#1a1a1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;border-color:#0000001f}.session-insights-student-locked{color:var(--ace);border-radius:var(--radius-md);background:#4ade8024;border:1px solid #4ade8059;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:600;display:inline-block}body.light .session-insights-student-locked{background:#16a34a14;border-color:#16a34a59}.coach-trial-banner{background:var(--card);border:1px solid var(--ace);border-radius:var(--radius-md);width:100%;color:var(--text);text-align:left;cursor:pointer;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;font-family:inherit;font-size:.92rem;line-height:1.35;transition:background .15s;display:flex}.coach-trial-banner:hover{background:var(--hover-bg)}.coach-trial-banner-icon{flex-shrink:0;font-size:1.15rem;line-height:1}.coach-trial-banner-text{flex:1}.help-screen-body{max-width:1100px}.help-layout{grid-template-columns:240px 1fr;align-items:start;gap:32px;margin-top:12px;display:grid}.help-nav{position:sticky;top:12px}.help-nav-mobile-label,.help-nav-select{display:none}.help-nav-group{margin-bottom:18px}.help-nav-group:last-child{margin-bottom:0}.help-nav-group-heading{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 0 6px;padding:0 12px;font-size:.72rem;font-weight:700}.help-nav-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.help-nav-item{border-radius:var(--radius-md);width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:10px 12px;font-size:.95rem;transition:background .12s,border-color .12s;display:flex}.help-nav-item:hover{background:var(--hover-bg-subtle);border-color:var(--border-subtle)}.help-nav-item.active{background:var(--hover-bg-subtle);border-color:var(--border-medium);font-weight:600}.help-nav-icon{flex-shrink:0;font-size:1.1rem;line-height:1}.help-nav-label{flex:1;min-width:0}.help-content{min-width:0}.info-screen-body h2.help-content-title{align-items:center;gap:10px;margin:0 0 12px;font-size:1.6rem;font-weight:700;line-height:1.2;display:flex}.help-content-title:focus-visible{outline:2px solid var(--ace);outline-offset:4px;border-radius:var(--radius-sm)}.help-intro{opacity:.9;margin:0 0 20px;font-size:1rem;line-height:1.5}.help-section{margin-bottom:22px}.info-screen-body h3.help-section-heading{letter-spacing:0;text-transform:none;color:var(--ace);margin:18px 0 10px;font-size:1.15rem;font-weight:700;line-height:1.3}body.light .info-screen-body h3.help-section-heading{color:var(--ace-dim)}.help-section-line{margin:0 0 6px;line-height:1.5}.help-faq{border-top:1px solid var(--border-subtle);margin-top:28px;padding-top:20px}.help-faq-item{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--hover-bg-subtle);margin-bottom:8px;padding:10px 14px}.help-faq-item[open]{border-color:var(--border-medium)}.help-faq-question{cursor:pointer;padding-right:20px;font-weight:600;list-style:none;position:relative}.help-faq-question::-webkit-details-marker{display:none}.help-faq-question:after{content:"+";color:var(--ace);font-size:1.2rem;line-height:1;transition:transform .15s;position:absolute;top:0;right:0}.help-faq-item[open] .help-faq-question:after{content:"−"}.help-faq-answer{opacity:.92;margin:10px 0 0;line-height:1.55}.help-footnote{border-top:1px solid var(--border-subtle);opacity:.8;margin-top:28px;padding-top:16px;font-size:.9rem}.help-footnote a,.help-footnote-link{color:var(--ace);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.help-mailto-link{color:var(--ace);font-weight:600;text-decoration:underline}@media (width<=780px){.help-layout{grid-template-columns:1fr;gap:16px}.help-nav{position:static}.help-nav-group{display:none}.help-nav-mobile-label{opacity:.7;margin-bottom:6px;font-size:.85rem;display:block}.help-nav-select{background:var(--hover-bg-subtle);border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:inherit;padding:10px 12px;font-size:1rem;display:block}}.info-modal-full-guide{border-top:1px solid var(--border-subtle);text-align:center;margin-top:8px;padding-top:14px}.info-modal-full-guide-btn{border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--ace);cursor:pointer;background:0 0;padding:8px 16px;font-size:.95rem;font-weight:600;transition:background .12s}.info-modal-full-guide-btn:hover{background:var(--hover-bg-subtle)}@media (width<=600px){.ball-trail{stroke-width:3.5px}.incoming-trail{stroke-width:3px}html,body{height:auto;overflow:hidden auto}.shell{height:auto;min-height:100dvh;overflow:visible}header{flex-wrap:nowrap;gap:6px;padding:7px 10px;position:sticky;top:0;overflow:hidden}.logo{white-space:nowrap;flex-shrink:1;min-width:0;max-width:200px;font-size:1.15rem;transition:max-width .2s,opacity .2s;overflow:hidden}@media (width<=500px){.logo{opacity:0;max-width:0;margin:0;padding:0;overflow:hidden}}.header-center{flex-wrap:wrap;flex:auto;gap:5px}.header-right{flex-shrink:0;gap:6px}.app-header{padding:7px 10px;padding-top:calc(env(safe-area-inset-top) + 7px);position:sticky;top:0}.app-header--fixed{position:fixed}.header-logo-inline{opacity:0;max-width:0}.header-game-right{gap:5px}.header-stats{gap:4px}.header-controls{gap:3px}.app-back-btn{padding:4px 10px 4px 8px;font-size:.65rem}.stat-pill{padding:3px 7px;font-size:.64rem}.stat-pill strong{font-size:.75rem}.theme-btn{padding:3px 8px 3px 6px;font-size:.62rem}.theme-name{display:none}.settings-btn{border-radius:6px;width:28px;height:28px;font-size:.85rem;position:relative}.settings-btn--wide{width:28px;height:28px;padding:0}.settings-btn--wide-label{display:none}.settings-btn:after{content:"";position:absolute;inset:-8px}.home-header-login-btn{height:28px;padding:0 10px;font-size:.75rem}.main{flex-direction:column;height:auto;min-height:0;display:flex;overflow:visible!important}.court-panel{border-right:none;border-bottom:1px solid var(--border-subtle);background:0 0;flex-shrink:0;justify-content:flex-start;gap:8px;min-height:0;padding:10px 12px 12px;overflow:hidden;height:auto!important}.court-header{align-items:flex-start;gap:4px;overflow:visible;height:auto!important;padding:0!important;position:static!important}.court-meta{flex-wrap:wrap;justify-content:flex-start;gap:6px;max-width:100%}.court-header-row{justify-content:space-between;align-items:flex-start;max-width:100%}.scenario-title{text-align:left;white-space:nowrap;text-overflow:ellipsis;white-space:nowrap;flex:1;max-width:100%;font-size:1.3rem;overflow:hidden}.court-wrapper{flex-shrink:0;width:140px;min-width:0;max-width:140px;margin:0 auto;overflow:hidden}.court-svg{width:100%;height:auto;display:block;overflow:hidden}.legend{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;font-size:.65rem;display:flex!important}.side-panel{background:#0e160a66;gap:10px;padding:12px 14px 80px;overflow-y:visible}.panel-top{gap:6px}.puzzle-number{letter-spacing:.18em;font-size:.58rem}.info-box{padding:9px 12px}.info-label{display:none}.info-text{font-size:.78rem}.question-prompt{font-size:1.05rem}.options-grid{grid-template-columns:1fr 1fr;gap:8px}.option-btn{border-radius:10px;padding:10px}.option-letter{display:none}.option-shot{font-size:.9rem}.option-desc{font-size:.72rem;line-height:1.3}.result-area{padding:10px 12px}.result-tip{font-size:.72rem}.result-actions{gap:7px}.nav-row{margin-top:2px;margin-bottom:12px}.prev-btn,.skip-btn{white-space:nowrap;align-self:auto;margin-top:0;margin-bottom:0;padding:7px 16px;font-size:.7rem;position:static;bottom:auto;left:auto;right:auto;transform:none}#menu-screen{justify-content:flex-start;overflow-y:auto}#trivia-menu{justify-content:center;padding:0;overflow:hidden}#browse-panel,#browse-players-panel,#browse-stats-panel{z-index:200;position:fixed}.menu-inner{gap:20px;padding:20px 16px}.menu-logo{font-size:3.2rem}.menu-logo.menu-logo-lg{font-size:1.8rem}.menu-tagline{letter-spacing:.18em;font-size:.65rem}.menu-section-label{font-size:.58rem}.menu-toggle-group{gap:6px}.menu-toggle-btn{border-radius:var(--radius-md);padding:10px 4px}.menu-btn-icon{margin-bottom:3px;font-size:1.4rem}.menu-btn-label{font-size:1rem}.menu-btn-sub{font-size:.78rem}#home-screen .home-inner{gap:12px;padding:0 16px}.gallery-frame{width:92vw;height:180px}#home-screen .menu-title-wrap{margin-bottom:0}#home-screen .menu-logo{font-size:2.8rem}#home-screen .menu-tagline{font-size:.72rem}.home-modes{gap:8px}.mode-card{border-radius:10px;padding:12px 16px}.mode-card-icon{width:38px;font-size:1.6rem}.mode-card-title{margin-bottom:2px;font-size:1.1rem}.mode-card-desc{font-size:.72rem}#trivia-menu .menu-inner{gap:10px}#trivia-menu .menu-logo{font-size:2.6rem}#trivia-menu .menu-tagline{font-size:.58rem}#trivia-menu .menu-toggle-group{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}#trivia-menu .trivia-categories>.menu-toggle-btn{flex:0 0 calc(33.333% - 4px);padding:7px 4px}#trivia-menu .menu-btn-icon{margin-bottom:2px;font-size:1.1rem}#trivia-menu .menu-btn-label{font-size:.82rem}#trivia-menu .menu-btn-sub{display:none}#trivia-menu .menu-start-btn{padding:12px;font-size:1.1rem}#trivia-menu .menu-count-hint{font-size:.58rem}.menu-start-btn{padding:14px;font-size:1.25rem}.menu-start-btn--sm{padding:10px;font-size:1rem}.menu-browse-btn{padding:10px 14px;font-size:.65rem}.menu-count-hint{font-size:.6rem}.menu-theme-btn{padding:5px 10px 5px 8px;font-size:.65rem;top:14px;right:16px}.menu-court-btn{top:14px;right:100px}.drill-view-layout{flex-direction:column}.drill-court-wrap{flex:none;align-self:center;width:180px}.drill-view-inner{gap:16px;padding:12px 16px 16px}.drill-view-name{font-size:1.5rem}.drill-view-desc{font-size:.82rem}.drill-steps li{font-size:.8rem}.drill-format-group .menu-toggle-btn{flex:0 0 calc(33% - 4px)}.drill-focus-group .menu-toggle-btn{flex:0 0 calc(50% - 4px)}#score-screen{gap:10px;padding:24px 20px}.score-trophy{font-size:3rem}.score-title{font-size:2.4rem}.score-subtitle{font-size:.8rem}.score-number{font-size:2rem}.score-number span{font-size:1rem}.grade-badge{padding:6px 20px;font-size:1.2rem}.restart-btn{padding:11px 28px;font-size:1.1rem}.score-stats-card{max-width:100%;padding:16px 20px}.score-nav-row{max-width:100%}.score-btn-nav{padding:8px 10px;font-size:.9rem}.trivia-new-highscore{padding:8px 20px;font-size:1.05rem}.modal-backdrop{align-items:flex-end}.modal-backdrop.modal-backdrop--kb{justify-content:center;align-items:center}.modal{border-radius:16px 16px 0 0;width:100%;padding:20px 20px 32px;animation:.3s cubic-bezier(.34,1.1,.64,1) slideUpSheet}.modal-backdrop--kb .modal{border-radius:var(--radius-lg);width:320px;padding:24px 26px;animation:.25s cubic-bezier(.34,1.56,.64,1) slideUp}.confirm-modal{border-radius:16px 16px 0 0;width:100%;padding:24px 20px 32px;animation:.3s cubic-bezier(.34,1.1,.64,1) slideUpSheet}@keyframes slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal:before,.confirm-modal:before{content:"";background:#fff3;border-radius:2px;width:36px;height:4px;margin:-8px auto 16px;display:block}body.light .modal:before,body.light .confirm-modal:before{background:#00000026}.hand-btn .hand-icon{font-size:1.1rem}.hand-btn .hand-label{font-size:.7rem}.result-court-row{flex-direction:column;align-items:center}.result-court-svg{width:100%;max-width:min(200px,62.5vh - 212.5px)}#result-verdict-col{width:100%}.result-area{z-index:120;opacity:0;pointer-events:none;transition:transform .32s cubic-bezier(.34,1.1,.64,1),opacity .22s;bottom:0;left:0;right:0;transform:translateY(100%);padding:20px 18px calc(20px + env(safe-area-inset-bottom))!important;border-radius:18px 18px 0 0!important;gap:14px!important;display:flex!important;position:fixed!important}.result-area.visible{pointer-events:all;opacity:1!important;animation:none!important;transform:translateY(0)!important}.result-area.correct-popup{box-shadow:0 -8px 40px #4ade801f,0 -2px #4ade8066;background:#0d1f10!important;border:1.5px solid #4ade8059!important;border-bottom:none!important}.result-area.acceptable-popup{box-shadow:0 -8px 40px #fbbf241a,0 -2px #fbbf2466;background:#1f1800!important;border:1.5px solid #fbbf2461!important;border-bottom:none!important}.result-area.wrong-popup{box-shadow:0 -8px 40px #f871711a,0 -2px #f8717159;background:#1f0d0d!important;border:1.5px solid #f8717152!important;border-bottom:none!important}body.light .result-area.correct-popup{background:#eef8f1!important}body.light .result-area.acceptable-popup{background:#fdf9e8!important}body.light .result-area.wrong-popup{background:#fdf0f0!important}.result-area:before{content:"";background:#ffffff26;border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:-8px auto 4px;display:block}body.light .result-area:before{background:var(--border-medium)}.result-verdict-label{font-size:1.4rem!important}.result-explanation{font-size:.85rem!important}.result-btn-try,.result-btn-next{padding:12px!important;font-size:1.05rem!important}.result-backdrop{z-index:119;opacity:0;pointer-events:none;background:#00000073;transition:opacity .25s;position:fixed;inset:0;display:block!important}.result-backdrop.visible{opacity:1;pointer-events:all}.browse-header{padding:14px 16px 12px;padding-top:calc(env(safe-area-inset-top) + 14px)}.browse-title{font-size:1.25rem}.browse-list{gap:5px;padding:12px 14px 24px}.browse-item{gap:10px;padding:9px 12px}.browse-item-title{font-size:.88rem}.browse-item-meta{font-size:.58rem}.legend-row{align-items:center;width:100%;display:flex;position:relative}.legend-row .legend{flex:1;justify-content:center}.court-header-btns{flex-direction:row;flex-shrink:0;gap:5px;display:flex;position:absolute;right:0}.court-zoom-btn,.court-rotate-btn{color:#ffffffb3;cursor:pointer;background:#111a0ed1;border:1px solid #ffffff2e;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;transition:background .15s,border-color .15s,color .15s;display:flex}.court-rotate-btn.active{color:var(--ace);background:#e8ff4726;border-color:#e8ff4780}body.light .court-zoom-btn,body.light .court-rotate-btn{color:#0009;background:#f0f4eed9;border-color:#00000026}@media (hover:hover){.court-zoom-btn:hover,.court-rotate-btn:hover{color:var(--ace);background:#e8ff4726;border-color:#e8ff4780}}.court-wrapper.rotated{justify-content:center!important;align-items:center!important;width:100%!important;max-width:none!important;height:38vw!important;min-height:120px!important;max-height:200px!important;display:flex!important;position:relative!important;overflow:hidden!important}.court-wrapper.rotated .court-svg{transform-origin:50%!important;width:auto!important;height:160%!important;max-height:none!important;position:absolute!important}.court-zoom-overlay{z-index:300;opacity:0;pointer-events:none;background:#080e06f7;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px 16px;transition:opacity .22s;display:flex;position:fixed;inset:0}.court-zoom-overlay.open{opacity:1;pointer-events:all}body.light .court-zoom-overlay{background:#e6eee2f7}.court-zoom-close{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));background:var(--surface-overlay);border-radius:var(--radius-md);color:#ffffffbf;cursor:pointer;border:1px solid #ffffff26;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;transition:background .15s;display:flex;position:absolute}@media (hover:hover){.court-zoom-close:hover{color:#fff;background:#ffffff26}}body.light .court-zoom-close{background:var(--hover-bg);border-color:var(--border-medium);color:#0009}.court-zoom-inner{flex-shrink:0;width:100%;max-width:min(85vw,50vh)}.court-zoom-inner svg{border-radius:var(--radius-md);filter:drop-shadow(0 8px 40px #000000b3);width:100%;height:auto;display:block}.court-zoom-legend{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:14px;font-size:.72rem;display:flex}.court-zoom-hint{letter-spacing:.16em;text-transform:uppercase;color:#ffffff40;bottom:max(20px, env(safe-area-inset-bottom));font-family:Oswald,sans-serif;font-size:.6rem;position:absolute}body.light .court-zoom-hint{color:#00000040}@keyframes courtZoomIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.court-zoom-overlay.open .court-zoom-inner{animation:.25s cubic-bezier(.34,1.3,.64,1) both courtZoomIn}}@media (width>=601px) and (width<=820px){.ball-trail{stroke-width:3px}.incoming-trail{stroke-width:2.5px}html,body{height:auto;overflow:hidden auto}header{flex-wrap:nowrap;gap:8px;padding:7px 14px;position:sticky;top:0;overflow:hidden}.app-header--fixed{position:fixed}.header-logo-inline{opacity:0;max-width:0}.header-stats{gap:5px}.header-controls{gap:3px}.logo{white-space:nowrap;flex-shrink:1;min-width:0;max-width:200px;transition:max-width .2s,opacity .2s;overflow:hidden}@media (width<=700px){.logo{opacity:0;max-width:0;margin:0;padding:0;overflow:hidden}}.shell{height:auto;min-height:100dvh;overflow:visible}.main{flex-direction:column;height:auto;display:flex;overflow:visible}.court-panel{border-right:none;border-bottom:1px solid var(--border-subtle);flex-shrink:0;padding:12px 16px 14px;overflow:hidden}.court-header{align-items:flex-start;overflow:hidden;height:auto!important;padding:0!important;position:static!important}.court-header-row{justify-content:space-between;align-items:flex-start;max-width:100%}.scenario-title{text-align:left;white-space:normal;max-width:100%;text-overflow:unset;flex:1;overflow:visible}.court-meta{justify-content:flex-start}.court-wrapper{width:170px;max-width:170px;margin:0 auto;overflow:hidden}.court-svg{width:100%;height:auto;display:block}.legend{flex-wrap:wrap;justify-content:center;display:flex!important}.side-panel{padding:14px 18px 16px;overflow-y:visible}.options-grid{grid-template-columns:1fr 1fr}.info-label{display:none}.prev-btn,.skip-btn{white-space:nowrap;align-self:auto;margin-top:0;position:static;bottom:auto;left:auto;right:auto}.result-court-row{flex-direction:column;align-items:center}.result-court-svg{width:100%;max-width:min(240px,62.5vh - 200px)}#result-verdict-col{width:100%}.result-area{z-index:120;opacity:0;pointer-events:none;transition:transform .32s cubic-bezier(.34,1.1,.64,1),opacity .22s;bottom:0;left:0;right:0;transform:translateY(100%);padding:20px 18px calc(20px + env(safe-area-inset-bottom))!important;border-radius:18px 18px 0 0!important;gap:14px!important;display:flex!important;position:fixed!important}.result-area.visible{pointer-events:all;opacity:1!important;animation:none!important;transform:translateY(0)!important}.result-area.correct-popup{box-shadow:0 -8px 40px #4ade801f,0 -2px #4ade8066;background:#0d1f10!important;border:1.5px solid #4ade8059!important;border-bottom:none!important}.result-area.acceptable-popup{box-shadow:0 -8px 40px #fbbf241a,0 -2px #fbbf2466;background:#1f1800!important;border:1.5px solid #fbbf2461!important;border-bottom:none!important}.result-area.wrong-popup{box-shadow:0 -8px 40px #f871711a,0 -2px #f8717159;background:#1f0d0d!important;border:1.5px solid #f8717152!important;border-bottom:none!important}body.light .result-area.correct-popup{background:#eef8f1!important}body.light .result-area.acceptable-popup{background:#fdf9e8!important}body.light .result-area.wrong-popup{background:#fdf0f0!important}.result-area:before{content:"";background:#ffffff26;border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:-8px auto 4px;display:block}body.light .result-area:before{background:var(--border-medium)}.result-verdict-label{font-size:1.4rem!important}.result-explanation{font-size:.85rem!important}.result-btn-try,.result-btn-next{padding:12px!important;font-size:1.05rem!important}.result-backdrop{z-index:119;opacity:0;pointer-events:none;background:#00000073;transition:opacity .25s;position:fixed;inset:0;display:block!important}.result-backdrop.visible{opacity:1;pointer-events:all}.legend-row{align-items:center;width:100%;display:flex;position:relative}.legend-row .legend{flex:1;justify-content:center}.court-header-btns{flex-direction:row;flex-shrink:0;gap:5px;display:flex;position:absolute;right:0}.court-zoom-btn,.court-rotate-btn{color:#ffffffb3;cursor:pointer;background:#111a0ed1;border:1px solid #ffffff2e;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;transition:background .15s,border-color .15s,color .15s;display:flex}.court-rotate-btn.active{color:var(--ace);background:#e8ff4726;border-color:#e8ff4780}body.light .court-zoom-btn,body.light .court-rotate-btn{color:#0009;background:#f0f4eed9;border-color:#00000026}@media (hover:hover){.court-zoom-btn:hover,.court-rotate-btn:hover{color:var(--ace);background:#e8ff4726;border-color:#e8ff4780}}.court-wrapper.rotated{justify-content:center!important;align-items:center!important;width:100%!important;max-width:none!important;height:38vw!important;min-height:120px!important;max-height:200px!important;display:flex!important;position:relative!important;overflow:hidden!important}.court-wrapper.rotated .court-svg{transform-origin:50%!important;width:auto!important;height:160%!important;max-height:none!important;position:absolute!important}.court-zoom-overlay{z-index:300;opacity:0;pointer-events:none;background:#080e06f7;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px 16px;transition:opacity .22s;display:flex;position:fixed;inset:0}.court-zoom-overlay.open{opacity:1;pointer-events:all}body.light .court-zoom-overlay{background:#e6eee2f7}.court-zoom-close{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));background:var(--surface-overlay);border-radius:var(--radius-md);color:#ffffffbf;cursor:pointer;border:1px solid #ffffff26;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;transition:background .15s;display:flex;position:absolute}@media (hover:hover){.court-zoom-close:hover{color:#fff;background:#ffffff26}}body.light .court-zoom-close{background:var(--hover-bg);border-color:var(--border-medium);color:#0009}.court-zoom-inner{flex-shrink:0;width:100%;max-width:min(85vw,50vh)}.court-zoom-inner svg{border-radius:var(--radius-md);filter:drop-shadow(0 8px 40px #000000b3);width:100%;height:auto;display:block}.court-zoom-legend{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:14px;font-size:.72rem;display:flex}.court-zoom-hint{letter-spacing:.16em;text-transform:uppercase;color:#ffffff40;bottom:max(20px, env(safe-area-inset-bottom));font-family:Oswald,sans-serif;font-size:.6rem;position:absolute}body.light .court-zoom-hint{color:#00000040}@keyframes courtZoomIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.court-zoom-overlay.open .court-zoom-inner{animation:.25s cubic-bezier(.34,1.3,.64,1) both courtZoomIn}}.rotate-prompt{z-index:9999;color:#fff;text-align:center;background:#000;flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-size:1.2rem;display:none;position:fixed;inset:0}@media (orientation:landscape) and (hover:none) and (pointer:coarse){.rotate-prompt{display:flex}}
