[hidden] { display:none !important; }
/* Шрифты лежат в самом приложении: так они есть и без интернета, и там,
   где сторонние шрифтовые сервисы недоступны. Nunito — текст, Unbounded —
   заголовки, как на табло арены. Один файл на алфавит. */
@font-face { font-family:'Nunito'; font-style:normal; font-weight:200 1000; font-display:swap; src:url('fonts/nunito-cyrillic.woff2') format('woff2'); unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:'Nunito'; font-style:normal; font-weight:200 1000; font-display:swap; src:url('fonts/nunito-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family:'Unbounded'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/unbounded-cyrillic.woff2') format('woff2'); unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:'Unbounded'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/unbounded-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --ink: #071638;
  --ice: #0b1f4d;
  --paper: #0b1f4d;
  --card: #122a63;
  --card-strong: #17306d;
  --text: #eef4ff;
  --lime: #c8ff3e;
  --lime-dark: #a6dd1c;
  --blue: #3b6fe0;
  --red: #ff5a6a;
  --gold: #ffd56a;
  --muted: #9fb3d9;
  --line: #2a4a95;
  --radius: 18px;
  --shadow: 0 16px 40px rgba(2, 8, 30, .45);
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--ice); color:var(--text); font-family: 'Nunito', 'Avenir Next', Avenir, 'Segoe UI', sans-serif; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.app-shell { min-height: 100dvh; max-width: 1440px; margin: 0 auto; background: var(--paper); overflow: hidden; }
.topbar { height: 76px; display: flex; align-items: center; justify-content: space-between; padding: 0 5vw; border-bottom: 1px solid var(--line); background: rgba(248,251,250,.92); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(14px); }
.brand { display: flex; align-items: center; gap: 12px; border: 0; background: none; color:var(--text); text-align: left; padding: 0; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 18px; line-height: 1; letter-spacing: .13em; color: var(--blue); }
.brand small { color: var(--muted); margin-top: 2px; }
.brand-copy { display:flex; flex-direction:column; }
.brand-tagline { font-size:10px; font-weight:800; letter-spacing:.025em; color:var(--text) !important; }
.brand-mark { width: 38px; height: 38px; border-radius: 12px; background: var(--ink); position: relative; transform: rotate(-6deg); }
.brand-mark:before, .brand-mark:after, .brand-mark span { content: ""; position: absolute; height: 3px; border-radius: 3px; background: var(--lime); left: 7px; }
.brand-mark:before { width: 24px; top: 10px; }.brand-mark span { width: 18px; top: 17px; }.brand-mark:after { width: 11px; top: 24px; }
.mode-switch { display: flex; padding: 4px; background: var(--card); border-radius: 999px; }
.mode-button { border: 0; padding: 9px 16px; border-radius: 999px; background: transparent; color: var(--muted); font-weight: 700; }
.mode-button.active { background: var(--card); color:var(--text); box-shadow: 0 2px 10px rgba(16,34,63,.1); }
.view { display: none; padding: 42px 5vw 80px; }.active-view { display: block; }
.scoreboard { display: grid; grid-template-columns: 1.25fr .75fr; gap: 36px; align-items: stretch; }
.score-copy { padding: 30px 0; }
.kicker, .round-label, .modal-step { margin: 0 0 18px; font-size: 12px; font-weight: 800; letter-spacing: .13em; color: var(--blue); }
h1, h2, p { margin-top: 0; } h1 { margin-bottom: 20px; font-size: clamp(42px, 5vw, 76px); line-height: .98; letter-spacing: -.055em; } h1 em { color: var(--blue); font-style: normal; }
.lead { color: var(--muted); font-size: 18px; line-height: 1.55; max-width: 550px; }
.player-card { min-height: 310px; padding: 28px; background: var(--ink); border-radius: var(--radius); color: white; position: relative; overflow: hidden; box-shadow: var(--shadow); }
.player-card:before { content: ""; position: absolute; inset: -20% -50% 25% 30%; background: var(--lime); transform: rotate(-19deg); opacity: .95; }
.player-card:after { content: ""; position: absolute; width: 210px; height: 210px; border: 2px solid rgba(255,255,255,.16); border-radius: 50%; right: -78px; top: -72px; }
.jersey-number { position: relative; z-index: 1; font-weight: 900; font-size: 112px; line-height: .9; color:var(--text); letter-spacing: -.09em; }
.player-meta { position: absolute; left: 28px; bottom: 28px; }.player-meta span, .stat-ring small { display: block; font-size: 10px; letter-spacing: .14em; opacity: .68; }.player-meta strong { font-size: 30px; }
.stat-ring { position: absolute; right: 24px; bottom: 24px; width: 104px; height: 104px; border: 8px solid rgba(201,244,91,.22); border-top-color: var(--lime); border-right-color: var(--lime); border-radius: 50%; display: grid; place-content: center; text-align: center; transform: rotate(8deg); }.stat-ring b { font-size: 28px; }.stat-ring small { font-size: 7px; }
.minute-bank { margin: 26px 0 52px; padding: 24px 28px; border: 1px solid var(--line); border-radius: var(--radius); display: flex; justify-content: space-between; align-items: center; background: var(--card); }
.minute-bank p { margin-bottom: 5px; color: var(--muted); font-weight: 700; }.minute-count { display: flex; align-items: baseline; gap: 8px; }.minute-count strong { font-size: 48px; line-height: 1; letter-spacing: -.04em; }.minute-count span { font-weight: 800; }
.bank-actions { display: flex; align-items: center; gap: 20px; }.bank-note { color: var(--muted); font-size: 14px; }
.primary-button { border: 0; border-radius: 999px; background: var(--lime); color:var(--text); padding: 14px 22px; font-weight: 800; box-shadow: inset 0 -2px 0 rgba(50,80,0,.15); }.primary-button:hover { background: var(--card); }.primary-button:active { transform: translateY(1px); }.primary-button:disabled { opacity: .4; cursor: not-allowed; }
.section-block { margin-top: 20px; }.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 20px; }.section-heading h2, .season-copy h2, .control-panel h2, .week-panel h2 { margin-bottom: 6px; font-size: 30px; letter-spacing: -.035em; }.section-heading p { margin: 0; color: var(--muted); }.progress-label { background: var(--ink); color: white; padding: 8px 14px; border-radius: 999px; font-size: 13px; white-space: nowrap; }
.task-list { border-top: 1px solid var(--line); }.task { display: grid; grid-template-columns: 54px 1fr auto auto; gap: 18px; align-items: center; min-height: 94px; padding: 16px 4px; border-bottom: 1px solid var(--line); }.task-index { width: 48px; height: 48px; display: grid; place-content: center; border-radius: 50%; background: var(--card); font-weight: 800; }.task h3 { margin: 0 0 5px; font-size: 18px; }.task p { margin: 0; color: var(--muted); font-size: 14px; }.task-step-progress { display:block; margin-top:7px; color:var(--blue); font-size:11px; font-weight:900; }.task-step-progress.delivered { color:#a5f3cf; }.task-reward { font-size: 15px; font-weight: 900; color: var(--blue); white-space: nowrap; }.task-button { min-width: 124px; padding: 10px 14px; border-radius: 999px; border: 1px solid var(--ink); background: transparent; color:var(--text); font-weight: 800; }.task-button:hover { background: var(--ink); color: white; }.task.done { opacity: .66; }.task.done .task-index { background: var(--lime); }.task.pending .task-index { background: var(--card); }.task.pending .task-button { border-style: dashed; color: var(--muted); }
.season-section { margin-top: 74px; background: var(--ink); color: white; border-radius: var(--radius); min-height: 390px; display: grid; grid-template-columns: .9fr 1.1fr; overflow: hidden; }.season-copy { padding: 50px; align-self: center; }.round-label { color: var(--lime); }.season-copy p { color: #adbbcd; max-width: 460px; line-height: 1.6; }.season-progress { height: 9px; background: rgba(255,255,255,.12); border-radius: 10px; overflow: hidden; margin-top: 30px; }.season-progress span { display: block; width: 80%; height: 100%; background: var(--lime); }.season-numbers { display: flex; justify-content: space-between; margin-top: 8px; color: #adbbcd; font-size: 12px; }
.rink { position: relative; min-height: 390px; background: var(--card); overflow: hidden; }.rink:before, .rink:after { content:""; position:absolute; width:260px; height:260px; border:2px solid rgba(35,91,219,.28); border-radius:50%; top:64px; }.rink:before { left:-130px; }.rink:after { right:-130px; }.rink-line { position:absolute; width:4px; height:100%; left:50%; background:rgba(230,64,70,.45); }.rink-circle { position:absolute; width:150px; height:150px; border:4px solid rgba(35,91,219,.4); border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); }.puck { position:absolute; width:72px; height:20px; border-radius:50%; background:var(--ink); left:43%; top:47%; box-shadow:0 13px 20px rgba(16,34,63,.25); }.goal { position:absolute; width:100px; height:66px; border:5px solid #e5424b; border-bottom:0; right:42px; top:50%; transform:translateY(-50%); }.shot-label { position:absolute; left:50%; top:calc(50% + 55px); transform:translateX(-50%) rotate(-4deg); color:var(--text); font-size:12px; font-weight:900; letter-spacing:.1em; }
.parent-hero { display:grid; grid-template-columns:1.25fr .75fr; gap:44px; align-items:end; padding:26px 0 44px; border-bottom:1px solid var(--line); }.parent-hero h1 { font-size:clamp(40px,4.8vw,68px); }.parent-summary { display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }.parent-summary div { display:flex; justify-content:space-between; align-items:center; padding:20px; background:var(--card); }.parent-summary span { color:var(--muted); }.parent-summary strong { font-size:22px; }
.review-section { margin-top:50px; }.review-list { display:grid; gap:14px; }.review-card { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:22px; display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; }.review-card h3 { margin:0 0 7px; }.review-card p { margin:0; color:var(--muted); }.review-actions { display:flex; gap:8px; }.review-actions button { border-radius:999px; padding:11px 16px; font-weight:800; }.review-actions button:disabled { opacity:.4; cursor:not-allowed; }.accept-button { border:0; background:var(--lime); }.redo-button { border:1px solid var(--line); background:var(--card); }.empty-review { padding:35px; text-align:center; border:1px dashed var(--line); border-radius:var(--radius); color:var(--muted); }.review-proof { margin:16px 0 0; display:grid; grid-template-columns:88px 1fr; gap:12px; align-items:center; }.review-proof img { width:88px; height:70px; object-fit:cover; border-radius:12px; border:1px solid var(--line); }.review-proof figcaption,.parent-check-note,.proof-missing { color:var(--muted); font-size:12px; font-weight:700; }.parent-check-note,.proof-missing { margin-top:14px; padding:11px 13px; border-radius:11px; background:var(--card); }.proof-missing { color:#f6a2aa; background:var(--card); }
.parent-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:48px; }.control-panel,.week-panel { border-radius:var(--radius); padding:28px; background:var(--card); border:1px solid var(--line); }.range-label { display:flex; justify-content:space-between; margin:30px 0 14px; }.range-label span { color:var(--muted); }input[type=range] { width:100%; accent-color:var(--blue); }.toggle-row { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 0; border-top:1px solid var(--line); margin-top:20px; }.toggle-row b,.toggle-row small { display:block; }.toggle-row small { margin-top:4px; color:var(--muted); }.toggle-row input { display:none; }.toggle-row i { width:46px; height:26px; border-radius:999px; background:var(--card); position:relative; flex:0 0 auto; }.toggle-row i:after { content:""; position:absolute; width:20px; height:20px; top:3px; left:3px; border-radius:50%; background:var(--card); transition:.2s; }.toggle-row input:checked+i { background:var(--blue); }.toggle-row input:checked+i:after { transform:translateX(20px); }
.week-bars { height:180px; display:flex; align-items:end; justify-content:space-between; gap:10px; padding-top:25px; }.day-bar { flex:1; text-align:center; color:var(--muted); font-size:11px; }.day-bar i { display:block; background:var(--card); border-radius:8px 8px 3px 3px; margin-bottom:8px; min-height:8px; }.day-bar.active i { background:var(--lime); }.week-panel p { line-height:1.6; color:var(--muted); margin:24px 0 0; }.week-panel p strong { color:var(--text); }
.modal-backdrop { position:fixed; inset:0; z-index:50; background:rgba(16,34,63,.55); display:none; place-items:center; padding:20px; backdrop-filter:blur(5px); }.modal-backdrop.open { display:grid; }.modal { width:min(520px,100%); max-height:90vh; overflow:auto; background:var(--paper); border-radius:var(--radius); padding:34px; box-shadow:0 30px 80px rgba(16,34,63,.28); position:relative; }.modal h2 { font-size:34px; margin-bottom:10px; }.modal>p:not(.modal-step) { color:var(--muted); line-height:1.5; }.close-button { position:absolute; right:18px; top:14px; border:0; background:none; font-size:30px; color:var(--muted); }.task-modal-status { margin:18px 0 0; display:flex; justify-content:space-between; gap:12px; align-items:center; }.task-modal-status strong { color:var(--blue); }.task-modal-status strong.complete { color:#a5f3cf; }.task-modal-status span { color:var(--muted); font-size:10px; text-align:right; }.checklist { margin:18px 0; display:grid; gap:10px; }.check-item { display:flex; align-items:center; gap:12px; padding:14px; background:var(--card); border:1px solid var(--line); border-radius:12px; }.check-item input { width:20px; height:20px; accent-color:var(--blue); }.task-proof-panel { margin:0 0 18px; padding:17px; border-radius:14px; background:var(--card); border:1px solid var(--line); }.task-proof-panel h3 { margin:0 0 6px; font-size:17px; }.task-proof-panel>p { margin:0 0 13px; color:var(--muted); font-size:12px; line-height:1.45; }.proof-upload { display:inline-block; }.proof-upload input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }.proof-upload span { display:inline-block; padding:11px 17px; border-radius:999px; background:var(--blue); color:white; font-weight:900; cursor:pointer; }.task-proof-preview { margin-top:13px; display:flex; gap:11px; align-items:center; color:var(--muted); font-size:11px; font-weight:700; }.task-proof-preview img { width:76px; height:62px; object-fit:cover; border-radius:10px; border:1px solid var(--line); }.task-proof-panel .proof-status { min-height:17px; margin:10px 0 0; color:var(--red); font-weight:800; }.task-proof-panel .proof-status.success { color:#a5f3cf; }.full-button { width:100%; }
.timer-dock { position:fixed; z-index:40; right:24px; bottom:24px; min-width:250px; background:var(--ink); color:white; border-radius:var(--radius); box-shadow:var(--shadow); padding:18px; display:none; align-items:center; justify-content:space-between; gap:20px; }.timer-dock.show { display:flex; }.timer-dock small,.timer-dock strong { display:block; }.timer-dock small { color:#aab9cb; font-size:9px; letter-spacing:.13em; }.timer-dock strong { font-size:26px; }.timer-dock button { border:0; border-radius:999px; padding:10px 13px; background:var(--lime); font-weight:800; }
.toast { position:fixed; z-index:70; left:50%; bottom:28px; transform:translate(-50%,120px); opacity:0; background:var(--ink); color:white; padding:13px 18px; border-radius:999px; transition:.25s; box-shadow:var(--shadow); font-weight:700; }.toast.show { transform:translate(-50%,0); opacity:1; }

@media (max-width: 800px) {
  .topbar { padding:0 18px; }.brand #brandSeason { display:none; }.brand-tagline { display:block !important; }.view { padding:26px 18px 70px; }
  .scoreboard,.parent-hero,.season-section,.parent-grid { grid-template-columns:1fr; }.score-copy { padding:8px 0 0; } h1 { font-size:43px; }.player-card { min-height:260px; }.minute-bank { align-items:flex-end; }.bank-actions { flex-direction:column; align-items:flex-end; gap:10px; }.bank-note { display:none; }
  .task { grid-template-columns:46px 1fr auto; gap:12px; }.task-button { grid-column:2 / 4; width:100%; }.task-reward { align-self:start; padding-top:9px; }.season-section { margin-top:50px; }.season-copy { padding:34px 26px; }.rink { min-height:300px; }.parent-summary { margin-top:-10px; }.review-card { grid-template-columns:1fr; }.review-actions button { flex:1; }.review-actions { width:100%; }.timer-dock { left:18px; right:18px; bottom:18px; }.toast { width:calc(100% - 36px); text-align:center; }
}

@media (max-width: 480px) {
  .mode-button { padding:8px 11px; font-size:13px; }.brand strong { font-size:14px; }.brand-mark { width:34px; height:34px; }.minute-bank { padding:20px; }.minute-count strong { font-size:40px; }.primary-button { padding:13px 17px; }.section-heading { align-items:start; }.section-heading p { font-size:14px; }.progress-label { margin-top:4px; }.player-card { min-height:240px; }.jersey-number { font-size:94px; }.modal { padding:28px 20px; }
}

@media (prefers-reduced-motion: reduce) { *,*:before,*:after { scroll-behavior:auto!important; transition:none!important; } }

/* Reference-led hockey palette and gameplay */
body {
  background:
    linear-gradient(90deg, transparent 49.75%, rgba(237,39,57,.08) 49.75% 50.25%, transparent 50.25%),
    var(--ice);
}
.app-shell { box-shadow: 0 0 80px rgba(7,95,207,.12); }
.topbar { border-bottom: 5px solid var(--red); }
.brand-mark { background: var(--blue); }
.brand-mark:before,.brand-mark:after,.brand-mark span { background: var(--card); }
.mode-switch { background: var(--card); }
.mode-button.active { color: var(--blue); }
.kicker { color: var(--red); }
h1 em { color: var(--red); }
.score-copy { position: relative; }
.score-copy:after { content:""; position:absolute; width:78px; height:7px; left:0; bottom:0; background:var(--yellow, var(--card)); transform:skewX(-24deg); }
.player-card {
  padding: 0;
  background: var(--blue);
  border: 6px solid var(--line);
  border-radius: 24px;
  box-shadow: 0 20px 46px rgba(8,42,104,.22);
  min-height: 360px;
  display: grid;
  grid-template-rows: 1fr auto;
}
.player-card:before,.player-card:after { display:none; }
.player-card img { width:100%; height:290px; object-fit:cover; object-position:center 38%; display:block; }
.player-card figcaption { min-height:88px; padding:16px 20px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-top:6px solid var(--red); background:var(--blue); }
.player-meta { position:static; }.player-meta span { color:#cfe5ff; opacity:1; }.player-meta strong { font-size:26px; }
.discipline-score { display:flex; align-items:center; gap:9px; color:white; min-width:0; }.discipline-score b { font-size:32px; flex:none; }.discipline-score small { min-width:0; font-size:8px; line-height:1.25; letter-spacing:.12em; overflow-wrap:anywhere; }
.reward-bank { margin:26px 0 52px; display:grid; grid-template-columns:1.6fr .8fr; gap:16px; }
.reward-bank .minute-bank { margin:0; border:0; background:var(--blue); color:white; box-shadow:0 12px 30px rgba(7,95,207,.2); }
.reward-bank .minute-bank p,.reward-bank .bank-note { color:#d7e9ff; }
.reward-bank .primary-button { background:var(--red); color:white; box-shadow:inset 0 -2px 0 rgba(90,0,0,.25); }
.reward-bank .primary-button:hover { background:#ff4050; }
.puck-wallet { border-radius:var(--radius); background:var(--lime); color:var(--text); display:flex; align-items:center; gap:18px; padding:22px; box-shadow:0 12px 30px rgba(231,185,0,.2); }
.puck-wallet p { margin:0 0 2px; font-weight:800; }.puck-wallet strong { font-size:42px; line-height:1; display:block; }.puck-wallet span { font-size:11px; font-weight:700; opacity:.72; }
.puck-symbol { width:62px; height:22px; border-radius:50%; background:#08142a; box-shadow:0 10px 0 #020710, 0 14px 18px rgba(8,20,42,.24); transform:rotate(-7deg); flex:0 0 auto; }
.task-index { background:var(--card); color:var(--blue); }.task.done .task-index { background:var(--lime); }.task.pending .task-index { background:var(--card); color:#fc9ca4; }
.task-reward { color:var(--red); }.task-button { border-color:var(--blue); color:var(--blue); }.task-button:hover { background:var(--blue); }
.progress-label { background:var(--red); }
.game-rules { margin-top:72px; display:grid; grid-template-columns:.8fr 1.2fr; gap:54px; align-items:start; padding:42px; border-radius:var(--radius); background:var(--card); border-left:8px solid var(--red); }
.rules-intro h2 { font-size:34px; letter-spacing:-.04em; margin-bottom:14px; }.rules-intro>p:last-child { color:var(--muted); line-height:1.55; }
.game-steps { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; counter-reset:game-step; }
.game-steps li { min-height:130px; padding:22px; background:var(--card); border-radius:14px; position:relative; overflow:hidden; box-shadow:0 8px 24px rgba(7,95,207,.08); }
.game-steps li:before { counter-increment:game-step; content:counter(game-step); position:absolute; right:12px; top:-17px; font-weight:900; font-size:74px; color:#e6f0fb; }
.game-steps b,.game-steps span { display:block; position:relative; z-index:1; }.game-steps b { color:var(--red); font-size:18px; margin-bottom:8px; }.game-steps span { color:var(--muted); font-size:13px; line-height:1.4; max-width:150px; }
.season-section { background:var(--blue); border:6px solid var(--line); box-shadow:0 20px 50px rgba(7,95,207,.2); }
.season-copy { position:relative; }.season-copy:before { content:""; position:absolute; width:140px; height:140px; border:30px solid rgba(255,255,255,.04); border-radius:50%; left:-70px; top:-50px; }
.round-label { color:var(--lime); }.season-copy p { color:#ffe2c2; }
.match-score { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; margin:28px 0 18px; }.match-score span { font-size:10px; font-weight:900; letter-spacing:.12em; }.match-score span:last-child { text-align:right; }.match-score strong { font-size:30px; color:var(--lime); white-space:nowrap; }
.shot-button { width:100%; border:0; border-radius:999px; padding:15px 20px; background:var(--red); color:white; font-weight:900; box-shadow:inset 0 -3px 0 rgba(88,0,0,.25); }.shot-button:disabled { opacity:.42; cursor:not-allowed; }.shot-button:active { transform:translateY(2px); }
.shot-hint { display:block; text-align:center; margin-top:10px; color:#ffe2c2; }
.rink { background:linear-gradient(var(--card),var(--card)); border-left:6px solid var(--red); }.goal { border-color:var(--red); }.shot-label { color:var(--blue); }.puck.shoot { animation:puck-shot .7s cubic-bezier(.2,.8,.3,1) both; }
@keyframes puck-shot { 0% { transform:translate(-120px,120px) scale(1); } 70% { transform:translate(180px,-30px) scale(.58); } 100% { transform:translate(240px,-18px) scale(.25); opacity:.1; } }
.locker-section { margin-top:26px; padding:36px 40px; display:grid; grid-template-columns:.8fr 1.2fr; gap:38px; align-items:center; border-radius:var(--radius); background:var(--card); border:1px solid var(--line); }
.locker-copy h2 { font-size:30px; margin-bottom:10px; }.locker-copy p { color:var(--muted); line-height:1.5; margin:0; }
.gear-list { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.gear { min-height:170px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; border-radius:14px; background:var(--card); color:#8492a8; filter:saturate(.2); }.gear.unlocked { background:var(--card); color:var(--text); filter:none; }.gear b,.gear small { display:block; }.gear small { font-size:10px; margin-top:4px; }.gear-shape { display:grid; place-content:center; width:62px; height:62px; margin-bottom:13px; background:var(--card); color:white; font-weight:900; font-size:22px; }.unlocked .gear-shape { background:var(--blue); }.helmet-shape { border-radius:50% 50% 35% 35%; }.jersey-shape { clip-path:polygon(23% 0,38% 9%,62% 9%,77% 0,100% 25%,82% 43%,77% 32%,77% 100%,23% 100%,23% 32%,18% 43%,0 25%); }.glove-shape { border-radius:42% 42% 34% 50%; transform:rotate(-12deg); }
.accept-button { background:var(--red); color:white; }.week-bars .day-bar.active i { background:var(--blue); }

@media (max-width:800px) {
  .reward-bank,.game-rules,.locker-section { grid-template-columns:1fr; }
  .reward-bank { gap:12px; }.reward-bank .minute-bank { margin:0; }.puck-wallet { min-height:108px; }
  .player-card { min-height:0; }.player-card img { height:270px; }.player-card figcaption { min-height:82px; }
  .game-rules { margin-top:50px; padding:28px 20px; gap:22px; }.game-steps { grid-template-columns:1fr 1fr; }.game-steps li { min-height:120px; padding:18px; }
  .season-section { border-width:4px; }.rink { border-left:0; border-top:4px solid var(--red); }
  .locker-section { padding:28px 20px; gap:24px; }.gear-list { gap:8px; }.gear { min-height:145px; }.gear-shape { width:52px; height:52px; }
}
@media (max-width:480px) {
  .player-card img { height:240px; }.player-meta strong { font-size:23px; }
  .puck-wallet { padding:18px; }.puck-symbol { width:52px; }
  .game-steps { grid-template-columns:1fr; }.game-steps li { min-height:100px; }.game-steps span { max-width:220px; }
  .gear-list { grid-template-columns:1fr 1fr 1fr; }.gear { min-height:126px; padding:10px 5px; }.gear-shape { width:44px; height:44px; }.gear small { font-size:8px; }
}

/* Activity library inspired by short adaptive learning cards */
.activity-section { margin-top:72px; }
.activity-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:22px; }
.activity-heading h2 { font-size:34px; letter-spacing:-.04em; margin-bottom:8px; }.activity-heading p { margin:0; color:var(--muted); }.activity-heading>span { color:var(--blue); font-size:13px; font-weight:900; white-space:nowrap; }
.category-scroller { display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; padding:2px 0 14px; scroll-snap-type:x proximity; }.category-scroller::-webkit-scrollbar { display:none; }
.category-button { border:1px solid var(--line); background:var(--card); color:var(--muted); padding:10px 17px; border-radius:999px; font-weight:800; white-space:nowrap; scroll-snap-align:start; }.category-button.active { border-color:var(--blue); background:var(--blue); color:white; }
.activity-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.activity-card { min-height:196px; padding:22px; border:1px solid var(--line); border-radius:var(--radius); background:var(--card); display:grid; grid-template-columns:1fr auto; grid-template-rows:auto 1fr auto; gap:8px 18px; position:relative; overflow:hidden; box-shadow:0 8px 26px rgba(8,42,104,.06); }
.activity-card:after { content:""; width:100px; height:100px; border-radius:50%; position:absolute; right:-50px; top:-50px; background:rgba(7,95,207,.08); }
.activity-card[data-category="Учёба"] { background:var(--card); }.activity-card[data-category="Хоккей"] { background:var(--card); border-color:var(--line); }.activity-card[data-category="Дом"] { background:var(--card); }.activity-card[data-category="Здоровье"] { background:var(--card); }
.activity-card h3 { margin:0; font-size:20px; letter-spacing:-.02em; position:relative; z-index:1; }.activity-card>p { grid-column:1 / 3; margin:0; color:var(--muted); line-height:1.45; max-width:48ch; }.activity-meta { color:var(--red); font-size:12px; font-weight:900; white-space:nowrap; position:relative; z-index:1; }
.activity-card button { justify-self:start; align-self:end; border:0; border-radius:999px; background:var(--blue); color:white; padding:11px 17px; font-weight:900; }.activity-card button:hover { background:#064fab; }.activity-card button:disabled { background:var(--card); cursor:not-allowed; }.activity-card .origin-note { align-self:end; color:var(--muted); font-size:10px; text-align:right; }
.activity-card.featured { grid-column:1 / 3; min-height:170px; background:var(--blue); color:white; border:0; }.activity-card.featured:after { width:210px; height:210px; top:-100px; right:-40px; border:35px solid rgba(255,255,255,.09); background:transparent; }.activity-card.featured>p,.activity-card.featured .origin-note { color:#d6e8ff; }.activity-card.featured .activity-meta { color:var(--lime); }.activity-card.featured button { background:var(--red); }
.learning-modal { min-height:440px; }.lesson-progress { display:flex; gap:7px; margin:8px 0 28px; }.lesson-progress i { height:7px; flex:1; border-radius:999px; background:var(--card); }.lesson-progress i.done,.lesson-progress i.current { background:var(--blue); }.learning-modal>p:not(.modal-step):not(.lesson-feedback) { color:var(--text); font-size:25px; font-weight:800; margin:26px 0 18px; }
.answer-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.answer-button { min-height:62px; border:2px solid var(--line); border-radius:14px; background:var(--card); color:var(--text); font-weight:900; font-size:21px; }.answer-button:hover { border-color:var(--blue); }.answer-button.correct { border-color:#1e9c62; background:var(--card); color:#a3f5d0; }.answer-button.wrong { border-color:var(--red); background:var(--card); color:#fb9da5; }.lesson-feedback { min-height:48px; margin:16px 0; color:var(--muted); font-weight:700; line-height:1.45; }
.mobile-nav { display:none; }

@media (max-width:700px) {
  body { padding-bottom:76px; }
  .topbar { height:64px; border-bottom-width:4px; }.view { padding:20px 16px 54px; }
  .scoreboard { display:grid; grid-template-columns:1fr; gap:18px; }.score-copy { padding:6px 0 0; }.score-copy .kicker { margin-bottom:10px; }.score-copy h1 { font-size:35px; line-height:1.02; margin-bottom:12px; }.score-copy .lead { font-size:15px; line-height:1.45; margin-bottom:8px; }.score-copy:after { display:none; }
  .player-card { grid-template-columns:140px 1fr; grid-template-rows:136px; min-height:136px; border-width:4px; border-radius:18px; margin:0; }.player-card img { width:122px; height:136px; object-position:42% center; }.player-card figcaption { height:136px; min-height:0; border-top:0; border-left:4px solid var(--red); padding:15px; flex-direction:column; align-items:flex-start; justify-content:center; }.discipline-score { flex-direction:column; align-items:flex-start; gap:2px; }.discipline-score b { font-size:27px; line-height:1; }.discipline-score small { letter-spacing:.08em; }.player-card figcaption { overflow:hidden; }.player-meta { min-width:0; max-width:100%; }
  /* В узкую панель должны влезать и «ПОЛУЗАЩИТНИК», и длинное имя. */
  .player-meta span { display:block; font-size:8px; letter-spacing:.06em; white-space:nowrap; }
  .player-meta strong { display:block; font-size:22px; line-height:1.05; }
  .player-meta strong[data-length="mid"] { font-size:19px; }
  .player-meta strong[data-length="long"] { font-size:15px; }
  .player-meta strong[data-length="huge"] { font-size:13px; overflow-wrap:anywhere; }
  .reward-bank { grid-template-columns:1fr 1fr; margin:14px 0 36px; }.reward-bank .minute-bank { min-height:174px; padding:17px; display:block; }.minute-count strong { font-size:42px; }.reward-bank .bank-actions { align-items:stretch; margin-top:17px; }.reward-bank .primary-button { width:100%; padding:11px 8px; }.puck-wallet { min-height:174px; padding:16px; flex-direction:column; align-items:flex-start; justify-content:center; gap:12px; }.puck-wallet strong { font-size:38px; }.puck-symbol { width:48px; height:16px; box-shadow:0 7px 0 #020710,0 10px 14px rgba(8,20,42,.22); }
  .section-heading { margin-bottom:14px; }.section-heading h2 { font-size:27px; }.task-list { border-top:0; display:grid; gap:10px; }.task { border:1px solid var(--line); background:var(--card); border-radius:16px; padding:14px; grid-template-columns:42px 1fr; gap:10px 12px; min-height:0; }.task-index { width:40px; height:40px; }.task h3 { font-size:17px; }.task p { font-size:12px; }.task-reward { grid-column:2; padding:0; font-size:12px; }.task-button { grid-column:1 / 3; min-width:0; width:100%; }
  .activity-section { margin-top:48px; }.activity-heading { display:block; }.activity-heading h2 { font-size:28px; }.activity-heading p { font-size:14px; line-height:1.45; }.activity-heading>span { display:block; margin-top:8px; }.category-scroller { margin-right:-16px; padding-right:16px; }
  .activity-grid { display:flex; overflow-x:auto; gap:12px; margin-right:-16px; padding:0 16px 12px 0; scroll-snap-type:x mandatory; scrollbar-width:none; }.activity-grid::-webkit-scrollbar { display:none; }.activity-card,.activity-card.featured { grid-column:auto; min-width:82vw; min-height:214px; scroll-snap-align:start; }
  .game-rules { margin-top:40px; }.season-section { margin-top:38px; }.locker-section { margin-bottom:20px; }
  .mobile-nav { position:fixed; z-index:35; left:10px; right:10px; bottom:8px; height:64px; padding:6px; display:grid; grid-template-columns:repeat(4,1fr); gap:3px; background:var(--ink); border:1px solid rgba(255,255,255,.16); border-radius:18px; box-shadow:0 14px 40px rgba(8,42,104,.32); backdrop-filter:blur(16px); }.mobile-nav button { border:0; background:transparent; color:#ffe2c2; border-radius:12px; font-size:10px; font-weight:800; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:2px; }.mobile-nav button span { color:var(--lime); font-size:9px; }.mobile-nav button:active { background:rgba(255,255,255,.12); }.parent-mode .mobile-nav { display:none; }
  .timer-dock { bottom:82px; }
}

/* Weekly plan, age levels and full season */
.day-plan-badge,.planner-kicker { display:block; margin-bottom:6px; color:var(--red); font-size:9px; font-weight:900; letter-spacing:.1em; }
.rest-day-card { padding:24px; display:flex; gap:16px; align-items:center; border:1px dashed var(--line); border-radius:var(--radius); background:var(--card); }
.rest-day-card>span { font-size:38px; }.rest-day-card h3 { margin:0 0 5px; }.rest-day-card p { margin:0; color:var(--muted); }
.weekly-planner { margin-top:34px; padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:var(--card); }
.weekly-planner-toolbar { margin-bottom:16px; padding:15px 16px; display:grid; grid-template-columns:minmax(210px,.5fr) 1fr; gap:20px; align-items:center; border-radius:14px; background:var(--card); }
.weekly-planner-toolbar label span { display:block; margin-bottom:6px; color:var(--muted); font-size:10px; font-weight:900; }.weekly-planner-toolbar select,.weekly-plan-day select { width:100%; min-height:43px; padding:0 10px; border:1px solid var(--line); border-radius:10px; background:var(--card); color:var(--text); font-weight:800; }.weekly-planner-toolbar p { margin:0; color:var(--muted); font-size:12px; line-height:1.45; }
.weekly-plan-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:7px; }.weekly-plan-day { min-width:0; padding:10px 8px; display:grid; gap:7px; border:1px solid var(--line); border-radius:12px; background:var(--card); }.weekly-plan-day>span { color:var(--red); font-size:10px; font-weight:900; }.weekly-plan-day select { min-width:0; padding:0 5px; font-size:10px; }
.weekly-plan-save { width:100%; min-height:46px; margin-top:16px; border:0; border-radius:999px; background:var(--blue); color:white; font-weight:900; }
.season-stats { margin:18px 0 12px; display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }.season-stats>div { padding:10px; border-radius:11px; background:rgba(255,255,255,.1); }.season-stats small,.season-stats b { display:block; }.season-stats small { color:#cfe2fb; font-size:8px; font-weight:900; }.season-stats b { margin-top:2px; color:var(--lime); font-size:24px; }
.season-track { display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.season-track span { height:28px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.24); border-radius:8px; color:#bcd0e8; font-size:10px; font-weight:900; }.season-track span.current { border-color:var(--lime); color:var(--lime); }.season-track span.won { border-color:var(--lime); background:var(--lime); color:var(--text); }
.last-match-result { min-height:18px; margin:-6px 0 14px!important; color:#cfe2fb!important; font-size:10px; font-weight:800; text-align:center; }
.gear-list { grid-template-columns:repeat(4,1fr); }.captain-shape { border-radius:50%; border:5px solid rgba(255,255,255,.7); }

@media (max-width:900px) {
  .weekly-plan-grid { grid-template-columns:repeat(4,1fr); }
}

@media (max-width:700px) {
  .weekly-planner { padding:22px 16px; }.weekly-planner-toolbar { grid-template-columns:1fr; gap:10px; }.weekly-plan-grid { grid-template-columns:1fr 1fr; }.weekly-plan-day { min-height:78px; }
  .gear-list { grid-template-columns:1fr 1fr; }.gear { min-height:132px; }
  .season-stats b { font-size:21px; }.season-track { gap:4px; }
}

@media (max-width:370px) {
  .score-copy h1 { font-size:31px; }.reward-bank { grid-template-columns:1fr; }.reward-bank .minute-bank,.puck-wallet { min-height:140px; }.puck-wallet { flex-direction:row; align-items:center; }.activity-card,.activity-card.featured { min-width:86vw; }
}

/* OFP workout card */
.ofp-modal { width:min(680px,100%); }
.ofp-title-row { display:flex; justify-content:space-between; align-items:start; gap:22px; }.ofp-title-row h2 { margin-bottom:7px; }.ofp-title-row p { margin:0; color:var(--muted); line-height:1.45; max-width:480px; }.ofp-title-row>strong { flex:0 0 auto; width:66px; height:66px; border-radius:50%; display:grid; place-content:center; background:var(--blue); color:white; font-size:19px; }
.ofp-progress { height:8px; margin:22px 0; border-radius:999px; background:var(--card); overflow:hidden; }.ofp-progress span { display:block; width:0; height:100%; background:var(--red); border-radius:inherit; transition:width .25s ease; }
.ofp-tabs { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:5px; border-radius:14px; background:var(--card); }.ofp-tabs button { min-height:44px; border:0; border-radius:10px; background:transparent; color:var(--muted); font-weight:900; }.ofp-tabs button.active { background:var(--card); color:var(--blue); box-shadow:0 3px 12px rgba(8,42,104,.1); }
.ofp-exercise-list { display:grid; gap:9px; margin:16px 0 22px; }.ofp-exercise { min-height:64px; display:grid; grid-template-columns:24px 1fr auto; gap:12px; align-items:center; padding:12px 14px; border:1px solid var(--line); border-radius:14px; background:var(--card); }.ofp-exercise input { width:21px; height:21px; accent-color:var(--blue); }.ofp-exercise b,.ofp-exercise small { display:block; }.ofp-exercise b { font-size:15px; }.ofp-exercise small { margin-top:3px; color:var(--muted); font-size:11px; }.ofp-exercise .custom-badge { color:var(--red); font-size:9px; font-weight:900; letter-spacing:.08em; }.remove-exercise { border:0; background:var(--card); color:var(--muted); width:30px; height:30px; border-radius:50%; font-weight:900; }
.ofp-requirement { margin:-12px 0 18px; color:var(--muted); font-size:12px; font-weight:700; }.ofp-requirement.ready { color:#a5f3cf; }
.add-exercise-panel { padding:18px; border-radius:14px; background:var(--card); }.add-exercise-panel h3 { margin:0 0 13px; font-size:17px; }.add-exercise-fields { display:grid; grid-template-columns:1.5fr .8fr auto; gap:9px; align-items:end; }.add-exercise-fields label span { display:block; margin-bottom:6px; color:var(--muted); font-size:11px; font-weight:800; }.add-exercise-fields input,.add-exercise-fields select { width:100%; height:43px; border:1px solid var(--line); border-radius:10px; background:var(--card); color:var(--text); padding:0 11px; }.add-exercise-fields input:focus,.add-exercise-fields select:focus { outline:3px solid rgba(7,95,207,.16); border-color:var(--blue); }.add-exercise-fields button { height:43px; border:0; border-radius:999px; padding:0 17px; background:var(--blue); color:white; font-weight:900; }.field-message { min-height:16px; margin:8px 0 0; color:var(--red); font-size:11px; font-weight:700; }.safety-note { margin:16px 0; color:var(--muted); font-size:12px; line-height:1.45; }
.field-message.success { color:#a5f3cf; }

@media (max-width:700px) {
  .ofp-modal { padding:25px 18px; }.ofp-title-row h2 { font-size:27px; }.ofp-title-row p { font-size:13px; }.ofp-title-row>strong { width:56px; height:56px; font-size:16px; }
  .add-exercise-fields { grid-template-columns:1fr 1fr; }.add-exercise-fields label:first-child { grid-column:1 / 3; }.add-exercise-fields button { width:100%; }
}

@media (max-width:390px) {
  .ofp-title-row { display:block; }.ofp-title-row>strong { width:auto; height:auto; min-height:36px; border-radius:999px; margin-top:12px; }.ofp-exercise { grid-template-columns:22px 1fr auto; padding:11px; }.add-exercise-fields { grid-template-columns:1fr; }.add-exercise-fields label:first-child { grid-column:auto; }
  .task-modal-status { display:block; }.task-modal-status span { display:block; margin-top:4px; text-align:left; }.review-proof { grid-template-columns:72px 1fr; }.review-proof img { width:72px; height:62px; }
}

/* Screen time chooser and parent report */
.screen-time-modal { width:min(560px,100%); }.screen-time-modal>p:not(.modal-step):not(.connection-note) { color:var(--muted); line-height:1.5; }.screen-balance { margin:22px 0; padding:16px 18px; display:flex; justify-content:space-between; align-items:center; border-radius:14px; background:var(--blue); color:white; }.screen-balance span { color:#d8e9ff; font-weight:700; }.screen-balance strong { font-size:19px; }.screen-balance b { font-size:28px; }
.choice-group { border:0; padding:0; margin:22px 0; }.choice-group legend { margin-bottom:10px; color:var(--muted); font-size:12px; font-weight:900; }.device-choices { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.device-choices button { min-height:108px; border:2px solid var(--line); border-radius:14px; background:var(--card); color:var(--text); display:grid; grid-template-columns:46px 1fr; grid-template-rows:1fr 1fr; text-align:left; align-items:end; column-gap:12px; padding:15px; }.device-choices button.selected { border-color:var(--blue); background:var(--card); box-shadow:inset 0 0 0 1px var(--blue); }.device-choices b,.device-choices small { display:block; }.device-choices b { align-self:end; }.device-choices small { align-self:start; color:var(--muted); font-size:10px; }.device-mark { grid-row:1 / 3; width:44px; height:36px; align-self:center; display:block; position:relative; background:var(--blue); }.console-mark { height:28px; border-radius:18px 18px 12px 12px; transform:rotate(-4deg); }.console-mark:before,.console-mark:after { content:""; position:absolute; width:7px; height:7px; border-radius:50%; background:var(--card); top:10px; }.console-mark:before { left:10px; }.console-mark:after { right:10px; }.tv-mark { border-radius:5px; border:5px solid var(--blue); background:var(--card); }.tv-mark:after { content:""; position:absolute; width:22px; height:4px; background:var(--blue); left:6px; bottom:-10px; border-radius:4px; }
.duration-choices { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }.duration-choices button { min-height:48px; border:2px solid var(--line); border-radius:12px; background:var(--card); color:var(--text); font-weight:900; }.duration-choices button.selected { border-color:var(--red); background:var(--card); color:#f99fa7; }.duration-choices button:disabled { opacity:.36; cursor:not-allowed; }.connection-note { margin:18px 0; padding:12px 14px; border-radius:12px; background:var(--card); color:#f1e0a7; font-size:11px; line-height:1.45; }
.screen-report { margin-top:46px; padding:28px; border-radius:var(--radius); background:var(--blue); color:white; }.screen-report-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; }.screen-report-heading h2 { margin-bottom:5px; font-size:30px; }.screen-report-heading p { margin:0; color:#d2e5ff; }.screen-report-heading>strong { color:var(--lime); white-space:nowrap; }.current-session { margin-top:22px; padding:18px; border-radius:14px; background:rgba(255,255,255,.1); display:flex; justify-content:space-between; gap:18px; }.current-session span { font-weight:900; }.current-session small { max-width:330px; color:#d2e5ff; text-align:right; line-height:1.4; }.current-session.active { background:var(--red); }.current-session.active small { color:white; }.session-history { margin-top:12px; display:grid; gap:7px; }.session-row { min-height:46px; padding:9px 14px; display:grid; grid-template-columns:1fr auto auto; gap:15px; align-items:center; border-radius:11px; background:var(--card); color:var(--text); }.session-row span { font-weight:800; }.session-row small { color:var(--muted); }.session-row b { color:var(--red); }.empty-history { padding:13px 0 0; color:#d2e5ff; font-size:12px; }
.device-control-center { margin-top:46px; padding:28px; border-radius:var(--radius); background:var(--card); border:1px solid var(--line); }.device-control-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; }.device-control-heading>div>span { color:var(--red); font-size:10px; font-weight:950; letter-spacing:.13em; }.device-control-heading h2 { margin:5px 0 6px; font-size:30px; letter-spacing:-.035em; }.device-control-heading p { max-width:650px; margin:0; color:var(--muted); line-height:1.5; }.device-status-badge { flex:0 0 auto; padding:9px 12px; border-radius:999px; background:var(--card); color:#ffd999; font-size:10px; font-weight:950; letter-spacing:.07em; }.device-status-badge.ready { background:var(--card); color:#b3f1a7; }.connected-device-card { margin-top:20px; padding:20px; display:grid; grid-template-columns:90px 1fr auto; gap:22px; align-items:center; border-radius:18px; background:var(--card); border:1px solid var(--line); box-shadow:0 12px 28px rgba(16,34,63,.06); }.ps5-console { width:74px; height:96px; position:relative; display:flex; flex-direction:column; justify-content:center; align-items:center; border-radius:25px 8px 25px 8px; background:linear-gradient(115deg,var(--card) 0 42%,#0c1930 43% 58%,var(--card) 59%); border:1px solid var(--line); box-shadow:0 12px 20px rgba(12,25,48,.15); }.ps5-console:before,.ps5-console:after { content:""; position:absolute; top:11px; bottom:11px; width:5px; border-radius:8px; background:#1779ff; }.ps5-console:before { left:9px; }.ps5-console:after { right:9px; }.ps5-console i { width:22px; height:4px; background:#1779ff; border-radius:5px; }.ps5-console b { margin-top:9px; color:#acc4ec; font-size:12px; }.connected-device-copy h3 { margin:0 0 5px; font-size:21px; }.connected-device-copy>p { margin:0; color:var(--muted); font-size:13px; line-height:1.45; }.device-protection-list { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }.device-protection-list span { padding:6px 8px; border-radius:8px; background:var(--card); color:#778397; font-size:10px; font-weight:800; }.device-protection-list span.done { background:var(--card); color:#b6eeaa; }.device-protection-list i { margin-right:4px; font-style:normal; }.connected-device-actions { min-width:178px; display:grid; gap:8px; }.connected-device-actions a,.device-request-actions a { color:var(--blue); text-align:center; font-size:11px; font-weight:900; text-decoration:none; }.device-control-note { margin:14px 0 0; color:var(--muted); font-size:11px; line-height:1.5; }.device-request-panel { margin-top:14px; padding:18px; display:flex; justify-content:space-between; gap:20px; align-items:center; border-radius:16px; background:#0b2e72; color:white; }.device-request-panel[hidden] { display:none; }.device-request-panel span { color:var(--lime); font-size:9px; font-weight:950; letter-spacing:.12em; }.device-request-panel h3 { margin:5px 0; font-size:20px; }.device-request-panel p { margin:0; color:#d7e6ff; font-size:12px; line-height:1.5; }.device-request-actions { min-width:300px; display:grid; grid-template-columns:1fr 1fr; gap:8px; }.device-request-actions a { grid-column:1 / 3; color:white; }.device-request-actions button { min-height:44px; border:1px solid rgba(255,255,255,.35); border-radius:11px; background:transparent; color:white; font-weight:900; }.device-request-actions .approve-device-request { border-color:var(--lime); background:var(--lime); color:var(--text); }.ps5-setup-modal>p:not(.modal-step) { color:var(--muted); line-height:1.5; }.ps5-setup-steps { display:grid; gap:9px; margin:20px 0; }.ps5-setup-steps label { display:grid; grid-template-columns:24px 1fr; gap:11px; align-items:start; padding:13px; border-radius:13px; background:var(--card); cursor:pointer; }.ps5-setup-steps input { width:21px; height:21px; margin:1px 0 0; accent-color:var(--blue); }.ps5-setup-steps b,.ps5-setup-steps small { display:block; }.ps5-setup-steps small { margin-top:4px; color:var(--muted); line-height:1.4; }.ps5-guide-links { display:flex; justify-content:space-between; gap:12px; margin:0 0 18px; }.ps5-guide-links a { color:var(--blue); font-size:11px; font-weight:900; }.ps5-setup-status { min-height:18px; margin:10px 0 0!important; color:var(--red)!important; text-align:center; font-size:11px; font-weight:800; }.parent-mode .timer-dock { display:none!important; }

@media (max-width:700px) {
  .screen-time-modal { padding:26px 19px; }.screen-time-modal h2 { font-size:28px; }.duration-choices { grid-template-columns:1fr 1fr; }.device-choices button { grid-template-columns:38px 1fr; padding:12px; }.device-mark { width:38px; }.screen-report { padding:22px 18px; }.screen-report-heading { display:block; }.screen-report-heading h2 { font-size:27px; }.screen-report-heading>strong { display:block; margin-top:10px; }.current-session { display:block; }.current-session small { display:block; margin-top:5px; text-align:left; }.session-row { grid-template-columns:1fr auto; }.session-row small { grid-column:1; grid-row:2; }
  .device-control-center { padding:21px 16px; }.device-control-heading { display:block; }.device-status-badge { display:inline-block; margin-top:13px; }.connected-device-card { grid-template-columns:62px 1fr; gap:14px; padding:16px; }.ps5-console { width:58px; height:78px; }.connected-device-actions { grid-column:1 / 3; display:grid; grid-template-columns:1fr 1fr; align-items:center; }.device-protection-list { display:grid; grid-template-columns:1fr; }.device-request-panel { display:block; }.device-request-actions { min-width:0; margin-top:14px; }.ps5-guide-links { display:grid; }.ps5-setup-modal { padding:26px 18px; }
}

/* Task reminders and phone screen-time controls */
.reminder-card { margin:0 0 34px; padding:24px 26px; display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; border-radius:var(--radius); background:var(--card); border:1px solid var(--line); box-shadow:0 8px 26px rgba(8,42,104,.06); }
.reminder-card.alert { background:var(--blue); border-color:var(--blue); color:white; }
.reminder-label { display:block; margin-bottom:7px; color:var(--red); font-size:10px; font-weight:900; letter-spacing:.1em; }.reminder-card.alert .reminder-label { color:var(--lime); }
.reminder-card h2 { margin:0 0 6px; font-size:25px; letter-spacing:-.03em; }.reminder-card p { margin:0; color:var(--muted); line-height:1.45; }.reminder-card.alert p { color:#d8e9ff; }
.reminder-actions { display:flex; gap:8px; }.reminder-actions button,.reminder-setting-actions button { min-height:42px; padding:10px 16px; border-radius:999px; font-weight:900; white-space:nowrap; }
.reminder-primary { border:0; background:var(--red); color:white; }.reminder-secondary { border:1px solid var(--line); background:var(--card); color:var(--blue); }
.reminder-settings { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }.reminder-settings h3 { margin:0 0 13px; font-size:18px; }.reminder-settings label span { display:block; margin-bottom:7px; color:var(--muted); font-size:12px; font-weight:800; }.reminder-settings select { width:100%; height:44px; padding:0 12px; border:1px solid var(--line); border-radius:11px; background:var(--card); color:var(--text); font-weight:700; }.reminder-settings select:focus { outline:3px solid rgba(7,95,207,.16); border-color:var(--blue); }.reminder-setting-actions { display:flex; gap:8px; margin-top:12px; }.reminder-setting-actions button { border:0; background:var(--blue); color:white; }.reminder-setting-actions button+button { border:1px solid var(--line); background:var(--card); color:var(--blue); }.reminder-settings p { margin:10px 0 0; color:var(--muted); font-size:11px; line-height:1.45; }
.screen-usage-summary { text-align:right; }.screen-usage-summary strong,.screen-usage-summary span { display:block; }.screen-usage-summary strong { color:var(--lime); }.screen-usage-summary span { margin-top:5px; color:#d2e5ff; font-size:11px; font-weight:700; }
.device-choices { grid-template-columns:repeat(3,1fr); }.phone-mark { width:29px; height:45px; border:4px solid var(--blue); border-radius:8px; background:var(--card); }.phone-mark:after { content:""; position:absolute; width:9px; height:3px; left:6px; bottom:3px; border-radius:3px; background:var(--blue); }.device-choices button:disabled { opacity:.42; cursor:not-allowed; }
.duration-empty { grid-column:1 / -1; padding:13px; border-radius:11px; background:var(--card); color:#f6a2aa; font-size:12px; font-weight:800; text-align:center; }

@media (max-width:700px) {
  .reminder-card { grid-template-columns:1fr; gap:17px; padding:20px; }.reminder-actions { display:grid; grid-template-columns:1fr 1fr; }.reminder-actions button { padding:9px 8px; }
  .device-choices { grid-template-columns:1fr; }.device-choices button { min-height:72px; grid-template-rows:1fr 1fr; }.screen-usage-summary { margin-top:11px; text-align:left; }
}

@media (max-width:370px) {
  .reminder-actions { grid-template-columns:1fr; }
}

/* Family sync and install flow */
.topbar-actions { display:flex; align-items:center; gap:12px; }
.child-device .mode-switch { display:none; }
.sync-status-button { min-height:38px; display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--line); border-radius:999px; background:var(--card); color:var(--muted); font-size:12px; font-weight:900; white-space:nowrap; }
.sync-status-button i { width:8px; height:8px; border-radius:50%; background:var(--card); }
.sync-status-button.connected { color:var(--blue); border-color:var(--line); background:var(--card); }
.sync-status-button.connected i { background:#1a9f63; }
.sync-status-button.offline i { background:var(--red); }
.family-sync-card { margin-top:48px; padding:26px 28px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:24px; border-radius:var(--radius); color:white; background:var(--blue); box-shadow:0 14px 34px rgba(7,95,207,.18); }
.family-sync-card span { display:block; margin-bottom:7px; color:var(--lime); font-size:10px; font-weight:900; letter-spacing:.1em; }
.family-sync-card h2 { margin:0 0 7px; font-size:27px; }.family-sync-card p { max-width:680px; margin:0; color:#d8e9ff; line-height:1.45; }
.family-sync-card button { min-height:44px; padding:11px 20px; border:0; border-radius:999px; background:var(--lime); color:var(--text); font-weight:900; }
.sync-modal { width:min(610px,100%); }
.sync-connected { margin:20px 0; padding:20px; border-radius:16px; background:var(--card); border:1px solid var(--line); text-align:center; }
.sync-connected>span { display:block; color:var(--muted); font-size:11px; font-weight:800; }.sync-connected>strong { display:block; margin:5px 0; color:var(--blue); font-size:38px; letter-spacing:.12em; }.sync-connected>p { margin:0 0 15px; color:var(--muted); }
.sync-link-actions,.sync-join-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.sync-link-actions button,.sync-join-actions button { min-height:43px; border-radius:999px; font-weight:900; }
.sync-link-actions button { border:1px solid var(--line); background:var(--card); color:var(--blue); }.sync-join-actions button { border:0; background:var(--blue); color:white; }
.sync-setup { display:grid; grid-template-columns:1fr 38px 1fr; gap:16px; margin-top:22px; }.sync-setup section { padding:18px; border:1px solid var(--line); border-radius:16px; background:var(--card); }.sync-setup h3 { margin:0 0 15px; font-size:17px; }.sync-setup label { display:block; margin:12px 0 6px; color:var(--muted); font-size:11px; font-weight:800; }.sync-setup input { width:100%; height:45px; padding:0 12px; border:1px solid var(--line); border-radius:11px; background:var(--card); color:var(--text); font-weight:800; }.sync-setup input:focus { outline:3px solid rgba(7,95,207,.16); border-color:var(--blue); }.sync-setup .primary-button { margin-top:12px; }
.sync-divider { display:grid; place-items:center; color:var(--muted); font-size:11px; font-weight:800; }.sync-divider:before,.sync-divider:after { content:""; width:1px; height:100%; background:var(--line); }.sync-divider span { padding:8px 0; }
.sync-message { min-height:20px; margin:14px 0 0!important; color:var(--red)!important; font-size:12px; font-weight:800; }.sync-message.success { color:#a5f3cf!important; }
.install-panel { margin-top:14px; padding:15px 16px; display:flex; justify-content:space-between; align-items:center; gap:14px; border-radius:14px; background:var(--ink); color:white; }.install-panel b,.install-panel span { display:block; }.install-panel span { margin-top:4px; color:#b8c7da; font-size:11px; line-height:1.4; }.install-panel button { min-height:38px; border:0; border-radius:999px; padding:8px 14px; background:var(--lime); color:var(--text); font-weight:900; }.disconnect-button { width:100%; margin-top:12px; padding:11px; border:1px solid var(--line); border-radius:999px; background:var(--card); color:#f6a2ac; font-weight:900; }

@media (max-width:800px) {
  .family-sync-card { grid-template-columns:1fr; padding:22px; }.family-sync-card button { width:100%; }
  .sync-setup { grid-template-columns:1fr; }.sync-divider { grid-template-columns:1fr auto 1fr; gap:8px; }.sync-divider:before,.sync-divider:after { width:100%; height:1px; }
}

@media (max-width:480px) {
  .topbar-actions { gap:6px; }.sync-status-button { width:38px; justify-content:center; padding:8px; }.sync-status-button span { display:none; }.mode-button { padding:8px 10px; font-size:12px; }.brand strong { font-size:13px; }.brand-tagline { font-size:8px; }.brand-mark { width:32px; height:32px; }
  .sync-link-actions,.sync-join-actions { grid-template-columns:1fr; }.install-panel { align-items:flex-start; flex-direction:column; }.install-panel button { width:100%; }
}

/* Daily calendar and rotating study plan */
.calendar-panel { background:var(--card); border-color:var(--line); }
.calendar-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
.calendar-heading h2 { margin-bottom:3px; }
.calendar-heading strong { color:var(--blue); font-size:14px; text-transform:capitalize; }
.calendar-heading>span { max-width:112px; color:var(--red); font-size:9px; font-weight:900; line-height:1.35; letter-spacing:.08em; text-align:right; }
.calendar-panel .week-bars { height:auto; display:grid; grid-template-columns:repeat(7,1fr); align-items:stretch; gap:6px; padding:24px 0 4px; }
.calendar-day { min-width:0; min-height:82px; padding:10px 4px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:12px; background:var(--card); color:var(--muted); }
.calendar-day span,.calendar-day small { font-size:9px; font-weight:800; }
.calendar-day strong { margin:3px 0; color:var(--text); font-size:20px; }
.calendar-day.today { border:2px solid var(--blue); background:var(--card); }
.calendar-day.complete { border-color:var(--line); background:var(--lime); }
.calendar-day.started:not(.today) { border-color:var(--line); background:var(--card); }
.calendar-panel p { margin:18px 0 0; }
.calendar-panel .calendar-study-note { padding:13px 14px; border-radius:12px; background:var(--card); border-left:4px solid var(--red); color:var(--text); font-size:12px; }
.calendar-sync-controls { margin-top:18px; padding-top:18px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr auto; gap:10px 12px; align-items:end; }
.calendar-sync-controls label span { display:block; margin-bottom:6px; color:var(--muted); font-size:11px; font-weight:800; }
.calendar-sync-controls input { width:100%; height:44px; padding:0 12px; border:1px solid var(--line); border-radius:11px; background:var(--card); color:var(--text); font-weight:900; }
.calendar-sync-controls input:focus { outline:3px solid rgba(7,95,207,.16); border-color:var(--blue); }
.calendar-sync-controls button { min-height:44px; padding:10px 16px; border:0; border-radius:999px; background:var(--blue); color:white; font-weight:900; white-space:nowrap; }
.calendar-sync-controls button:active { transform:translateY(1px); }
.calendar-sync-controls small { grid-column:1 / -1; color:var(--muted); font-size:10px; line-height:1.45; }

@media (max-width:700px) {
  .calendar-panel { padding:21px 16px; }
  .calendar-heading>span { display:none; }
  .calendar-panel .week-bars { gap:4px; margin:0 -5px; }
  .calendar-day { min-height:72px; border-radius:10px; padding:8px 2px; }
  .calendar-day strong { font-size:18px; }
  .calendar-day small { font-size:8px; }
  .calendar-sync-controls { grid-template-columns:1fr; }
  .calendar-sync-controls button { width:100%; white-space:normal; }
}

/* Child profile, custom rewards and future leagues */
.reward-bank { grid-template-columns:1.45fr .62fr .78fr; }
.point-wallet { min-width:0; padding:22px; display:flex; align-items:center; border-radius:var(--radius); background:var(--red); color:white; box-shadow:0 12px 30px rgba(181,19,36,.18); }
.point-wallet p,.point-wallet strong,.point-wallet span { display:block; }.point-wallet p { margin:0 0 5px; color:#ffe6e9; font-weight:800; }.point-wallet strong { font-size:42px; line-height:1; }.point-wallet span { margin-top:7px; color:#ffe6e9; font-size:10px; font-weight:800; line-height:1.35; }
.profile-sport-avatar { position:relative; min-height:290px; place-items:center; overflow:hidden; background:linear-gradient(145deg,var(--card),var(--card)); }
.profile-sport-avatar:not([hidden]) { display:grid; }.profile-sport-avatar span { font-size:112px; filter:drop-shadow(0 14px 18px rgba(8,42,104,.2)); transform:rotate(-7deg); }.profile-sport-avatar b { position:absolute; right:20px; bottom:10px; color:rgba(8,42,104,.16); font-size:126px; line-height:1; }
.generic-sport-mode .rink { background:linear-gradient(135deg,var(--card),var(--card)); }.generic-sport-mode .rink-line,.generic-sport-mode .goal { opacity:.18; }.generic-sport-mode .puck { width:48px; height:48px; border-radius:50%; background:var(--lime); border:7px solid var(--line); box-shadow:0 12px 24px rgba(8,42,104,.2); }

.league-preview { margin-top:44px; padding:30px 34px; display:grid; grid-template-columns:1fr auto; gap:28px; align-items:center; border-radius:var(--radius); background:var(--ink); color:white; overflow:hidden; position:relative; }
.league-preview:after { content:""; position:absolute; width:180px; height:180px; border:28px solid rgba(255,210,31,.12); border-radius:50%; right:120px; top:-100px; }
.league-preview h2 { margin:7px 0 8px; font-size:30px; }.league-preview p { max-width:680px; margin:0; color:#cfdef1; line-height:1.5; }.league-badge { color:var(--lime); font-size:10px; font-weight:900; letter-spacing:.12em; }
.league-score-preview { min-width:190px; padding:18px 20px; border-radius:14px; background:var(--lime); color:var(--text); position:relative; z-index:1; }.league-score-preview small,.league-score-preview strong,.league-score-preview span { display:block; }.league-score-preview small { font-size:8px; font-weight:900; letter-spacing:.08em; }.league-score-preview strong { margin:3px 0; font-size:44px; line-height:1; }.league-score-preview span { font-size:10px; font-weight:800; line-height:1.35; }

.parent-customization { margin-top:46px; }.customization-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:20px; }.profile-settings-panel,.points-settings-panel { min-width:0; padding:26px; border:1px solid var(--line); border-radius:var(--radius); background:var(--card); }
.settings-panel-heading { margin-bottom:20px; }.settings-panel-heading span,.parent-league-note>div>span { color:var(--red); font-size:9px; font-weight:900; letter-spacing:.1em; }.settings-panel-heading h3 { margin:5px 0 0; font-size:25px; letter-spacing:-.03em; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.form-field { display:block; }.form-field-wide { grid-column:1 / -1; }.form-field>span,.interest-picker legend { display:block; margin-bottom:7px; color:var(--text); font-size:11px; font-weight:900; }.form-field input,.form-field select { width:100%; min-height:46px; padding:0 12px; border:1px solid var(--line); border-radius:11px; background:var(--card); color:var(--text); font-weight:800; }.form-field input:focus,.form-field select:focus,.reward-editor-row input:focus { outline:3px solid rgba(7,95,207,.18); border-color:var(--blue); }.form-field small { display:block; margin-top:7px; color:var(--muted); font-size:10px; line-height:1.45; }
.interest-picker { margin:20px 0 0; padding:0; border:0; }.interest-options { display:flex; flex-wrap:wrap; gap:8px; }.interest-options label { position:relative; }.interest-options input { position:absolute; opacity:0; pointer-events:none; }.interest-options span { min-height:38px; padding:9px 12px; display:grid; place-items:center; border:1px solid var(--line); border-radius:999px; background:var(--card); color:var(--blue); font-size:11px; font-weight:900; cursor:pointer; }.interest-options input:checked+span { border-color:var(--blue); background:var(--blue); color:white; }.interest-options input:focus-visible+span { outline:3px solid rgba(7,95,207,.2); }
.settings-save-button { width:100%; min-height:46px; margin-top:20px; border:0; border-radius:999px; background:var(--blue); color:white; font-weight:900; }.settings-save-button:active { transform:translateY(1px); }.settings-status { min-height:17px; margin:9px 0 0; color:#a5f3cf; font-size:10px; font-weight:800; line-height:1.4; }
.reward-editor-heading { margin:19px 0 8px; display:flex; justify-content:space-between; gap:12px; }.reward-editor-heading b { font-size:13px; }.reward-editor-heading span { color:var(--muted); font-size:10px; text-align:right; }.reward-editor { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.reward-editor-row { min-width:0; min-height:68px; padding:10px 11px; display:grid; grid-template-columns:1fr 58px auto; gap:7px; align-items:center; border-radius:12px; background:var(--card); }.reward-editor-row>span { min-width:0; }.reward-editor-row b,.reward-editor-row small { display:block; }.reward-editor-row b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }.reward-editor-row small { margin-top:3px; color:var(--muted); font-size:8px; }.reward-editor-row input { width:58px; height:40px; padding:0 5px; border:1px solid var(--line); border-radius:9px; background:var(--card); color:var(--text); text-align:center; font-weight:900; }.reward-editor-row em { color:var(--muted); font-size:8px; font-style:normal; }
.parent-league-note { margin-top:20px; padding:24px 28px; display:grid; grid-template-columns:.72fr 1.28fr; gap:28px; align-items:center; border-left:7px solid var(--lime); border-radius:var(--radius); background:var(--card); }.parent-league-note h2 { margin:5px 0 0; font-size:25px; }.parent-league-note p { margin:0; color:var(--muted); line-height:1.55; }

@media (max-width:900px) {
  .reward-bank { grid-template-columns:1fr 1fr; }.reward-bank .minute-bank { grid-column:1 / -1; }.customization-grid { grid-template-columns:1fr; }
}

@media (max-width:700px) {
  .reward-bank { grid-template-columns:1fr 1fr; }.reward-bank .minute-bank { min-height:160px; }.point-wallet,.puck-wallet { min-height:142px; padding:15px; }.point-wallet strong { font-size:36px; }.puck-wallet { flex-direction:column; align-items:flex-start; gap:8px; }.puck-symbol { width:42px; }
  .league-preview { padding:24px 20px; grid-template-columns:1fr; }.league-preview h2 { font-size:27px; }.league-score-preview { min-width:0; width:100%; }.parent-customization { margin-top:38px; }.profile-settings-panel,.points-settings-panel { padding:21px 16px; }.form-grid { grid-template-columns:1fr; }.form-field-wide { grid-column:auto; }.reward-editor { grid-template-columns:1fr; }.parent-league-note { grid-template-columns:1fr; gap:10px; padding:22px 19px; }.parent-league-note p { font-size:13px; }
}

@media (max-width:370px) {
  .reward-bank { grid-template-columns:1fr; }.reward-bank .minute-bank { grid-column:auto; }.point-wallet,.puck-wallet { min-height:120px; }
}

/* Flexible family reward exchange */
.reward-shop { margin:0 0 38px; padding:28px; border-radius:var(--radius); background:linear-gradient(135deg,var(--ink) 0%,#075fcf 62%,#0b78eb 100%); color:white; box-shadow:0 16px 38px rgba(7,95,207,.22); overflow:hidden; position:relative; }
.reward-shop:after { content:""; position:absolute; width:190px; height:190px; right:-75px; top:-95px; border:34px solid rgba(255,210,31,.16); border-radius:50%; pointer-events:none; }
.reward-shop-heading { display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; position:relative; z-index:1; }
.reward-shop-heading>div>span { color:var(--lime); font-size:10px; font-weight:900; letter-spacing:.12em; }
.reward-shop-heading h2 { margin:6px 0 8px; font-size:30px; }
.reward-shop-heading p { max-width:650px; margin:0; color:#d5e8ff; line-height:1.45; }
.reward-shop-balance { min-width:142px; padding:15px 18px; border-radius:15px; background:var(--lime); color:var(--text); }
.reward-shop-balance small,.reward-shop-balance strong,.reward-shop-balance span { display:block; }
.reward-shop-balance small { font-size:8px; font-weight:900; letter-spacing:.09em; }
.reward-shop-balance strong { margin:2px 0; font-size:40px; line-height:1; }
.reward-shop-balance span { font-size:10px; font-weight:800; }
.reward-catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:22px; position:relative; z-index:1; }
.reward-catalog-card { min-width:0; padding:17px; display:grid; grid-template-columns:auto 1fr; gap:10px 12px; align-items:start; border-radius:16px; background:var(--card); color:var(--text); box-shadow:0 8px 22px rgba(3,25,65,.16); }
.reward-type-symbol { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:var(--card); color:var(--blue); font-size:20px; font-weight:900; }
.reward-catalog-card small { color:var(--red); font-size:8px; font-weight:900; letter-spacing:.06em; }
.reward-catalog-card h3 { margin:3px 0 5px; font-size:16px; }
.reward-catalog-card p { margin:0; color:var(--muted); font-size:11px; line-height:1.4; }
.reward-catalog-card a { grid-column:1 / -1; color:var(--blue); font-size:11px; font-weight:900; }
.reward-catalog-card button { grid-column:1 / -1; min-height:42px; border:0; border-radius:999px; background:var(--red); color:white; font-weight:900; }
.reward-catalog-card button:disabled { background:var(--card); color:#61738c; }
.empty-reward-catalog { grid-column:1 / -1; padding:22px; border:1px dashed rgba(255,255,255,.42); border-radius:15px; color:#d5e8ff; text-align:center; font-weight:800; }
.reward-request-history { margin-top:18px; position:relative; z-index:1; }
.reward-request-history h3 { margin:0 0 9px; font-size:16px; }
.child-reward-request { min-height:43px; padding:9px 13px; display:flex; justify-content:space-between; align-items:center; gap:12px; border-bottom:1px solid rgba(255,255,255,.14); }
.child-reward-request span { font-weight:800; }
.child-reward-request b { color:var(--lime); font-size:10px; text-align:right; }
.child-reward-request.rejected b { color:#ffd6dc; }
.auto-exchange-fields { margin-top:14px; padding:14px; display:grid; grid-template-columns:1fr 1fr; gap:10px; border-radius:14px; background:var(--card); }
.reward-catalog-manager { margin-top:16px; padding:15px; border-radius:15px; background:var(--card); border:1px solid var(--line); }
.reward-builder-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.reward-add-button { width:100%; min-height:44px; margin-top:12px; border:0; border-radius:999px; background:var(--red); color:white; font-weight:900; }
.parent-reward-catalog { display:grid; gap:7px; margin-top:10px; }
.empty-parent-catalog { margin:0; padding:13px; border:1px dashed var(--line); border-radius:11px; color:var(--muted); font-size:11px; text-align:center; }
.parent-reward-row { min-height:58px; padding:9px 10px; display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; border-radius:12px; background:var(--card); }
.parent-reward-row b,.parent-reward-row small { display:block; }
.parent-reward-row b { font-size:11px; }
.parent-reward-row small { margin-top:3px; color:var(--muted); font-size:9px; }
.parent-reward-row button { width:38px; height:38px; border:1px solid var(--line); border-radius:50%; background:var(--card); color:var(--red); font-size:22px; font-weight:900; }
.reward-request-list { display:grid; gap:12px; }
.reward-request-card { padding:20px; display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; border:1px solid var(--line); border-left:6px solid var(--lime); border-radius:var(--radius); background:var(--card); }
.reward-request-card span { color:var(--red); font-size:9px; font-weight:900; letter-spacing:.08em; }
.reward-request-card h3 { margin:4px 0 6px; }
.reward-request-card p { margin:0; color:var(--muted); line-height:1.45; }
.reward-request-card a { display:inline-block; margin-top:9px; color:var(--blue); font-size:12px; font-weight:900; }

@media (max-width:900px) {
  .reward-catalog-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width:700px) {
  .reward-shop { padding:22px 16px; margin-bottom:30px; }
  .reward-shop-heading { grid-template-columns:1fr; gap:15px; }
  .reward-shop-heading h2 { font-size:27px; }
  .reward-shop-balance { width:100%; display:grid; grid-template-columns:1fr auto auto; gap:7px; align-items:end; }
  .reward-shop-balance strong { font-size:32px; }
  .reward-catalog-grid { display:flex; overflow-x:auto; margin-right:-16px; padding:0 16px 12px 0; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .reward-catalog-grid::-webkit-scrollbar { display:none; }
  .reward-catalog-card { min-width:78vw; scroll-snap-align:start; }
  .child-reward-request { align-items:flex-start; flex-direction:column; gap:3px; }
  .child-reward-request b { text-align:left; }
  .auto-exchange-fields,.reward-builder-grid { grid-template-columns:1fr; }
  .reward-request-card { grid-template-columns:1fr; gap:14px; padding:18px 16px; }
  .reward-request-card .review-actions { width:100%; }
}

/* Фото ребёнка в родительских настройках */
.photo-field { margin:18px 0 0; display:grid; gap:9px; }
.photo-field-title { font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.photo-field-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.photo-preview { width:56px; height:56px; flex:none; border-radius:50%; overflow:hidden; display:grid; place-items:center; background:var(--card); border:1px solid var(--line); font-size:24px; }
.photo-preview img { width:100%; height:100%; object-fit:cover; }
.photo-field input[type="file"] { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.photo-upload-button { padding:11px 17px; border-radius:999px; background:var(--blue); color:white; font-weight:900; font-size:12px; cursor:pointer; }
.photo-remove-button { padding:11px 15px; border-radius:999px; border:1px solid var(--line); background:var(--card); color:var(--muted); font-weight:800; font-size:12px; }
.photo-field small { color:var(--muted); font-size:11px; line-height:1.45; }

/* Экран первого запуска */
.onboarding-modal .form-grid { margin:20px 0 0; }
.onboarding-modal .interest-picker { margin:16px 0 20px; }

/* Второстепенная кнопка на экране первого запуска */
.link-button { margin-top:10px; padding:12px; border:0; background:none; color:var(--blue); font-weight:800; font-size:13px; text-decoration:underline; cursor:pointer; }

/* Первый шаг запуска: чей это телефон */
.role-choice { display:grid; gap:12px; margin-top:22px; }
.secondary-button { padding:15px; border-radius:999px; border:2px solid var(--blue); background:var(--card); color:var(--blue); font-weight:900; font-size:15px; cursor:pointer; }
#onboardStepChild .form-field { margin-top:20px; }
#onboardStepChild .primary-button { margin-top:16px; }

/* Панель «отправить несколько заданий сразу» */
.ready-to-send { margin-top:16px; padding:16px 18px; border-radius:16px; background:var(--card); border:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.ready-to-send b { display:block; font-size:15px; color:var(--text); }
.ready-to-send small { display:block; margin-top:3px; color:var(--muted); font-size:11px; line-height:1.4; }
.ready-to-send .primary-button { flex:none; }
.task-step-progress.ready { color:#a5f3cf; }

/* Разбор выбранного дня в календаре */
button.calendar-day { border:0; font:inherit; cursor:pointer; text-align:center; }
button.calendar-day:disabled { cursor:default; opacity:.55; }
button.calendar-day.selected { outline:2px solid var(--blue); outline-offset:2px; }
.calendar-day-details { margin:14px 0 4px; padding:16px 18px; border-radius:16px; background:var(--card); border:1px solid var(--line); }
.calendar-day-heading b { display:block; font-size:15px; color:var(--text); }
.calendar-day-heading small { display:block; margin-top:3px; color:var(--muted); font-size:11px; }
.calendar-day-tasks { list-style:none; margin:12px 0 0; padding:0; display:grid; gap:8px; }
.calendar-task { display:flex; gap:11px; align-items:flex-start; font-size:13px; color:var(--text); }
.calendar-task b { flex:none; width:18px; text-align:center; color:var(--muted); font-size:14px; }
.calendar-task.done b { color:#a5f3cf; }
.calendar-task small { display:block; color:var(--muted); font-size:11px; margin-top:1px; }
.calendar-task.empty { color:var(--muted); }

/* Настройки родителя прячутся за шестерёнку */
body:not(.parent-settings-open) .parent-setting { display:none; }
.parent-hero-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.settings-toggle { border:1px solid rgba(255,255,255,.5); background:rgba(255,255,255,.14); color:inherit; border-radius:999px; padding:8px 14px; font-weight:800; font-size:12px; cursor:pointer; }
.settings-toggle[aria-expanded="true"] { background:var(--card); color:var(--blue); border-color:var(--line); }
.parent-hero #goToReview { margin-top:16px; }
.plan-legend { list-style:none; margin:14px 0 0; padding:0; display:grid; gap:7px; }
.plan-legend li { font-size:12px; color:var(--muted); line-height:1.45; }
.plan-legend b { color:var(--text); }

/* Несколько фото на одно задание */
.task-proof-preview { flex-wrap:wrap; }
.proof-thumb { position:relative; margin:0; width:82px; }
.proof-thumb img { width:82px; height:66px; object-fit:cover; border-radius:10px; border:1px solid var(--line); }
.proof-thumb figcaption { margin-top:3px; font-size:9px; color:var(--muted); line-height:1.3; }
.proof-thumb button { position:absolute; top:-7px; right:-7px; width:23px; height:23px; border-radius:50%; border:0; background:var(--red); color:white; font-size:15px; line-height:1; cursor:pointer; }
.review-proof-list { display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.review-proof-list .review-proof { margin:0; }


/* ─────────── Шаг 02: настоящий спорт в игровом сезоне ─────────── */

.shot-accuracy {
  margin: 14px 0 4px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 14px;
  background: rgba(255, 255, 255, .06);
  display: grid;
  gap: 4px;
}
.shot-accuracy-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.shot-accuracy-head span { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; opacity: .75; }
.shot-accuracy-head b { font-size: 28px; font-variant-numeric: tabular-nums; }
.shot-accuracy-breakdown { font-size: 12.5px; opacity: .75; }
.shot-accuracy-hint { font-size: 12.5px; opacity: .9; }
.shot-accuracy-precise { font-size: 12.5px; opacity: .75; }

.real-sport-section { display: grid; gap: 16px; }
.real-sport-copy p { max-width: 60ch; }
.real-sport-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.real-sport-stats div {
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .06);
  display: grid;
  gap: 2px;
}
.real-sport-stats small { font-size: 11px; letter-spacing: .1em; opacity: .7; }
.real-sport-stats b { font-size: 24px; font-variant-numeric: tabular-nums; }

.real-event-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.real-event {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .05);
  border-left: 3px solid rgba(255, 255, 255, .25);
}
.real-event b { display: block; font-size: 15px; }
.real-event small { display: block; font-size: 12.5px; opacity: .75; }
.real-event em { display: block; font-style: normal; font-size: 12.5px; opacity: .85; margin-top: 3px; }
.real-event--win { border-left-color: var(--line); }
.real-event--draw { border-left-color: var(--line); }
.real-event--loss { border-left-color: #b5644f; }
.real-event--training { border-left-color: var(--line); }
.real-event--empty { border-left-color: transparent; opacity: .75; font-size: 13.5px; }

.record-block { display: grid; gap: 10px; }
.record-note { font-size: 13px; opacity: .78; max-width: 58ch; }
.record-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.record {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 2px 12px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .05);
}
.record b { font-size: 14.5px; }
.record strong { grid-column: 2; grid-row: 1 / span 2; font-size: 26px; font-variant-numeric: tabular-nums; }
.record strong span { font-size: 13px; opacity: .7; }
.record small { font-size: 12.5px; opacity: .75; }
.record--empty small { grid-column: 1; }
.record-trend { grid-column: 1 / -1; width: 100%; height: 28px; margin-top: 4px; }
.record-trend polyline { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: .8; }

.record-form, .real-sport-form-grid { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.real-sport-form-grid--nested { width: 100%; }
.real-sport-form-note { font-size: 13px; opacity: .78; max-width: 60ch; }
.field { display: grid; gap: 4px; flex: 1 1 180px; }
.field--narrow { flex: 0 1 120px; }
.field--wide { flex: 1 1 100%; }
.field span { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; opacity: .7; }
.field input, .field select {
  padding: 9px 11px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, .22);
  background: rgba(255, 255, 255, .07);
  color: inherit;
  font: inherit;
  min-height: 42px;
}

.season-poster-button { justify-self: start; }
.season-poster { display: grid; gap: 12px; }
.poster-kicker { font-size: 12px; letter-spacing: .14em; opacity: .7; }
.season-poster h3 { margin: 0; font-size: 26px; }
.season-poster h4 { margin: 6px 0 0; font-size: 15px; }
.poster-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin: 0; }
.poster-grid div { padding: 9px 11px; border-radius: 11px; background: rgba(255, 255, 255, .06); }
.poster-grid dt { font-size: 11.5px; letter-spacing: .06em; opacity: .7; }
.poster-grid dd { margin: 2px 0 0; font-size: 22px; font-variant-numeric: tabular-nums; }
.poster-records { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.poster-records li { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.poster-empty { font-size: 13.5px; opacity: .75; }

@media (max-width: 480px) {
  .real-sport-stats { grid-template-columns: 1fr; }
  .record strong { font-size: 22px; }
}

/* Убрать запись о матче может только родитель. */
body:not(.parent-mode) [data-remove-real] { display: none; }

/* Серия дней: огонёк под заголовком */
.streak-badge { display:inline-flex; align-items:center; gap:7px; margin:10px 0 2px; padding:7px 13px 7px 10px; border-radius:999px; background:var(--card); border:1px solid var(--line); color:#ffd699; font-weight:900; font-size:13px; }
.streak-badge span { font-size:16px; line-height:1; filter:grayscale(1); opacity:.55; }
.streak-badge b { font-size:16px; }
.streak-badge small { font-size:11px; font-weight:700; opacity:.85; }
.streak-badge.hot { background:var(--card); border-color:var(--line); color:#ffc099; }
.streak-badge.hot span { filter:none; opacity:1; animation:flame .9s ease-in-out infinite alternate; }
.streak-badge.blazing { background:var(--ink); border-color:var(--text); color:var(--lime); }
@keyframes flame { from { transform:scale(1) rotate(-4deg); } to { transform:scale(1.18) rotate(5deg); } }

/* Уровень игрока на карточке */
.player-level { display:block; font-style:normal; font-size:9px; letter-spacing:.14em; font-weight:900; color:var(--lime); margin-bottom:4px; }
.level-bar { position:absolute; left:28px; right:28px; bottom:14px; height:4px; border-radius:4px; background:rgba(255,255,255,.18); overflow:hidden; }
.level-bar i { display:block; height:100%; width:0; background:var(--lime); border-radius:4px; transition:width .6s ease; }
.player-card[data-level="3"] { box-shadow:0 0 0 3px rgba(255,210,31,.55), var(--shadow); }
.player-card[data-level="4"], .player-card[data-level="5"] { box-shadow:0 0 0 3px var(--lime), 0 0 26px rgba(255,210,31,.45), var(--shadow); }

/* Шкала броска: остановить ползунок в зелёной зоне */
.shot-meter { position:relative; height:16px; margin:14px 0 12px; border-radius:999px; overflow:hidden; border:2px solid rgba(255,255,255,.55); background:linear-gradient(90deg,#e5424b 0 var(--post-l,20%),var(--card) var(--post-l,20%) var(--zone-l,30%),var(--card) var(--zone-l,30%) var(--zone-r,70%),var(--card) var(--zone-r,70%) var(--post-r,80%),#e5424b var(--post-r,80%) 100%); }
.shot-marker { position:absolute; top:-4px; bottom:-4px; width:5px; left:0; background:var(--card); border-radius:3px; box-shadow:0 0 0 2px var(--ink); will-change:left; }
.shot-button.armed { background:var(--ink); animation:armed-pulse .7s ease-in-out infinite alternate; }
@keyframes armed-pulse { from { transform:scale(1); } to { transform:scale(1.03); } }

@media (max-width:700px) {
  .streak-badge { margin-top:8px; }
  .level-bar { display:none; }
  .player-level { font-size:8px; margin-bottom:3px; }
}

/* Вызов недели */
.challenge-card { margin:12px 0 4px; padding:14px 16px; border-radius:16px; background:var(--ink); color:white; }
.challenge-card.done { background:linear-gradient(135deg,#e85a2a,var(--card)); }
.challenge-head { display:flex; align-items:center; gap:8px; }
.challenge-head span { font-size:18px; line-height:1; }
.challenge-head b { font-size:14px; flex:1; min-width:0; overflow-wrap:anywhere; }
.challenge-head small { font-size:10px; font-weight:800; letter-spacing:.08em; opacity:.75; white-space:nowrap; }
.challenge-bar { height:8px; margin:10px 0 8px; border-radius:8px; background:rgba(255,255,255,.18); overflow:hidden; }
.challenge-bar i { display:block; height:100%; width:0; background:var(--lime); border-radius:8px; transition:width .6s ease; }
.challenge-progress { margin:0; font-size:12px; opacity:.92; }
.challenge-progress b { color:var(--lime); }
.challenge-section .challenge-active { padding:16px 18px; border-radius:16px; background:var(--ink); color:white; margin-bottom:14px; }
.challenge-section .challenge-active.done { box-shadow:0 0 0 3px var(--lime); }
.challenge-status { margin:10px 0 0; font-size:12px; font-weight:800; color:var(--lime); }
.challenge-actions { display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.challenge-form .settings-save-button { margin-top:12px; }

/* Золотая шайба */
.golden-note { display:block; margin-top:4px; font-size:11px; font-weight:900; color:#ffd699; }
#taskList .golden h3:after, .review-card.golden h3:after { content:" ✨"; }
#taskList .golden { box-shadow:0 0 0 2px var(--lime); }

/* Иллюстрация вида спорта на карточке игрока */
.profile-sport-avatar img { width:100%; height:100%; object-fit:contain; padding:6px 10px; position:absolute; inset:0; mix-blend-mode:multiply; }
.profile-sport-avatar img[hidden] { display:none; }

/* Направление A «Стадион»: тёмная арена, лаймовые акценты, тонкие линии */
h1, h2, .brand strong, .player-name, .minute-count strong, .stat-card strong, .points-wallet strong, .puck-wallet strong { font-family:'Unbounded', 'Nunito', sans-serif; font-weight:700; letter-spacing:-.01em; }
h1 { font-size:clamp(28px, 4.4vw, 60px); line-height:1.04; }
.kicker, .round-label, .modal-step, h1 em, .brand strong, .task-reward, .streak-badge.blazing { color:var(--lime); }
.brand-tagline { color:var(--text) !important; }
.brand-mark { background:var(--card-strong); border:1px solid var(--line); }
.task, .stat-card, .review-card, .activity-card, .challenge-card, .ready-to-send, .calendar-day-details, .parent-summary > div, .control-panel, .week-panel, .modal, .minute-bank, .puck-wallet, .points-wallet, .install-panel, .rest-day-card, .family-sync-card, .reward-shop { border:1px solid var(--line); }
.player-card { background:var(--card); border:1px solid var(--line); }
.player-card:before { background:var(--lime); }
.profile-sport-avatar { background:radial-gradient(circle at 50% 40%, #2c4fa3, var(--card) 70%); }
.profile-sport-avatar img { padding:16px; border-radius:26px; mix-blend-mode:normal; }
.primary-button, .shot-button, .accept-button, .task-button, .settings-save-button { background:var(--lime); color:var(--ink); border:0; box-shadow:0 6px 18px rgba(200,255,62,.22); }
.secondary-button { background:var(--card-strong); color:var(--text); border:1px solid var(--line); }
.mode-switch { background:var(--card); border:1px solid var(--line); }
.mode-button { color:var(--muted); }
.mode-button.active { background:var(--lime); color:var(--ink); box-shadow:none; }
.topbar { background:rgba(11,31,77,.92); border-bottom:1px solid var(--line); }
.mobile-nav, nav.mobile-nav { background:var(--card); border:1px solid var(--line); box-shadow:0 10px 30px rgba(2,8,30,.5); }
.streak-badge { background:var(--card-strong); color:var(--gold); border:1px solid var(--line); }
.streak-badge.hot { background:var(--card-strong); color:var(--gold); border-color:var(--gold); }
.streak-badge.blazing { background:var(--ink); border-color:var(--lime); }
.task.done .task-index, .calendar-day.complete { background:var(--lime); color:var(--ink); }
.challenge-card.done { background:linear-gradient(135deg, #1f8a5a, #2fbf7a); }
.toast, #toast { background:var(--lime); color:var(--ink); border:0; }
.modal-backdrop { background:rgba(2,8,30,.7); }
input, select, textarea { background:var(--card) !important; color:var(--text) !important; border-color:var(--line) !important; }
.season-section, .timer-dock { border:1px solid var(--line); }
.parent-summary { gap:12px; }
.parent-summary > div { border-radius:14px; }
/* Лаймовые поля читаются только тёмным текстом */
.puck-wallet, .puck-wallet *, .league-score-preview, .league-score-preview *, .reward-shop-balance, .reward-shop-balance *, .calendar-day.complete, .install-panel button, .family-sync-card button, .timer-dock button, .device-request-actions .approve-device-request { color:var(--ink); }
.accept-button { padding:12px 20px; min-height:44px; border-radius:999px; font-weight:800; }
.task-index { color:var(--muted); }
.task.pending .task-index { color:var(--red); }
/* Картинке спорта нужен рост: на телефоне карточка была сжата до одной строки */
.player-card { grid-template-rows:auto !important; min-height:0 !important; }
.profile-sport-avatar { min-height:230px !important; }
.player-card > * { align-self:stretch; height:auto !important; max-height:none !important; min-height:0; }
.player-card > .profile-sport-avatar { min-height:230px !important; }
.profile-sport-avatar img { padding:10px; border-radius:22px; }
@media (max-width:760px) { .player-card { grid-template-columns:1fr 1fr !important; } }

/* Focused parent workspace and child disciplines. */
.parent-page[hidden] { display:none !important; }
.parent-nav { display:flex; gap:8px; padding:8px; margin:24px 0; background:var(--card); border:1px solid var(--line); border-radius:18px; }
.parent-nav button { flex:1; padding:13px 10px; border:0; border-radius:12px; background:transparent; color:var(--muted); font:inherit; font-weight:800; cursor:pointer; }
.parent-nav button[aria-pressed="true"] { background:var(--blue); color:white; }
.parent-nav button:focus-visible,.discipline-card:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.parent-page > :first-child { margin-top:24px; }
.parent-page > .calendar-panel,.parent-page > .control-panel { margin-top:24px; }
.parent-page .customization-grid { align-items:start; }
.discipline-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.discipline-card { display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0; padding:22px; border:1px solid var(--line); border-radius:20px; background:var(--card); color:var(--text); text-align:left; font:inherit; cursor:pointer; transition:transform .15s,border-color .15s; }
.discipline-card:hover { transform:translateY(-3px); border-color:var(--blue); }
.discipline-icon { font-size:30px; }
.discipline-card b { font-size:18px; }
.discipline-card > span:not(.discipline-icon) { color:var(--muted); font-size:14px; }
.discipline-card small { margin-top:auto; padding-top:10px; color:var(--blue); font-weight:800; }
#disciplineAge { white-space:nowrap; color:var(--muted); }
@media(max-width:600px) {
 .parent-nav { gap:2px; padding:4px; }
 .parent-nav button { font-size:12px; padding:12px 5px; }
 .discipline-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .discipline-card { padding:16px; }
 .discipline-card b { font-size:16px; }
}

.knowledge-lesson .answer-grid { grid-template-columns:1fr; }
.knowledge-lesson .answer-button { font-size:17px; padding:12px 16px; overflow-wrap:anywhere; }

/* Animated sport-specific arena, touch and keyboard controls. */
.season-section { grid-template-columns:minmax(260px,.85fr) minmax(350px,1.15fr); align-items:stretch; }
.sport-arena { background:#0b1730 !important; border:0; min-width:0; overflow:hidden; border-radius:24px; display:flex; flex-direction:column; }
.sport-arena:before,.sport-arena:after { content:none; }
.arena-top { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:20px 22px 0; }
.arena-top span { color:#829ab8; font-size:10px; letter-spacing:.16em; }.arena-top b { color:var(--arena-accent); font-size:14px; }
.arena-canvas { display:block; width:100%; height:auto; aspect-ratio:760/560; }
.arena-feedback { min-height:48px; padding:8px 22px; font-weight:800; text-align:center; color:#b8d0e4; font-size:15px; }
.arena-feedback[data-result="success"] { color:#9cf0c6; }.arena-feedback[data-result="miss"] { color:#ffcf96; }
.arena-controls { padding:0 22px 24px; margin-top:auto; }.arena-aim,.arena-directions { display:flex; gap:10px; }
.arena-aim button,.arena-directions button { flex:1; min-height:48px; border:1px solid #415977; border-radius:12px; background:#172b49; color:#eaf4ff; font:800 15px Nunito,sans-serif; cursor:pointer; touch-action:manipulation; }
.arena-aim button[aria-pressed="true"],.arena-directions button.expected { color:#14243d; background:var(--arena-accent); border-color:var(--arena-accent); }
.arena-directions button { min-height:60px; font-size:28px; }.arena-controls .shot-button { width:100%; margin-top:14px; min-height:52px; touch-action:manipulation; background:var(--arena-accent); color:#12223a; }
.arena-controls button:disabled { opacity:.45; cursor:default; }.arena-controls button:focus-visible { outline:3px solid white; outline-offset:3px; }
.arena-instruction { color:#ccdaeb; font-size:14px; line-height:1.5; margin:15px 0 8px; }.arena-progress { color:#93aeca; font-size:12px; margin:0; }
@media(max-width:850px) {.season-section { grid-template-columns:1fr; }.sport-arena { border-radius:18px; }.season-copy { padding:25px 22px; }.arena-controls { padding:0 16px 20px; }.arena-top { padding:18px 16px 0; }}

.install-guide { margin:18px 0 24px; border:1px solid #466385; border-radius:16px; background:#132b49; color:#ecf5ff; }
.install-guide summary { display:flex; align-items:center; gap:14px; padding:16px 20px; cursor:pointer; list-style:none; }
.install-guide summary::-webkit-details-marker { display:none; }.install-guide summary:after { content:'+'; margin-left:auto; font-size:24px; }.install-guide[open] summary:after { content:'−'; }
.install-guide summary > span:first-child { font-size:28px; color:#8bdac5; }.install-guide summary b,.install-guide summary small { display:block; }.install-guide summary small { margin-top:3px; color:#afc6dd; }
.install-guide summary:focus-visible { outline:3px solid #8bdac5; border-radius:16px; }
.install-guide-body { padding:0 20px 20px; }.install-platforms { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.install-platforms h3 { font-size:17px; }.install-platforms ol { padding-left:20px; }.install-platforms li { margin:8px 0; line-height:1.55; }.install-browser-note,#installHelp { color:#c1d2e5; line-height:1.55; }#installPreviewNote { color:#f5ce91; }
@media(max-width:600px){.install-platforms { grid-template-columns:1fr; gap:0; }.install-guide summary { padding:14px; }.install-guide-body { padding:0 14px 16px; }}

#rewardsSection:has(.hockey-locker:not([hidden])) { display:block; }
.hockey-locker { margin-top:24px; }.jersey-equipped { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px; background:linear-gradient(125deg,#123d76,#102342); border:1px solid #42658e; border-radius:18px; }.jersey-equipped span { font-size:10px; color:#a9c9eb; letter-spacing:.14em; }.jersey-equipped h3 { margin:8px 0; }.jersey-equipped p { font-size:13px; color:#d0deed; }.jersey-equipped small { color:#f4cf85; }.jersey-equipped button { padding:12px; border:1px solid #466b99; background:#152f51; color:#d6e8ff; border-radius:10px; cursor:pointer; }.jersey-equipped button:disabled { opacity:.65; cursor:default; }
.jersey-collection { display:grid; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:14px; margin-top:20px; }.jersey-card { min-width:0; border:1px solid #385475; border-radius:19px; padding:18px; background:radial-gradient(ellipse at 50% 15%,#24446d,#11233e 60%); }.jersey-card.is-equipped { border:2px solid var(--jersey-accent); padding:17px; box-shadow:0 0 25px #568fc522; }.jersey-card-head { display:flex; justify-content:space-between; align-items:center; color:var(--jersey-accent); font-size:11px; text-transform:uppercase; }.jersey-card-head b { font-size:27px; }.jersey-card-head small { font-size:9px; }.jersey-art { width:100%; max-height:210px; filter:drop-shadow(0 10px 14px #030e2690); }.is-locked .jersey-art { opacity:.5; filter:saturate(.3); }.jersey-card h3 { font-size:16px; margin:10px 0 6px; }.jersey-card>p { font-size:11px; color:#a6bfd7; min-height:30px; }.jersey-stats { display:grid; gap:8px; }.jersey-stat { display:grid; grid-template-columns:1fr auto; gap:4px; font-size:11px; color:#c9d9eb; }.jersey-stat i { grid-column:1/-1; height:4px; border-radius:4px; background:linear-gradient(to right,var(--jersey-accent) var(--stat),#263d58 var(--stat)); }.jersey-card>button { margin-top:18px; width:100%; min-height:43px; background:var(--jersey-accent); color:#09203a; border:0; border-radius:10px; font:800 12px Nunito,sans-serif; cursor:pointer; }.jersey-card>button:disabled { cursor:default; }.is-locked>button { background:#21364f; color:#b2c2d4; }.jersey-disclaimer,.jersey-rules { font-size:12px; line-height:1.6; color:#a5bdd5; }.jersey-rules summary { cursor:pointer; }.arena-equipment { color:#9bbdec; font-size:12px; margin:12px 0 0; }
@media(max-width:600px){.jersey-equipped { display:block; padding:18px; }.jersey-equipped button { margin-top:14px; }.jersey-collection { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.jersey-card { padding:12px; }.jersey-card.is-equipped { padding:11px; }.jersey-card h3 { min-height:38px; }.jersey-art { max-height:175px; }}

.jersey-next-collection { position:relative; padding:24px; margin:22px 0; border:1px dashed #7487a3; border-radius:18px; background:linear-gradient(120deg,#192c48,#101c32); }.jersey-next-collection>span { font-size:10px; letter-spacing:.12em; color:#9ab0cc; }.jersey-next-collection h3 { margin:10px 0; font-size:21px; }.jersey-next-collection p { color:#b1c3d9; font-size:13px; margin-bottom:30px; }.jersey-next-collection>b { position:absolute; right:22px; bottom:16px; padding:6px 12px; border-radius:20px; background:#2a3f5c; font-size:12px; color:#d0dbea; }

.jersey-series {grid-column:1/-1;padding:20px 0 4px;}
.jersey-series h3 {margin:0 0 6px;font-size:23px;}
.jersey-series p,.jersey-club {color:#a5bdd5;font-size:13px;}
.jersey-series p {margin:0;}

.my-team {padding:26px;border-radius:24px;background:var(--card);border:1px solid var(--line);margin:24px 0;color:var(--text)}.team-heading {display:flex;justify-content:space-between;gap:16px}.team-heading h2 {font-size:30px;margin:8px 0}.team-heading span,.team-overview small {font-size:11px;letter-spacing:1px;color:var(--muted)}.team-badge {display:grid;place-content:center;text-align:center;background:var(--ink);color:var(--lime);border-bottom:7px solid var(--red);border-radius:12px;width:82px;min-width:82px;height:90px;font-size:22px;font-weight:800}.team-badge small {font-size:14px;color:var(--text)}.team-badge[data-length=medium] {font-size:16px;width:96px;min-width:96px}.team-badge[data-length=long] {font-size:12px;width:110px;min-width:110px;letter-spacing:.02em}.team-overview {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.team-overview article {padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--card-strong)}.team-overview h3 {font-size:18px}.team-overview p,.team-source {font-size:13px;line-height:1.6;color:var(--muted)}.team-official {color:var(--lime);font-weight:800}.team-lists {display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.team-lists summary {font-weight:800;cursor:pointer}.team-lists ul,.team-parent-matches {padding:0;list-style:none}.team-lists li,.team-parent-matches li {padding:12px 0;border-bottom:1px solid var(--line)}.team-lists li span,.team-lists li small {display:block;margin-top:6px}.team-lists a {display:inline-block;font-size:12px;margin-top:8px;color:var(--lime)}.team-match-form {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.team-match-form .field,.team-standing-form .field {display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--muted)}.team-standing-form {display:flex;align-items:end;gap:12px}.team-parent-matches button {margin:6px 8px 0 0}.team-match-form button,.team-standing-form button,.team-parent-matches button {min-height:40px;border-radius:9px;border:1px solid var(--line);background:var(--card-strong);color:var(--text);padding:8px 12px;cursor:pointer;font-weight:800}.team-parent-matches button:disabled {opacity:.55;cursor:default}@media(max-width:650px){.team-overview,.team-lists,.team-match-form {grid-template-columns:1fr}.my-team {padding:18px}.team-heading h2 {font-size:25px}}

.sport-arena[data-sport=hockey] .arena-canvas,.sport-arena[data-sport=football] .arena-canvas {touch-action:none;cursor:crosshair}.arena-canvas:focus-visible {outline:3px solid #e5bb57;outline-offset:3px}

/* ---- Телефон: экраны, крупные цели для пальца, читаемый мелкий текст ---- */
button, [role="button"], .mobile-nav button, .mode-button, .task-button { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
@media (max-width:700px) {
  .mobile-off { display:none !important; }
  /* Секции одного экрана идут колонкой с ровным шагом; арена на «Матче» первая, правила — последними. */
  #childView.active-view { display:flex; flex-direction:column; gap:26px; }
  #childView > [data-mobile-page] { margin-top:0 !important; margin-bottom:0 !important; }
  #childView > .game-rules { order:20; }
  #childView > #realSportSection { order:10; }
  body { padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
  .mobile-nav { bottom:calc(8px + env(safe-area-inset-bottom)); height:66px; }
  .mobile-nav button { font-size:11px; color:var(--text); }
  .mobile-nav button span { font-size:10px; }
  .mobile-nav button[aria-pressed="true"] { background:rgba(200,255,62,.14); color:var(--lime); }
  .timer-dock { bottom:calc(84px + env(safe-area-inset-bottom)); }
  .mode-switch { padding:3px; }
  .mode-button { padding:10px 12px; min-height:40px; }
  .brand { min-height:40px; }
  .brand-tagline { font-size:9px; }
  input:not([type="range"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea { font-size:16px; min-height:44px; }
  .player-meta span { font-size:9px; }
  .player-level { font-size:9px; }
  .gear small, .season-stats small, .reward-shop-balance small, .reward-catalog-card small { font-size:10px; }
  .season-poster-button, .ghost-button, a.team-official { min-height:40px; display:inline-flex; align-items:center; }
  .view { padding-bottom:calc(30px + env(safe-area-inset-bottom)); }
}

/* Задание внутри карточки и ответы для родителя */
.task-exercise { margin:0 0 16px; padding:14px 16px; border-radius:14px; background:var(--card-strong); border:1px solid var(--line); }
.exercise-lead { margin:0 0 8px; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--lime); }
.exercise-list { margin:0; padding-left:22px; display:grid; gap:8px; font-size:16px; line-height:1.45; }
.exercise-list b { color:var(--lime); font-weight:800; }
.exercise-list small { display:block; color:var(--muted); font-size:12px; }
.review-answers { margin:10px 0 4px; padding:10px 14px; border-radius:12px; background:var(--card-strong); border:1px solid var(--line); }
.review-answers summary { cursor:pointer; font-weight:800; }
.review-answers .exercise-list { margin-top:8px; font-size:14px; }

/* Семейный чат */
.chat-button { margin:8px 0 14px; padding:10px 16px; border-radius:999px; border:1px solid var(--line); background:var(--card-strong); color:var(--text); font-weight:800; display:inline-flex; align-items:center; gap:8px; min-height:42px; }
.chat-unread { min-width:22px; height:22px; padding:0 6px; border-radius:999px; background:var(--red); color:#fff; font-size:12px; display:inline-grid; place-items:center; }
.chat-modal { display:flex; flex-direction:column; max-height:min(86vh, 720px); }
.chat-note { margin:0 0 10px; color:var(--muted); font-size:13px; }
.chat-list { flex:1; min-height:220px; overflow-y:auto; display:flex; flex-direction:column; gap:8px; padding:6px 2px; }
.chat-message { max-width:86%; padding:9px 12px; border-radius:14px; background:var(--card-strong); border:1px solid var(--line); }
.chat-message.own { align-self:flex-end; background:var(--lime); color:var(--ink); border-color:transparent; }
.chat-message small { display:block; font-size:10px; opacity:.7; margin-bottom:3px; }
.chat-message p { margin:0; font-size:15px; line-height:1.4; overflow-wrap:anywhere; }
.chat-message.kind-task { border-left:4px solid var(--red); }
.chat-message.own.kind-task { border-left-color:var(--ink); }
.chat-task-link { margin-top:6px; padding:6px 10px; border-radius:999px; border:0; background:var(--ink); color:var(--lime); font-weight:800; font-size:12px; }
.chat-empty { color:var(--muted); text-align:center; padding:30px 0; }
.chat-quick { display:flex; gap:6px; flex-wrap:wrap; margin:10px 0 8px; }
.chat-quick button { padding:8px 12px; border-radius:999px; border:1px solid var(--line); background:var(--card); color:var(--text); font-weight:700; font-size:13px; min-height:38px; }
.chat-form { display:flex; gap:8px; }
.chat-form input { flex:1; min-width:0; padding:10px 12px; border-radius:12px; }
.chat-form .accept-button { flex:none; }

/* Фото в чате */
.chat-photo-button { flex:none; width:44px; height:44px; display:grid; place-items:center; border-radius:12px; border:1px solid var(--line); background:var(--card); font-size:20px; cursor:pointer; }
.chat-photo-button input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.chat-photo { display:block; margin:4px 0 6px; }
.chat-photo img { display:block; max-width:100%; max-height:240px; border-radius:10px; object-fit:cover; }

/* Голосовые в чате */
.chat-voice-button { flex:none; min-width:44px; height:44px; padding:0 8px; display:inline-flex; align-items:center; justify-content:center; gap:6px; border-radius:12px; border:1px solid var(--line); background:var(--card); color:var(--text); font-size:20px; cursor:pointer; }
.chat-voice-button.recording { background:var(--red); border-color:var(--red); color:#fff; animation:voice-pulse 1s ease-in-out infinite; }
.chat-voice-button b { font-size:13px; font-weight:800; }
@keyframes voice-pulse { 0%,100% { box-shadow:0 0 0 0 rgba(255,90,106,.5); } 50% { box-shadow:0 0 0 8px rgba(255,90,106,0); } }
.chat-voice { display:flex; align-items:center; gap:10px; width:min(100%, 260px); min-width:180px; margin:4px 0 2px; cursor:pointer; }
.chat-voice-play { flex:none; width:40px; height:40px; border-radius:50%; border:0; background:var(--ink); color:var(--lime); font-size:15px; font-weight:800; display:grid; place-items:center; cursor:pointer; }
.chat-message.own .chat-voice-play { background:var(--ink); color:var(--lime); }
.chat-message.theirs .chat-voice-play { background:var(--lime); color:var(--ink); }
.chat-voice-bar { flex:1; height:6px; border-radius:999px; background:rgba(127,127,127,.35); overflow:hidden; }
.chat-voice-bar i { display:block; height:100%; width:0; background:currentColor; border-radius:999px; transition:width .25s linear; }
.chat-voice-time { flex:none; font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; min-width:34px; text-align:right; }
.chat-voice.playing .chat-voice-play { animation:voice-pulse 1s ease-in-out infinite; }
@media (max-width:700px) { .chat-form { flex-wrap:wrap; } .chat-form input { flex:1 1 100%; order:-1; } }

.chat-hint { margin:10px 0 0; padding:10px 12px; border-radius:12px; background:var(--card-strong); border:1px solid var(--gold); color:var(--text); font-size:13px; line-height:1.45; }

/* Где ребёнок */
.where-card .section-heading p { max-width: 60ch; }
.where-map { position: relative; height: 220px; overflow: hidden; border-radius: 16px; background: #e6e1d5; margin: 12px 0; }
.where-map img { position: absolute; width: 256px; height: 256px; max-width: none; user-select: none; pointer-events: none; }
.where-pin { position: absolute; left: 50%; top: 50%; width: 22px; height: 22px; margin: -11px 0 0 -11px; border-radius: 50%; background: #c9553d; border: 4px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,.35); }
.where-accuracy { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 50%; background: rgba(201,85,61,.16); border: 2px solid rgba(201,85,61,.45); }
.where-attr { position: absolute; right: 6px; bottom: 4px; font-size: 10px; background: rgba(255,255,255,.8); padding: 1px 5px; border-radius: 4px; color: #333; }
.where-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.where-link { font-weight: 800; color: inherit; }
.where-off { background: none; border: 0; padding: 0; font: inherit; font-size: 14px; text-decoration: underline; color: inherit; opacity: .7; cursor: pointer; }
.where-badge { display: inline-block; margin: 8px 0 0; padding: 6px 12px; border-radius: 999px; background: rgba(200,255,62,.25); font-size: 14px; font-weight: 700; }

/* Звонки */
.chat-call-row { display:flex; gap:8px; margin:0 0 8px; }
.chat-call-button { flex:1; min-height:44px; border-radius:12px; border:1px solid var(--line); background:var(--card-strong); color:var(--text); font-weight:800; font-size:15px; }
.chat-notify { width:100%; min-height:44px; margin:0 0 8px; border-radius:12px; border:1px dashed var(--lime); background:transparent; color:var(--lime); font-weight:800; font-size:14px; }
.chat-message.kind-call { align-self:center; max-width:100%; background:transparent; border:1px dashed var(--line); color:var(--muted); text-align:center; }
.chat-message.kind-call small { display:none; }
.chat-message.kind-call p { font-size:13px; font-weight:700; }
body.in-call { overflow:hidden; }
.call-screen { position:fixed; inset:0; z-index:10000; display:flex; flex-direction:column; justify-content:space-between; align-items:center; padding:calc(48px + env(safe-area-inset-top)) 16px calc(32px + env(safe-area-inset-bottom)); background:radial-gradient(circle at 50% 30%, var(--card-strong), var(--ink) 70%); color:var(--text); }
.call-screen[hidden] { display:none; }
.call-remote { display:none; }
.call-screen.video .call-remote { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#000; z-index:0; }
.call-local { display:none; }
.call-screen.video .call-local { display:block; position:absolute; right:16px; top:calc(16px + env(safe-area-inset-top)); width:96px; height:128px; object-fit:cover; border-radius:14px; border:2px solid var(--lime); z-index:2; transform:scaleX(-1); background:#000; }
.call-info { position:relative; z-index:1; text-align:center; margin-top:8vh; }
.call-screen.video .call-info { margin-top:0; padding:10px 16px; border-radius:16px; background:rgba(7,22,56,.55); }
.call-kind { margin:0 0 6px; font-size:12px; font-weight:800; letter-spacing:.12em; color:var(--lime); }
.call-info h2 { margin:0; font-family:'Unbounded', sans-serif; font-size:30px; }
.call-status { margin:8px 0 0; font-size:17px; color:var(--muted); font-variant-numeric:tabular-nums; }
.call-actions { position:relative; z-index:1; display:flex; gap:22px; justify-content:center; flex-wrap:wrap; }
.call-round { width:72px; display:flex; flex-direction:column; align-items:center; gap:6px; border:0; background:none; color:var(--text); padding:0; }
.call-round[hidden] { display:none; }
.call-round span { width:64px; height:64px; border-radius:50%; display:grid; place-items:center; font-size:26px; background:rgba(255,255,255,.14); }
.call-round small { font-size:12px; font-weight:700; }
.call-round.off span { background:var(--text); color:var(--ink); filter:grayscale(1); }
.call-accept span { background:var(--lime); color:var(--ink); animation:voice-pulse 1.2s ease-in-out infinite; }
.call-end span { background:var(--red); color:#fff; }

/* Тренер и команда (этап 1) */
.coach-entry { display:block; text-align:center; margin-top:14px; padding:12px; color:var(--muted); font-weight:800; font-size:14px; text-decoration:none; }
.coach-parent summary { cursor:pointer; padding:14px 0; font-size:17px; }
.coach-new { margin-left:8px; padding:3px 9px; border-radius:999px; background:var(--lime); color:var(--ink); font-size:12px; font-weight:900; }
.coach-parent-body { display:grid; gap:14px; padding-bottom:6px; }
.coach-note { margin:0; color:var(--muted); font-size:14px; }
.coach-team { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 14px; border:1px solid var(--line); border-radius:14px; background:var(--card); }
.coach-team small { display:block; color:var(--muted); font-weight:700; }
.coach-team button { border:0; background:none; color:var(--red); font-weight:800; min-height:44px; padding:8px; }
.coach-join { display:grid; gap:10px; }
.coach-consent { display:grid; grid-template-columns:22px 1fr; gap:10px; align-items:start; font-size:14px; color:var(--muted); }
.coach-consent input { width:22px; height:22px; margin:0; }
.coach-evals { display:grid; gap:8px; }
.coach-eval { padding:12px 14px; border:1px solid var(--line); border-radius:14px; background:var(--card); }
.coach-eval b { display:block; }
.coach-eval small { color:var(--muted); font-weight:700; }
.coach-eval .nums { display:block; color:var(--lime); font-weight:900; margin-top:4px; }
.coach-eval p { margin:6px 0 0; font-size:14px; color:var(--text); }
.coach-child h2 { font-size:20px; }

.call-sound { margin-top:16px; min-height:48px; padding:0 22px; border:0; border-radius:999px; background:var(--lime); color:var(--ink); font-weight:900; font-size:16px; }

.push-banner { display:grid; grid-template-columns:1fr auto; gap:6px 10px; align-items:start; margin:12px auto 0; max-width:1120px; padding:14px 16px; border:1px solid var(--line); border-left:4px solid var(--lime); border-radius:14px; background:var(--card); position:relative; }
.push-banner b { font-size:16px; }
.push-banner p { margin:4px 0 0; font-size:14px; color:var(--muted); line-height:1.4; }
.push-banner-action { grid-column:1 / -1; min-height:46px; border:0; border-radius:999px; background:var(--lime); color:var(--ink); font-weight:900; font-size:16px; }
.push-banner-close { position:absolute; top:4px; right:4px; width:44px; height:44px; border:0; background:none; color:var(--muted); font-size:24px; }
.push-banner div { padding-right:34px; }

.where-help { margin:10px 0 4px; border:1px solid var(--line); border-radius:14px; background:var(--card); padding:2px 14px; }
.where-help summary { cursor:pointer; padding:12px 0; font-weight:800; font-size:15px; }
.where-help p { margin:0 0 10px; font-size:14px; line-height:1.45; color:var(--muted); }
.where-help b { color:var(--text); }

.where-allow { display:grid; gap:10px; margin:10px 0; padding:14px 16px; border:1px dashed var(--lime); border-radius:14px; }
.where-allow p { margin:0; font-size:14px; color:var(--muted); line-height:1.45; }
.where-allow .primary-button { min-height:46px; }
