/* Shared Falcon theme: graphite shell, light work surfaces and electric lime. */
:root {
  --primary: #b6ff36;
  --primary-hover: #a2eb24;
  --primary-light: #f0fbdc;
  --dark-purple: #20262e;
  --bg: #141b24;
  --sidebar-bg: #111720;
  --card-bg: #fcfcfd;
  --text-main: #252c35;
  --text-muted: #68717e;
  --border: #e4e7eb;
  --sidebar-width: 236px;
  --falcon-surface: #242c37;
  --falcon-line: #ffffff12;
}
html { background: var(--bg); }
/* The standalone parents page is a document, not the fixed-height admin shell. */
body.falcon-parents { display: block; height: auto; min-height: 100dvh; overflow: auto; }
.falcon-parents #public-padre-screen { min-width: 0; }
.falcon-parents .parent-public-shell { min-height: 100dvh; height: auto; overflow: visible; }
.falcon-parents dialog img { display: block; max-width: 100%; max-height: 75dvh; object-fit: contain; }
.falcon-parents dialog { max-width: min(800px,94vw); max-height: 92dvh; overflow: auto; padding: 20px; }
body { background: radial-gradient(ellipse at 60% 0%, #293646 0%, #17202b 40%, #111720 100%); font-family: Inter, 'Segoe UI', sans-serif; }
button, input, select, textarea { font-family: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, .btn, a.parent-access { transition: background .18s ease, border-color .18s ease, box-shadow .18s ease; }
button:focus-visible, a:focus-visible, [tabindex]:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #78a921 !important; outline-offset: 3px; }
input:focus, select:focus, textarea:focus { border-color: #78a921; box-shadow: 0 0 0 3px #b6ff3626; }
input, select, textarea { accent-color: #78a921; }
input::placeholder, textarea::placeholder { color: #78818c; }
* { scrollbar-width: thin; scrollbar-color: #7a8492 transparent; }

/* Persistent navigation and application frame. */
aside.sidebar { background: #111720e6; border-right: 1px solid var(--falcon-line); }
.brand-section { min-height: 86px; padding: 22px 18px; border-color: var(--falcon-line); }
.brand-logo, .login-brand-logo, .login-brand { background: var(--primary); border-radius: 15px; color: #17200e; }
.brand-text strong { letter-spacing: .08em; font-weight: 700; }
.brand-text p { color: #9ba6b4; font-size: .6rem; letter-spacing: .1em; margin-top: 5px; }
.nav-menu { padding: 22px 12px; }
.nav-item { position: relative; min-height: 44px; padding: 12px; margin-bottom: 6px; border-radius: 24px; color: #b6bfcd; font-size: .79rem; font-weight: 500; }
.nav-item i { color: #8c99aa; font-size: 1rem; }
.nav-item-left { gap: 11px; }
.nav-item.active { background: var(--primary); color: #1d2812; font-weight: 700; box-shadow: 0 4px 18px #b6ff3612; }
.nav-item.active i, .nav-item.active:hover i { color: #1d2812; }
.nav-item.active:hover { background: var(--primary-hover); color: #1d2812; }
.nav-item.active .badge-count { background: #1d2812; color: var(--primary); }
.sidebar-footer { border-color: var(--falcon-line); }
.licence-card { border-radius: 18px; background: #ffffff05; border-color: var(--falcon-line); }
.licence-text strong { font-size: .78rem; font-weight: 600; }
.licence-text span { font-size: .6rem; }

/* Glass module rail with the original graphite and lime palette. */
aside.sidebar {
  background: radial-gradient(ellipse at 0 0, #34415444, transparent 48%), linear-gradient(170deg,#1b2531 0%,#111720 64%,#0d131b 100%);
  border: 1px solid #ffffff14;
  border-right-color: #ffffff20;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
  align-self: stretch;
  min-height: 0;
  backdrop-filter: blur(18px);
}
.sidebar .brand-section { border-bottom-color: #ffffff12; padding: 20px 16px; }
.sidebar .brand-logo { background: var(--primary); color: #17200e; border: 1px solid #cfff8066; border-radius: 50%; box-shadow: inset 0 1px 1px #ffffff66,0 4px 14px #00000022; }
.sidebar .brand-text strong { color: #ffffff; font-weight: 600; letter-spacing: .06em; }
.sidebar .brand-text p { color: #9ba6b4; }
.sidebar .brand-section > button { background: #ffffff0d; color: #d8dfe8; border: 1px solid #ffffff20; border-radius: 50%; }
.sidebar .nav-menu { padding: 20px 0 20px 13px; scrollbar-color: #7a849244 transparent; }
.sidebar .nav-item { min-height: 45px; margin: 5px 0; padding: 10px 14px 10px 10px; border-radius: 15px 0 0 15px; color: #b6bfcd; font-weight: 500; isolation: isolate; }
.sidebar .nav-item-left { gap: 10px; }
.sidebar .nav-item i { display: inline-flex; align-items: center; justify-content: center; width: 29px; height: 29px; flex-shrink: 0; border-radius: 50%; background: #ffffff0a; color: #8c99aa; font-size: 13px; }
.sidebar .nav-item:hover { background: linear-gradient(90deg,#ffffff16,#ffffff05); color: #fff; }
.sidebar .nav-item:hover i { color: #fff; background: #ffffff20; }
.sidebar .nav-item.active, .sidebar .nav-item.active:hover { background: var(--primary); color: #1d2812; box-shadow: none; font-weight: 600; }
.sidebar .nav-item.active i, .sidebar .nav-item.active:hover i { background: #1d281210; color: #1d2812; }
.sidebar .badge-count { background: var(--primary); border: 1px solid var(--primary); color: #1d2812; font-size: 10px; }
.sidebar .nav-item.active .badge-count { background: #1d2812; border-color: #1d2812; color: var(--primary); }
.sidebar .sidebar-footer { border-top-color: #ffffff12; padding: 15px; }
.sidebar .licence-card { background: #ffffff05; border-color: #ffffff14; border-radius: 18px; }
.sidebar .licence-icon { background: var(--primary); color: #17200e; border: 1px solid var(--primary); border-radius: 12px; }
.sidebar .licence-text strong { color: #ffffff; }
.sidebar .licence-text span { color: var(--primary); font-weight: 500; }
.sidebar .nav-item:focus-visible { outline: 2px solid var(--primary) !important; outline-offset: -3px; }
@media(max-width:800px) {
  aside.sidebar { margin: 0; border-radius: 0; }
  .sidebar .brand-section { padding: 14px 6px; }
  .sidebar .nav-menu { padding: 14px 0 14px 6px; }
  .sidebar .nav-item { padding: 9px 8px 9px 4px; min-height: 44px; border-radius: 14px 0 0 14px; }
  .sidebar .nav-item-left { gap: 0; }
  .sidebar .nav-item i { width: 30px; height: 30px; font-size: 14px; }
  .sidebar .badge-count { font-size: 8px; padding: 1px 4px; margin-left: 23px; margin-top: -23px; }
}
.app-wrapper { min-width: 0; background: transparent; }
.app-wrapper > header { min-height: 80px; background: #17202be8; backdrop-filter: blur(16px); border-color: var(--falcon-line); padding: 16px 32px; gap: 16px; }
.app-wrapper > header::before { content: 'FALCON / GESTIÓN DEPORTIVA'; margin-right: auto; color: #a7b2c1; letter-spacing: .15em; font-size: 10px; font-weight: 600; }
#header-user-name { color: #f4f6f8 !important; font-weight: 500; }
.user-avatar { background: #303b49; border: 1px solid #ffffff22; color: #e7f4d3; width: 40px; height: 40px; }
.role-badge-tag { background: transparent; color: #b6ff36; font-size: .58rem; padding: 3px 0; letter-spacing: .08em; }
.btn-logout { background: #ffffff08; color: #c4cbd5; border-color: #ffffff16; border-radius: 20px; padding: 8px 12px; }
.btn-logout:hover { background: #382a31; color: #ffadb1; }
.app-wrapper > main { max-width: 1500px; padding: 32px; }
.page-header { margin-bottom: 26px; gap: 16px; }
.page-title, .page-header h1 { color: #f5f7f9; font-size: clamp(1.6rem, 2.5vw, 2.25rem); font-weight: 500; letter-spacing: -.045em; line-height: 1.2; }
.page-header p { color: #a7b2c1 !important; line-height: 1.6; margin-top: 7px !important; font-size: .8rem; }
.page-header label { color: #c7d0dc; }
.page-header input, .page-header select, .page-header .btn-outline { background: #293340 !important; color: #e5eaf0; border-color: #3d4856 !important; border-radius: 24px; }
.page-header input::placeholder { color: #a7b2c1; }
.page-header option { background: #293340; color: #fff; }

/* Light work surfaces keep dense records and status colors readable. */
.panel, .card, .qr-card, .group-card-btn, .entrenador-card, .torneo-card, .event-list-card, .asistencia-card, .config-user-card, .cv-card { border-radius: 23px; border-color: var(--border); box-shadow: 0 8px 30px #00000010; }
.panel { padding: 24px; }
.panel h3, .panel h4 { font-weight: 600; letter-spacing: -.025em; }
.btn { border-radius: 24px; font-weight: 600; font-size: .8rem; padding: 11px 18px; }
.btn-primary, button.primary { background: var(--primary); color: #202b12; border-color: var(--primary); box-shadow: 0 3px 10px #b6ff3610; }
.btn-primary:hover, button.primary:hover { background: var(--primary-hover); transform: none; }
.btn-outline { background: #fff; border-color: #dfe4e9; }
.btn-outline:hover { background: #f0fbdc; border-color: #a3ca6a; }
.badge, .badge-count, .matricula-status { font-weight: 600; }
input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea { border-radius: 12px; min-height: 40px; }
.form-grid > *, .form-group { min-width: 0; }
.form-group input:not([type=checkbox]):not([type=radio]), .form-group select, .form-group textarea { min-width: 0; max-width: 100%; }
th { background: #f5f6f8; color: #6b7582; text-transform: none; font-size: .72rem; font-weight: 500; padding: 15px 16px; }
th:first-child { border-radius: 12px 0 0 12px; }
th:last-child { border-radius: 0 12px 12px 0; }
td { color: var(--text-main); }
.dock-container:hover .dock-item { opacity: 1; }
.dock-item:hover { transform: none; box-shadow: none; background: #f0f5e9; }
.dock-item:hover td { border-bottom-color: var(--border); }
.table-wrapper, .table-scroll { overflow-x: auto; }
.cal-month-card, .asist-month-box, .mes-cobro-pill, .billing-month-box { border-radius: 16px; }
.cal-month-card.active { background: var(--primary-light); box-shadow: 0 0 0 1px var(--primary); }
.event-list-date-box { background: var(--primary); border: 0; border-radius: 15px; }
.config-toggle input:checked + span { background: #6f9e22; }
.config-note, .horario-row, .matricula-link-box { background: #f5f6f8; border-radius: 14px; }
.asistencia-acceso { border-top-color: var(--primary); border-radius: 22px; }
.cv-avatar, .cv-counter { background: var(--primary); }
.cv-drop { outline-color: #78a921; }
.event-list-cover, .entrenador-avatar { background: linear-gradient(135deg, #344558, #18222e); color: var(--primary); }
.modal-overlay { background: #0b111ac9 !important; backdrop-filter: blur(10px) !important; }
.modal-content { border-radius: 26px !important; border: 1px solid #e4e7eb; }
.modal-header h3 { font-weight: 600 !important; letter-spacing: -.035em; }
.factura-box { background: white; color: #20262e; }

/* Summary cards are the graphite islands from the visual reference. */
.c-stat-card, .matricula-stat-card, #view-inicio > .form-grid > .panel {
  --dark-purple: #f6f8fb; --text-muted: #b4bdca;
  background: linear-gradient(130deg, #2d3541, #222a35) !important;
  color: #f6f8fb; border: 1px solid #ffffff10 !important;
  border-radius: 25px; padding: 25px; position: relative; overflow: hidden;
  box-shadow: inset 0 1px 0 #ffffff06, 0 12px 32px #0000000c;
}
.c-stat-card::after, .matricula-stat-card::after, #view-inicio > .form-grid > .panel::after { content: ''; display: block; height: 4px; width: 42px; background: var(--primary); border-radius: 4px; margin-top: 24px; }
.c-stat-title, .matricula-stat-card .label, #view-inicio > .form-grid h4 { font-size: .72rem !important; text-transform: none !important; font-weight: 500 !important; color: #b4bdca !important; letter-spacing: 0; }
.c-stat-val, .matricula-stat-card .value, #view-inicio > .form-grid h1 { font-size: 2rem !important; font-weight: 500; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.c-stat-val.pagado { color: var(--primary); }
.c-stat-val.pendiente { color: #ffb3aa; }
.matricula-stat-card.review::after { background: #f5bf61; }

/* Shared entry screens and the parents' portal. */
body.falcon-entry { min-height: 100dvh; color: var(--text-main); }
.falcon-entry > header { background: #151e29; border-bottom: 1px solid #ffffff12; color: #d8e0eb; padding: 18px 24px; }
.falcon-entry > header strong { color: var(--primary); letter-spacing: .08em; }
.falcon-entry > main:not(#public-padre-screen) { border: 1px solid #e5e8eb; border-radius: 28px; box-shadow: 0 24px 70px #00000033; }
.falcon-entry button { border-radius: 24px; }
.falcon-entry button.primary, .falcon-enrollment #send, .falcon-recovery button { background: var(--primary); border-color: var(--primary); color: #202b12; }
body:has(#login:not([hidden])) { background: radial-gradient(ellipse at 50% 0%, #354457, #17202b 55%, #111720); }
#login { border: 1px solid #ffffff22; border-radius: 30px; padding: 42px 36px; box-shadow: 0 30px 100px #0005; }
#login h1 { font-weight: 700; letter-spacing: .08em; }
#login .login-brand { background: var(--primary); border-radius: 20px; }
#login-button, .parent-access { border-radius: 24px; min-height: 46px; }
#login a { color: #465332; }
#login input:focus { outline-color: #78a921; }
.falcon-enrollment section { border: 1px solid var(--border); border-radius: 20px; background: #f6f7f9; }
.falcon-enrollment #message { background: var(--primary-light); color: #354426; border-radius: 14px; }
#public-padre-screen { --fp-wine: #24303e; --fp-yellow: #b6ff36; --fp-coal: #20262e; padding: 0; margin: 0; max-width: none; width: 100%; }
#public-padre-screen .parent-public-shell, .matricula-public-shell { background: radial-gradient(ellipse at top, #303e50, #141c27 70%); }
#public-padre-screen .parent-public-card { border-radius: 28px; border: 1px solid #ffffff12; box-shadow: 0 24px 70px #0004; }
#public-padre-screen .parent-public-head { background: #1d2734; border-bottom: 1px solid #ffffff14; }
#public-padre-screen .parent-public-body { background: #f3f5f7; }
#public-padre-screen .parent-info-card, #public-padre-screen .parent-query-box { border-radius: 22px; border-color: var(--border); }
#public-padre-screen .fp-months button { border-radius: 20px; }
#public-padre-screen .fp-attendance { border-top-color: var(--primary); }
#public-padre-screen .fp-schedule { background: var(--primary); }
#public-padre-screen .fp-times div { background: #24303e; border-radius: 14px; }

/* Shared light workspace, matching the approved home dashboard. */
:root { --card-bg: #ffffff; --text-main: #242c25; --text-muted: #737e70; --border: #e7ebe2; --dark-purple: #202b22; }
.app-wrapper { background: #f5f6f4; }
.app-wrapper > header { background: #f5f6f4ed; border-color: #e7eae4; }
.app-wrapper > header::before { color: #788174; }
#header-user-name { color: #202b22 !important; }
.role-badge-tag { color: #587b22; }
.btn-logout { color: #596155; border-color: #dde2d8; background: transparent; }
.app-wrapper > main { padding: 28px 30px; }
.page-title, .page-header h1 { color: #18211b; font-size: 30px; font-weight: 500; letter-spacing: -1.2px; }
.page-header p { color: #737e70 !important; font-size: 12px; }
.page-header label { color: #596452; }
.page-header input, .page-header select, .page-header .btn-outline { background: #fff !important; color: #384333; border-color: #e5e9e0 !important; font-weight: 500 !important; }
.page-header input::placeholder { color: #7c8676; }
.page-header option { background: #fff; color: #263321; }
.panel, .card, .qr-card, .group-card-btn, .entrenador-card, .torneo-card, .event-list-card, .asistencia-card, .config-user-card, .cv-card { background: #fff; border-color: #edf0e9; border-radius: 20px; box-shadow: none; }
.panel { padding: 23px; }
.panel h3, .panel h4, .qr-title-tag, .group-card-body h3, .entrenador-card h3, .torneo-card h3, .event-list-info h4, .config-user-name, .asistencia-card-name { font-weight: 600; }
.btn { font-weight: 500; font-size: 12px; }
.btn-outline { border-color: #e5e9e0; color: #596452; }
th { background: #f6f8f3; color: #77816d; }
td { font-size: 12px; }
label { font-weight: 500; }
input, select, textarea { border-color: #e5e9e0; }
.c-stat-card, .matricula-stat-card {
  --dark-purple: #202b22; --text-muted: #737e70;
  background: #fff !important; color: #242c25; border: 1px solid #edf0e9 !important;
  border-radius: 20px; box-shadow: none;
}
.c-stat-card:first-child, .matricula-stat-card:first-child { background: linear-gradient(145deg,#effbdc,#fff 85%) !important; }
.c-stat-title, .matricula-stat-card .label { color: #687660 !important; font-size: 11px !important; }
.c-stat-val, .matricula-stat-card .value { font-weight: 500; }
.c-stat-val.pagado { color: #527a29; }
.c-stat-val.pendiente { color: #a94d3c; }
.c-stat-card::after, .matricula-stat-card::after { height: 3px; width: 30px; margin-top: 18px; }
.cal-month-card, .asist-month-box, .mes-cobro-pill { background: #fff; border-color: #e7ebe2; box-shadow: none; }
.cal-month-card strong, .asist-month-box strong { font-weight: 500; }
.cal-month-card.active, .mes-cobro-pill.highlight-pill { background: #effbdc; }
.qr-bank-details, .config-note, .horario-row, .matricula-link-box, .group-coaches-list, .torneo-participantes, .torneo-invitados, .cv-column { background: #f6f8f3; border-color: #e7ebe2; }
.modal-content { border-color: #edf0e9; }
.modal-header { border-bottom-color: #e7ebe2 !important; }
.close-btn { background: #f1f4ec; color: #687660; }
.group-card-btn:hover, .qr-card:hover, .event-list-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px #24331c08; border-color: #d9e4cc; }
.falcon-entry, body:has(#login:not([hidden])) { background: #f5f6f4; }
.falcon-entry > main:not(#public-padre-screen), #login { border-color: #e7ebe2; box-shadow: 0 16px 50px #24331c0a; }
#public-padre-screen .parent-public-shell, .matricula-public-shell { background: #f5f6f4; }
#public-padre-screen .parent-public-card { border-color: #e7ebe2; box-shadow: 0 16px 50px #24331c0a; }
#public-padre-screen .parent-public-body { background: #f5f6f4; }
#public-padre-screen .parent-info-card { background: #fff; border-color: #edf0e9; box-shadow: none; }

@media (max-width: 1100px) {
  .app-wrapper > main { padding: 24px; }
  .cobranza-stats-grid { gap: 12px; }
  #view-cobranza > div[style*="grid-template-columns: 1fr 1fr"] { grid-template-columns: minmax(0, 1fr) !important; }
}
@media (max-width: 800px) {
  .app-wrapper > main { padding: 18px 14px; }
  .app-wrapper > header { min-height: 65px; padding: 12px 16px; }
  .app-wrapper > header::before { content: 'FALCON'; font-size: 10px; }
  .brand-section { min-height: 65px; padding: 12px 8px; }
  .brand-section > button { display: none !important; }
  .brand-logo { width: 36px; height: 36px; }
  .nav-menu { padding: 16px 6px; }
  .nav-item { padding: 12px 6px; border-radius: 16px; }
  .page-header { margin-bottom: 20px; }
  .page-header > div { max-width: 100%; }
  .panel { overflow-x: auto; }
  .cobranza-stats-grid { grid-template-columns: 1fr; }
  .c-stat-card, .matricula-stat-card { padding: 20px; }
  .c-stat-card::after { margin-top: 16px; }
  .qrs-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .app-wrapper > header::before { letter-spacing: .1em; }
  .page-title, .page-header h1 { font-size: 1.65rem !important; }
  .panel, .card { border-radius: 20px !important; padding: 18px !important; }
  #login { padding: 30px 24px; }
  .falcon-enrollment > main { margin: 12px; }
  .matricula-stats-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  body, html, .app-wrapper { background: white !important; color: #20262e; }
  .sidebar, .app-wrapper > header { display: none !important; }
  .page-title, .page-header h1, .page-header p { color: #20262e !important; }
}

/* Floating workspaces share the approved dashboard's light visual language.
   Keep visibility, dimensions, form behavior and semantic status colors intact. */
.modal-overlay { background: #15201980 !important; backdrop-filter: blur(8px) !important; }
.modal-content, dialog.falcon-dialog {
  background: #f5f6f4 !important; color: #242c25;
  border: 1px solid #e4e9de !important; border-radius: 26px !important;
  box-shadow: 0 24px 80px #18251726 !important;
  scrollbar-color: #c6cebf transparent;
}
.modal-header { border-color: #e2e8dc !important; padding-bottom: 20px !important; margin-bottom: 22px !important; align-items: center !important; }
.modal-header h3, dialog.falcon-dialog > h2 { color: #202b22 !important; font-weight: 500 !important; letter-spacing: -.7px; line-height: 1.3; font-size: 22px !important; }
.modal-content .close-btn { background: #fff; color: #6a765f; border: 1px solid #e4e9de; width: 36px; height: 36px; flex-shrink: 0; box-shadow: none; }
.modal-content .close-btn:hover { background: #eaf4dd; color: #283b1b; }
.modal-content .form-grid { gap: 16px; }
.modal-content .form-group { gap: 7px; }
.modal-content label, dialog.falcon-dialog label { color: #626e59; font-size: 12px; font-weight: 500; line-height: 1.5; }
.modal-content input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
.modal-content select, .modal-content textarea,
dialog.falcon-dialog input:not([type=checkbox]):not([type=radio]), dialog.falcon-dialog select {
  background: #fff; color: #263321; border: 1px solid #e3e9dc;
  border-radius: 13px; font-size: 13px; padding: 11px 13px; min-height: 42px;
  max-width: 100%; min-width: 0;
}
.modal-content input[readonly] { background: #eef2e8 !important; color: #65725b; }
.modal-content input[type=file]::file-selector-button { background: #edf4e4; color: #425b2d; border: 0; padding: 8px 12px; border-radius: 20px; margin-right: 10px; cursor: pointer; }
.modal-content input[type=range], .modal-content .slider-control input[type=range] { accent-color: #7ca930 !important; }
.modal-content .btn, dialog.falcon-dialog button { border-radius: 24px; min-height: 38px; font-weight: 500; font-size: 12px; }
.modal-content .btn-primary { background: #b6ff36; color: #263321; box-shadow: none; }
.modal-content .btn-primary:hover { background: #a2eb24; }
.modal-content .btn-outline { background: #fff; border-color: #e0e7d8; color: #59684c; }
.modal-content .ficha-card-section,
#modal-ficha .ficha-card-section:has(#ficha-meses-asistencia-grid),
#modal-ficha .ficha-card-section:has(#ficha-fecha-ingreso-badge),
#modal-ficha .ficha-card-section:has(#ficha-meses-container) {
  background: #fff !important; border-color: #e7ece1 !important;
  border-radius: 20px !important; box-shadow: none !important; padding: 20px !important;
}
.modal-content .ficha-section-title { font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; color: #33422a !important; }
.modal-content .ficha-item strong { font-weight: 500; }
.modal-content .size-pill-box { background: #f5f7f1 !important; border-color: #e7ece1 !important; border-radius: 12px !important; }
.modal-content .assign-panel, .modal-content .horario-row, .modal-content .ent-photo-editor,
.modal-content .torneo-participantes, .modal-content .torneo-invitados, .modal-content .cv-column {
  background: #edf2e7; border: 1px solid #e2e9d9; border-radius: 18px;
}
.modal-content .assign-member-row, .modal-content .member-group-item, .modal-content .cv-player,
.modal-content .group-coach-option, .modal-content .torneo-miembro { background: #fff; border-color: #e7ece1; border-radius: 14px; }
.modal-content .note-item { background: #f5f7f1; border-color: #e7ece1; border-radius: 13px; }
.modal-content .asist-month-box, #modal-ficha .ficha-card-section:has(#ficha-meses-asistencia-grid) .asist-month-box { background: #f5f7f1 !important; border-color: #e0e8d7 !important; border-radius: 13px; box-shadow: none; }
.modal-content .asist-month-box:hover { background: #edf9dc !important; transform: none; }
dialog.falcon-dialog { margin: auto; font-family: Inter, 'Segoe UI', sans-serif; }
dialog.falcon-dialog::backdrop { background: #15201980; backdrop-filter: blur(8px); }
dialog.falcon-dialog > h2 { margin: 6px 0 22px; }
dialog.falcon-dialog > button:first-child { float: right; background: #fff; color: #59684c; border: 1px solid #e0e7d8; }
dialog.falcon-dialog form { clear: both; background: #fff; border: 1px solid #e7ece1; border-radius: 20px; padding: 20px; }
dialog.falcon-dialog label { display: block; margin: 12px 0 6px; }
dialog.falcon-dialog input:not([type=checkbox]):not([type=radio]), dialog.falcon-dialog select { width: 100%; }
dialog.falcon-dialog fieldset { border: 1px solid #e3e9dc; border-radius: 14px; padding: 14px; margin: 14px 0; }
dialog.falcon-dialog form > button { background: #b6ff36; color: #263321; border-color: #b6ff36; }

/* macOS-inspired selects. Keep the actual select, its events and keyboard support.
   Browsers without customizable select support retain their native option popup. */
select:not([multiple]):not([size]), select[size="1"] {
  appearance: none;
  -webkit-appearance: none;
  background-color: #fafbf8 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='20' viewBox='0 0 16 20'%3E%3Cpath d='m5 7 3-3 3 3M5 13l3 3 3-3' fill='none' stroke='%2365725d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"), linear-gradient(180deg,#ffffff,#f3f5ef) !important;
  background-position: right 11px center, 0 0 !important;
  background-repeat: no-repeat !important;
  background-size: 16px 20px, 100% 100% !important;
  border: 1px solid #dce2d5 !important;
  border-radius: 11px !important;
  box-shadow: inset 0 1px 0 #ffffff, 0 1px 2px #25331b0a;
  padding: 10px 38px 10px 13px !important;
  min-height: 40px;
  color: #35412d !important;
  font-family: inherit;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.5;
  text-overflow: ellipsis;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease;
}
select:not([multiple]):not([size]):hover, select[size="1"]:hover { border-color: #bac9a9 !important; box-shadow: inset 0 1px 0 #fff, 0 2px 5px #25331b0d; }
select:focus-visible { outline: 3px solid #a5d96c80 !important; outline-offset: 2px; border-color: #7fa34e !important; box-shadow: 0 0 0 1px #ffffff; }
select:disabled { opacity: .55; cursor: not-allowed !important; box-shadow: none !important; }
select option, select optgroup { background: #fafbf8; color: #35412d; font-family: inherit; }
select option:disabled { color: #8d9686; }
@supports (appearance: base-select) {
  select:not([multiple]):not([size]), select[size="1"],
  select:not([multiple]):not([size])::picker(select), select[size="1"]::picker(select) { appearance: base-select; }
  select:not([multiple]):not([size])::picker-icon, select[size="1"]::picker-icon { display: none; }
  select:not([multiple]):not([size])::picker(select), select[size="1"]::picker(select) {
    background: #fcfdf9f5;
    backdrop-filter: blur(20px);
    border: 1px solid #dce3d4;
    border-radius: 14px;
    padding: 5px;
    margin-block: 6px;
    box-shadow: 0 14px 38px #1b291b24, 0 2px 6px #1b291b0c;
    max-height: min(320px,60dvh);
    max-width: calc(100vw - 24px);
    overflow-y: auto;
    scrollbar-width: thin;
  }
  select:not([multiple]):not([size]) option, select[size="1"] option {
    border-radius: 8px;
    padding: 9px 12px;
    margin: 2px 0;
    min-height: 36px;
    background: transparent;
    font-size: 12px;
    line-height: 1.5;
    gap: 9px;
    cursor: pointer;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  select option:checked { background: #edf5e2 !important; color: #35571f !important; font-weight: 600; }
  select option:not(:disabled):hover, select option:not(:disabled):focus { background: #dff1c9 !important; color: #263e18 !important; outline: none; }
  select option::checkmark { color: #5d882f; font-size: 12px; }
  select optgroup { padding: 4px; font-size: 11px; font-weight: 600; }
}
@media (forced-colors: active) {
  select:not([multiple]):not([size]), select[size="1"] { appearance: auto; background-image: none !important; border: 1px solid ButtonText !important; color: ButtonText !important; }
}
#blocker > div { background: #f5f6f4; border: 1px solid #e4e9de; border-radius: 24px; box-shadow: 0 24px 80px #18251726; }
#blocker h2 { font-weight: 500; letter-spacing: -.5px; }
@media(max-width:600px) {
  .modal-content, dialog.falcon-dialog { border-radius: 20px !important; }
  .modal-header h3, dialog.falcon-dialog > h2 { font-size: 19px !important; }
  .modal-content .form-grid { gap: 12px; }
  .modal-content .ficha-card-section { padding: 16px !important; }
  dialog.falcon-dialog form { padding: 14px; }
}
/* Attendance modal uses the same status palette as the parents portal. */
#modal-calendario-mes-asist .mini-cal-cell.presente,
#modal-calendario-mes-asist .mini-cal-legend.presente,
#modal-calendario-mes-asist .btn-asist-opt.presente { background:var(--primary,#b6ff36)!important; color:#203012!important; border-color:#a0dd2f!important; }
#modal-calendario-mes-asist .mini-cal-cell.falta,
#modal-calendario-mes-asist .mini-cal-legend.falta,
#modal-calendario-mes-asist .btn-asist-opt.falta { background:#e52232!important; color:#fff!important; border-color:#cf1827!important; }
#modal-calendario-mes-asist .mini-cal-cell.excusa,
#modal-calendario-mes-asist .mini-cal-legend.excusa,
#modal-calendario-mes-asist .btn-asist-opt.excusa { background:#ffdf24!important; color:#493b00!important; border-color:#e9c819!important; }
#modal-calendario-mes-asist .mini-cal-legend { padding:5px 8px; border-radius:7px; }
