.app-shell{min-height:100vh;min-height:100dvh;padding:max(16px,env(safe-area-inset-top)) 24px max(16px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;position:relative;isolation:isolate;overflow-x:hidden;overflow-y:auto}.app-shell:before,.app-shell:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}.app-shell:before{z-index:-2;transition:filter .22s ease}.app-shell:after{z-index:-1;background:#070f1814;opacity:0;transition:opacity .22s ease}.app-shell.sport-padel:before{background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.22),transparent 34%),radial-gradient(circle at 76% 78%,rgba(255,255,255,.14),transparent 40%),linear-gradient(155deg,var(--blue-500) 0%,var(--blue-600) 58%,#196daf 100%),radial-gradient(circle,rgba(255,255,255,.08) 0 1px,transparent 1px 6px);background-size:auto,auto,auto,8px 8px}.app-shell.focus-mode:after{opacity:1}.app-shell.focus-mode:before{filter:saturate(1.06) brightness(.84)}.app-shell.fullscreen-counter{padding:0;min-height:100svh;min-height:100dvh;height:100svh;height:100dvh;overflow:hidden}.panel{width:min(860px,100%);background:#fffffff0;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-md);padding:24px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);margin-block:auto}.panel-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.brand-icon{width:62px;height:62px;border-radius:12px;border:1px solid rgba(255,255,255,.55);box-shadow:var(--shadow-sm);flex-shrink:0}h1{margin:0;font-size:clamp(1.25rem,2.2vw,1.95rem);letter-spacing:-.01em;line-height:1.15}.subtitle{margin:6px 0 0;color:var(--muted);font-size:.96rem}.seo-intro{margin:0 0 16px;color:#284860;font-size:.93rem}.score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.score-grid.single{grid-template-columns:1fr}.count-box{margin:8px 0 14px;padding:16px;border-radius:14px;color:#ecf4fb;text-align:center}.record-box{background:linear-gradient(140deg,#104571,#1f7fc5)}.count-label{display:block;font-size:.92rem;opacity:.95}.count-value{display:block;font-size:clamp(2.1rem,6.6vw,3.3rem);font-weight:800;letter-spacing:.02em;font-variant-numeric:tabular-nums}.controls{display:flex;flex-direction:column;align-items:center;gap:14px;margin:22px 0}button{border:1px solid transparent;border-radius:12px;padding:10px 16px;font-size:.95rem;cursor:pointer;transition:transform .12s ease,filter .12s ease}button:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.65}.start{background:linear-gradient(150deg,var(--blue-500),var(--blue-600));color:#fff;width:min(360px,100%);min-height:60px;padding:18px 24px;margin:6px 0;font-size:1.12rem;font-weight:800;letter-spacing:.01em;box-shadow:0 12px 26px #1f7fc561;text-align:center}.start:hover{filter:brightness(1.05)}.secondary{background:#eef4fb;color:#0f3f63;border-color:#c6d9eb;font-weight:600}.autocalibrate{width:100%;margin-top:2px;background:#fff;color:#114567;border-color:#b7cede;font-weight:700}.autocalibrate:hover{background:#f0f7ff}.quick-links{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}.quick-links a{color:#124c78;text-decoration:none;border:1px solid #c7d9e8;border-radius:999px;background:#f7fbff;padding:8px 12px;font-size:.88rem;font-weight:600}.quick-links a:hover{background:#edf6ff}.info-view .quick-links .primary-link{background:linear-gradient(150deg,var(--blue-500),var(--blue-600));color:#fff;border-color:transparent;box-shadow:0 8px 18px #1f7fc54d}.info-view .quick-links .primary-link:hover{background:linear-gradient(150deg,#2f9ee8,#2082cb)}.not-found-page{align-items:center}.not-found-content{width:min(520px,100%);display:flex;flex-direction:column;align-items:center;gap:20px}.not-found-content svg{width:100%;max-width:460px;height:auto}.back-button{background:#fffffff0;color:#0f4268;border:1px solid rgba(15,66,104,.24);border-radius:999px;padding:10px 20px;font-weight:700}.back-button:hover{background:#fff}.advanced-settings{margin-top:6px;border:1px solid #cbd9e3;border-radius:12px;background:#f8fbfe}.advanced-settings summary{cursor:pointer;padding:11px 12px;font-weight:700;color:#264b61}.advanced-content{padding:4px 12px 14px}.advanced-note{margin:10px 0 12px;color:#355266;font-size:.88rem}.advanced-field-note{margin:6px 0 0;color:#4a6377;font-size:.84rem;line-height:1.5}.advanced-note.success{color:#1d5f28;background:#e8f6eb;border:1px solid #b6e1bd;border-radius:10px;padding:8px 10px}.field{margin:18px 0}label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.94rem}input[type=range]{width:100%;margin-top:7px}input[type=range]:disabled,input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.toggle-row label{justify-content:space-between}.indicators{margin-top:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.indicator{border:1px solid #ccdbe6;background:#fff;border-radius:12px;padding:10px}.indicator span{display:block;font-size:.8rem;color:#466078}.indicator strong{font-size:1rem;font-variant-numeric:tabular-nums}.seo-sections{margin-top:16px;border-top:1px solid #d6e3ed;padding-top:12px}.seo-sections h2{margin:10px 0 6px;font-size:1rem;letter-spacing:-.01em}.seo-sections p{margin:0;color:#334b5d;font-size:.91rem}.info-view h2{margin:14px 0 6px;font-size:1.05rem}.info-view p,.info-view li{line-height:1.65}.info-view ol{margin:0;padding-left:20px}.status{margin-top:14px;padding:10px;border-radius:12px;background:#eef4f9;border:1px solid #c6d8e6;color:#27475f}.error{margin-top:10px;padding:10px;border-radius:12px;background:#fdecee;border:1px solid #f4b4ba;color:#8a1524}.immersive-counter{width:100vw;min-height:100svh;min-height:100dvh;height:100svh;height:100dvh;display:grid;place-items:center;text-align:center;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.35);position:relative;box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.immersive-counter:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;transition:background .18s ease;pointer-events:none}.immersive-counter.rally-ended:after{background:#00000075}.immersive-calibration-title{font-size:clamp(1.3rem,3.8vw,2rem);font-weight:700}.immersive-calibration-time{margin-top:8px;font-size:clamp(2.4rem,10vw,5rem);font-weight:800;font-variant-numeric:tabular-nums}.immersive-value{font-size:clamp(7rem,30vw,20rem);line-height:.9;font-weight:800;letter-spacing:.03em;position:relative;z-index:1;font-variant-numeric:tabular-nums}.immersive-badge{position:fixed;top:18px;left:50%;transform:translate(-50%);background:#092641e0;border:1px solid rgba(255,255,255,.2);color:#fff;padding:8px 14px;border-radius:999px;font-weight:600;letter-spacing:.01em;z-index:2}.immersive-badge.flash{background:#21a143f2}.immersive-end-banner{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:#0000009e;color:#fff;padding:8px 14px;border-radius:999px;font-weight:600;letter-spacing:.01em;z-index:2}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid rgba(41,146,216,.42);outline-offset:2px}@media (max-width: 768px){.app-shell{padding:max(14px,env(safe-area-inset-top)) 16px max(14px,env(safe-area-inset-bottom))}.panel{padding:18px}.brand-icon{width:56px;height:56px}.indicators{grid-template-columns:1fr}}@media (max-width: 640px){.score-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}:root{--blue-600: #1f7fc5;--blue-500: #2992d8;--green-600: #2ea043;--bg: #f7fafc;--surface: #ffffff;--text: #0f172a;--muted: #475569;--border: rgba(15, 23, 42, .1);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .14);--shadow-md: 0 8px 24px rgba(15, 23, 42, .16);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;color:var(--text);background:var(--bg)}
