:root{--primary: #16a34a;--primary-hover: #15803d;--primary-soft: #dcfce7;--on-primary: #ffffff;--header-bg: #0e1a13;--header-text: #e6ede8;--bg: #f4f6f5;--surface: #ffffff;--surface-2: #f8faf9;--border: #e5e9e7;--border-strong: #d4dad6;--text: #0f172a;--text-2: #475569;--text-3: #64748b;--danger: #ef4444;--danger-soft: #fee2e2;--warning: #f59e0b;--warning-soft: #fef3c7;--info: #3b82f6;--info-soft: #dbeafe;--purple: #8b5cf6;--purple-soft: #ede9fe;--ev-training: #22c55e;--ev-match: #ef4444;--ev-theory: #f59e0b;--ev-recovery: #8b5cf6;--ev-other: #3b82f6;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--shadow-1: 0 1px 2px rgba(16, 24, 20, .06);--shadow-2: 0 8px 28px rgba(16, 24, 20, .14);--focus: 0 0 0 3px rgba(22, 163, 74, .35);--font: Inter, "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--nav-h: 64px;color-scheme:light}:root[data-theme=dark]{--primary: #22c55e;--primary-hover: #16a34a;--primary-soft: rgba(34, 197, 94, .16);--on-primary: #04140a;--header-bg: #08100b;--bg: #0b110d;--surface: #121a15;--surface-2: #18221c;--border: #243029;--border-strong: #2f3d35;--text: #e6ede8;--text-2: #a3b1a8;--text-3: #7d8c83;--danger-soft: rgba(239, 68, 68, .16);--warning-soft: rgba(245, 158, 11, .16);--info-soft: rgba(59, 130, 246, .16);--purple-soft: rgba(139, 92, 246, .18);--shadow-1: none;--shadow-2: 0 8px 28px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font);font-size:15px;line-height:1.4;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}a{color:var(--primary)}.app{min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:10;background:var(--header-bg);color:var(--header-text);padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;display:flex;align-items:center;gap:10px}.header .brand{font-weight:700;letter-spacing:.2px;flex:1;min-width:0}.header .brand-mark{width:26px;height:30px;flex:none}.header .brand-mark.academy{width:30px;height:30px;border-radius:8px;background:#fff;object-fit:contain;padding:2px}.header .brand small{display:block;font-weight:400;font-size:12px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.child-select{background:#ffffff14;border:1px solid rgba(255,255,255,.16);color:inherit;border-radius:999px;padding:6px 12px;max-width:55vw}.child-select option{color:#0f172a}.sync-dot{width:10px;height:10px;border-radius:50%;background:var(--primary);flex:none}.sync-dot.syncing{background:var(--info);animation:pulse 1s infinite}.sync-dot.offline{background:var(--warning)}.sync-dot.error{background:var(--danger)}@keyframes pulse{50%{opacity:.35}}.main{flex:1;width:100%;max-width:680px;margin:0 auto;padding:16px 16px calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px);display:flex;flex-direction:column;gap:14px}.nav{position:fixed;left:0;right:0;bottom:0;z-index:10;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;color:var(--text-3);text-decoration:none;font-size:10.5px;position:relative}.nav a.active{color:var(--primary);font-weight:600}.nav .badge{position:absolute;top:8px;left:calc(50% + 6px)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:14px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.muted{color:var(--text-3)}.small{font-size:13px}.tiny{font-size:12px}.center{text-align:center}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:600;cursor:pointer;text-decoration:none}.btn:focus-visible,.input:focus-visible,.chip:focus-visible{outline:none;box-shadow:var(--focus)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.primary:hover{background:var(--primary-hover)}.btn.danger{color:var(--danger)}.btn.ghost{border-color:transparent;background:transparent}.btn.block{width:100%}.btn.sm{min-height:34px;padding:0 12px;font-size:13px}.btn:disabled{opacity:.55;cursor:default}.input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface)}textarea.input{min-height:72px;resize:vertical}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:13px;color:var(--text-2);font-weight:600}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{min-height:38px;min-width:38px;padding:0 12px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer}.chip.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600}.segment{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.segment button{min-height:42px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);font-weight:600;cursor:pointer}.segment button.yes.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.segment button.maybe.on{background:var(--warning);border-color:var(--warning);color:#1f1300}.segment button.no.on{background:var(--danger);border-color:var(--danger);color:#fff}.segment button:disabled{opacity:.5;cursor:default}.rsvp-status{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:10px;font-size:13px;font-weight:600}.rsvp-status svg{flex:none;margin-top:1px}.rsvp-status .tiny{font-weight:400}.rsvp-status.yes{background:var(--primary-soft);color:var(--primary)}.rsvp-status.maybe{background:var(--warning-soft);color:#b45309}.rsvp-status.no{background:var(--danger-soft);color:var(--danger)}:root[data-theme=dark] .rsvp-status.maybe{color:var(--warning)}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--text-2)}.pill.green{background:var(--primary-soft);color:var(--primary)}.pill.red{background:var(--danger-soft);color:var(--danger)}.pill.amber{background:var(--warning-soft);color:#b45309}.pill.blue{background:var(--info-soft);color:var(--info)}:root[data-theme=dark] .pill.amber{color:var(--warning)}.badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.alert{padding:10px 12px;border-radius:var(--r-md);font-size:14px}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.info{background:var(--info-soft);color:var(--info)}.alert.ok{background:var(--primary-soft);color:var(--primary)}.empty{text-align:center;color:var(--text-3);padding:28px 12px}.empty svg{opacity:.5;margin-bottom:6px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{background:var(--surface-2);border-radius:var(--r-md);padding:10px;text-align:center}.stat b{display:block;font-size:20px}.stat span{font-size:12px;color:var(--text-3)}.event{display:flex;gap:12px}.event .bar{width:4px;border-radius:2px;flex:none;background:var(--ev-other)}.event.training .bar{background:var(--ev-training)}.event.match .bar{background:var(--ev-match)}.event.theory .bar{background:var(--ev-theory)}.event.recovery .bar{background:var(--ev-recovery)}.event.cancelled .title{text-decoration:line-through;color:var(--text-3)}.my-card{display:flex;align-items:center;gap:14px}.fut-card{--cw: 128px;position:relative;flex:none;width:var(--cw);aspect-ratio:5 / 7;font-size:calc(var(--cw) * .2);color:#1f1605;animation:card-in .5s cubic-bezier(.2,.9,.3,1.2) both}.fut-card:before{content:"";position:absolute;top:3%;right:2%;bottom:-3%;left:2%;clip-path:polygon(0 5%,18% 0,82% 0,100% 5%,100% 88%,50% 100%,0 88%);background:#00000073;filter:blur(calc(var(--cw) * .035))}.fut-face{position:absolute;top:0;right:0;bottom:0;left:0;display:block;overflow:hidden;clip-path:polygon(0 5%,18% 0,82% 0,100% 5%,100% 88%,50% 100%,0 88%);background:linear-gradient(160deg,#f1f4f7,#bcc6cf 55%,#929ea9)}.fut-photo{position:absolute;left:22%;top:3%;width:76%;aspect-ratio:1;overflow:hidden;display:grid;place-items:center;font-size:1.9em;font-weight:800;-webkit-mask-image:radial-gradient(ellipse 58% 60% at 50% 44%,#000 66%,transparent 100%);mask-image:radial-gradient(ellipse 58% 60% at 50% 44%,#000 66%,transparent 100%)}.fut-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}.fut-rate,.fut-pos{position:absolute;left:3%;width:25%;z-index:2;line-height:1;font-weight:800;text-align:center}.fut-rate{top:8%;font-size:1.28em}.fut-pos{top:26%;font-size:.72em}.fut-name{position:absolute;left:4%;right:4%;top:57%;z-index:2;font-weight:800;line-height:1.15;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fut-num{position:absolute;left:0;right:0;top:73%;z-index:2;font-size:.72em;font-weight:700;text-align:center;opacity:.8}.fut-card.club{color:var(--card-ink)}.fut-card.club .fut-face{background:var(--card-b)}.fut-card.club .fut-face:before{content:"";position:absolute;top:3.5%;right:3.5%;bottom:3.5%;left:3.5%;clip-path:polygon(0 5%,18% 0,82% 0,100% 5%,100% 88%,50% 100%,0 88%);background:linear-gradient(160deg,color-mix(in srgb,var(--card-a) 80%,white),var(--card-a) 55%,color-mix(in srgb,var(--card-a) 80%,black))}@keyframes card-in{0%{opacity:0;transform:translateY(8%) scale(.92)}}@media (prefers-reduced-motion: reduce){.fut-card{animation:none}}.scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.scale button{min-height:44px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);font-weight:700;font-size:16px;cursor:pointer;transition:transform .15s ease,background .15s ease}.scale.emoji button{font-size:24px}.scale button.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary);transform:scale(1.06)}.week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.week-days button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:7px 0;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);cursor:pointer}.week-days button .dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--border-strong)}.week-days button.today{border-color:var(--primary)}.week-days button.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.week-days button:disabled{opacity:.4;cursor:default}.quiz-steps{display:grid;grid-auto-flow:column;gap:6px}.quiz-steps span{height:6px;border-radius:3px;background:var(--border-strong)}.quiz-steps span.done{background:var(--primary)}.quiz-steps span.now{background:var(--info)}.quiz-option{justify-content:flex-start;text-align:left;white-space:normal;min-height:48px}.quiz-option.right{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:700}.quiz-option.wrong{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.quiz-option.dim{opacity:.55}.sticker-svg{display:block;width:100%;height:100%}.album-bar{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.album-bar span{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--st-a),color-mix(in srgb,var(--st-a) 60%,white));transition:width .6s ease}.sticker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px}.sticker-cell{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;border:0;background:none;color:inherit;cursor:pointer;text-align:center}.sticker-cell .mini{position:relative;width:100%;max-width:104px;aspect-ratio:1;filter:drop-shadow(0 6px 8px rgba(0,0,0,.45));transition:transform .2s cubic-bezier(.2,.9,.3,1.3)}.sticker-cell:active .mini{transform:scale(.93) rotate(-3deg)}.sticker-cell.locked .mini .sticker-svg{filter:grayscale(1) brightness(.5);opacity:.55}.mini-lock{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#ffffffbf}.mini-count{position:absolute;top:0;right:0;min-width:24px;height:24px;padding:0 5px;border-radius:12px;display:grid;place-items:center;font-size:12px;font-weight:800;background:var(--warning);color:#1f1300}.mini.shiny:after{content:"";position:absolute;top:2%;right:2%;bottom:2%;left:2%;border-radius:50%;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.7) 48%,transparent 60%) 0 0 / 260% 100%;mix-blend-mode:overlay;animation:shine 3.2s ease-in-out infinite}@keyframes shine{0%,40%{background-position:120% 0}to{background-position:-60% 0}}.sticker-name{font-size:12px;line-height:1.25;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sticker-cell.locked .sticker-name{color:var(--text-3)}.sticker-mini{flex:none;width:52px;height:52px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.4))}.sticker-mini.locked .sticker-svg{filter:grayscale(1) brightness(.55);opacity:.6}.sticker-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:24px;background:#040806db;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:viewer-in .25s ease both}@keyframes viewer-in{0%{opacity:0}}.sticker-close{position:absolute;top:calc(env(safe-area-inset-top) + 14px);right:14px;width:44px;height:44px;border-radius:22px;border:0;display:grid;place-items:center;background:#ffffff1f;color:#fff;cursor:pointer}.sticker-stage{width:min(72vw,300px);aspect-ratio:1;perspective:900px;touch-action:none;cursor:grab;animation:sticker-pop .5s cubic-bezier(.2,.9,.3,1.25) both}.sticker-stage:active{cursor:grabbing}@keyframes sticker-pop{0%{transform:scale(.6);opacity:0}}.sticker-3d{position:relative;width:100%;height:100%;transform-style:preserve-3d}.sticker-edge{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#cfd5da}.sticker-side{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.sticker-side.front{transform:translateZ(0)}.sticker-side.back{transform:translateZ(-8px) rotateY(180deg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:15%;text-align:center;color:#14201a;background:radial-gradient(circle at 35% 30%,#fff,#e4e8eb 70%);box-shadow:inset 0 0 0 6px #f6f7f9}.sticker-back-title{font-size:17px;line-height:1.2}.sticker-back-how{font-size:12px;line-height:1.35;opacity:.8}.sticker-glare{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle at var(--gx, 30%) var(--gy, 30%),rgba(255,255,255,.8),rgba(255,255,255,0) 42%);mix-blend-mode:soft-light}.sticker-3d.matte .sticker-glare{opacity:.45}.sticker-3d.matte .sticker-side.front:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;pointer-events:none;background:repeating-radial-gradient(circle at 30% 30%,rgba(0,0,0,.05) 0 1px,transparent 1px 3px)}.sticker-3d.shiny .sticker-glare{mix-blend-mode:screen;background:radial-gradient(circle at var(--gx, 30%) var(--gy, 30%),rgba(255,255,255,.95),rgba(255,255,255,.25) 22%,rgba(255,255,255,0) 40%)}.sticker-holo{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;pointer-events:none;background:conic-gradient(from var(--turn, 0deg),#ff5e7e,#ffd84d,#5cff9d,#4dc9ff,#a77bff,#ff5e7e);mix-blend-mode:color-dodge;opacity:.6;-webkit-mask-image:radial-gradient(circle,transparent 0 18%,#000 78%);mask-image:radial-gradient(circle,transparent 0 18%,#000 78%)}.sticker-3d.locked .sticker-side.front .sticker-svg{filter:grayscale(1) brightness(.6)}@media (prefers-reduced-motion: reduce){.mini.shiny:after,.sticker-stage{animation:none}}.game-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;flex-direction:column;background:#0b110d;color:#fff}.game-bar{display:flex;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top) + 8px) 12px 8px}.game-exit{flex:none;width:38px;height:38px;border-radius:19px;border:0;display:grid;place-items:center;background:#ffffff1f;color:#fff;cursor:pointer}.game-field{position:relative;flex:1;min-height:0;padding-bottom:env(safe-area-inset-bottom)}.game-canvas{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none}.game-level-stars{display:flex;justify-content:center;gap:1px;margin-top:2px}.game-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;text-align:center;color:#fff;background:#040c088c}.game-count{font-size:84px;font-weight:900;line-height:1;text-shadow:0 6px 24px rgba(0,0,0,.5);animation:count-pop .8s ease-out both}@keyframes count-pop{0%{transform:scale(1.6);opacity:0}30%{transform:scale(1);opacity:1}}.game-result{font-size:20px;font-weight:800;max-width:280px}.game-result.win{font-size:56px;font-weight:900;color:#fbbf24;animation:count-pop .7s ease-out both}.game-stars{display:flex;gap:6px}@media (prefers-reduced-motion: reduce){.game-count,.game-result.win{animation:none}}.match-card{display:flex;flex-direction:column;gap:10px}.match-card.cancelled .match-name{text-decoration:line-through;color:var(--text-3)}.match-top{display:flex;align-items:center;gap:12px}.match-name{overflow-wrap:anywhere}.match-score{flex:none;font-size:26px;font-weight:800;line-height:1}.crest-img{flex:none;object-fit:contain}.date-line:first-letter{text-transform:uppercase}.match-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));text-align:center}.match-totals>div{display:flex;flex-direction:column;gap:2px;min-width:0}.match-totals b{font-size:22px}.day-label{font-size:13px;font-weight:700;color:var(--text-2);margin:6px 2px -4px}.day-label:first-letter{text-transform:uppercase}.meter{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.meter>i{display:block;height:100%;border-radius:4px;background:var(--primary)}.score{font-size:22px;font-weight:700}.spark{display:block;width:100%;height:40px}.avatar{width:56px;height:56px;border-radius:50%;flex:none;object-fit:cover;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px}.avatar.lg{width:72px;height:72px;font-size:26px}.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth .card{width:100%;max-width:420px;padding:22px}.logo{width:56px;height:56px;margin:0 auto 10px;display:block}.link-btn{background:none;border:none;color:var(--primary);padding:4px;cursor:pointer;font-weight:600}.code-input{letter-spacing:6px;text-align:center;font-size:22px;font-weight:700;text-transform:uppercase}.splash{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-3)}.back-hint{position:fixed;left:50%;transform:translate(-50%);z-index:50;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 16px);padding:8px 14px;border-radius:10px;background:#0e1a13eb;color:#fff;font-size:13px;white-space:nowrap}@supports (-webkit-touch-callout: none){input,select,textarea{font-size:16px!important}html,body{overscroll-behavior:none}}
