:root {
  color-scheme: light;
  --ink: #10233f;
  --muted: #66758b;
  --line: #d9e2ef;
  --paper: #ffffff;
  --canvas: #f4f7fb;
  --forest: #0b2f6b;
  --forest-2: #1557a6;
  --mint: #e7f0fc;
  --amber: #d62839;
  --amber-soft: #fdecef;
  --red: #b91f32;
  --shadow: 0 10px 30px rgba(16, 35, 63, 0.08);
}

.public-gate { min-height:100vh; display:grid; place-items:center; padding:28px; background:linear-gradient(145deg,var(--forest),#081b3a); }
.gate-card { width:min(520px,100%); padding:42px; border-radius:24px; background:white; box-shadow:0 24px 70px rgba(0,0,0,.25); text-align:center; }
.gate-card h1 { margin:6px 0 12px; }
.gate-card>p:not(.eyebrow) { color:var(--muted); line-height:1.6; }
.gate-ball { width:64px; height:64px; margin:0 auto 16px; display:grid; place-items:center; border-radius:18px; background:var(--forest); color:white; font-size:30px; }
.gate-action { width:100%; justify-content:center; margin:18px 0 12px; }
.gate-card small { display:block; color:var(--muted); }
.onboarding-card { text-align:left; }
.onboarding-card .gate-ball { margin-left:0; }
.onboarding-card form { display:grid; gap:14px; margin-top:20px; }
.onboarding-card label { display:grid; gap:7px; color:var(--ink); font-size:13px; font-weight:800; }
.form-error { color:var(--red) !important; font-weight:700; }
.club-switcher { max-width:240px; min-height:40px; }
.clubs-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.club-card { padding:22px; display:grid; gap:10px; }
.club-card.current { box-shadow:0 0 0 2px var(--forest),var(--shadow); }
.club-card h2,.club-card p { margin:0; }
.club-card p { color:var(--muted); }
.club-colors { display:flex; height:10px; border-radius:8px; overflow:hidden; }
.club-colors i { flex:1; }
.club-grid-grid-card { display:flex; gap:10px; padding:14px 18px; margin-bottom:16px; border-radius:12px; background:var(--mint); color:var(--forest); }

* { box-sizing: border-box; }
html { font-size: 16px; }
body {
  margin: 0;
  background: var(--canvas);
  color: var(--ink);
  font-family: "DM Sans", system-ui, sans-serif;
}
button, input, select { font: inherit; }
button { cursor: pointer; }

.shell { min-height: 100vh; display: grid; grid-template-columns: 248px 1fr; }
.sidebar {
  position: sticky; top: 0; height: 100vh; padding: 28px 18px;
  overflow-y:auto; background: var(--forest); color: white; display: flex; flex-direction: column;
}
.brand { display: flex; gap: 12px; align-items: center; padding: 0 8px 26px; }
.brand-mark { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--amber); color: white; font-size: 21px; }
.brand-mark img { width:100%; height:100%; object-fit:contain; border-radius:inherit; background:white; }
.brand strong { display: block; font-family: Manrope, sans-serif; font-size: 15px; }
.brand small { color: #c7d7ef; font-size: 12px; }
.nav { display: grid; gap: 6px; }
.nav button {
  width: 100%; border: 0; border-radius: 10px; padding: 11px 12px; background: transparent;
  color: #dbe8f8; text-align: left; display: flex; gap: 11px; align-items: center; font-weight: 600;
}
.nav button:hover, .nav button.active { background: rgba(255,255,255,.1); color: white; }
.nav button.active::before { content: ""; width: 3px; height: 22px; border-radius: 3px; background: var(--amber); margin-left: -12px; }
.nav-icon { width: 20px; text-align: center; }
.sidebar-footer { margin-top: auto; border-top: 1px solid rgba(255,255,255,.14); padding: 18px 8px 0; }
.user { display: flex; align-items: center; gap: 10px; }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--mint); color: var(--forest); display:grid; place-items:center; font-weight:800; }
.user small { display:block; color:#c7d7ef; }

.main { min-width: 0; }
.topbar { height: 76px; padding: 0 36px; display:flex; align-items:center; justify-content:space-between; background:rgba(244,247,251,.9); backdrop-filter: blur(14px); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:3; }
.crumb { color: var(--muted); font-size:14px; }
.actions { display:flex; gap:10px; }
.icon-btn, .search { border:1px solid var(--line); background:white; border-radius:10px; height:40px; }
.icon-btn { width:40px; }
.search { width:230px; padding:0 14px; color:var(--ink); }
.content { padding: 34px 36px 60px; max-width: 1460px; margin: 0 auto; }
.page-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-end; margin-bottom:26px; }
.eyebrow { color:var(--forest-2); text-transform:uppercase; letter-spacing:.12em; font-size:12px; font-weight:800; margin:0 0 7px; }
h1,h2,h3 { font-family:Manrope, sans-serif; margin:0; }
h1 { font-size:32px; letter-spacing:-.035em; }
.subtitle { margin:7px 0 0; color:var(--muted); }
.primary { border:0; border-radius:10px; padding:11px 16px; background:var(--amber); color:white; font-weight:800; box-shadow:0 5px 16px rgba(214,40,57,.22); }
.secondary { border:1px solid var(--line); border-radius:9px; padding:9px 13px; background:white; color:var(--ink); font-weight:700; }
.secondary:hover { border-color:#9fb1c9; }
.club-logo-editor { display:grid; grid-template-columns:80px auto 1fr; align-items:center; gap:14px; padding:14px; border:1px solid var(--line); border-radius:14px; }
.club-logo-preview { width:80px; height:80px; overflow:hidden; display:grid; place-items:center; border:1px solid var(--line); border-radius:16px; background:white; font-size:32px; }
.club-logo-preview img { width:100%; height:100%; object-fit:contain; }
.club-logo-editor small { color:var(--muted); }

.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.card { background:var(--paper); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.stat { padding:20px; min-height:126px; display:flex; flex-direction:column; justify-content:space-between; }
.stat-top { display:flex; justify-content:space-between; color:var(--muted); font-size:14px; font-weight:600; }
.stat-value { font-family:Manrope,sans-serif; font-size:30px; font-weight:800; letter-spacing:-.04em; }
.trend { font-size:12px; color:var(--forest-2); font-weight:700; }
.dashboard-grid { display:grid; grid-template-columns:1.35fr .85fr; gap:16px; margin-top:16px; }
.birthdays-panel { grid-column:1/-1; }
.birthday-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.birthday-entry { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; border:1px solid var(--line); border-radius:11px; padding:8px; background:white; color:var(--ink); }
.birthday-entry:hover,.birthday-entry:focus-within { border-color:var(--forest-2); background:#f7f9fc; }
.birthday-player { display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:12px; align-items:center; width:100%; border:0; padding:4px; background:transparent; color:inherit; text-align:left; }
.birthday-player span>strong,.birthday-player span>small { display:block; }
.birthday-player small { margin-top:3px; color:var(--muted); font-size:12px; }
.birthday-player>b { font-size:22px; }
.birthday-whatsapp { display:inline-flex; align-items:center; justify-content:center; min-height:38px; border:1px solid #168b4c; border-radius:9px; padding:8px 11px; background:#eaf8f0; color:#0b6b39; font-size:12px; font-weight:800; text-decoration:none; white-space:nowrap; }
.birthday-whatsapp:hover,.birthday-whatsapp:focus-visible { background:#d8f2e3; }
.birthday-whatsapp:disabled { border-color:var(--line); background:#f1f3f6; color:var(--muted); cursor:not-allowed; }
.birthday-date strong { color:var(--forest-2); text-transform:capitalize; }
.panel { padding:22px; }
.panel-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.panel-head h2 { font-size:18px; }
.panel-head span { color:var(--muted); font-size:13px; }
.attendance { display:grid; gap:14px; }
.attendance-row { display:grid; grid-template-columns:130px 1fr 44px; gap:12px; align-items:center; font-size:14px; }
.bar { background:#e8eef7; border-radius:99px; height:9px; overflow:hidden; }
.bar i { display:block; height:100%; border-radius:inherit; background:var(--forest-2); }
.event-list { display:grid; gap:11px; }
.event { border:1px solid var(--line); border-radius:12px; padding:13px; display:grid; grid-template-columns:46px 1fr auto; gap:12px; align-items:center; }
.event-date { background:var(--mint); color:var(--forest); border-radius:9px; text-align:center; padding:6px 2px; font-weight:800; font-size:13px; }
.event strong { display:block; font-size:14px; }
.event small { color:var(--muted); }
.pill { border-radius:999px; padding:5px 9px; font-size:12px; font-weight:700; background:var(--amber-soft); color:#9e1d2c; }
.alert-strip { margin-top:16px; padding:17px 20px; display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid #efbdc4; background:#fff8f9; border-radius:14px; }
.alert-strip strong { display:block; }
.alert-strip span { color:var(--muted); font-size:14px; }
.toolbar { display:flex; gap:8px; overflow:auto; margin-bottom:14px; padding-bottom:2px; }
.chip { white-space:nowrap; border:1px solid var(--line); background:white; padding:7px 11px; border-radius:999px; color:var(--ink); font-size:13px; font-weight:700; cursor:pointer; }
.chip:hover,.chip:focus-visible { border-color:var(--forest-2); color:var(--forest-2); }
.chip.active { background:var(--forest); color:white; border-color:var(--forest); }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; min-width:720px; }
th { text-align:left; padding:14px 18px; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.06em; background:#f7f9fc; }
td { padding:14px 18px; border-top:1px solid var(--line); font-size:14px; }
tbody tr:hover { background:#f7faff; }
.shirt { display:inline-grid; place-items:center; width:33px; height:33px; border-radius:9px; background:var(--mint); color:var(--forest); font-weight:800; }
.badge { display:inline-flex; border-radius:999px; padding:5px 9px; font-size:12px; font-weight:800; background:#e8eef7; color:var(--muted); }
.badge.activo,.badge.pagado,.badge.entreno { background:var(--mint); color:var(--forest); }
.badge.inactivo { background:#eef0ef; color:#737b77; }
.badge.previous-season { background:#e7effb; color:#0b2f6b; }
.badge.new-season { background:#fff0f2; color:#a51d2d; }
.badge.pendiente,.badge.partido { background:var(--amber-soft); color:#9e1d2c; }
.badge.exento,.badge.neutral { background:#eef1f7; color:#46536a; }
.row-action { border:0; background:transparent; font-size:18px; color:var(--muted); }
.row-actions { display:flex; align-items:center; gap:3px; }
.row-action { width:30px; height:30px; border-radius:8px; cursor:pointer; }
.row-action:hover { background:#edf3fb; color:var(--ink); }
.row-action.danger:hover { background:#fff0f0; color:#b42318; }
.text-link { border:0; padding:0; background:transparent; color:var(--forest-2); font-weight:800; text-align:left; }
.text-link:hover { text-decoration:underline; }
.inline-progress { display:inline-block; width:66px; height:7px; background:#e8eef7; border-radius:99px; overflow:hidden; margin-right:7px; }
.inline-progress i { display:block; height:100%; background:var(--forest-2); }
.calendar { padding:20px; }
.match-tabs { display:flex; gap:7px; overflow-x:auto; padding:7px; margin-bottom:14px; border:1px solid var(--line); border-radius:14px; background:white; box-shadow:var(--shadow); }
.match-tabs button { flex:0 0 auto; border:0; border-radius:9px; padding:10px 14px; background:transparent; color:var(--muted); font-weight:800; }
.match-tabs button.active { background:var(--forest); color:white; }
.match-team-filter { width:min(320px,100%); display:grid; gap:7px; margin:0 0 14px; color:var(--muted); font-size:14px; font-weight:800; }
.match-hub-body { display:grid; gap:14px; }
.match-overview { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.match-kpi { padding:18px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.match-kpi span { color:var(--muted); font-size:13px; }
.match-kpi strong { font:800 26px Manrope,sans-serif; }
.match-list { display:grid; gap:10px; }
.match-card { display:grid; grid-template-columns:135px 1fr auto; gap:18px; align-items:center; padding:18px 20px; border-left:5px solid var(--forest-2); }
.match-card.played { border-left-color:#16834b; }
.match-card.pending { border-left-color:#d19a18; }
.match-card-date { display:grid; gap:4px; text-transform:capitalize; }
.match-card-date span,.match-card-main p,.match-card-side span { color:var(--muted); font-size:13px; }
.match-card-main>div { display:flex; gap:8px; align-items:center; }
.match-card-main h2 { margin:7px 0 4px; font-size:18px; }
.match-card-main p { margin:0; }
.match-card-side { display:grid; justify-items:end; gap:9px; }
.match-score { color:var(--forest); font:800 28px Manrope,sans-serif; }
.match-status,.match-round { display:inline-flex; width:max-content; padding:5px 8px; border-radius:999px; font-size:12px; font-weight:800; }
.match-status.played { background:#e5f6ec; color:#116b3d; }
.match-status.upcoming { background:var(--amber-soft); color:#9e1d2c; }
.match-status.pending { background:#fff3d6; color:#885f00; }
.match-round { background:#eef2f7; color:var(--muted); }
.calendar-legend { display:flex; gap:9px; flex-wrap:wrap; }
.calendar-legend span { padding:6px 10px; border-radius:999px; font-size:12px; font-weight:800; }
.calendar-legend .played { background:#e5f6ec; color:#116b3d; }
.calendar-legend .upcoming { background:var(--amber-soft); color:#9e1d2c; }
.calendar-legend .pending { background:#fff3d6; color:#885f00; }
.calendar-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.weekdays,.month-grid { display:grid; grid-template-columns:repeat(7,1fr); }
.weekdays b { padding:8px; color:var(--muted); font-size:12px; text-align:center; }
.day { min-height:118px; padding:9px; border-top:1px solid var(--line); border-right:1px solid var(--line); }
.day:nth-child(7n) { border-right:0; }
.day>span { font-size:13px; font-weight:800; }
.day.muted { opacity:.3; }
.cal-event { display:block; width:100%; border:0; border-radius:6px; background:var(--mint); color:var(--forest); text-align:left; margin-top:6px; padding:5px 6px; font-size:11px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-event.match { background:var(--amber-soft); color:#9e1d2c; }
.cal-event.match.played { background:#e5f6ec; color:#116b3d; }
.cal-event.match.pending { background:#fff3d6; color:#885f00; }
.match-table table { min-width:920px; }
.match-table small { display:block; margin-top:3px; color:var(--muted); }
.callup-names { max-width:500px; white-space:normal; line-height:1.45; }
.standings-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.standings-actions p { margin:0; }
.standings-table table { min-width:760px; }
.standings-table th:not(:nth-child(2)),.standings-table td:not(:nth-child(2)) { text-align:center; }
.session-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.session-card { padding:20px; }
.session-card.attendance-complete { border:2px solid #2f7a57; background:linear-gradient(180deg,#f2fbf6 0%,#fff 48%); box-shadow:0 10px 28px rgba(47,122,87,.14); }
.attendance-state { margin-right:auto; border-radius:999px; padding:5px 9px; background:#dff3e8; color:#236744; font-size:11px; font-weight:800; }
.session-top,.session-foot { display:flex; align-items:center; justify-content:space-between; }
.session-card h2 { font-size:18px; margin-top:15px; }
.session-card p { color:var(--muted); line-height:1.7; min-height:74px; }
.session-foot { border-top:1px solid var(--line); padding-top:14px; font-size:13px; color:var(--muted); }
.event-button { width:100%; background:white; text-align:left; }
.callup-layout { display:grid; grid-template-columns:320px 1fr; overflow:hidden; }
.callup-info { padding:26px; background:var(--forest); color:white; }
.callup-info label { font-size:13px; font-weight:700; }
.callup-info select { width:100%; margin-top:8px; }
.callup-info p { color:#cbd9ed; line-height:1.55; }
.callup-score { margin:32px 0 8px; display:flex; align-items:baseline; gap:10px; }
.callup-score strong { font-family:Manrope,sans-serif; font-size:48px; }
.callup-list { padding:18px; display:grid; gap:8px; align-content:start; }
.pick-player { display:grid; grid-template-columns:22px 42px minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px; border:1px solid var(--line); border-radius:10px; cursor:pointer; }
.pick-player:has(input:checked) { background:#f3f7fd; border-color:#9db9df; }
.score-badge { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--forest); color:white; font-family:Manrope,sans-serif; font-size:13px; }
.pick-player small { display:block; color:var(--muted); margin-top:2px; }
.balance-line { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:18px; }
.balance-line span { border:1px solid rgba(255,255,255,.22); border-radius:999px; padding:5px 8px; color:#eef5ff; font-size:12px; font-weight:800; }
.quota-warning { margin:0 0 16px; padding:9px 11px; border-radius:9px; background:rgba(214,40,57,.18); border:1px solid rgba(255,255,255,.3); color:#ffe6e9; font-size:13px; font-weight:700; }
.criteria-head { display:flex; justify-content:space-between; color:var(--muted); font-size:13px; padding:4px 2px 8px; }
.criteria-head strong { color:var(--ink); }
.summary-row { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:14px; }
.mini-summary { padding:18px; display:flex; justify-content:space-between; align-items:center; }
.mini-summary span { color:var(--muted); }
.mini-summary strong { font-size:22px; font-family:Manrope,sans-serif; }
.good { color:var(--forest-2); }.warn { color:var(--red); }.neutral { color:var(--muted); }
.status-select { border:0; border-radius:999px; padding:7px 9px; font-weight:700; }
.status-select.pagado,.status-select.presente { background:var(--mint); color:var(--forest); }.status-select.pendiente { background:var(--amber-soft); color:#9e1d2c; }.status-select.exento { background:#eef1f7; }.status-select.ausente { background:#fff0ef; color:var(--red); }
.sync-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.sync-card { padding:28px; display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.sync-card h2,.sync-card p { margin:0; }
.sync-card .primary { display:inline-block; text-decoration:none; }
.sync-card small { color:var(--muted); line-height:1.45; }
.sync-card p,.data-note p { color:var(--muted); line-height:1.65; }
.featured-export { border-top:4px solid var(--red); }
.custom-export-form { display:grid; gap:18px; }
.export-options { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:end; }
.export-options label:not(.export-active) { display:grid; gap:7px; font-weight:700; }
.export-active { grid-column:1/-1; display:flex; align-items:center; gap:9px; color:var(--muted); font-weight:700; }
.export-fields-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.export-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; max-height:340px; overflow:auto; padding:2px; }
.export-field { display:flex; gap:9px; align-items:center; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; cursor:pointer; }
.export-field:has(input:checked) { border-color:var(--forest-2); background:var(--mint); }
.export-field input,.export-active input { accent-color:var(--red); }
.big-icon { width:50px; height:50px; border-radius:14px; background:var(--mint); color:var(--forest); display:grid; place-items:center; font-size:26px; margin-bottom:18px; }
.file-button { display:inline-block; cursor:pointer; }
.data-note { padding:26px; margin-top:16px; }
.check-list { display:flex; gap:18px; flex-wrap:wrap; color:var(--forest-2); font-weight:700; font-size:14px; }
.import-summary { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px; }
.import-summary>* { padding:12px; border-radius:10px; background:#f4f7fc; text-align:center; }
.import-summary span { grid-column:1/-1; color:var(--muted); }
.import-preview table { min-width:620px; }
.import-preview small { display:block; margin-top:3px; color:var(--muted); }
.import-errors { margin-top:14px; padding:12px 14px; border-radius:10px; background:var(--amber-soft); color:#9e1d2c; }
.import-errors summary { cursor:pointer; font-weight:800; }
.import-errors p { margin:7px 0 0; font-size:13px; }
.permission-note { margin-top:14px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; color:var(--muted); font-size:14px; }
.head-actions,.profile-hero-actions { display:flex; gap:9px; align-items:center; }
.back-link { border:0; background:transparent; color:var(--forest-2); font-weight:800; padding:0; margin-bottom:14px; }
.profile-hero { display:grid; grid-template-columns:112px 1fr auto; gap:22px; align-items:center; padding:22px; }
.profile-hero-photo { width:112px; height:124px; border-radius:14px; overflow:hidden; background:var(--mint); color:var(--forest); display:grid; place-items:center; font-size:42px; }
.profile-hero-photo img { width:100%; height:100%; object-fit:cover; }
.profile-hero h1 { display:flex; align-items:center; gap:10px; }
.profile-hero p:not(.eyebrow) { margin:8px 0 10px; color:var(--muted); }
.profile-statuses { display:flex; gap:7px; flex-wrap:wrap; }
.follow-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
.follow-panel { padding:22px; margin-top:16px; }
.follow-grid .follow-panel { margin-top:0; min-width:0; }
.follow-panel>.table-wrap { margin:0 -22px -22px; border:0; border-radius:0 0 16px 16px; box-shadow:none; }
.follow-panel>.table-wrap table { min-width:640px; }
.follow-seasons { border-top:4px solid var(--forest-2); }
.season-list { display:grid; gap:10px; }
.season-list>div { display:grid; grid-template-columns:1fr auto auto; gap:10px; align-items:center; padding:12px; border:1px solid var(--line); border-radius:12px; }
.season-list small,.alert-list small,.season-player small { display:block; color:var(--muted); margin-top:3px; }
.alert-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.alert-list button { border:1px solid var(--line); background:#fff; border-radius:11px; padding:12px; display:flex; gap:10px; text-align:left; align-items:flex-start; }
.alert-dot { width:9px; height:9px; margin-top:5px; border-radius:50%; background:var(--red); flex:0 0 auto; }
.player-blocked { background:#fff5f6; border-color:#efc8ce; opacity:.82; }
.player-blocked input { cursor:not-allowed; }
.availability-tag { color:var(--red); font-size:12px; text-align:right; }
.report-timeline { display:grid; gap:12px; margin-top:16px; }
.report-entry { display:grid; grid-template-columns:90px 1fr; gap:18px; padding:16px; border:1px solid var(--line); border-radius:13px; }
.report-entry h3,.report-entry p { margin:0 0 9px; }
.report-date { display:grid; align-content:start; gap:5px; }
.report-date strong { color:var(--forest-2); font:800 28px Manrope,sans-serif; }
.report-date span { color:var(--muted); font-size:13px; }
.report-ratings { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:10px; }
.report-ratings span { background:#eef4fb; color:var(--forest-2); border-radius:999px; padding:6px 9px; font-size:12px; }
.season-player-list { display:grid; gap:8px; max-height:430px; overflow:auto; margin:16px 0; }
.season-player { display:grid; grid-template-columns:1fr minmax(190px,260px); gap:12px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:10px; }
.season-reset { display:flex; gap:9px; align-items:flex-start; margin:14px 0; color:var(--muted); font-weight:700; }
.profile-hero .legal-name { margin:3px 0 0 !important; color:var(--ink) !important; font-weight:700; }
.profile-tabs { display:flex; gap:6px; overflow-x:auto; margin:16px 0; padding:5px; border:1px solid var(--line); border-radius:13px; background:white; }
.profile-tabs button { flex:1; min-width:max-content; border:0; border-radius:9px; background:transparent; padding:10px 13px; color:var(--muted); font-weight:800; }
.profile-tabs button.active { background:var(--forest); color:white; }
.profile-body { display:grid; gap:16px; }
.profile-summary-grid,.sports-grid,.documents-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.profile-panel { padding:22px; }
.profile-panel>h2 { font-size:18px; margin-bottom:18px; }
.profile-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:0; }
.profile-fields div { min-width:0; padding-bottom:11px; border-bottom:1px solid var(--line); }
.profile-fields dt { color:var(--muted); font-size:13px; }
.profile-fields dd { margin:5px 0 0; font-weight:700; overflow-wrap:anywhere; }
.profile-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.profile-kpis.card { padding:16px; }
.profile-kpis>div { min-width:0; padding:14px 10px; border-radius:11px; background:#f4f7fc; text-align:center; }
.profile-kpis strong { display:block; font:800 24px Manrope,sans-serif; }
.profile-kpis span { display:block; margin-top:4px; color:var(--muted); font-size:12px; }
.profile-kpis-wide { grid-template-columns:repeat(6,1fr); }
.profile-alerts { display:grid; gap:8px; }
.profile-alert { display:flex; justify-content:space-between; gap:12px; padding:12px 15px; border-radius:11px; font-size:14px; }
.profile-alert.warn { background:var(--amber-soft); color:#9e1d2c; }
.profile-alert.danger { background:#fff0ef; color:var(--red); }
.ratings-layout { display:grid; grid-template-columns:1.15fr .85fr; gap:16px; }
.rating-average { min-width:58px; padding:8px 12px; border-radius:12px; background:var(--forest); color:white; font:800 22px Manrope,sans-serif; text-align:center; }
.rating-list { display:grid; gap:16px; }
.rating-list>div { display:grid; grid-template-columns:150px 1fr 36px; gap:12px; align-items:center; }
.rating-list span { color:var(--muted); font-weight:700; }
.rating-list i { height:11px; overflow:hidden; border-radius:999px; background:#e8edf5; }
.rating-list b { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--forest-2),var(--red)); }
.rating-list strong { text-align:right; }
.notes-copy { margin:0; color:var(--ink); line-height:1.7; white-space:pre-wrap; }
.timeline { display:grid; gap:0; }
.timeline>div { display:grid; grid-template-columns:14px 1fr; gap:10px; padding:0 0 17px; }
.timeline i { width:9px; height:9px; margin-top:5px; border-radius:50%; background:var(--forest-2); box-shadow:0 0 0 4px var(--mint); }
.timeline small,.document-list small,.injury-list small,.profile-table td small { display:block; margin-top:4px; color:var(--muted); }
.muted-copy { color:var(--muted); line-height:1.6; }
.participation-bar { display:flex; height:28px; overflow:hidden; border-radius:9px; background:#e8eef7; margin:18px 0; }
.participation-bar i { display:block; min-width:0; }
.participation-bar .starter,.chart-legend .starter::before { background:#0b2f6b; }
.participation-bar .bench,.chart-legend .bench::before { background:#2c6fc0; }
.participation-bar .unused,.chart-legend .unused::before { background:#d62839; }
.participation-bar .not-called,.chart-legend .not-called::before { background:#9eb9dc; }
.chart-legend { display:flex; gap:14px; flex-wrap:wrap; color:var(--muted); font-size:12px; }
.chart-legend span { display:flex; align-items:center; gap:6px; }
.chart-legend span::before { content:""; width:9px; height:9px; border-radius:2px; }
.minute-chart { display:grid; gap:11px; margin-top:18px; }
.minute-chart>div { display:grid; grid-template-columns:82px 1fr 32px; gap:9px; align-items:center; font-size:12px; }
.minute-chart i { height:12px; overflow:hidden; border-radius:99px; background:#e8eef7; }
.minute-chart b { display:block; height:100%; border-radius:inherit; background:var(--forest-2); }
.profile-table table { min-width:820px; }
.badge.presente,.badge.justificada,.badge.tarde { background:var(--mint); color:var(--forest); }
.badge.ausente { background:#fff0ef; color:var(--red); }
.badge.sin-registrar { background:#eef1f7; color:#46536a; }
.injury-list,.document-list { display:grid; gap:10px; }
.injury-list>div { display:grid; grid-template-columns:auto 1fr; gap:8px 12px; padding:13px; border:1px solid var(--line); border-radius:10px; }
.injury-list small { grid-column:2; }
.payment-cards { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; }
.payment-term,.payment-total { padding:24px; display:grid; gap:12px; align-content:center; }
.payment-term strong,.payment-total strong { font:800 30px Manrope,sans-serif; }
.payment-total { background:var(--forest); color:white; }
.document-form,.match-result { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:18px; }
.document-form label,.match-result label { display:grid; gap:7px; font-size:14px; font-weight:700; }
.document-form .full,.match-result .full { grid-column:1/-1; }
.document-list>div { display:grid; grid-template-columns:40px 1fr auto 30px; gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); }
.document-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:9px; background:var(--mint); color:var(--forest); font-weight:800; }
.stats-filters { display:grid; grid-template-columns:repeat(3,minmax(170px,1fr)) auto; gap:14px; align-items:end; padding:17px 18px; margin-bottom:14px; }
.stats-filters label { display:grid; gap:7px; color:var(--muted); font-size:14px; font-weight:800; }
.stats-toggle { display:flex !important; grid-template-columns:auto 1fr; align-items:center; min-height:42px; color:var(--ink) !important; }
.stats-toggle input { width:18px; min-height:18px; height:18px; }
.stats-overview { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:14px; }
.stats-total { padding:18px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.stats-total span { color:var(--muted); font-size:14px; }
.stats-total strong { font:800 25px Manrope,sans-serif; }
.stats-dashboard { margin-top:26px; display:grid; gap:16px; }
.stats-dashboard-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; padding:2px 2px 0; }
.stats-dashboard-heading span { color:var(--forest-2); font-size:12px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.stats-dashboard-heading h2 { margin:5px 0 0; font:800 24px Manrope,sans-serif; }
.stats-dashboard-heading p { max-width:480px; margin:0; color:var(--muted); font-size:14px; }
.stats-dashboard-picker { display:flex; gap:8px; overflow-x:auto; padding:12px; }
.stats-dashboard-picker button { flex:0 0 auto; border:1px solid var(--line); border-radius:8px; padding:9px 12px; background:white; color:var(--muted); font-size:13px; font-weight:800; }
.stats-dashboard-picker button:hover { border-color:var(--forest-2); color:var(--forest-2); }
.stats-dashboard-picker button.active { border-color:var(--forest); background:var(--forest); color:white; }
.stats-dashboard-chart { padding:20px; overflow:hidden; }
.stats-dashboard-scroll { overflow-x:auto; padding:8px 0 4px; }
.stats-dashboard-inner { min-width:100%; }
.dashboard-graph { position:relative; height:300px; border-bottom:1px solid var(--line); background:repeating-linear-gradient(to top,transparent 0,transparent 59px,#e4eaf3 60px); }
.dashboard-bars { position:absolute; inset:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(42px,1fr)); gap:10px; align-items:end; padding:20px 12px 0; }
.dashboard-bar-cell { height:100%; display:flex; align-items:flex-end; justify-content:center; border:0; padding:0 5px; background:transparent; cursor:pointer; }
.dashboard-bar { position:relative; width:100%; max-width:34px; min-height:2px; border-radius:7px 7px 2px 2px; background:linear-gradient(180deg,#2f75c8,var(--forest)); box-shadow:0 5px 14px rgba(11,47,107,.18); transition:.18s ease; }
.dashboard-bar-cell:hover .dashboard-bar { filter:brightness(.94); transform:translateY(-3px); }
.dashboard-bar strong { position:absolute; left:50%; top:-23px; transform:translateX(-50%); color:var(--ink); font-size:12px; }
.dashboard-average { position:absolute; left:12px; right:12px; z-index:2; height:2px; background:var(--amber); pointer-events:none; }
.dashboard-average span { position:absolute; right:0; top:-22px; padding:2px 6px; border-radius:5px; background:var(--amber); color:white; font-size:11px; font-weight:800; }
.dashboard-labels { display:grid; grid-template-columns:repeat(auto-fit,minmax(42px,1fr)); gap:10px; min-height:98px; padding:10px 12px 4px; }
.dashboard-labels button { overflow:visible; align-self:start; border:0; padding:0; background:transparent; color:var(--muted); font-size:11px; font-weight:700; line-height:1.15; text-align:left; white-space:nowrap; transform:translateX(48%) rotate(-45deg); transform-origin:top left; }
.dashboard-labels button:hover { color:var(--forest-2); }
.stats-alerts { padding:20px; margin-bottom:14px; }
.stats-alerts>div:not(.panel-head) { display:grid; grid-template-columns:120px 1fr; gap:12px; align-items:center; padding:10px 0; border-top:1px solid var(--line); }
.stats-table table { min-width:1380px; }
.stats-table th,.stats-table td { padding:11px 12px; text-align:center; }
.stats-table th:first-child,.stats-table td:first-child { text-align:left; position:sticky; left:0; z-index:1; background:white; }
.stats-table th:first-child { background:#f7f9fc; z-index:2; }
.stats-sort { border:0; padding:0; background:transparent; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.04em; font-weight:800; white-space:nowrap; }
.stats-sort.active { color:var(--forest-2); }
.stats-player { display:flex; align-items:center; gap:9px; min-width:190px; }
.stats-player>span { min-width:0; }
.stats-player small { display:block; margin-top:3px; color:var(--muted); font-size:11px; }
.stats-avatar { width:38px; height:38px; flex:0 0 auto; overflow:hidden; border-radius:9px; display:grid; place-items:center; background:var(--mint); color:var(--forest); }
.stats-avatar img { width:100%; height:100%; object-fit:cover; }
.reinforcement-note { margin:0 0 12px; padding:10px 12px; border-radius:9px; background:var(--amber-soft); color:#9e1d2c; font-size:13px; }
.staff-table table { min-width:1040px; }
.table-note { display:block; margin-top:4px; color:var(--muted); font-size:11px; }
.row-actions { display:flex; gap:6px; justify-content:flex-end; }
.row-action.danger { color:var(--red); }
.material-price-note { display:flex; align-items:center; gap:14px; margin-bottom:14px; padding:13px 16px; border:1px solid #f3c7cc; border-radius:12px; background:#fff5f6; color:#8f1f2b; }
.material-price-note span { color:#6e4850; font-size:13px; }
.material-filter { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:14px; padding:16px 18px; }
.material-filter label { display:grid; min-width:260px; gap:7px; color:var(--muted); font-size:13px; font-weight:800; }
.material-filter span { color:var(--muted); font-size:13px; }
.payment-filters { display:grid; grid-template-columns:repeat(3,minmax(180px,1fr)); gap:14px; margin-bottom:14px; padding:16px 18px; }
.payment-filters label { display:grid; gap:7px; color:var(--muted); font-size:13px; font-weight:800; }
.payments-page .table-wrap table { min-width:860px; }
.material-scroll-top { height:18px; margin:0 4px 7px; overflow-x:auto; overflow-y:hidden; scrollbar-color:var(--forest-2) #dfe7f0; scrollbar-width:auto; }
.material-scroll-top>div { width:1440px; height:1px; }
.material-scroll-top::-webkit-scrollbar { height:12px; }
.material-scroll-top::-webkit-scrollbar-track { border-radius:999px; background:#dfe7f0; }
.material-scroll-top::-webkit-scrollbar-thumb { border-radius:999px; background:var(--forest-2); }
.material-table table { min-width:1440px; }
.material-items { border:1px solid var(--line); border-radius:14px; padding:16px; display:grid; gap:10px; background:#f7f9fc; }
.material-items legend { padding:0 7px; font-size:15px; font-weight:800; color:var(--forest); }
.material-items>div { display:grid; grid-template-columns:minmax(190px,1fr) 180px; gap:14px; align-items:center; }
.material-items label { display:flex; align-items:center; gap:9px; }
.material-items input { width:18px; min-height:18px; height:18px; }
.payment-history { padding-top:4px; }
.payment-history h3 { margin:0; }
.payment-history>div:not(.panel-head) { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid var(--line); }
.payment-history small { display:block; margin-top:3px; color:var(--muted); }
.badge.encargado { background:#edf3ff; color:var(--forest-2); }
.badge.recibido { background:#fff3d8; color:#8a5a00; }
.badge.entregado { background:var(--mint); color:var(--forest); }
.gate-divider { display:flex; align-items:center; gap:12px; margin:22px 0; color:var(--muted); font-size:13px; }
.gate-divider::before,.gate-divider::after { content:""; height:1px; flex:1; background:var(--line); }
.section-title { margin:20px 0 10px; font-size:18px; }
.users-section-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin:26px 0 10px; }
.users-section-head h2,.users-section-head p { margin:0; }
.users-section-head p { margin-top:5px; color:var(--muted); font-size:13px; }
.family-code-result { display:grid; gap:16px; text-align:center; }
.family-code-result p,.family-code-result small { margin:0; }
.family-code-result output { display:block; padding:16px; border:2px dashed var(--forest-2); border-radius:12px; background:#f4f8ff; color:var(--forest); font-size:28px; font-weight:900; letter-spacing:.12em; }
.family-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); gap:18px; }
.family-player-list { display:grid; gap:16px; }
.family-player-card { padding:20px; }
.family-player-head { display:flex; align-items:center; gap:16px; }
.family-player-head h2,.family-player-head p { margin:0; }
.family-player-head .eyebrow { margin-bottom:5px; }
.family-player-photo { width:74px; height:74px; flex:0 0 auto; overflow:hidden; border-radius:16px; display:grid; place-items:center; background:var(--mint); color:var(--forest); font-size:30px; }
.family-player-photo img { width:100%; height:100%; object-fit:cover; }
.family-status-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:18px; }
.family-status-grid>div { padding:12px; border-radius:11px; background:#f5f7fa; }
.family-status-grid span { display:block; margin-bottom:5px; color:var(--muted); font-size:12px; }
.family-status-grid strong { font-size:15px; }
.family-agenda { display:grid; gap:12px; }
.family-event { display:grid; grid-template-columns:48px 1fr; gap:12px; align-items:start; padding-bottom:12px; border-bottom:1px solid var(--line); }
.family-event:last-child { padding-bottom:0; border-bottom:0; }
.family-event strong,.family-event small { display:block; }
.family-event small { margin-top:4px; color:var(--muted); }
.family-event p { margin:5px 0 0; font-size:13px; }
@media (max-width:900px){.family-layout{grid-template-columns:1fr}.family-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.modal:has(.match-record-form),.modal:has(.player-record) { width:min(980px,100%); }
.match-record-form { overflow-x:auto; }
.match-result { margin:0 0 20px; }
.match-roster-head,.match-player-row { min-width:930px; display:grid; grid-template-columns:52px minmax(190px,1fr) 125px 52px repeat(6,58px); gap:7px; align-items:center; }
.match-roster-head { padding:8px 6px; color:var(--muted); font-size:12px; font-weight:800; }
.match-player-row { padding:8px 6px; border-top:1px solid var(--line); }
.match-player-row>span { display:flex; align-items:center; gap:8px; }
.match-player-row>input { min-width:0; width:100%; padding:5px; text-align:center; }
.match-player-row>input[type="checkbox"] { width:18px; height:18px; min-height:18px; justify-self:center; }
.match-player-row select { min-width:0; }
.empty { padding:50px 20px; text-align:center; color:var(--muted); }
.empty>b { font-size:34px; color:var(--forest-2); }.empty h3 { color:var(--ink); margin-top:10px; }.empty p { margin-bottom:0; }
.modal-backdrop { position:fixed; inset:0; z-index:30; background:rgba(6,22,48,.58); display:grid; place-items:center; padding:18px; }
.modal { width:min(620px,100%); max-height:90vh; overflow:auto; background:white; border-radius:18px; box-shadow:0 26px 80px rgba(6,22,48,.3); padding:24px; }
.modal-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; }
.modal-head button { border:0; background:transparent; font-size:26px; color:var(--muted); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-grid label,.callup-info label { display:grid; gap:7px; font-size:13px; font-weight:700; }
.form-grid .full { grid-column:1/-1; }
.team-picker { border:1px solid var(--line); border-radius:12px; padding:14px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.team-picker legend { padding:0 6px; font-size:13px; font-weight:800; color:var(--muted); }
.team-picker label { display:flex; align-items:center; gap:8px; font-weight:600; }
.team-picker input { width:auto; }
.access-error { min-height:100vh; display:grid; place-items:center; background:var(--bg); padding:24px; }
.access-error section { max-width:520px; background:white; border:1px solid var(--line); border-radius:18px; padding:30px; box-shadow:var(--shadow); }
.access-error h1 { margin:0 0 10px; color:var(--ink); }
.access-error p { margin:0; color:var(--muted); line-height:1.6; }
input,select,textarea { min-height:42px; border:1px solid var(--line); background:white; border-radius:9px; padding:8px 11px; color:var(--ink); }
textarea { resize:vertical; font:inherit; }
input:focus,select:focus,textarea:focus { outline:3px solid rgba(21,87,166,.16); border-color:var(--forest-2); }
.player-record { row-gap:18px; }
.player-photo-editor { display:grid; grid-template-columns:auto auto 1fr; align-items:center; gap:14px; }
.player-photo-editor small { color:var(--muted); }
.player-photo { width:82px; height:82px; border-radius:50%; overflow:hidden; display:grid; place-items:center; background:var(--mint); color:var(--forest); font-size:30px; }
.player-photo img { width:100%; height:100%; object-fit:cover; }
.squad-controls { display:grid; grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) auto; gap:14px; align-items:end; padding:16px 18px; margin-bottom:16px; }
.squad-controls label { display:grid; gap:7px; font-size:13px; font-weight:800; color:var(--muted); }
.squad-controls span { padding:12px 0; color:var(--muted); font-weight:700; }
.squad-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.squad-card { overflow:hidden; }
.squad-card-head { display:grid; grid-template-columns:86px 1fr; gap:16px; padding:20px; align-items:center; }
.squad-photo { position:relative; width:86px; height:86px; border:0; padding:0; border-radius:14px; overflow:hidden; display:grid; place-items:center; background:var(--mint); color:var(--forest); font-size:34px; }
.squad-photo img { width:100%; height:100%; object-fit:cover; }
.squad-profile-link { transition:transform .18s ease,box-shadow .18s ease; }
.squad-profile-link:hover,.squad-profile-link:focus-visible { transform:translateY(-2px); box-shadow:0 8px 20px rgba(11,47,107,.22); }
.squad-profile-link:focus-visible,.squad-name-link:focus-visible { outline:3px solid rgba(21,87,166,.28); outline-offset:3px; }
.open-profile-label { position:absolute; inset:auto 5px 5px; padding:4px 5px; border-radius:6px; background:rgba(11,47,107,.9); color:white; font-size:10px; font-weight:800; opacity:0; transform:translateY(4px); transition:.18s ease; }
.squad-profile-link:hover .open-profile-label,.squad-profile-link:focus-visible .open-profile-label { opacity:1; transform:none; }
.squad-name-line { display:flex; align-items:center; gap:9px; }
.squad-name-line h2 { margin:0; font-size:18px; }
.squad-name-link { border:0; padding:0; background:transparent; color:var(--ink); font:inherit; text-align:left; }
.squad-name-link:hover { color:var(--forest-2); text-decoration:underline; text-underline-offset:3px; }
.squad-card-head p { margin:6px 0 9px; color:var(--muted); }
.squad-stats { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#f7f9fc; }
.squad-stat { min-width:0; padding:12px 9px; text-align:center; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.squad-stat:nth-child(3n) { border-right:0; }
.squad-stat:nth-last-child(-n+3) { border-bottom:0; }
.squad-stat span { display:block; min-height:28px; color:var(--muted); font-size:11px; line-height:1.25; }
.squad-stat strong { display:block; margin-top:4px; font-family:Manrope,sans-serif; font-size:18px; }
.squad-card-foot { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 18px; color:var(--muted); font-size:13px; font-weight:700; }
.upload-photo { display:inline-flex !important; width:max-content; cursor:pointer; }
.record-section { border:1px solid var(--line); border-radius:14px; padding:16px; display:grid; grid-template-columns:1fr 1fr; gap:14px; background:#f7f9fc; }
.record-section legend { padding:0 7px; font-size:15px; font-weight:800; color:var(--forest); }
.record-active { display:flex !important; grid-template-columns:auto 1fr; align-items:center; justify-content:start; }
.record-active input { min-height:0; width:18px; height:18px; }
.modal-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:20px; }
.attendance-list { display:grid; gap:8px; }
.attendance-player { display:grid; grid-template-columns:40px 1fr 135px; gap:10px; align-items:center; padding:8px; border:1px solid var(--line); border-radius:10px; }
.session-help { display:flex; align-items:center; gap:14px; padding:14px 18px; margin-bottom:18px; border-left:4px solid var(--forest-2); }
.session-help span { color:var(--muted); }
.session-notes { margin-top:10px !important; padding:10px 12px; border-radius:10px; background:#f7f9fc; white-space:pre-line; }
.session-links { min-height:38px; display:flex; align-items:center; margin-top:10px; }
.staff-payroll-head { display:flex; justify-content:space-between; align-items:end; gap:18px; margin:34px 0 14px; }
.staff-payroll-head h2,.staff-payroll-head p { margin:0; }
.staff-payroll-head p { margin-top:4px; color:var(--muted); }
.staff-payroll-head label { min-width:190px; }
.staff-payroll-actions { display:flex; align-items:end; gap:10px; }
.payroll-breakdown { display:grid; gap:8px; padding:16px; border:1px solid var(--line); border-radius:14px; background:#f7f9fc; }
.payroll-breakdown span { color:var(--muted); }
.payroll-breakdown strong { margin-top:4px; color:var(--forest); font-size:18px; }
.modal:has(.staff-attendance-form) { width:min(980px,100%); }
.staff-attendance-table { max-height:60vh; overflow:auto; border:1px solid var(--line); border-radius:12px; }
.staff-attendance-table table { min-width:760px; }
.staff-attendance-table thead { position:sticky; top:0; z-index:1; }
.toast { position:fixed; right:24px; bottom:24px; z-index:50; background:var(--ink); color:white; border-radius:10px; padding:12px 16px; transform:translateY(20px); opacity:0; pointer-events:none; transition:.2s ease; }
.toast.show { transform:translateY(0); opacity:1; }

@media (max-width: 1050px) {
  .stat-grid { grid-template-columns:repeat(2,1fr); }
  .dashboard-grid { grid-template-columns:1fr; }
  .birthday-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .session-grid { grid-template-columns:1fr 1fr; }
  .callup-layout { grid-template-columns:260px 1fr; }
  .profile-kpis-wide { grid-template-columns:repeat(4,1fr); }
  .stats-overview { grid-template-columns:1fr 1fr; }
  .match-overview { grid-template-columns:1fr 1fr; }
}
@media (max-width: 760px) {
  .shell { display:block; }
  .sidebar { position:fixed; left:0; right:0; bottom:0; top:auto; z-index:10; width:auto; height:72px; padding:8px 10px; display:block; }
  .brand,.sidebar-footer { display:none; }
  .nav { display:flex; overflow-x:auto; }
  .nav button { min-width:82px; padding:8px 9px; font-size:12px; justify-content:center; flex-direction:column; gap:2px; }
  .nav button.active::before { display:none; }
  .topbar { height:64px; padding:0 18px; }
  .search { width:150px; }
  .content { padding:25px 18px 96px; }
  .stat-grid { grid-template-columns:1fr 1fr; }
  .page-head { align-items:flex-start; }
  h1 { font-size:27px; }
  .session-grid,.sync-grid,.callup-layout { grid-template-columns:1fr; }
  .squad-grid { grid-template-columns:1fr; }
  .squad-controls { grid-template-columns:1fr 1fr; }
  .squad-controls>span { grid-column:1/-1; padding:0; }
  .profile-hero { grid-template-columns:82px 1fr; }
  .profile-hero-photo { width:82px; height:94px; }
  .profile-hero-actions { grid-column:1/-1; }
  .profile-summary-grid,.sports-grid,.documents-grid,.ratings-layout { grid-template-columns:1fr; }
  .profile-kpis-wide { grid-template-columns:repeat(3,1fr); }
  .payment-cards { grid-template-columns:1fr; }
  .stats-filters { grid-template-columns:1fr 1fr; }
  .stats-dashboard-heading { display:block; }
  .stats-dashboard-heading p { margin-top:8px; }
  .summary-row { grid-template-columns:1fr 1fr; }
  .follow-grid { grid-template-columns:1fr; }
  .alert-list { grid-template-columns:1fr; }
  .day { min-height:82px; padding:5px; }
  .cal-event { font-size:0; width:8px; height:8px; border-radius:50%; padding:0; display:inline-block; }
  .match-card { grid-template-columns:105px 1fr; }
  .match-card-side { grid-column:2; justify-items:start; }
  .standings-actions { align-items:flex-start; }
  .material-filter { align-items:flex-start; flex-direction:column; }
  .payment-filters { grid-template-columns:1fr; }
  .staff-payroll-head { align-items:stretch; flex-direction:column; }
  .staff-payroll-actions { align-items:stretch; flex-wrap:wrap; }
}
@media (max-width: 480px) {
  .stat-grid { grid-template-columns:1fr; }
  .search { display:none; }
  .attendance-row { grid-template-columns:100px 1fr 40px; }
  .form-grid { grid-template-columns:1fr; }
  .form-grid .full { grid-column:auto; }
  .record-section { grid-template-columns:1fr; }
  .player-photo-editor { grid-template-columns:auto 1fr; }
  .player-photo-editor small { grid-column:1/-1; }
  .squad-controls { grid-template-columns:1fr; }
  .squad-controls>span { grid-column:auto; }
  .squad-card-head { grid-template-columns:72px 1fr; padding:16px; }
  .squad-photo { width:72px; height:72px; }
  .summary-row { grid-template-columns:1fr; }
  .profile-fields { grid-template-columns:1fr; }
  .rating-list>div { grid-template-columns:110px 1fr 34px; }
  .profile-kpis,.profile-kpis-wide { grid-template-columns:repeat(2,1fr); }
  .head-actions { align-items:stretch; flex-direction:column; }
  .stats-filters,.stats-overview { grid-template-columns:1fr; }
  .birthday-list { grid-template-columns:1fr; }
  .export-options,.export-fields { grid-template-columns:1fr; }
  .season-player,.report-entry { grid-template-columns:1fr; }
  .page-head { display:block; }.page-head .primary { margin-top:16px; }
  .match-overview { grid-template-columns:1fr; }
  .match-card { grid-template-columns:1fr; }
  .match-card-side { grid-column:auto; justify-items:start; }
  .standings-actions { display:block; }.standings-actions .head-actions { margin-top:12px; }
  .material-items>div { grid-template-columns:1fr; }
}

@media print {
  body { background:white; }
  .sidebar,.topbar,.statistics-page .page-head .head-actions,.stats-filters { display:none !important; }
  .shell { display:block; }
  .content { max-width:none; padding:0; }
  .statistics-page .card { box-shadow:none; break-inside:avoid; }
  .stats-table { overflow:visible; }
  .stats-table table { min-width:0; font-size:9px; }
  .stats-table th,.stats-table td { padding:5px 4px; }
  .stats-table th:first-child,.stats-table td:first-child { position:static; }
  .stats-dashboard-scroll { overflow:visible; }
  .stats-dashboard-inner { width:100% !important; }
}

.session-filters { display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding:16px; margin-bottom:16px; }
.session-week-buttons { display:flex; flex-wrap:wrap; gap:8px; }
.session-week-label { color:var(--forest); }
.session-filters label { display:grid; gap:6px; font-size:14px; font-weight:700; }
.session-filters input,.session-filters select { max-width:100%; }
@media(max-width:600px){ .session-week-buttons { width:100%; } .session-week-buttons button { flex:1; padding:10px 8px; } .session-filters label { flex:1; min-width:140px; } }

.dorsal-controls { display:grid; grid-template-columns:repeat(4,minmax(155px,1fr)); gap:14px; align-items:end; padding:16px 18px; margin-bottom:16px; }
.dorsal-controls label { display:grid; gap:7px; color:var(--muted); font-size:13px; font-weight:800; }
.dorsal-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.dorsals-page table { min-width:900px; }
.dorsals-page td:nth-child(1),.dorsals-page th:nth-child(1) { text-align:center; width:90px; }
.dorsals-page .table-note { display:block; margin-top:4px; color:var(--muted); }
.badge.dorsal-warning { background:#fff1d6; color:#895f00; }
.dorsal-conflict { background:#fffbf2; }
.dorsal-conflict:hover { background:#fff6df; }

@media(max-width:900px){.dorsal-controls{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.dorsal-controls{grid-template-columns:1fr;}}

.free-dorsals-card { margin:16px 0; padding:18px; }
.free-dorsals-card .panel-head { margin-bottom:14px; }
.free-dorsals-card .panel-head h2 { margin:0 0 4px; }
.free-dorsals-card .panel-head p { margin:0; color:var(--muted); }
.free-dorsal-overview { display:grid; grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); gap:10px; }
.free-dorsal-team { display:grid; grid-template-columns:1fr auto; gap:3px 10px; align-items:center; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); text-align:left; cursor:pointer; }
.free-dorsal-team:hover { border-color:var(--forest-2); background:var(--mint); }
.free-dorsal-team span { font-weight:800; }
.free-dorsal-team strong { grid-row:1 / span 2; grid-column:2; font-size:24px; color:var(--forest-2); }
.free-dorsal-team small { color:var(--muted); }
.free-dorsal-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(44px,1fr)); gap:8px; }
.free-dorsal-list span { display:grid; place-items:center; min-height:38px; border:1px solid #b9c9e3; border-radius:10px; background:#f2f6fc; color:var(--navy); font-weight:850; }

.material-page .badge.pendiente,#material-form .material-status.pendiente,#material-form .material-status option.pendiente { color:#b91c1c; background:#fef2f2; font-weight:800; }
.material-page .badge.encargado,#material-form .material-status.encargado,#material-form .material-status option.encargado { color:#946200; background:#fff7cc; font-weight:800; }
.material-page .badge.recibido,#material-form .material-status.recibido,#material-form .material-status option.recibido { color:#1557a6; background:#eaf2ff; font-weight:800; }
.material-page .badge.entregado,#material-form .material-status.entregado,#material-form .material-status option.entregado { color:#17663c; background:#e8f6ed; font-weight:800; }

.source-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }
.source-groups label { display:flex; align-items:center; gap:8px; font-size:14px; color:var(--forest); }
.source-groups input { width:auto; }
.match-source-settings { display:grid; gap:14px; }
.match-source-settings[hidden],[data-training-category][hidden] { display:none; }
.callup-info>label { display:grid; gap:8px; margin-bottom:14px; }

.adjacent-dorsals .table-wrap { border:1px solid var(--line); border-radius:12px; }
.adjacent-dorsals table { min-width:680px; }
.adjacent-dorsals td { vertical-align:top; }
.adjacent-dorsal-player + .adjacent-dorsal-player { margin-top:12px; }
.adjacent-dorsal-player small { display:block; margin-top:4px; color:var(--muted); }

.callup-player-entry { display: grid; grid-template-columns: minmax(0, 1fr) 165px; gap: 10px; align-items: center; }
.callup-whatsapp { display: grid; gap: 4px; font-size: .82rem; }
.callup-whatsapp select { width: 100%; }
@media (max-width: 680px) {
  .callup-player-entry { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .callup-whatsapp { grid-template-columns: auto minmax(0, 1fr); align-items: center; padding: 0 10px 8px; }
}

.dni-controls{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}.dni-controls label{display:flex;align-items:center;gap:8px}.dni-controls select{padding:10px;border:1px solid #cbd5e1;border-radius:8px;background:white;max-width:100%}
