:root { --ink:#17221d; --muted:#6b7770; --line:#dce4df; --paper:#fbfcf8; --green:#165f42; --pale:#e9f2ec; --amber:#fff2cd; }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 system-ui,-apple-system,sans-serif; color:var(--ink); background:var(--paper); }
body:not(.is-admin) > header,body:not(.is-admin) > main,body:not(.is-admin) > .home-screen { display:none; }.access-screen { min-height:100vh; display:grid; place-items:center; padding:20px; background:linear-gradient(135deg,#123d2d,#1d7450); }.access-card { width:min(440px,100%); padding:28px; border-radius:16px; background:white; box-shadow:0 20px 70px #081b1244; }.access-card h1 { margin:4px 0 12px; font-size:30px; }.access-card .eyebrow { color:var(--green); }.access-card button { width:100%; margin-top:10px; }
header { min-height:190px; padding:38px max(5vw,32px); display:flex; justify-content:space-between; align-items:flex-start; color:white; background:linear-gradient(120deg,#123d2d,#1d7450); }
.header-actions { display:flex; align-items:center; gap:10px; }.team-switcher { display:grid; gap:3px; margin-top:8px; }.team-switcher span { color:#ffffffbb; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }.team-switcher select { min-width:180px; padding:8px 32px 8px 10px; border:1px solid #ffffff55; border-radius:9px; color:white; background:#ffffff14; font:inherit; font-weight:700; }.team-switcher option { color:var(--ink); background:white; }.main-menu { position:relative; margin-top:12px; }.menu-toggle { width:44px; padding:9px; color:white; border-color:#ffffff55; background:#ffffff14; font-size:20px; line-height:1; }.menu-popover { position:absolute; z-index:10; top:calc(100% + 8px); right:0; width:230px; padding:6px; border:1px solid var(--line); border-radius:10px; background:white; box-shadow:0 12px 32px #10271d33; }.menu-popover button { width:100%; border:0; text-align:left; color:var(--ink); }.menu-group + .menu-group { margin-top:6px; padding-top:6px; border-top:1px solid var(--line); }.menu-group > span { display:block; padding:5px 14px 3px; color:var(--muted); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
h1 { margin:2px 0 4px; font-size:34px; } h2 { margin:0 0 16px; } p { margin:4px 0; }
.eyebrow { text-transform:uppercase; letter-spacing:.14em; opacity:.72; font-size:12px; font-weight:700; }.subtitle { opacity:.78; }
button { border:1px solid var(--line); background:white; border-radius:9px; padding:10px 14px; font:inherit; cursor:pointer; } button:hover { filter:brightness(.97); }
button.primary { color:white; background:#df6e35; border-color:#df6e35; font-weight:700; } button.danger { color:#a22; border-color:#dfb9b9; } header .primary { margin-top:12px; }
main { display:grid; grid-template-columns:300px 1fr; min-height:calc(100vh - 190px); }
.home-screen { min-height:calc(100vh - 190px); padding:44px max(7vw,32px); }.home-heading { max-width:760px; margin:0 auto 24px; }.home-heading .eyebrow { color:var(--green); }.home-heading h2 { font-size:30px; }.home-cards { display:grid; grid-template-columns:repeat(2,minmax(0,360px)); justify-content:center; gap:20px; }.home-card { min-height:210px; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; padding:24px; text-align:left; border-radius:18px; background:white; box-shadow:0 8px 28px #173d2910; }.home-card:hover { border-color:var(--green); background:var(--pale); }.home-card-icon { margin-bottom:auto; font-size:38px; }.home-card strong { font-size:25px; }.home-card small { margin-top:4px; color:var(--muted); font-size:14px; }
aside { padding:28px max(2.5vw,24px); border-right:1px solid var(--line); background:white; }.shooting-top-actions { margin:0 0 18px; }.shooting-top-actions button { width:100%; }.training-list { display:grid; gap:8px; }.activity-group { display:grid; gap:8px; }.activity-group + .activity-group { margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }.activity-group-title { margin:0 2px 2px; color:var(--green); font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.activity-group-past .activity-group-title { color:var(--muted); }.activity-group-past .training-card { background:#f5f7f5; }
.training-card { width:100%; text-align:left; padding:13px; }.training-card.active { border-color:var(--green); background:var(--pale); }.training-card strong,.training-card span { display:block; }.training-card span { color:var(--muted); font-size:13px; }.training-card .training-card-zone { margin-top:4px; color:var(--green); }
.content { padding:32px max(4vw,30px); }
.toolbar { display:flex; justify-content:space-between; gap:20px; align-items:start; margin-bottom:28px; }.status { display:inline-block; padding:5px 9px; border-radius:999px; background:var(--pale); color:var(--green); font-size:12px; font-weight:700; }
.mobile-back { display:none; text-decoration:none; }
.training-zone { display:grid; gap:2px; margin-top:12px; padding:10px 12px; border-left:3px solid var(--green); background:var(--pale); }.training-zone small { color:var(--muted); }.zone-empty { margin-top:10px; color:var(--muted); }.link-button { margin-top:6px; padding:3px 0; border:0; color:var(--green); background:transparent; font-weight:700; }
.applicant-input { position:relative; max-width:520px; display:flex; gap:8px; margin-bottom:24px; }.applicant-input input { flex:1; }
input,select { width:100%; border:1px solid #bdc9c2; border-radius:9px; padding:10px 12px; font:inherit; background:white; }
.suggestions { position:absolute; z-index:2; top:46px; left:0; right:90px; max-height:260px; overflow:auto; border:1px solid var(--line); border-radius:9px; background:white; box-shadow:0 8px 25px #173d2920; }.suggestions button { width:100%; border:0; border-radius:0; text-align:left; }.suggestions button.active { color:white; background:var(--green); }.suggestions .add-new-suggestion { color:var(--green); font-weight:700; border-top:1px solid var(--line); }.suggestions .add-new-suggestion.active { color:white; }.hidden { display:none!important; }
.people { display:grid; gap:8px; margin:18px 0 28px; max-width:620px; }.person { display:flex; justify-content:space-between; align-items:center; min-height:48px; padding:9px 12px; background:white; border:1px solid var(--line); border-radius:9px; }.person > div:first-child { min-width:0; }.person small { display:block; margin-top:2px; color:var(--muted); }.person button { border:0; color:#a33; padding:5px 8px; }
.columns { display:grid; grid-template-columns:1fr 1fr; gap:24px; }.panel { padding:20px; border:1px solid var(--line); border-radius:12px; background:white; }.panel h3 { margin:0 0 8px; }.panel.reserve { background:#fffdf7; }.panel select { margin-top:8px; }
.roster-panel { max-width:680px; }.roster { display:grid; gap:8px; margin-top:20px; }.roster-person { justify-content:flex-start; gap:10px; cursor:grab; }.roster-person:active { cursor:grabbing; }.roster-person.dragging { opacity:.35; }.roster-person.touch-dragging { opacity:.65; border-color:var(--green); box-shadow:0 6px 18px #173d2925; }.drag-handle { width:18px; color:#9aa59f; font-size:20px; cursor:grab; touch-action:none; user-select:none; }.reserve-person { color:#b32d2d; border-color:#efc6c6; background:#fff8f8; }.waterline { height:32px; display:flex; align-items:center; gap:12px; margin:0; }.waterline::before,.waterline::after { content:""; flex:1; border-top:2px dashed #d25c5c; }.waterline span { flex:none; color:#b32d2d; font-size:12px; font-weight:700; line-height:1; text-transform:uppercase; letter-spacing:.08em; }
.allocation-reason { display:block; margin-top:2px; color:var(--muted); font-weight:400; }.reserve-person .allocation-reason { color:#b96b6b; }
@media (hover:hover) and (pointer:fine) { .drag-handle { pointer-events:none; } }
.actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:22px; } dialog { width:min(440px,90vw); border:0; border-radius:14px; padding:24px; box-shadow:0 20px 80px #0004; } dialog::backdrop { background:#10271d99; } label { display:grid; gap:6px; margin:15px 0; font-weight:600; }
#toast { position:fixed; bottom:24px; right:24px; max-width:360px; padding:12px 16px; background:#862f2f; color:white; border-radius:9px; opacity:0; transform:translateY(10px); transition:.2s; pointer-events:none; } #toast.show { opacity:1; transform:none; }
.directory-dialog { width:min(760px,94vw); max-height:86vh; }.directory-header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }.directory-header .eyebrow { color:var(--green); }.directory-list { display:grid; gap:8px; margin-top:20px; }.directory-row { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:12px; border:1px solid var(--line); border-radius:9px; }.directory-row small { display:block; color:var(--muted); }.directory-row.deleted { color:var(--muted); background:#f3f4f2; }.directory-actions { display:flex; gap:8px; }.directory-actions .danger { color:#a22; }
.team-current { display:inline-block; margin-left:7px; padding:2px 7px; border-radius:999px; color:var(--green); background:var(--pale); font-size:11px; font-weight:700; }.team-invite-result { display:grid; grid-template-columns:1fr auto; align-items:end; gap:8px; margin-top:16px; padding:14px; border:1px solid #9bc5b2; border-radius:12px; background:var(--pale); }.team-invite-result strong,.team-invite-result small { grid-column:1 / -1; }.team-invite-result input { min-width:0; }.team-invite-result small { color:var(--muted); }
.page-section { width:min(960px,100%); min-height:calc(100vh - 100px); max-height:none; margin:0 auto; padding:36px 24px 64px; }.page-section.skating-dialog { width:min(1120px,100%); }.page-intro { margin:0 0 20px; }
.changelog-dialog { width:min(960px,100%); }.changelog-table-wrap { margin-top:22px; overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:white; }.changelog-table { width:100%; min-width:720px; border-collapse:collapse; text-align:left; }.changelog-table th,.changelog-table td { padding:14px; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.45; }.changelog-table th { position:sticky; top:0; color:var(--green); background:var(--pale); font-size:12px; text-transform:uppercase; letter-spacing:.05em; }.changelog-table td:first-child { white-space:nowrap; font-weight:800; }.changelog-table td:nth-child(2) { min-width:170px; font-weight:700; }.changelog-table td:nth-child(3) { min-width:420px; }.changelog-table tbody tr:last-child td { border-bottom:0; }.changelog-table code { padding:2px 5px; border-radius:4px; background:#eef2ef; font-size:.9em; }.changelog-error { padding:16px; border:1px solid #e6b8b8; border-radius:9px; color:#8f2020; background:#fff1f1; }
.todo-dialog { width:min(960px,100%); }.todo-form { display:grid; grid-template-columns:1fr auto; align-items:end; gap:12px; margin:22px 0 16px; padding:16px; border:1px solid var(--line); border-radius:12px; background:white; }.todo-form label { margin:0; }.todo-form textarea { resize:vertical; }.todo-summary { display:flex; align-items:baseline; gap:8px; margin:8px 0 14px; color:var(--muted); }.todo-summary strong { color:var(--green); font-size:26px; }.todo-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:white; }.todo-table { width:100%; min-width:720px; border-collapse:collapse; text-align:left; }.todo-table th,.todo-table td { padding:14px; border-bottom:1px solid var(--line); vertical-align:top; }.todo-table th { color:var(--green); background:var(--pale); font-size:12px; text-transform:uppercase; letter-spacing:.05em; }.todo-table th:first-child,.todo-table td:first-child { width:140px; white-space:nowrap; }.todo-table th:last-child,.todo-table td:last-child { width:190px; }.todo-table tbody tr:last-child td { border-bottom:0; }.todo-table tr.implemented td:nth-child(2) { color:var(--muted); text-decoration:line-through; }.todo-actions { display:grid; gap:6px; }.todo-status { width:100%; color:#8c5a21; border-color:#e5c49e; background:#fff9ef; white-space:nowrap; }.todo-status.done { color:var(--green); border-color:#9bc5b2; background:var(--pale); }.todo-delete { width:100%; color:#9d3434; }.todo-empty { padding:28px; border:1px dashed var(--line); border-radius:12px; color:var(--muted); text-align:center; }
.player-edit-form { grid-column:1 / -1; display:grid; gap:14px; margin-top:4px; padding-top:16px; border-top:1px solid var(--line); }.player-edit-form label { margin:0; }.player-edit-form label > small { color:var(--muted); font-weight:400; }.player-name-fields,.player-extra-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.goalie-checkbox { max-width:360px; display:flex!important; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line); border-radius:9px; background:var(--paper); cursor:pointer; }.goalie-checkbox input { width:20px; height:20px; flex:none; }.goalie-checkbox span { display:grid; gap:1px; }.goalie-checkbox small { color:var(--muted); font-weight:400; }.player-edit-actions { display:flex; gap:8px; }.player-edit-actions .danger { margin-left:auto; }
.player-extra-fields > label,.player-extra-fields input { min-width:0; max-width:100%; width:100%; }
.birth-date-field,.player-extra-fields > label:first-child { min-width:0; overflow:hidden; }.birth-date-field input[type="date"],.player-extra-fields input[name="birth_date"] { display:block; min-width:0; max-width:100%; width:100%; -webkit-appearance:none; appearance:none; }.jersey-number-field,.player-extra-fields > label:last-child { width:92px; }.jersey-number-field input,.player-extra-fields input[name="jersey_number"] { text-align:center; font-variant-numeric:tabular-nums; }
.player-extra-fields { grid-template-columns:minmax(180px,1fr) 150px; }
.players-screen { width:min(960px,100%); min-height:calc(100vh - 100px); margin:0 auto; padding:36px 24px 64px; }.players-page-header { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:24px; }.players-page-header h2 { margin-bottom:8px; font-size:32px; }.players-count { min-width:100px; display:grid; justify-items:center; padding:14px 18px; border-radius:14px; color:white; background:var(--green); }.players-count strong { font-size:28px; }.players-count small { opacity:.8; }.players-list { display:grid; gap:10px; }.player-card { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:14px; padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:white; cursor:pointer; transition:border-color .15s,box-shadow .15s; }.player-card:hover,.player-card:focus { outline:0; border-color:#9bc5b2; box-shadow:0 5px 18px #173d2910; }.player-card.expanded { border-color:var(--green); box-shadow:0 8px 24px #173d2914; cursor:default; }.player-card.deleted { color:var(--muted); background:#f3f4f2; cursor:default; }.player-avatar { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; color:var(--green); background:var(--pale); font-size:20px; font-weight:800; }.player-card-main { display:grid; gap:4px; min-width:0; }.player-card-main strong { font-size:18px; }.player-card-main small { color:var(--muted); }
.players-top-actions { display:flex; justify-content:flex-end; margin-bottom:14px; }.player-create-form { display:grid; gap:14px; margin-bottom:18px; padding:16px; border:1px solid var(--green); border-radius:14px; background:white; box-shadow:0 8px 24px #173d2914; }.player-create-form label { margin:0; }.player-create-form label > small { color:var(--muted); font-weight:400; }.player-create-actions { display:flex; gap:8px; }.deleted-players { margin-top:18px; }.deleted-players summary { padding:12px 4px; color:var(--muted); cursor:pointer; font-weight:700; }.deleted-players-list { display:grid; gap:10px; margin-top:4px; }
.zone-form { margin-top:20px; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--paper); }.zone-form label { margin:0 0 12px; }.price-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.skating-dialog { width:min(1120px,96vw); max-height:94vh; }.skating-top-actions { display:flex; justify-content:flex-start; margin:0 0 22px; }.skating-layout { display:grid; grid-template-columns:280px 1fr; gap:24px; min-height:480px; }.skating-content { min-width:0; padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--paper); }.skating-content h2 { margin:8px 0 12px; }.skating-status { margin-top:5px; color:var(--green)!important; font-weight:700; }.finance-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:18px 0 24px; }.finance-grid > div { display:grid; gap:3px; padding:12px; border-radius:9px; background:var(--pale); }.finance-grid small { color:var(--muted); }.participant-actions { display:flex; align-items:center; gap:6px; }.participant-actions .payment-toggle { color:#9a531d; border-color:#e8bd98; }.participant-actions .payment-toggle.paid { color:var(--green); border-color:#9bc5b2; background:var(--pale); }.skating-people { max-width:none; }
.finance-grid .collection-card { border:1px solid transparent; }.finance-grid .collection-card.rental-shortfall { border-color:#e9b49a; background:#fff4ed; }.finance-grid .collection-card.rental-covered { border-color:#9bc5b2; background:#e5f3ea; }.finance-grid .rental-status { margin-top:5px; font-weight:700; }.finance-grid .rental-shortfall .rental-status { color:#a44f22; }.finance-grid .rental-covered .rental-status { color:var(--green); }
.finance-grid .income-surplus { margin-top:2px; color:var(--green); font-weight:700; }
.finance-grid .additional-shortfall { margin-top:2px; color:#a44f22; font-weight:700; }.skating-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }.skating-title-row h2 { margin-bottom:0; }
.participants-heading { display:flex; align-items:center; gap:8px; margin-top:22px; }.participants-heading h3 { margin:0; }.participants-heading span { min-width:28px; padding:3px 8px; border-radius:999px; color:var(--green); background:var(--pale); text-align:center; font-weight:700; }
.payment-list-actions { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 12px; }.payment-list-actions button { color:var(--green); border-color:#9bc5b2; background:var(--pale); }
.game-import { max-width:620px; margin:0 0 24px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:white; }.game-import summary { color:var(--green); font-weight:700; cursor:pointer; }.game-import textarea { width:100%; margin:12px 0 8px; padding:10px 12px; border:1px solid #bdc9c2; border-radius:9px; font:inherit; resize:vertical; }.game-import-results { display:grid; gap:8px; margin:14px 0; }.game-import-row { padding:10px 12px; border:1px solid var(--line); border-radius:9px; }.game-import-row small { display:block; color:var(--muted); }.game-import-row.exact { border-color:#9bc5b2; background:var(--pale); }.game-import-row.unknown { border-color:#e9b49a; background:#fff4ed; }.game-import-row.muted { color:var(--muted); background:#f3f4f2; }.game-import-choices { display:grid; gap:5px; margin-top:8px; }.game-import-choices label { display:flex; align-items:center; gap:7px; margin:0; font-weight:400; }.game-import-choices input { width:auto; }
.skating-back { display:inline-flex; margin:0 0 18px; color:var(--green); font-weight:700; text-decoration:none; }.skating-detail-open .skating-top-actions,.skating-detail-open #skating-list,.skating-detail-open #games-list { display:none; }.skating-detail-open .skating-layout { display:block; }.skating-detail-open .skating-content { width:min(760px,100%); margin:0 auto; }
.date-time-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.date-time-fields label { min-width:0; margin-bottom:0; overflow:hidden; }.date-time-fields input { display:block; width:100%; min-width:0; max-width:100%; }
#game-form .actions { margin-top:30px; }
.finances-dialog { width:min(820px,94vw); }.finance-summary { display:grid; grid-template-columns:2fr 1fr 1fr; gap:10px; margin:14px 0 28px; }.finance-summary > div { display:grid; gap:4px; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--paper); }.finance-summary small,.finance-row small { color:var(--muted); }.finance-summary strong { font-size:22px; }.positive { color:var(--green); }.negative { color:#a44f22; }.finance-history { display:grid; gap:8px; }.finance-row { display:flex; justify-content:space-between; gap:16px; padding:13px 14px; border:1px solid var(--line); border-radius:10px; }.finance-row small { display:block; }.finance-row-money { text-align:right; }.finance-expenses { margin:0 0 28px; }.finance-expenses h3 { margin-bottom:12px; }.finance-expenses form { display:grid; grid-template-columns:2fr 1fr auto; align-items:end; gap:10px; margin-bottom:14px; }.finance-expenses form label { margin:0; }.finance-expense-actions { display:flex; gap:8px; }.finance-expense-list { display:grid; gap:8px; }
.calculator-form { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }.calculator-result { display:grid; gap:5px; margin-top:22px; padding:20px; border-radius:14px; color:white; background:var(--green); }.calculator-result > small { opacity:.8; }.calculator-result > strong { margin-bottom:8px; font-size:34px; }.calculator-result > div { display:flex; justify-content:space-between; gap:16px; padding-top:7px; border-top:1px solid #ffffff33; }.calculator-result p { margin-top:8px; color:#d9eee3; }.calculator-rounding { display:grid; gap:8px; margin-top:12px; padding-top:14px; border-top:1px solid #ffffff55; }.calculator-rounding > small { font-weight:700; }.calculator-rounding-option { display:flex; justify-content:space-between; gap:16px; padding:11px 12px; border-radius:10px; background:#ffffff18; }.calculator-rounding-option > strong { text-align:right; }.calculator-rounding-option.shortfall > strong { color:#ffd4c2; }.calculator-rounding-option.surplus > strong { color:#d4f4df; }
.statistics-dialog { width:min(900px,96vw); }.statistics-player-label { max-width:420px; margin:8px 0 24px; }.statistics-empty { padding:32px 18px; border:1px dashed var(--line); border-radius:14px; color:var(--muted); text-align:center; }.statistics-summary { display:grid; grid-template-columns:2fr 1fr 1fr; gap:10px; margin-bottom:18px; }.statistics-summary > div { display:grid; gap:5px; padding:18px; border:1px solid var(--line); border-radius:14px; background:var(--paper); }.statistics-summary small,.statistics-panel > small { color:var(--muted); }.statistics-summary strong { font-size:23px; }.statistics-total { color:white; border-color:var(--green)!important; background:linear-gradient(135deg,#123d2d,#237454)!important; }.statistics-total small { color:#d9eee3; }.statistics-total strong { font-size:32px; }.statistics-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr); gap:12px; }.statistics-panel { min-width:0; padding:18px; border:1px solid var(--line); border-radius:14px; background:white; }.statistics-panel h3 { margin:3px 0 16px; }.month-chart { height:250px; display:flex; align-items:stretch; gap:8px; overflow-x:auto; padding:12px 4px 0; }.month-column { min-width:76px; flex:1; display:grid; grid-template-rows:20px 1fr 34px; gap:7px; text-align:center; }.month-column > small { color:var(--muted); font-size:11px; line-height:1.15; }.month-value { font-size:11px; font-weight:700; white-space:nowrap; }.month-bar-track { min-height:130px; display:flex; align-items:flex-end; border-radius:8px; background:#edf3ef; overflow:hidden; }.month-bar { width:100%; border-radius:8px 8px 0 0; background:linear-gradient(#df875c,#df6e35); }.type-chart { display:grid; justify-items:center; gap:24px; }.type-donut { width:170px; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:conic-gradient(var(--green) 0 var(--skating-share),#df6e35 var(--skating-share) 100%); }.type-donut::before { content:""; grid-area:1/1; width:108px; aspect-ratio:1; border-radius:50%; background:white; }.type-donut > div { z-index:1; grid-area:1/1; display:grid; text-align:center; }.type-donut strong { font-size:30px; }.type-donut small { color:var(--muted); }.type-legend { width:100%; display:grid; gap:10px; }.type-legend > div { display:grid; grid-template-columns:12px 1fr auto; align-items:center; gap:8px; }.legend-dot { width:10px; height:10px; border-radius:50%; }.legend-dot.skating { background:var(--green); }.legend-dot.game { background:#df6e35; }.statistics-history { margin-top:12px; }.statistics-activity { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:12px 0; border-top:1px solid var(--line); }.statistics-activity small { display:block; margin-top:2px; color:var(--muted); }.statistics-activity > strong { flex:none; color:var(--green); }
.statistics-summary { grid-template-columns:2fr 1fr; }.statistics-type-table { display:grid; border:1px solid var(--line); border-radius:10px; overflow:hidden; }.statistics-type-table > div { display:grid; grid-template-columns:1fr 70px 110px; gap:8px; align-items:center; padding:11px 12px; }.statistics-type-table > div + div { border-top:1px solid var(--line); }.statistics-type-table span:nth-child(n+2),.statistics-type-table strong:last-child { text-align:right; }.statistics-type-head { color:var(--muted); background:var(--paper); font-size:12px; font-weight:700; }
.statistics-summary { grid-template-columns:1fr; }
@media (min-width:0) {
  header { min-height:auto; padding:18px max(20px,calc((100vw - 760px) / 2 + 20px)); align-items:center; position:sticky; top:0; z-index:5; }
  header .eyebrow { display:none; }
  header h1 { max-width:190px; margin:0; font-size:22px; line-height:1.1; }
  header .primary { margin:0; padding:9px 12px; font-size:14px; }
  .header-actions { gap:6px; }.team-switcher { margin:0; }.team-switcher span { display:none; }.team-switcher select { width:min(42vw,170px); min-width:0; padding:7px 26px 7px 8px; font-size:13px; }.main-menu { margin:0; }.menu-toggle { width:40px; padding:8px; }.menu-popover { position:fixed; top:58px; right:max(12px,calc((100vw - 760px) / 2 + 12px)); }
  main { width:min(760px,100%); display:block; min-height:calc(100vh - 64px); margin:0 auto; }
  .home-screen { width:min(760px,100%); min-height:calc(100vh - 64px); margin:0 auto; padding:28px 20px; }.home-heading h2 { font-size:26px; }.home-cards { grid-template-columns:1fr; }.home-card { min-height:170px; }.home-card-icon { font-size:32px; }
  aside { padding:24px 20px; border:0; }
  aside h2 { font-size:26px; }
  .training-list { gap:10px; }
  .training-card { padding:16px; }
  .content { display:none; padding:20px; }
  .detail-open header { display:none; }
  .detail-open aside { display:none; }
  .detail-open .content { display:block; }
  .mobile-back { display:inline-flex; margin:0 0 20px; padding:6px 0; border:0; color:var(--green); background:transparent; font-weight:700; }
  .toolbar { display:block; margin-bottom:24px; }
  .toolbar h2 { margin-top:8px; font-size:28px; }
  .applicant-input { position:sticky; top:8px; z-index:3; padding:8px 0; margin:0 0 20px; background:var(--paper); }
  .applicant-input .suggestions { top:54px; }
  .columns { grid-template-columns:1fr; }
  .roster-panel { padding:16px; }
  .drag-handle { width:28px; margin:-8px 0 -8px -4px; padding:8px 4px; font-size:24px; }
  .actions { position:sticky; bottom:0; z-index:4; flex-wrap:nowrap; margin:20px -20px -20px; padding:12px 20px; background:#fbfcf8ee; border-top:1px solid var(--line); backdrop-filter:blur(8px); }
  .actions > button { flex:1 1 0; min-width:0; padding:12px 8px; }
  .directory-dialog { width:min(760px,100vw); max-width:760px; height:100dvh; max-height:none; margin:auto; border-radius:0; padding:20px; }.page-section { width:min(760px,100%); min-height:calc(100vh - 64px); height:auto; padding:24px 20px 48px; }.directory-row { align-items:flex-start; }.directory-actions { flex-direction:column; }.player-name-fields,.player-extra-fields { grid-template-columns:1fr; }.goalie-checkbox { max-width:none; }.player-edit-actions { display:grid; grid-template-columns:1fr 1fr; }.player-edit-actions .danger { grid-column:1 / -1; margin:0; }.player-edit-actions button { min-width:0; }
  .todo-form { grid-template-columns:1fr; }.todo-form button { width:100%; }
  .team-invite-result { grid-template-columns:1fr; }.team-invite-result strong,.team-invite-result small { grid-column:auto; }
  .player-extra-fields { grid-template-columns:minmax(0,1fr) 112px; gap:10px; }
  .players-screen { padding:24px 20px 48px; }.players-page-header { align-items:center; }.players-page-header h2 { font-size:27px; }.players-page-header .subtitle { max-width:520px; }.player-card { grid-template-columns:42px 1fr; padding:12px 14px; }.player-avatar { width:42px; height:42px; }.player-card .player-edit-form { grid-column:1 / -1; }
  .price-fields { grid-template-columns:1fr; gap:16px; }
  .skating-top-actions { margin:12px 0 18px; }.skating-top-actions button { width:100%; }.skating-layout { display:block; }.skating-layout #skating-list { margin-bottom:20px; }.skating-content { padding:14px; }.finance-grid { grid-template-columns:1fr; }.skating-people .person { gap:10px; min-height:64px; padding:10px 12px; }.participant-actions { flex:none; flex-direction:row; align-items:center; gap:2px; }.participant-actions button { white-space:nowrap; }.participant-actions .payment-toggle { padding:7px 9px; font-size:13px; }.participant-actions button[title="Убрать"] { width:34px; padding:7px 5px; font-size:18px; }.skating-content .applicant-input { position:relative; top:auto; }.skating-content #open-skating-payment { width:100%; padding:13px; }.payment-list-actions { display:grid; grid-template-columns:1fr; }.payment-list-actions button { width:100%; }
  .skating-detail-open .directory-header,.skating-detail-open .skating-top-actions,.skating-detail-open #skating-list,.skating-detail-open #games-list { display:none; }.skating-detail-open .skating-content { width:100%; padding:0; border:0; background:transparent; }
  .skating-title-row { display:block; }.skating-title-row #edit-skating-session { width:100%; margin:12px 0 4px; }
  #skating-session-dialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); padding:22px; overflow:auto; }.date-time-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }#skating-session-dialog .actions { position:static; margin:22px 0 0; padding:0; border:0; background:transparent; backdrop-filter:none; }
  .finance-summary { grid-template-columns:1fr 1fr; }.finance-summary .finance-balance { grid-column:1 / -1; }.finance-row { align-items:flex-start; }.finance-row-money { flex:none; }.finance-expenses form { grid-template-columns:1fr; }.finance-expense-actions button { flex:1; }.skating-title-row button + button { width:100%; margin-top:8px; }
  .calculator-form { grid-template-columns:1fr; }.calculator-result > div { align-items:flex-start; }.calculator-result > div span { max-width:65%; }.calculator-rounding-option { flex-direction:column; gap:3px; }.calculator-rounding-option > strong { text-align:left; }
  .statistics-summary { grid-template-columns:1fr 1fr; }.statistics-total { grid-column:1 / -1; }.statistics-grid { grid-template-columns:1fr; }.statistics-panel { padding:15px; }.month-chart { height:230px; }.statistics-activity { font-size:14px; }
  .skating-title-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.skating-title-row > div:first-child { grid-column:1 / -1; }.skating-title-row button,.skating-title-row #edit-skating-session,.skating-title-row button + button { width:100%; margin:12px 0 4px; }
}

/* Apple-inspired navigation and surfaces */
:root { --paper:#f2f2f7; --line:#d1d1d6; --green:#08784f; --pale:#e7f5ee; }
body { padding-bottom:calc(68px + env(safe-area-inset-bottom)); background:var(--paper); -webkit-font-smoothing:antialiased; }
body:not(.is-admin) > .app-tabbar { display:none; }
header { min-height:64px; padding:10px max(20px,calc((100vw - 760px) / 2 + 20px)); color:var(--ink); background:#f2f2f7e8; border-bottom:0; backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); }
header h1 { font-size:17px; font-weight:650; text-align:left; }
.team-switcher select { color:var(--green); border:0; background:transparent; font-weight:600; }
.team-switcher option { color:var(--ink); }
.menu-toggle { color:var(--green); border:0; background:transparent; }
.menu-popover { border-color:#d1d1d680; border-radius:14px; box-shadow:0 16px 45px #0002; }
.app-tabbar { position:fixed; z-index:20; left:0; right:0; bottom:0; height:calc(64px + env(safe-area-inset-bottom)); display:grid; grid-template-columns:repeat(4,1fr); padding:6px max(10px,calc((100vw - 760px) / 2 + 10px)) calc(5px + env(safe-area-inset-bottom)); border-top:0.5px solid #8e8e9329; background:#f8f8f8d9; box-shadow:0 -8px 24px #0000000a; backdrop-filter:saturate(190%) blur(28px); -webkit-backdrop-filter:saturate(190%) blur(28px); touch-action:manipulation; }
.app-tabbar button { min-width:0; display:grid; place-items:center; align-content:center; gap:2px; padding:2px; border:0; border-radius:12px; color:#8e8e93; background:transparent; font-size:11px; line-height:1.15; touch-action:manipulation; }
.app-tabbar button.active { color:var(--green); }
.app-tabbar .tab-icon { width:28px; height:27px; display:grid; place-items:center; line-height:1; }
.app-tabbar .tab-icon svg { width:27px; height:27px; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.app-tabbar .tab-icon svg .filled { fill:currentColor; stroke:none; }
.detail-topbar { min-height:44px; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.detail-topbar .mobile-back,.detail-topbar .skating-back { min-height:44px; display:inline-flex; align-items:center; margin:0; padding:0 4px; }
.detail-actions { position:relative; flex:none; }
.detail-actions summary { width:44px; height:44px; display:grid; place-items:center; border-radius:50%; color:var(--green); font-size:20px; font-weight:800; letter-spacing:1px; cursor:pointer; list-style:none; touch-action:manipulation; }
.detail-actions summary::-webkit-details-marker { display:none; }
.detail-actions[open] summary { background:#e8f3ed; }
.detail-actions-menu { position:absolute; z-index:12; top:48px; right:0; width:220px; overflow:hidden; border:1px solid #d1d1d680; border-radius:14px; background:white; box-shadow:0 16px 45px #0002; }
.detail-actions-menu button { width:100%; min-height:48px; padding:11px 14px; border:0; border-radius:0; text-align:left; background:white; }
.detail-actions-menu button + button { border-top:1px solid var(--line); }
.detail-actions-menu .danger { color:#c62828; }
.confirm-dialog > p { margin:8px 0 28px; }
.confirm-dialog > .actions { position:static; margin:28px 0 0; padding:0; border:0; background:transparent; backdrop-filter:none; }
.app-tabbar button.active span:last-child { font-weight:600; }
.home-screen,.page-section,.players-screen,main { min-height:calc(100dvh - 64px - 72px); }
.home-screen { padding-top:26px; }
.home-cards { grid-template-columns:repeat(2,minmax(0,360px)); gap:12px; }
.home-card { min-height:118px; padding:18px; justify-content:center; border:0; border-radius:14px; box-shadow:none; }
.home-card-icon { margin:0 0 8px; font-size:27px; }
.home-card strong { font-size:18px; }
.home-card:hover { background:white; }
.more-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:22px 16px; max-width:760px; margin:0 auto; }
.more-group h3 { margin:0 0 7px 12px; color:#6e6e73; font-size:13px; font-weight:600; text-transform:none; }
.more-list { overflow:hidden; border-radius:14px; background:white; }
.more-item { position:relative; width:100%; min-height:66px; display:grid; grid-template-columns:42px minmax(0,1fr) 14px; align-items:center; gap:11px; padding:9px 14px 9px 12px; border:0; border-radius:0; text-align:left; background:white; }
.more-item::after { content:"›"; grid-column:3; grid-row:1; color:#c7c7cc; font-size:25px; font-weight:300; }
.more-item + .more-item::before { content:""; position:absolute; top:0; left:65px; right:0; border-top:0.5px solid #c6c6c8; }
.more-item > span:nth-child(2) { min-width:0; display:grid; gap:1px; }
.more-item strong { font-size:16px; font-weight:600; }
.more-item small { overflow:hidden; color:#6e6e73; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.more-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; background:#f2f2f7; font-size:22px; }
.more-item:hover { filter:none; background:#f7f7fa; }
.calendar-screen { width:min(760px,100%); margin:0 auto; padding:18px 20px 40px; }
.calendar-picker { position:sticky; z-index:4; top:64px; margin:-18px -20px 0; padding:8px 20px 10px; background:#f2f2f7ed; border-bottom:0.5px solid #c6c6c8; backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); }
.calendar-week-nav { display:grid; grid-template-columns:44px 1fr 44px; align-items:center; gap:8px; margin-bottom:10px; }
.calendar-week-nav button { min-height:44px; padding:0; border:0; color:var(--green); background:transparent; font-size:28px; }
.calendar-week-nav #calendar-today { font-size:15px; font-weight:600; }
.calendar-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); overflow:hidden; border-radius:14px; background:white; }
.calendar-day { min-width:0; min-height:72px; display:grid; place-items:center; align-content:center; gap:1px; padding:5px 1px; border:0; border-radius:0; color:#6e6e73; background:white; }
.calendar-day span { font-size:11px; font-weight:600; text-transform:uppercase; }
.calendar-day strong { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; color:var(--ink); font-size:17px; }
.calendar-day i { height:9px; overflow:hidden; color:var(--green); font-size:10px; font-style:normal; letter-spacing:1px; white-space:nowrap; }
.calendar-day.selected strong { color:white; background:var(--green); }
.calendar-day.today:not(.selected) strong { color:var(--green); }
.calendar-content { min-height:calc(100dvh - 64px - 72px - 142px); touch-action:pan-y; user-select:none; -webkit-user-select:none; }
.calendar-content h2 { margin:20px 4px 10px; font-size:20px; }
.calendar-agenda { display:grid; }
.calendar-event { display:grid; grid-template-columns:4px minmax(0,1fr) auto; gap:11px; padding:13px 14px; border-radius:14px; color:var(--ink); background:white; text-decoration:none; }
.calendar-event > i { border-radius:4px; background:#08784f; }
.calendar-event.skating > i { background:#39a9b8; }
.calendar-event.game > i { background:#df6e35; }
.calendar-event strong,.calendar-event small,.calendar-event em { display:block; }
.calendar-event strong { font-size:16px; }
.calendar-event small { margin-top:3px; color:#6e6e73; font-size:13px; }
.calendar-event em { margin-top:7px; color:var(--green); font-size:12px; font-style:normal; font-weight:600; }
.calendar-event time { color:#3a3a3c; font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
.calendar-gap { height:43px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:9px; color:#8e8e93; font-size:12px; font-weight:600; }
.calendar-gap::before,.calendar-gap::after { content:""; border-top:.5px solid #c7c7cc; }
.calendar-gap.overlap { color:#c62828; }
.calendar-empty { margin:12px 4px; padding:24px 16px; border-radius:14px; color:#6e6e73; background:white; text-align:center; }
.calendar-comments { display:grid; gap:8px; margin:0 0 12px; }
.calendar-comment { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:42px; padding:10px 14px; border-left:4px solid #6f91b4; border-radius:10px; background:#dceaf5; color:#20384d; }
.calendar-comment strong { min-width:0; overflow-wrap:anywhere; }
.calendar-comment small { flex:none; color:#597086; font-size:12px; }
button { border-radius:12px; }
button.primary { border-color:var(--green); background:var(--green); }
aside { background:var(--paper); }
.shooting-top-actions button,.skating-top-actions button,.players-top-actions button { width:auto; color:var(--green); border:0; background:transparent; font-size:16px; font-weight:600; }
.training-card,.person,.panel,.skating-content,.directory-row,.player-card,.zone-form,.todo-form,.statistics-panel,.finance-row { border-color:#d1d1d680; border-radius:14px; background:white; box-shadow:none; }
.training-card { padding:15px 16px; }
.activity-group-title { color:#6e6e73; font-size:13px; letter-spacing:0; text-transform:none; }
input,select,textarea { border-color:#c7c7cc; border-radius:10px; }
dialog { border-radius:20px; }
#toast { bottom:calc(78px + env(safe-area-inset-bottom)); border-radius:12px; }

@media (max-width:600px) {
  header { min-height:52px; padding-top:6px; padding-bottom:6px; }
  header h1 { max-width:120px; }
  .home-screen,.page-section,.players-screen,main { min-height:calc(100dvh - 52px - 72px); }
  .home-screen,.page-section,.players-screen,aside { padding:18px 16px 28px; }
  .home-cards { grid-template-columns:1fr; gap:1px; overflow:hidden; border-radius:14px; background:#c6c6c8; }
  .home-card { min-height:80px; display:grid; grid-template-columns:36px 1fr; grid-template-rows:auto auto; column-gap:12px; border-radius:0; }
  .home-card-icon { grid-row:1 / 3; align-self:center; margin:0; }
  .home-card strong { align-self:end; font-size:17px; }
  .home-card small { align-self:start; }
  .more-groups { grid-template-columns:1fr; gap:22px; }
  .calendar-screen { padding:12px 12px 28px; }
  .calendar-picker { top:52px; margin:-12px -12px 0; padding:6px 12px 8px; }
  .calendar-content { min-height:calc(100dvh - 52px - 72px - 130px); }
  .calendar-week-nav { margin-bottom:6px; }
  .calendar-day { min-height:68px; }
  .calendar-event { padding:12px 11px; gap:9px; }
  .calendar-event time { font-size:12px; }
  .shooting-top-actions { margin:2px 0 16px; }
  .shooting-top-actions button,.skating-top-actions button { width:auto; padding-left:0; padding-right:0; }
  .skating-top-actions { justify-content:flex-start; margin:2px 0 16px; }
  .directory-dialog { height:auto; min-height:calc(100dvh - 52px - 72px); padding-bottom:28px; }
  .player-extra-fields { grid-template-columns:minmax(0,1fr) 92px; align-items:end; gap:12px; }
  .detail-open header { display:flex; }
  .detail-open .content { padding-bottom:28px; }
}

/* Apple HIG review, point 6: clear finance hierarchy and accessible data. */
.finance-summary { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(220px,1fr); gap:12px; }
.finance-summary .finance-balance { display:grid; align-content:center; gap:4px; padding:20px; color:white; border:0; background:#08784f; }
.finance-summary .finance-balance.negative { background:#9b3a2f; }
.finance-balance small,.finance-balance span { color:#fff; opacity:.82; }
.finance-balance strong { color:#fff; font-size:clamp(28px,6vw,38px); }
.finance-breakdown { display:grid; grid-template-columns:1fr; padding:0!important; overflow:hidden; }
.finance-breakdown > div { display:grid; gap:3px; padding:12px 14px; }
.finance-breakdown > div + div { border-top:0.5px solid #c6c6c8; }
.calculator-form { grid-template-columns:minmax(180px,1fr) minmax(180px,1fr); gap:14px; }
.calculator-form label { margin:0; }
.unit-field { display:flex; align-items:center; margin-top:6px; overflow:hidden; border:1px solid #c7c7cc; border-radius:10px; background:white; }
.unit-field:focus-within { border-color:#08784f; box-shadow:0 0 0 3px #08784f22; }
.unit-field input { min-width:0; margin:0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.unit-field span { flex:none; padding:0 12px; color:#6e6e73; border-left:0.5px solid #c7c7cc; font-size:14px; white-space:nowrap; }
.calculator-form .people-field { max-width:210px; }
.statistics-panel,.statistics-summary > div { font-size:clamp(14px,3.8vw,17px); }
.month-bar { background:#b94718; }
.month-value { color:#1c1c1e; font-size:12px; }
.month-column > small { color:#515154; font-size:12px; }
.statistics-type-head { color:#515154; }

@media (max-width:600px) {
  .finance-summary { grid-template-columns:1fr; }
  .finance-summary .finance-balance { grid-column:auto; }
  .finance-breakdown { grid-template-columns:1fr 1fr; }
  .finance-breakdown > div + div { border-top:0; border-left:0.5px solid #c6c6c8; }
  .calculator-form { grid-template-columns:minmax(0,1fr) 132px; align-items:end; }
  .calculator-form label { min-width:0; }
  .calculator-form label:nth-child(1),.calculator-form label:nth-child(2),.calculator-form label:nth-child(3) { grid-column:1 / -1; }
  .calculator-form .people-field { grid-column:1; max-width:210px; }
  .unit-field input { width:100%; }
  .month-chart { gap:12px; }
  .month-column { min-width:84px; }
}

@media (prefers-contrast:more) {
  .month-bar { background:#8f2f0d; }
  .month-bar-track { border:1px solid #6e6e73; background:#fff; }
  .statistics-panel,.statistics-type-table,.finance-summary > div { border-color:#6e6e73; }
  .positive { color:#00663f; }
  .negative { color:#8c241d; }
}

/* Apple HIG review, point 7: mobile-native TODO and changelog lists. */
.changelog-timeline,.todo-card-list { display:grid; gap:10px; }
.changelog-entry { overflow:hidden; border:0.5px solid #c6c6c8; border-radius:14px; background:white; }
.changelog-entry summary { min-height:66px; display:grid; grid-template-columns:110px minmax(0,1fr) 16px; align-items:center; gap:12px; padding:12px 14px; cursor:pointer; list-style:none; }
.changelog-entry summary::-webkit-details-marker { display:none; }
.changelog-entry summary span { color:#6e6e73; font-size:13px; }
.changelog-entry summary strong { min-width:0; }
.changelog-entry summary i { color:#c7c7cc; font-size:26px; font-style:normal; transition:transform .2s; }
.changelog-entry[open] summary i { transform:rotate(90deg); }
.changelog-entry-body { display:grid; gap:16px; padding:0 14px 16px; border-top:0.5px solid #c6c6c8; }
.changelog-entry-body section { padding-top:14px; line-height:1.45; }
.changelog-entry-body section > small { display:block; margin-bottom:6px; color:#6e6e73; font-weight:700; }
.changelog-entry-body ul { margin:0; padding-left:20px; }
.changelog-entry-body li + li { margin-top:7px; }
.todo-group + .todo-group { margin-top:24px; }
.todo-group h3 { margin:0 0 10px; color:#6e6e73; font-size:14px; }
.todo-card { display:grid; gap:10px; padding:14px; border:0.5px solid #c6c6c8; border-radius:14px; background:white; }
.todo-card time { color:#6e6e73; font-size:13px; }
.todo-card p { margin:0; line-height:1.4; white-space:pre-wrap; }
.todo-card.implemented p { color:#6e6e73; text-decoration:line-through; }
.todo-card .todo-actions { display:grid; grid-template-columns:1fr auto; gap:8px; }
.todo-card .todo-delete { width:auto; }

@media (max-width:600px) {
  .desktop-shortcut { display:none; }
  .changelog-dialog .page-intro,.todo-dialog .page-intro { margin-bottom:14px; }
  .changelog-entry summary { grid-template-columns:1fr 16px; gap:4px 10px; }
  .changelog-entry summary span { grid-column:1; }
  .changelog-entry summary strong { grid-column:1; }
  .changelog-entry summary i { grid-column:2; grid-row:1 / 3; }
  .todo-form { margin-top:14px; padding:14px; }
  .todo-card .todo-actions { grid-template-columns:1fr auto; }
}
.changelog-table ul { margin:0; padding-left:19px; }.changelog-table li + li { margin-top:8px; }

.schedule-import-screen { width:min(760px,100%); }
.schedule-import-screen .page-intro { margin-bottom:16px; color:var(--muted); }
.notifications-screen { width:min(620px,100%); }.notifications-card { display:grid; justify-items:center; gap:14px; padding:28px 20px; border:1px solid rgba(0,0,0,.08); border-radius:20px; background:#fff; text-align:center; box-shadow:0 8px 28px rgba(0,0,0,.05); }.notifications-card > div { display:grid; gap:6px; }.notifications-card p,.notifications-note { margin:0; color:#6e6e73; line-height:1.45; }.notifications-icon { display:grid; place-items:center; width:64px; height:64px; border-radius:18px; background:#e8f4ee; font-size:32px; }.notifications-note { margin:14px 8px; font-size:13px; }
.push-onboarding-dialog { text-align:center; }.push-onboarding-dialog .notifications-icon { margin:0 auto 16px; }.push-onboarding-dialog h2 { margin:0 0 8px; }.push-onboarding-dialog p { margin:0; color:#6e6e73; line-height:1.45; }.push-onboarding-dialog .actions { position:static; display:grid; grid-template-columns:1fr 1fr; margin:24px 0 0; padding:0; border:0; background:transparent; backdrop-filter:none; }
.schedule-import-form { display:grid; gap:14px; padding:18px; border:0.5px solid #c6c6c8; border-radius:14px; background:white; }
.schedule-import-form label { margin:0; }
.schedule-import-form > small { color:var(--muted); line-height:1.35; }
.schedule-import-result { display:grid; gap:20px; margin-top:22px; }
.schedule-import-result section h3 { margin:0 0 9px; color:var(--muted); font-size:14px; }
.schedule-import-summary { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px; border-radius:14px; color:white; background:var(--green); }
.schedule-import-summary strong { font-size:22px; }
.schedule-import-summary span { color:#d9eee3; }
.schedule-import-list { overflow:hidden; border:0.5px solid #c6c6c8; border-radius:14px; background:white; }
.schedule-import-event,.schedule-import-comment { position:relative; display:grid; grid-template-columns:138px minmax(0,1fr); gap:12px; padding:13px 14px; }
.schedule-import-event + .schedule-import-event::before,.schedule-import-comment + .schedule-import-comment::before { content:""; position:absolute; top:0; left:14px; right:0; border-top:0.5px solid #c6c6c8; }
.schedule-import-event time,.schedule-import-event span,.schedule-import-comment { display:grid; gap:2px; }
.schedule-import-event small,.schedule-import-comment small { color:var(--muted); }
.schedule-import-comment { grid-template-columns:1fr; background:#f7f7fa; }
.schedule-import-note { margin:0; padding:13px 14px; border-radius:12px; color:var(--muted); background:#eef2ef; }
.schedule-import-event b,.schedule-import-comment b { color:var(--muted); font-size:12px; }
.schedule-import-event.diff-added,.schedule-import-comment.diff-added { border-left:4px solid #2f855a; background:#f1faf4; }
.schedule-import-event.diff-changed,.schedule-import-comment.diff-changed { border-left:4px solid #c7792d; background:#fff8ef; }
.schedule-import-event.diff-removed,.schedule-import-comment.diff-removed { border-left:4px solid #c44747; background:#fff3f3; }
.schedule-import-event.diff-unchanged,.schedule-import-comment.diff-unchanged { opacity:.62; }
.schedule-import-before { margin-top:4px; color:#9a531d!important; }
.schedule-diff-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.schedule-diff-summary span { padding:10px 8px; border-radius:10px; background:white; text-align:center; font-weight:700; }
.schedule-diff-summary .diff-added { color:#23704a; }.schedule-diff-summary .diff-changed { color:#a55b18; }.schedule-diff-summary .diff-removed { color:#a33b3b; }
.schedule-import-error { padding:13px; border-radius:12px; color:#8f2020; background:#fff1f1; }
.schedule-import-success { display:grid; gap:4px; padding:18px; border-radius:14px; color:white; background:var(--green); }
.public-schedule-groups { overflow:hidden; border:0.5px solid #c6c6c8; border-radius:14px; background:white; }
.public-schedule-group { position:relative; display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:48px; padding:11px 14px; }
.public-schedule-group + .public-schedule-group::before { content:""; position:absolute; top:0; left:14px; right:0; border-top:0.5px solid #c6c6c8; }
.public-schedule-group span { color:var(--muted); font-size:14px; text-align:right; }
.calendar-event.regular > i { background:#5b6fc7; }.calendar-event.regular { cursor:default; }
@media (max-width:600px) { .schedule-import-event { grid-template-columns:118px minmax(0,1fr); }.schedule-import-form { padding:14px; }.public-schedule-group { align-items:flex-start; flex-direction:column; gap:3px; }.public-schedule-group span { text-align:left; } }

/* Apple-style directories: compact grouped lists with editing in a sheet. */
.directory-top-actions,.players-top-actions { display:flex; justify-content:flex-start; margin:2px 0 16px; }
.directory-top-actions button,.players-top-actions button { width:auto; padding:8px 0; color:var(--green); border:0; background:transparent; font-size:16px; font-weight:600; }
.directory-list,.players-list { gap:0; margin-top:0; overflow:hidden; border:0.5px solid #c6c6c8; border-radius:14px; background:white; }
.directory-row,.player-card { position:relative; min-height:66px; margin:0; padding:12px 14px; border:0; border-radius:0; }
.directory-row + .directory-row::before,.player-card + .player-card::before { content:""; position:absolute; top:0; left:14px; right:0; border-top:0.5px solid #c6c6c8; }
.directory-row small { margin-top:2px; }
.directory-actions button { min-height:38px; padding:7px 10px; border-color:#d1d1d6; background:#fff; }
.player-card { width:100%; grid-template-columns:44px minmax(0,1fr) 14px; gap:12px; text-align:left; cursor:pointer; }
.player-card:hover,.player-card:focus { border-color:transparent; border-radius:0; box-shadow:none; background:#f7f7fa; }
.player-avatar { width:44px; height:44px; }
.directory-chevron { color:#c7c7cc; font-size:25px; font-weight:300; }
.deleted-players { margin:18px 0 0; border:0; }
.form-sheet { width:min(560px,calc(100vw - 32px)); max-height:min(88dvh,760px); padding:0; overflow:auto; border:0; border-radius:20px; background:#f2f2f7; box-shadow:0 24px 80px #0004; }
.form-sheet::backdrop { background:#0006; backdrop-filter:blur(2px); }
.form-sheet form { display:grid; gap:14px; margin:0; padding:22px; border:0; border-radius:0; background:#f2f2f7; box-shadow:none; }
.form-sheet form h2 { margin:0 0 4px; font-size:22px; text-align:center; }
.form-sheet form label { margin:0; }
.form-sheet .actions,.form-sheet .player-create-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:6px; }
.form-sheet .actions button,.form-sheet .player-create-actions button { min-height:48px; }
.form-sheet #delete-player-from-form { grid-column:1 / -1; }
.form-sheet .goalie-checkbox { max-width:none; background:white; }
.form-sheet .player-create-form { margin:0; }
.activity-form-sheet form { gap:12px; }
.activity-form-sheet .date-time-fields { gap:12px; }
.activity-form-sheet input,.activity-form-sheet select { background:white; }

@media (max-width:600px) {
  .directory-row { align-items:center; }
  .directory-actions { flex-direction:row; }
  .directory-actions .danger { display:none; }
  .form-sheet { width:100%; max-width:none; max-height:90dvh; margin:auto 0 0; border-radius:20px 20px 0 0; }
  .form-sheet form { padding:20px 16px calc(18px + env(safe-area-inset-bottom)); }
  .form-sheet .player-name-fields { grid-template-columns:1fr; }
  .form-sheet .player-extra-fields { grid-template-columns:minmax(0,1fr) 92px; }
  .activity-form-sheet .date-time-fields { grid-template-columns:1fr; gap:12px; }
  .activity-form-sheet form { gap:12px; padding-top:18px; }
  .activity-form-sheet form h2 { margin-bottom:2px; }
  .activity-form-sheet .actions { position:sticky; bottom:0; margin:4px -16px calc(-18px - env(safe-area-inset-bottom)); padding:12px 16px calc(12px + env(safe-area-inset-bottom)); border-top:0.5px solid #c6c6c8; background:#f2f2f7ee; backdrop-filter:blur(18px); }
}

/* Apple HIG review follow-up: distinct navigation bar and reliable touch targets. */
header { border-bottom:0.5px solid #c6c6c8; box-shadow:0 1px 0 #ffffff80; }
.changelog-entry-body,.changelog-entry-body section,.changelog-entry-body li { min-width:0; }
.changelog-entry-body code { white-space:normal; overflow-wrap:anywhere; word-break:break-word; }

@media (max-width:600px) {
  header { padding-top:4px; padding-bottom:4px; }
  button,select,input:not([type="checkbox"]),textarea,summary { min-height:44px; }
  input[type="checkbox"],input[type="radio"] { min-height:0; }
  .participant-actions button[title="Убрать"] { width:44px; min-width:44px; padding:7px; }
  .directory-actions button { min-height:44px; }
  .game-import summary,.deleted-players summary { display:flex; align-items:center; }
}
