:root{--background:#f4f6f8;--foreground:#172c39;--primary:#123b43;--primary-foreground:#fff;--card:#fff;--card-foreground:#172c39;--muted:#edf2f4;--muted-foreground:#586b78;--border:#dbe3e7;--input:#dbe3e7;--ring:#14736d;--radius:.7rem;--accent:#d4fa62;--accent-foreground:#173c43;--destructive:#a72335;--popover:#fff;--popover-foreground:#172c39}
*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #77a813;outline-offset:3px}.auth-layout{min-height:100dvh;display:grid;grid-template-columns:46% 54%}.brand-panel{background:#123b43;color:white;padding:45px 9%;display:flex;flex-direction:column;justify-content:space-between}.brand{display:flex;align-items:center;gap:14px;font-size:27px;font-weight:750;letter-spacing:-1px}.brand small{display:block;font-size:10px;letter-spacing:2px;font-weight:500;margin-top:1px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;background:#d4fa62;color:#123b43;min-width:49px;height:49px;border-radius:50%;font-size:23px;letter-spacing:-2px;font-weight:800;transform:rotate(-12deg)}.brand-story{padding:80px 0}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700}.brand-story .eyebrow{color:#d4fa62}.brand-story h1{font-size:clamp(42px,4.5vw,72px);line-height:1.04;letter-spacing:-3px;margin:25px 0}.brand-story p{color:#c3d2d5;font-size:18px;line-height:1.7}.sport-tags{display:flex;align-items:center;gap:12px;margin-top:45px}.sport-tags span{border:1px solid #66838a;border-radius:30px;padding:8px 17px;font-size:12px;letter-spacing:2px}.sport-tags svg{margin-left:auto;color:#d4fa62}.brand-panel footer{font-size:12px;letter-spacing:1px;color:#bccfd2}.auth-content{display:flex;flex-direction:column;padding:42px 9% 25px;background:#fff}.auth-top{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:12px;letter-spacing:1.5px;color:#637680}.auth-card{width:100%;max-width:410px;margin:auto;padding:50px 0}.auth-card>.eyebrow{color:#567469}.auth-card h2{font-size:34px;line-height:1.2;letter-spacing:-1px;margin:13px 0}.muted{color:var(--muted-foreground)}form{margin-top:28px}label{display:block;font-size:14px;font-weight:600;margin-bottom:20px}input,select,textarea{border:1px solid var(--border);background:#fff;border-radius:8px;padding:12px 14px;min-height:46px;width:100%;font-weight:400;color:var(--foreground);margin-top:7px}.input-icon{display:flex;align-items:center;border:1px solid var(--border);border-radius:8px;margin-top:7px;padding:0 14px;gap:10px}.input-icon:focus-within{outline:2px solid #14736d;outline-offset:1px}.input-icon svg{color:#70818b;flex-shrink:0}.input-icon input{border:0;margin:0;padding:13px 0;min-width:0;outline:none}.icon-button{border:0;background:none;padding:5px;display:flex}.primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--primary);color:#fff;border:0;padding:13px 20px;min-height:48px;border-radius:8px;font-weight:600}.auth-card .primary{width:100%;margin-top:24px;justify-content:space-between}.text-button{color:#245c58;font-size:14px;font-weight:600;background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:4px}.auth-help{margin-top:36px;padding-top:25px;border-top:1px solid var(--border);font-size:14px}.auth-help p{color:#637680;margin-top:6px}.auth-bottom{font-size:12px;color:#70818b;text-align:center}.notice{background:#eff5df;color:#334c23;padding:14px 16px;border-radius:8px;font-size:14px;margin:18px 0}.notice.error{background:#fff0f0;color:#922035}.secondary{background:#fff;border:1px solid var(--border);border-radius:8px;padding:11px 16px;min-height:44px;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.shell{min-height:100dvh;display:flex}.sidebar{width:254px;flex-shrink:0;background:#123b43;color:white;padding:30px 20px;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column}.sidebar .brand{font-size:22px;gap:10px}.sidebar .brand small{font-size:8px;letter-spacing:1.5px}.sidebar .brand-mark{min-width:38px;height:38px;font-size:20px}.nav-label{color:#9eb7bb;font-size:10px;letter-spacing:1.8px;margin:48px 12px 17px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.sidebar nav button{border:0;border-radius:8px;background:transparent;color:#bfd0d3;font-size:14px;text-align:left;display:flex;align-items:center;gap:12px;padding:13px 12px}.sidebar nav button.active{background:#d4fa62;color:#123b43;font-weight:700}.sidebar nav button:hover:not(.active){background:#214a51;color:white}.sidebar-foot{margin-top:auto;border-top:1px solid #36595f;padding:24px 12px 0;font-size:14px}.sidebar-foot small{display:block;font-size:12px;color:#98b1b6;margin-top:5px}.workspace{flex:1;min-width:0}.topbar{height:86px;border-bottom:1px solid var(--border);background:#fff;padding:16px 38px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar>span,.topbar>div{display:flex;gap:14px;align-items:center}.topbar>span{font-size:14px;color:#697c88}.topbar strong{color:#263e4b;font-weight:500}.avatar{background:#e6eeea;color:#214e47;width:40px;height:40px;min-width:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.user-caption{font-size:14px;font-weight:600}.user-caption small{display:block;color:#78868d;font-size:12px;font-weight:400}.main{max-width:1440px;margin:auto;padding:38px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:20px}.page-heading .eyebrow{color:#6f8389;font-size:10px;letter-spacing:1.5px}.page-heading h1{font-size:34px;letter-spacing:-1px;margin:5px 0}.page-heading p{font-size:15px}.refresh{padding:10px;display:flex;align-items:center}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px}.stats button{background:#fff;border:1px solid var(--border);border-radius:12px;text-align:left;padding:23px}.stats button>span{font-size:14px;color:#627581}.stats strong{display:block;font-size:44px;line-height:1.4;font-weight:600;letter-spacing:-1px}.stats small{display:flex;align-items:center;justify-content:space-between;color:#70818b;font-size:12px}.stats svg{color:#1b6259}.two-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:start}.card{border:1px solid var(--border);border-radius:12px;padding:26px;background:#fff;margin-bottom:24px;min-width:0}.card-heading{margin-bottom:20px}.card-heading h3{font-size:19px;letter-spacing:-.4px}.card-heading p{font-size:14px;margin-top:5px}.accent-card{background:#d4fa62;padding:32px;border-radius:12px;color:#143c43;min-height:310px;display:flex;flex-direction:column;align-items:flex-start}.accent-card h2{font-size:32px;line-height:1.15;letter-spacing:-1px;margin:25px 0 15px;max-width:330px}.accent-card p{font-size:15px;max-width:340px}.accent-card button{margin-top:26px}.empty{padding:28px 16px 40px;text-align:center;color:#6c7f88;font-size:15px}.empty-symbol{display:block;font-size:32px;color:#9cbbb7;margin-bottom:10px}.list-row{display:flex;align-items:center;gap:15px;padding:18px 0;border-top:1px solid #edf1f2}.list-row>div:nth-child(2){flex:1}.list-row p{font-size:13px;margin-top:4px}.date-tile{background:#edf3f1;color:#397264;padding:12px;border-radius:8px}.badge{display:inline-block;border-radius:30px;background:#edf3f1;color:#2e6058;font-size:12px;font-weight:600;padding:5px 11px;white-space:normal}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.form-grid>p,.form-end,.form-grid>.notice{grid-column:1/-1}.form-grid label:has(textarea){grid-column:1/-1}.auth-card .form-grid{display:block}.form-note{font-size:13px;color:#6f7d86;margin:15px 0;line-height:1.6}.form-end{margin-top:3px}.inline-form{display:flex;align-items:flex-end;gap:12px;margin:10px 0;flex-wrap:wrap}.inline-form label{margin:0;flex:1;min-width:110px}.inline-form .form-end{margin:0}.inline-form button{font-size:13px;padding:10px 14px}.back-link{margin-top:22px}.facts{margin:10px 0}.facts dt{font-size:13px;color:#6f818b;margin-top:18px}.facts dd{margin:3px 0 0;overflow-wrap:anywhere}.disclosure summary{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:16px;font-weight:600}.disclosure[open] summary{padding-bottom:10px}.person-row{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:18px 0;border-top:1px solid #edf1f2}.person-info{flex:1;min-width:180px;overflow-wrap:anywhere}.person-info p{font-size:14px}.person-info small{color:#70818b;font-size:12px}.person-edit{width:100%;padding:5px 0 0 52px}.person-edit summary,details>summary{cursor:pointer;color:#285e56;font-size:14px}.person-edit form{max-width:640px}.progress-entry{border-top:1px solid var(--border);padding:22px 0}.progress-entry h4{font-size:18px;margin:18px 0 10px}.progress-entry p{margin:16px 0 8px}.progress-track{height:7px;background:#edf2f2;border-radius:8px;max-width:380px;overflow:hidden}.progress-track span{display:block;height:100%;background:#52866e}.row-between{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.activity{padding:23px 0;border-top:1px solid var(--border)}.activity h3{font-size:17px}.activity p{font-size:14px;margin-top:5px}.activity small{font-size:13px;color:#74858e}.attendance-list{padding:12px 0}.attendance-list>.row-between{border-bottom:1px solid #eef2f4;padding:10px 0}.action{margin-top:15px}.action button{font-size:14px}.booking{padding:18px 0;border-top:1px solid var(--border)}.booking p{font-size:14px;color:#627581;margin:6px 0 10px}.filters{display:flex;gap:14px}.filters label{flex:1}.calendar-controls{margin-bottom:20px}.cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.players{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.result{font-weight:700;color:#266b54;margin:14px 0}.entries{margin:25px 0}.entries p{font-size:14px;padding:8px 0;border-bottom:1px solid var(--border)}.fixtures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.fixture{background:#f7f9f9;border:1px solid #e4ebed;border-radius:8px;padding:18px}.fixture>p{margin:10px 0}.fixture>p span{font-size:13px;color:#7c8c94}.table-scroll{overflow-x:auto;margin:25px 0}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:13px 12px;text-align:left;border-bottom:1px solid #e7edef}th{font-size:12px;color:#6e8088;background:#f6f8f9}caption{text-align:left;font-size:13px;color:#687e86;margin-bottom:10px}.workspace-footer{padding:20px 38px;font-size:12px;color:#85939a;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}
@media(max-width:1100px){.sidebar{width:220px;padding:25px 15px}.sidebar .brand{font-size:19px}.main{padding:28px}.two-columns{grid-template-columns:1fr}.stats{gap:12px}.stats button{padding:18px}.topbar{padding:15px 28px}.fixtures{grid-template-columns:1fr}}
@media(max-width:760px){.auth-layout{display:block}.brand-panel{padding:25px}.brand-story{padding:35px 0 15px}.brand-story h1{font-size:40px;letter-spacing:-1.5px;margin:14px 0}.brand-story p,.sport-tags,.brand-panel footer{display:none}.brand-story h1 br{display:none}.brand-story .eyebrow{font-size:10px}.auth-content{padding:24px}.auth-card{padding:30px 0 45px}.auth-card h2{font-size:29px}.auth-top{font-size:10px}.brand{font-size:24px}.shell{display:block}.sidebar{position:static;width:100%;height:auto;padding:20px}.sidebar .brand{font-size:23px}.nav-label,.sidebar-foot{display:none}.sidebar nav{margin-top:22px;display:flex;flex-direction:row;overflow-x:auto;gap:5px;padding-bottom:5px}.sidebar nav button{flex-shrink:0;padding:10px;font-size:12px}.sidebar nav button svg{width:16px}.topbar{height:72px;padding:15px 20px}.topbar>span{font-size:12px}.user-caption{display:none}.main{padding:24px 18px}.page-heading h1{font-size:29px}.page-heading p{font-size:14px}.stats{grid-template-columns:1fr}.stats button{display:grid;grid-template-columns:1fr auto;align-items:center}.stats strong{grid-column:2;grid-row:1/3;font-size:36px}.stats small{grid-row:2;justify-content:flex-start;gap:8px}.card{padding:21px}.form-grid{grid-template-columns:1fr}.cards-grid{grid-template-columns:1fr;gap:0}.person-edit{padding-left:0}.row-between{gap:10px}.inline-form{width:100%}.activity .row-between>div:first-child{max-width:100%}.workspace-footer{padding:20px}.filters{flex-direction:column;gap:0}.list-row{flex-wrap:wrap}}

/* Task navigation shared with Escuela; no changes to account permissions. */
.school-shortcuts{display:flex;flex-wrap:wrap;gap:8px;padding:12px 20px;background:#10243a}.school-shortcuts a,.school-shortcuts button{font:inherit;font-size:14px;font-weight:700;min-height:44px;display:flex;align-items:center;padding:10px 12px;border:1px solid #647b8d;border-radius:9px;color:white;background:transparent;text-decoration:none}.school-shortcuts [aria-current=page]{background:#d8f075;color:#182d42;border-color:#d8f075}@media(max-width:760px){.sidebar{padding:16px}.sidebar nav{flex-wrap:wrap;overflow:visible;margin-top:14px}.sidebar nav button{font-size:14px;min-height:44px}.school-shortcuts{padding:12px 16px}.topbar>span{flex-wrap:wrap;gap:4px}}
@media(max-width:760px){.school-shortcuts{position:sticky;top:0;z-index:20}.sidebar nav{margin-top:12px}.sidebar .brand{font-size:20px}}

/* Mobile task bar and collapsible sections. */
.shortcut-short,.school-shortcuts .mobile-menu-toggle,.mobile-management{display:none}
@media(max-width:760px){
 .sidebar{padding:16px}.sidebar nav{display:none}.sidebar nav.expanded{display:grid;grid-template-columns:1fr;position:fixed;z-index:40;left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom));max-height:65dvh;overflow-y:auto;margin:0;padding:12px;background:#123b43;border:1px solid #68888f;border-radius:14px;box-shadow:0 -8px 28px #10243a30;gap:4px}
 .sidebar nav [data-section=clases]{display:none}.sidebar nav button{width:100%;min-height:44px;font-size:16px}.sidebar nav .mobile-management{display:flex;align-items:center;min-height:48px;padding:12px;color:#d8f075;text-decoration:none;border-top:1px solid #68888f}
 .school-shortcuts{position:fixed;top:auto;bottom:0;left:0;right:0;z-index:45;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid #526d82}
 .school-shortcuts a,.school-shortcuts button{justify-content:center;min-height:52px;padding:8px 4px;font-size:14px;overflow-wrap:anywhere}.school-shortcuts .mobile-menu-toggle{display:flex}.school-shortcuts .desktop-management,.shortcut-full{display:none}.shortcut-short{display:inline}.workspace-footer{padding-bottom:105px}
}

.sidebar nav .quarter-menu-link{display:flex;align-items:center;min-height:44px;padding:13px 12px;color:#bfd0d3;text-decoration:none;font-size:14px;border-radius:8px}.sidebar nav .quarter-menu-link:hover{background:#214a51;color:white}@media(max-width:760px){.sidebar nav .quarter-menu-link{font-size:16px}}

/* Final local school structure: shared palette and task cards. */
:root{--primary:#10243a;--accent:#d8f075;--background:#f7f9fa;--foreground:#182d42;--border:#dce6eb}.sidebar{background:#10243a}.sidebar nav button.active{background:#d8f075;color:#182d42}.brand-mark{background:#d8f075;color:#10243a}.team-tasks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:26px}.team-task{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:10px;padding:25px;background:white;border:1px solid var(--border);border-radius:17px;min-height:215px;color:var(--foreground)}.team-task.featured{background:#d8f075;border-color:#bdd95e}.team-task small{font-size:12px;letter-spacing:1px;color:#52697b}.team-task h2{font-size:23px;line-height:1.2}.team-task p{color:#52697b;font-size:15px}.team-task>span{margin-top:auto;font-size:15px;font-weight:700;color:#005e73;min-height:30px}.team-task:hover{box-shadow:0 6px 20px #10243a12}.secondary-sections{border-top:1px solid #41596e;padding-top:9px;margin-top:8px}.secondary-sections summary{color:#bfd0d3;min-height:44px;padding:12px;cursor:pointer}.secondary-sections button{width:100%}.topbar>span strong{line-height:1.3}.sidebar-foot a{display:block;min-height:40px}.sidebar-foot span{display:block;margin-top:12px}
@media(max-width:760px){.team-tasks{grid-template-columns:1fr;gap:12px}.team-task{min-height:0;padding:20px}.main{padding-bottom:30px}.page-heading h1{font-size:28px}.secondary-sections summary{font-size:16px}.topbar>span{max-width:calc(100% - 95px)}}

/* Compact daily tasks, matching Escuela. */
.team-task{min-height:175px;padding:20px;gap:8px}.team-task h2{font-size:21px}.page-heading{margin-bottom:22px}.page-heading h1{font-size:30px}.team-task small{font-size:11px}.team-task>span{min-height:44px;display:flex;align-items:center}
@media(max-width:760px){.sidebar{padding:12px 16px}.topbar{height:58px}.main{padding-top:20px}.team-tasks{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.team-task{min-height:190px;padding:15px}.team-task h2{font-size:18px}.team-task p{font-size:14px}.team-task>span{font-size:14px}.page-heading h1{font-size:26px}}
@media(max-width:350px){.team-tasks{grid-template-columns:1fr}.team-task{min-height:150px}}

/* Classes: separate sessions and attendance controls, preserving all actions. */
.class-view>.card:not(.disclosure){background:transparent;border:0;padding:0}.class-view .card-heading{margin:0 0 16px}.class-view .activity{background:white;border:1px solid var(--border);border-radius:17px;padding:22px;margin:0 0 18px}.class-heading h3{font-size:21px;line-height:1.3;margin:12px 0 10px;overflow-wrap:anywhere}.class-state{display:inline-block;border-radius:30px;padding:5px 10px;font-size:12px;font-weight:700;background:#edf2f4;color:#52697b}.class-state.ongoing{background:#e8f3c3;color:#324b20}.class-state.upcoming{background:#e9f1f8;color:#305873}.class-heading .class-date,.class-heading .class-location{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:14px;margin:8px 0;color:#415c70}.class-heading svg{flex-shrink:0}.class-heading .class-coach{font-size:13px;color:#52697b;margin:8px 0}.class-meta{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.class-meta span{font-size:12px;background:#f3f6f8;border-radius:7px;padding:5px 9px;color:#52697b}.attendance-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:16px;border-top:1px solid var(--border)}.attendance-heading h4{font-size:16px;margin:0}.attendance-heading span{font-size:12px;color:#52697b}.class-view .attendance-list{padding:8px 0}.class-view .attendance-row{padding:15px 0;align-items:center}.attendance-name{font-size:15px;overflow-wrap:anywhere;flex:1;min-width:150px}.class-view .inline-form{gap:10px;margin:0}.class-view .inline-form label{font-size:12px;min-width:150px}.class-view .inline-form select{margin-top:4px;min-height:44px}.class-view .inline-form button{min-height:44px}.class-view .inline-form .notice{flex-basis:100%;margin:5px 0}.class-no-students{padding:15px 0;color:#52697b}.class-manage{border-top:1px solid var(--border);padding-top:8px;margin-top:8px}.class-manage>summary{min-height:44px;display:flex;align-items:center;font-weight:600}.class-view .disclosure{padding:17px 20px}.class-view .disclosure>summary{min-height:32px}.class-view .activity>.notice{margin:12px 0;background:#f3f6f8;color:#52697b}
@media(max-width:760px){.class-view .activity{padding:18px}.class-heading h3{font-size:20px}.class-view .attendance-row{display:block}.class-view .attendance-name{display:block;margin-bottom:10px}.class-view .attendance-row .inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;width:100%}.class-view .attendance-row .inline-form label{min-width:0}.class-view .attendance-row .form-end{grid-column:auto}.class-view .attendance-row .inline-form button{padding:11px 12px;font-size:13px}.class-view .attendance-row .inline-form button svg{display:none}.class-view .attendance-row .inline-form .notice{grid-column:1/-1}.class-view .attendance-row>.action{margin:8px 0}.class-view .attendance-heading{align-items:flex-start}.class-view .attendance-heading span{text-align:right}.class-view .attendance-row select{padding:10px 8px}}
@media(max-width:350px){.class-view .attendance-row .inline-form{grid-template-columns:1fr}.class-view .attendance-row .inline-form button{width:100%}.class-view .attendance-row .form-end{margin-top:4px}}

/* Follow-up: existing evaluations and scale in readable cards. */
.followup-view>.card:not(.disclosure){border:0;background:transparent;padding:0}.followup-view .card-heading{margin:0 0 16px}.followup-view .progress-entry{border:1px solid var(--border);background:white;border-radius:17px;padding:22px;margin:0 0 18px}.followup-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.followup-heading>strong{font-size:19px;overflow-wrap:anywhere}.followup-view .progress-entry .followup-label{font-size:12px;color:#52697b;margin:20px 0 6px;font-weight:600}.followup-view .progress-entry h4{font-size:20px;line-height:1.4;margin:0;overflow-wrap:anywhere}.followup-rating{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:20px}.followup-rating>span{font-size:13px;color:#52697b}.followup-rating>strong{font-size:24px;color:#182d42}.followup-rating small{font-size:14px;color:#52697b;font-weight:400}.followup-view .progress-track{max-width:none;margin:8px 0 18px;height:8px}.followup-view .progress-track span{background:#8cb444}.followup-observation{background:#f3f6f8;border-radius:10px;padding:14px 16px}.followup-view .followup-observation .followup-label{margin:0 0 6px}.followup-view .followup-observation>p:last-child{font-size:15px;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.followup-footer{display:flex;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:15px;margin-top:18px;color:#52697b;font-size:12px}.followup-footer span{display:flex;gap:6px;align-items:center}.followup-footer svg{flex-shrink:0}.followup-view .disclosure{padding:17px 20px}.followup-view .disclosure>summary{min-height:32px}.followup-view .empty{background:white;border:1px solid var(--border);border-radius:17px}
@media(max-width:760px){.followup-view .progress-entry{padding:18px}.followup-heading{flex-direction:column;gap:8px}.followup-view .progress-entry h4{font-size:19px}.followup-view .form-grid{margin-top:20px}.followup-view .form-grid label{font-size:14px;margin-bottom:16px}.followup-view .form-end .primary{width:100%}.followup-footer{flex-direction:column;gap:8px}.followup-view .disclosure>summary{font-size:15px}}

/* Anonymous landing: presentation only; real team API keeps its authentication. */
.public-school{min-height:100dvh;display:flex;flex-direction:column;background:#f7f9fa;color:#182d42}.public-header{background:#10243a;color:white;padding:22px max(20px,calc((100vw - 1080px)/2));display:flex;justify-content:space-between;align-items:center;gap:24px}.public-header .brand{font-size:24px;letter-spacing:-1px}.public-header .brand small{font-size:9px}.public-access{display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 15px;border:1px solid #8cabb9;border-radius:9px;font-size:14px;font-weight:600}.public-access:hover{background:#214052}.public-main{width:100%;max-width:1080px;margin:auto;padding:48px 24px 28px;flex:1}.public-hero{border-radius:22px;background:#e8f3c3;padding:44px;position:relative;overflow:hidden}.public-hero>.eyebrow{font-size:12px;color:#526b40}.public-hero h1{font-size:clamp(34px,5vw,62px);line-height:1.08;letter-spacing:-2px;margin:20px 0}.public-hero p{max-width:520px;font-size:18px;color:#41565e;line-height:1.6}.public-hero .primary{margin:26px 0 10px;background:#10243a}.public-hero>small{display:block;font-size:13px;color:#526b40}.public-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.public-features article{background:white;border:1px solid #dce6eb;border-radius:17px;padding:24px}.public-features svg{color:#005e73}.public-features h2{font-size:21px;margin:16px 0 8px}.public-features p{font-size:15px;color:#52697b}.public-family-note{font-size:13px;color:#52697b}.public-footer{border-top:1px solid #dce6eb;width:100%;padding:20px max(24px,calc((100vw - 1032px)/2));display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:12px;color:#52697b}.public-school a:focus-visible{outline:3px solid #426dde;outline-offset:3px}
@media(max-width:760px){.public-header{padding:16px;flex-wrap:wrap;gap:14px}.public-header .brand{font-size:21px}.public-access{font-size:13px;padding:8px 11px}.public-main{padding:24px 16px}.public-hero{padding:26px 22px}.public-hero h1{font-size:38px;letter-spacing:-1px}.public-hero p{font-size:16px}.public-hero .primary{width:100%}.public-features{grid-template-columns:1fr;gap:12px}.public-features article{padding:20px}.public-features h2{margin:10px 0 6px}.public-footer{padding:20px 16px}}
.public-denied{max-width:520px;margin:50px auto;padding:28px;background:white;border:1px solid var(--border);border-radius:17px}.public-denied h1{font-size:28px;margin:12px 0}.public-denied p{margin:15px 0}.public-denied .primary{margin-top:10px}@media(max-width:560px){.public-denied{margin:24px 16px;padding:22px}}

.public-denied form{display:grid;gap:16px;margin:24px 0}.public-denied label{display:grid;gap:8px;font-size:15px}.public-denied input{width:100%;min-height:48px;font-size:16px}.public-denied button{min-height:44px}.public-denied button:disabled{opacity:.55;cursor:not-allowed}

.install-app{margin:20px 0;padding:16px 20px;background:white;border:1px solid #dce6eb;border-radius:14px;max-width:680px}.install-app summary{cursor:pointer;font-weight:600;min-height:44px;align-content:center}.install-app p{font-size:15px;line-height:1.6;margin:12px 0}.install-app button{min-height:44px}

/* Mobile landing: entry first, installation alongside it, existing cards below. */
@media(max-width:760px){
 .public-header .public-access{display:none}
 .public-main{display:flex;flex-direction:column;gap:0;padding-top:20px}
 .public-hero{order:0;padding:24px 22px}
 .public-hero h1{margin:16px 0;font-size:36px}
 .public-hero .primary{min-height:48px;margin-top:20px;font-size:16px}
 .public-hero>small{font-size:14px;line-height:1.5}
 .public-main>.install-app{order:1;margin:14px 0 0;width:100%;max-width:none;padding:10px 18px}
 .install-app summary{font-size:16px;line-height:1.5;padding:8px 0;min-height:48px;color:#182d42}
 .install-app summary:focus-visible{outline:3px solid #426dde;outline-offset:4px;border-radius:4px}
 .install-app p{font-size:16px;line-height:1.6;margin:14px 0}
 .install-app button{width:100%;font-size:16px}
 .public-features{order:2;margin:20px 0}
 .public-family-note{order:3;font-size:14px;line-height:1.5}
}

/* Access screen: mobile presentation only, shared form behavior unchanged. */
@media(max-width:760px){
 .team-access{margin:20px auto;padding:24px;width:calc(100% - 32px);max-width:520px;border-radius:22px;overflow:hidden;color:#182d42}
 .team-access>.eyebrow{display:block;margin:-24px -24px 24px;padding:20px 24px;background:#10243a;color:#e8f3c3;font-size:12px;letter-spacing:2px}
 .team-access h1{font-size:30px;line-height:1.2;letter-spacing:-.6px;margin:0 0 14px}
 .team-access p{font-size:16px;line-height:1.6;margin:14px 0}
 .team-access>.notice{background:#e8f3c3;color:#344a32;border-left:3px solid #88a64a;border-radius:10px;padding:14px 16px;font-size:14px}
 .team-access form{gap:18px;margin:24px 0}
 .team-access label{font-size:16px;gap:10px}
 .team-access input{min-height:50px;border-radius:10px;font-size:16px;min-width:0}
 .team-access input:disabled{background:#f3f6f8;border-color:#d5dfe5;opacity:1}
 .team-access .primary{width:100%;min-height:50px;background:#10243a;border-radius:10px;font-size:16px;margin-top:0}
 .team-access .primary:disabled{background:#647483;color:white;opacity:1;cursor:not-allowed}
 .team-access>.muted{border-top:1px solid #dce6eb;padding-top:18px;font-size:14px;color:#52697b}
 .team-access>.text-button{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;font-size:15px;color:#182d42;text-underline-offset:4px}
 .team-access :is(a,button,input):focus-visible{outline:3px solid #426dde;outline-offset:3px}
}

/* Mobile team menu: consistent palette, long labels and separate sign-out. */
@media(max-width:760px){
 .sidebar nav.expanded{background:#10243a;border-color:#536a7c;padding:12px;gap:5px;max-height:min(70dvh,calc(100dvh - 150px - env(safe-area-inset-bottom)));overscroll-behavior:contain;scroll-padding:12px}
 .sidebar nav button,.sidebar nav .quarter-menu-link{font-size:16px;line-height:1.4;min-height:48px;padding:12px;border-radius:9px;color:#e3ebef;white-space:normal;overflow-wrap:anywhere}
 .sidebar nav button svg{flex-shrink:0;width:19px;height:19px}
 .sidebar nav .secondary-sections{border-color:#536a7c;margin-top:6px;padding-top:6px}
 .sidebar nav .secondary-sections summary{font-size:16px;line-height:1.4;min-height:48px;padding:12px;color:#e3ebef}
 .sidebar nav .session-exit{margin-top:8px;border-top:1px solid #536a7c;border-radius:0;padding-top:16px;min-height:52px;color:#bfd0dc}
 .sidebar nav :is(button,a,summary):focus-visible{outline:3px solid #d8f075;outline-offset:-3px}
 .school-shortcuts .mobile-menu-toggle[aria-expanded=true]{background:#e8f3c3;border-color:#e8f3c3;color:#182d42}
}

/* Team home: retain the four cards, widen them on small phones. */
@media(max-width:480px){
 .team-tasks{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:22px}
 .team-tasks .team-task{min-height:0;padding:18px;gap:7px}
 .team-tasks .team-task small{font-size:12px;letter-spacing:1px}
 .team-tasks .team-task h2{font-size:20px;line-height:1.3}
 .team-tasks .team-task p{font-size:16px;line-height:1.5}
 .team-tasks .team-task>span{font-size:15px;line-height:1.4;min-height:44px;margin-top:3px}
 .team-tasks .team-task:focus-visible{outline:3px solid #426dde;outline-offset:3px}
}

/* Consulta interna de plazas por sesión, copia local. */
.daily-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}.daily-filters label{display:grid;gap:6px;min-width:0}.daily-filters input,.daily-filters select{width:100%;min-height:44px;box-sizing:border-box}.daily-session-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}.daily-session{padding:16px;border:1px solid #d7e2e9;border-radius:12px;min-width:0}.daily-session h4,.daily-session p{margin:10px 0;overflow-wrap:anywhere}.daily-session small{display:block;margin:10px 0}.daily-session button{margin-top:8px}.daily-state.confirmada{background:#e8f3c3}.daily-state.pendiente,.daily-state.posible{background:#fff2d2}.class-source-review{margin-top:16px}.activity[id]{scroll-margin-top:88px}.attendance-row .inline-form{flex-wrap:wrap}.attendance-row .inline-form .form-note{flex-basis:100%}

.recovery-dates{border:1px solid #d7e2e9;border-radius:10px;padding:12px;min-width:0;flex-basis:100%}.recovery-dates legend{font-weight:600}.recovery-dates .row-between{gap:12px;margin:8px 0;align-items:end}.recovery-dates input[type=date]{width:100%;min-width:0}.recovery-dates label{flex:1;min-width:0}

/* Original Ochentasport logo; preserve its colours and proportions. */
.brand-logo{display:block;width:49px;height:49px;flex:0 0 49px;object-fit:contain;background:#fff;border-radius:50%;padding:3px;box-sizing:border-box}.sidebar .brand-logo{width:44px;height:44px;flex-basis:44px}

.school-leagues{display:grid;gap:18px;margin-bottom:24px}.league-picker{display:grid;grid-template-columns:1fr 1fr;gap:14px}.league-entry{text-align:left;color:inherit;cursor:pointer;width:100%;display:block}.league-entry h2{font-size:21px;margin:12px 0 8px}.league-entry p{margin:0 0 12px}.league-entry>span{font-size:13px;font-weight:700}.league-entry.selected{border:2px solid #1b5b4e;background:#eef5e5}.tennis-league-intro{background:#1b5b4e!important;color:#fff}.tennis-league-intro small{letter-spacing:1px;font-weight:700}.tennis-league-intro h2{font-size:27px;margin:12px 0}.league-facts{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.league-facts span{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:12px;background:#ffffff19}.league-points{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.league-points div{display:grid;gap:4px;padding:16px;border-radius:14px;background:#edf3e6;text-align:center}.league-points strong{font-size:34px;color:#1b5b4e}.league-points span{font-size:14px}.league-schedule p{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #dde5de;margin:0}.league-schedule span{text-align:right}.league-zones{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.league-zones div{display:grid;gap:8px;border:1px solid #dde5de;border-radius:14px;padding:15px}.league-zones span{font-size:13px;color:#65766e}.school-leagues h3{display:flex;align-items:center;gap:8px}.school-leagues li{margin-bottom:10px;line-height:1.6}.school-leagues details{margin-top:16px}.school-leagues summary{cursor:pointer;font-weight:700}
@media(max-width:760px){.league-picker{grid-template-columns:1fr}.league-zones{grid-template-columns:1fr}.league-zones div{grid-template-columns:80px 1fr;align-items:center}.league-points div{padding:12px 6px}.league-schedule p{flex-direction:column;gap:5px}.league-schedule span{text-align:left}}
.modality-number{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#1b5b4e;color:white;font-weight:800;font-size:19px}.minor-modality{border-left:4px solid #1b5b4e!important}.minor-modality h3{margin-top:12px}.minor-attendance{border:1px solid #ead9b2!important}.school-leagues .league-points .expulsion-label{font-size:16px;align-self:center;overflow-wrap:anywhere}.minor-attendance h4{margin-top:22px}
.competition-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.competition-tabs button{min-height:48px;flex:1;min-width:120px;font-size:16px;white-space:normal}.competition-hub{display:grid;gap:14px}.competition-pupils{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px;margin-top:16px}.competition-pupil{padding:16px;min-width:0;overflow-wrap:normal;word-break:normal}.competition-pupil.selected{border:2px solid #327454;background:#edf5e5}.competition-check{display:flex;gap:12px;align-items:flex-start}.competition-check input,.competition-selection-bar input{width:22px;height:22px;flex:none}.competition-selection-bar{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:18px}.competition-selection-bar label{display:flex;align-items:center;gap:8px}.competition-hub .daily-filters{display:flex;gap:12px;flex-wrap:wrap}.competition-hub .daily-filters label{display:grid;gap:7px;flex:1;min-width:180px}.competition-hub input,.competition-hub select{min-height:44px}.competition-hub .trial-students{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px}.competition-hub .trial-student{min-width:0;word-break:normal}.competition-hub .trial-student>strong{display:block;font-size:16px;writing-mode:horizontal-tb;overflow-wrap:normal;word-break:normal}
@media(max-width:760px){.competition-tabs button{flex:1 1 30%;min-width:0;font-size:14px;padding:12px 8px}.competition-hub .daily-filters label{min-width:100%}.competition-pupils,.competition-hub .trial-students{grid-template-columns:1fr}}

.huecos-local{--h-green:#1b5b4e;--h-ink:#183c37;--h-muted:#5c706b;color:var(--h-ink)}
.huecos-local .card{border:1px solid #e0e8e4;border-radius:16px;box-shadow:0 3px 15px #163a2c06}
.huecos-local .huecos-toolbar{padding:26px;background:linear-gradient(120deg,#fff,#f8fbf9)}
.huecos-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.huecos-heading h2{font-size:30px;letter-spacing:-.7px;margin:6px 0 8px}
.huecos-heading p{margin:0;color:var(--h-muted)}
.huecos-local .eyebrow{font-size:11px;letter-spacing:1.3px;font-weight:700;color:var(--h-green);margin:0}
.local-badge{padding:6px 10px;border:1px solid #b8d4c8;background:#edf7f1;border-radius:20px;white-space:nowrap;font-size:12px}
.huecos-local .huecos-date{font-size:12px;color:var(--h-muted);margin:16px 0 6px}
.huecos-local .huecos-local-note{font-size:13px;background:#edf3f0;padding:10px 12px;border-radius:8px;color:#496159}
.huecos-tabs{display:flex;gap:8px;margin:20px 0 14px;flex-wrap:wrap}
.huecos-local button{margin:0;cursor:pointer}
.huecos-local button:focus-visible,.huecos-local select:focus-visible{outline:3px solid #e1b94b;outline-offset:3px}
.huecos-local button:disabled{opacity:.5;cursor:default}
.huecos-local .primary{background:var(--h-green);border-color:var(--h-green);color:white}
.huecos-day-picker{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0 20px}
.huecos-day-picker button{background:white;border:1px solid #d7e3dd;border-radius:30px;padding:8px 13px;font-size:13px;color:var(--h-ink)}
.huecos-day-picker button[aria-pressed=true]{background:var(--h-green);border-color:var(--h-green);color:white}
.huecos-local .daily-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.huecos-local .daily-filters label{font-size:12px;font-weight:600;color:var(--h-muted)}
.huecos-local .daily-filters select{width:100%;min-width:0;border-radius:8px;padding:10px;background:white;color:var(--h-ink);border:1px solid #cfddd6;font-size:13px;font-weight:400}
.huecos-filter-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}
.huecos-local .marked-toggle{font-size:13px;display:flex;align-items:center;flex-direction:row;gap:8px}
.huecos-results-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid #e0e8e4;padding-top:18px;margin-top:18px}
.huecos-results-summary strong{font-size:20px}
.source-badge{font-size:12px;padding:5px 9px;border-radius:20px;background:#fff0cf;color:#785314}
.huecos-local .huecos-footnote{font-size:12px;color:var(--h-muted);margin-bottom:0}
.huecos-local .daily-session-list{grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:14px;margin:18px 0}
.huecos-local .daily-session-list .card{padding:20px;border-top:3px solid #d8e9df}
.huecos-local .daily-session-list h3{font-size:17px;letter-spacing:-.2px;margin:0 0 10px}
.huecos-local .daily-session-list p{font-size:13px;line-height:1.5;margin:8px 0;color:#425e54}
.huecos-local .daily-session-list small{font-size:11px;line-height:1.5;color:var(--h-muted)}
.huecos-local .daily-session-list .marked-count{display:inline-block;background:#ffef9e;border:1px solid #f0d873;color:#624900;padding:8px 12px;font-size:15px;border-radius:9px;margin:12px 0;font-weight:700}
.huecos-local .huecos-source-warning{font-size:12px;margin:12px 0;background:#fff5df;padding:10px;border-left:3px solid #d39b30}
.huecos-local .huecos-source-warning ul{padding-left:18px;margin:6px 0 0}
.huecos-origin{border-top:1px solid #e8eee9;margin-top:14px;padding-top:10px;font-size:11px;color:var(--h-muted)}
.huecos-origin summary,.huecos-technical summary{cursor:pointer}
.huecos-local .huecos-technical{padding:16px 20px;font-size:13px}
.huecos-local .huecos-technical>summary{font-weight:600;color:var(--h-muted)}
.huecos-empty{grid-column:1/-1;text-align:center;padding:36px!important}
@media(max-width:1000px){.huecos-local .daily-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.huecos-local .huecos-toolbar{padding:18px}.huecos-heading h2{font-size:25px}.huecos-local .daily-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.huecos-local .daily-session-list{grid-template-columns:1fr}.huecos-tabs button{flex:1;font-size:12px}.huecos-day-picker button{font-size:12px;padding:7px 10px}.huecos-heading{gap:8px}}

.huecos-local .huecos-search{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;color:var(--h-muted);margin:16px 0 8px}
.huecos-local .huecos-search input{padding:12px 14px;border:1px solid #cfddd6;background:white;border-radius:10px;width:100%;font-size:14px;color:var(--h-ink)}
.huecos-local .filter-help{font-size:11px;color:var(--h-muted);margin:8px 0 14px}
.day-result-count{font-size:10px;margin-left:7px;opacity:.7}
.huecos-filter-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.huecos-filter-chips button{display:flex;gap:12px;align-items:center;border:1px solid #c5ddd0;background:#eff7f2;color:#285d48;border-radius:20px;padding:6px 11px;font-size:12px}
.huecos-filter-chips span{font-size:17px}
.huecos-local .daily-session-list .group-level{font-weight:700;font-size:15px;color:var(--h-ink);margin:12px 0 6px}
.huecos-count-panel{display:flex;align-items:center;gap:15px;background:#fff3be;border:1px solid #efdf97;border-radius:12px;padding:13px 16px;margin:16px 0}
.huecos-local .huecos-big-count{font-size:38px;line-height:1;color:#624900;letter-spacing:-1px}
.huecos-count-panel b{font-size:17px;color:#624900}
.huecos-local .huecos-count-panel small{color:#806932;font-size:11px;margin:4px 0 0}
.group-facts{display:flex;gap:6px 14px;flex-wrap:wrap;color:#65776e;font-size:11px;line-height:1.6}
.group-facts b{color:#304d40;font-size:12px}

.school-entrance-art{position:relative;border-radius:22px;overflow:hidden;margin-bottom:22px;background:#d5e7dc;box-shadow:0 8px 30px #183c3710}
.public-main .entrance-photo{grid-column:1/-1;min-height:420px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:38px;border:0;color:#fff;background:linear-gradient(0deg,rgba(7,28,33,.92),rgba(7,28,33,.1)),url('/brand/entrada-padel.jpg') center 48%/cover no-repeat;background-color:#123f52}
.entrance-photo h1,.entrance-photo p,.entrance-photo small,.entrance-photo .eyebrow{color:#fff}.public-main .entrance-photo .primary{background:#d8f075;color:#17372e;border-color:#d8f075}.entrance-photo p{max-width:350px}
.team-all-functions{grid-template-columns:repeat(2,minmax(0,1fr))}.team-all-functions .team-task{text-align:left;min-height:175px}
@media(max-width:760px){.public-main .entrance-photo{min-height:390px;padding:26px 22px;background-position:center 48%}.team-all-functions{grid-template-columns:1fr}.team-all-functions .team-task{min-height:135px}}
.school-entrance-art svg{display:block;width:100%;max-height:340px}
.school-entrance-art span{position:absolute;top:20px;left:20px;background:#ffffffd9;padding:8px 12px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:1px;color:#285147}
.public-hero{border-radius:22px;background:#fff;border:1px solid #dae6df}
.public-hero .primary{background:#1b5b4e;border-color:#1b5b4e}
.team-menu-backdrop{display:none}.shortcut-huecos{display:flex}
.sidebar nav [data-section=huecos]{background:#244f49;border:1px solid #588371;color:#fff;font-weight:700}
.sidebar nav [data-section=huecos].active{background:#d8f075;color:#182d42}
@media(max-width:760px){
 .public-main .school-entrance-art{order:0;margin-bottom:14px}.public-main .public-hero{order:1}.public-main>.install-app{order:2}
 .school-entrance-art svg{height:auto;max-height:270px}.school-entrance-art span{top:12px;left:12px;font-size:9px;padding:7px 9px}
 .public-hero h1{font-size:34px;margin-top:12px}.public-header{padding-bottom:0}
 .school-shortcuts{grid-template-columns:1fr 1fr 1fr 1.4fr;gap:6px;padding:9px 10px calc(9px + env(safe-area-inset-bottom))}
 .school-shortcuts .mobile-menu-toggle{gap:7px;font-size:17px;min-height:58px;background:#d8f075;color:#182d42;border-color:#d8f075;font-weight:800}
 .school-shortcuts .shortcut-huecos{display:flex}.school-shortcuts a,.school-shortcuts button{font-size:13px}
 .team-menu-backdrop{display:block;position:fixed;inset:0;z-index:35;background:#071b2c78;border:0;border-radius:0;width:100%;height:100%;padding:0}
 .sidebar nav.expanded{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));bottom:calc(88px + env(safe-area-inset-bottom));max-height:calc(100dvh - 104px - env(safe-area-inset-bottom));gap:6px;padding:12px;border-radius:20px;background:#10243a}
 .sidebar nav [data-section=clases]{display:flex}
 .sidebar nav.expanded button,.sidebar nav.expanded .quarter-menu-link{display:flex;gap:8px;align-items:center;min-height:48px;padding:9px;font-size:14px;line-height:1.3;background:#1d354b;border:1px solid #41566a;text-align:left}
 .sidebar nav.expanded button.active{background:#d8f075;border-color:#d8f075;color:#182d42}
 .sidebar nav.expanded [data-section=huecos]{background:#d8f075;border-color:#d8f075;color:#142e29;font-size:17px;font-weight:800}
 .sidebar nav.expanded .session-exit{grid-column:1/-1;min-height:44px;margin-top:0;background:transparent;border:0;border-top:1px solid #41566a;justify-content:center}
 .sidebar nav.expanded .mobile-management{min-height:48px;border:1px solid #41566a;border-radius:9px;padding:9px;font-size:14px;color:#d8f075;background:#1d354b}
 .team-tasks .team-task{min-height:0;gap:8px}.team-tasks .team-task.featured{background:#e9f3d6;border-color:#bfdb91}
 .workspace-footer{padding-bottom:115px}
}
@media(min-width:761px){.public-main{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center}.school-entrance-art{margin:0}.public-main .public-hero{padding:35px}.public-main>.install-app,.public-main>.public-family-note{grid-column:1/-1}}
.attendance-sections{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.attendance-related{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.attendance-related button,.attendance-related a{font-size:12px;padding:8px 10px}
.groups-local .daily-session-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
.groups-local .daily-filters{display:flex;gap:12px;flex-wrap:wrap}
.groups-local .daily-filters label{flex:1;min-width:180px}
.group-schedule-list{list-style:none;padding:0}
.group-schedule-list li{padding:10px 0;border-top:1px solid #e1e9e4;display:flex;flex-direction:column;gap:6px;font-size:13px}
.group-schedule-list span,.groups-local small{font-size:11px;color:#60766c}
.student-goal{padding:18px 0;border-top:1px solid #e1e9e4}
.exercise-library-frame{display:block;width:100%;height:1250px;border:1px solid #dce6eb;border-radius:16px;background:#f7f9fa}
.menu-personal{grid-column:1/-1;display:flex;gap:8px;border-top:1px solid #41566a;padding-top:10px}
.sidebar nav.expanded .menu-personal button{flex:1;min-height:40px;font-size:12px;background:transparent;border:0}
@media(max-width:760px){.school-shortcuts{grid-template-columns:1.2fr 1fr 1fr 1.35fr}.school-shortcuts .shortcut-grupos{display:flex}.sidebar nav.expanded [data-section=clases]{background:#d8f075;color:#182d42;font-weight:800;font-size:16px}.sidebar nav.expanded [data-section=huecos]{background:#1d354b;color:white;border-color:#41566a;font-size:15px}.sidebar nav.expanded button.active{background:#d8f075;color:#182d42}.exercise-library-frame{height:1150px}}

.school-real-photo{margin:0 0 20px;overflow:hidden;border-radius:16px;background:#e6eee7}.school-real-photo img{display:block;width:100%;height:280px;object-fit:cover;object-position:center 45%}.school-real-photo.tennis-photo img{object-position:center 42%}.attendance-photo{max-width:900px}.attendance-photo img{height:230px;object-position:center 34%}.public-school .public-main{flex:0 0 auto;margin:0 auto;padding-bottom:16px}.public-school .public-footer{padding-top:14px;padding-bottom:14px}.public-main .entrance-photo{background-position:center 32%;min-height:520px;background-image:linear-gradient(0deg,rgba(7,28,33,.94) 0%,rgba(7,28,33,.12) 65%),url('/brand/entrada-padel.jpg')}@media(max-width:760px){.school-real-photo img{height:260px}.attendance-photo img{height:210px}.public-main .entrance-photo{min-height:490px;background-position:center 32%}}
.public-main .entrance-photo{display:grid;grid-template-columns:1.1fr 1fr;min-height:0;padding:0!important;background:#123f52;overflow:hidden;gap:0;align-items:stretch}
.entrance-visual{min-width:0;min-height:390px}.entrance-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%}
.entrance-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:30px;gap:10px;min-width:0}
.entrance-copy h1,.entrance-copy p{margin:0}.entrance-copy h1{font-size:38px}.entrance-copy .primary{margin-top:10px;white-space:normal;max-width:100%}.entrance-copy small{font-size:13px}
@media(max-width:760px){.public-main .entrance-photo{grid-template-columns:1fr;min-height:0!important}.entrance-visual{min-height:0;height:270px}.entrance-copy{padding:24px 20px}.entrance-copy h1{font-size:30px}.entrance-copy .primary{width:100%;justify-content:center}}

.adult-category{display:flex;gap:10px;flex-wrap:wrap}.adult-category button{padding:12px 18px;border:1px solid #b9d1c9;background:#fff;color:#234f42;border-radius:12px;font-weight:700}.adult-category button.active{background:#176552;color:white}.adult-controls label{display:block;font-weight:700;margin-bottom:8px}.adult-controls select{max-width:360px;width:100%;padding:12px;border:1px solid #b8cbc5;border-radius:10px;font-size:16px}.adult-controls>span{display:inline-block;margin:10px 18px;color:#365d50}.adult-layout{display:grid;grid-template-columns:minmax(240px,330px) minmax(0,1fr);gap:18px;align-items:start}.adult-exercise-list{display:grid;gap:9px}.adult-exercise-option{display:flex;gap:12px;text-align:left;width:100%;padding:14px;border:1px solid #d4e2dc;border-radius:13px;background:white;color:#203d33;cursor:pointer;line-height:1.4}.adult-exercise-option.selected{border:2px solid #176552;background:#eef8f3;padding:13px}.adult-number{background:#e8f0ea;border-radius:9px;width:28px;height:28px;display:grid;place-items:center;flex-shrink:0;font-weight:700}.adult-exercise-option.selected .adult-number{background:#176552;color:white}.adult-exercise-option strong,.adult-exercise-option small,.adult-exercise-option em{display:block}.adult-exercise-option small{margin:5px 0;color:#526b60}.adult-exercise-option em{font-size:12px;font-style:normal;color:#64786e}.adult-fiche.card{margin:0;min-width:0;padding:24px}.adult-fiche-top{display:flex;gap:12px;justify-content:space-between;align-items:center;font-size:13px;flex-wrap:wrap}.adult-proposal{background:#fff0ca;color:#705614;border-radius:8px;padding:4px 10px;font-weight:700}.adult-fiche h3{font-size:25px;margin:18px 0 7px;line-height:1.2}.adult-goal{font-size:17px;color:#365e50}.adult-fiche-body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(210px,.8fr);gap:24px}.adult-fiche h4{font-size:15px;color:#234f42;margin:18px 0 6px}.adult-fiche p,.adult-fiche li{line-height:1.6;font-size:14px}.adult-fiche ol{padding-left:20px}.adult-fiche li{padding:4px 0}.adult-cue{background:#eef7f2;padding:13px;border-radius:10px;margin-top:15px}.adult-cue p{margin:5px 0}.adult-court{margin:14px 0}.adult-court svg{display:block;width:100%;max-width:260px;margin:auto}.adult-court figcaption{font-size:12px;color:#576c63;line-height:1.5;margin-top:10px}.adult-court figcaption p{font-size:12px}.adult-variants{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;border-top:1px solid #e2eae5;margin-top:20px;padding-top:2px}.adult-reference{margin:18px 0;color:#5a6e64;font-size:13px}.adult-reference summary{cursor:pointer}.adult-reference a{color:#176552}@media(max-width:950px){.adult-layout{grid-template-columns:1fr}.adult-exercise-list{grid-template-columns:repeat(2,minmax(0,1fr))}.adult-fiche-body{grid-template-columns:1fr 240px}}@media(max-width:600px){.adult-fiche-body{grid-template-columns:1fr}.adult-exercise-list{grid-template-columns:1fr}.adult-variants{grid-template-columns:1fr;gap:0}.adult-fiche.card{padding:18px}.adult-controls>span{display:block;margin:10px 0}.adult-fiche h3{font-size:23px}.adult-court svg{max-width:220px}.adult-category button{flex:1}.adult-fiche-top{justify-content:flex-start}}

.adult-mobile-picker{display:none}@media(max-width:600px){.adult-mobile-picker{display:block}.adult-mobile-picker label{display:block;font-weight:700;margin-bottom:8px}.adult-mobile-picker select{width:100%;font-size:16px;padding:13px;border:1px solid #b8cbc5;border-radius:10px;background:white}.adult-exercise-list{display:none}}

.exercise-filter-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px}.exercise-filter-grid label{font-size:14px}.exercise-filter-grid input,.exercise-filter-grid select{display:block;width:100%;max-width:none;min-height:46px;margin-top:8px;padding:11px;border:1px solid #b8cbc5;border-radius:10px;font-size:16px;background:white}.adult-library-note{font-size:13px;color:#64776c;margin-bottom:0}.exercise-reset{border:1px solid #c6d6cf;border-radius:9px;padding:9px 14px;background:white;color:#176552}.adult-exercise-list{max-height:750px;overflow-y:auto;padding-right:4px}.exercise-origin{padding-top:12px;margin-top:15px;border-top:1px solid #dde6e1}.exercise-origin a{color:#176552;font-weight:600;font-size:14px}.exercise-origin small{color:#697a70}.exercise-manuals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.exercise-manuals a{padding:14px;border:1px solid #d4e2dc;border-radius:10px;color:#176552;text-decoration:none}.exercise-manuals small{display:block;color:#60776c;margin-top:6px}.exercise-resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.exercise-resource-grid .card{margin:0;padding:18px;min-width:0}.exercise-resource-grid h4{font-size:17px;margin:10px 0}.exercise-resource-grid p{font-size:14px;line-height:1.5}.exercise-resource-grid small{font-size:12px;color:#60776c}.exercise-resource-grid a{display:inline-block;margin:12px 14px 0 0;color:#176552}.exercise-legacy{margin-top:18px}.exercise-legacy iframe{margin-top:16px}@media(max-width:950px){.exercise-filter-grid{grid-template-columns:1fr 1fr}.exercise-filter-grid label:first-child{grid-column:1/-1}.exercise-manuals{grid-template-columns:1fr 1fr}}@media(max-width:600px){.exercise-filter-grid{grid-template-columns:1fr}.exercise-filter-grid label:first-child{grid-column:auto}.exercise-manuals{grid-template-columns:1fr}.adult-category button{flex-basis:100%;padding:11px}.adult-exercise-list{display:none}}

/* Ajustes de lectura y uso táctil para las pantallas existentes. */
.shell .main{min-width:0}.shell .card{min-width:0}.shell button,.shell a,.public-school a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.shell .huecos-count-panel>div{min-width:0}.shell .huecos-count-panel small{display:block;line-height:1.4}
.group-map-filters{margin-top:18px}.group-map-filter-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.group-map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;align-items:start}.shell .group-map-card{margin:0;padding:0;overflow:hidden;border-top:4px solid #1b5b4e}.shell .group-map-card>summary{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;cursor:pointer;list-style:none}.group-map-card>summary::-webkit-details-marker{display:none}.group-map-site{font-size:19px;color:#183c37;font-weight:800}.group-map-sport{font-size:12px;color:#597267}.group-map-teacher{font-size:18px;color:#183c37}.group-map-days{font-size:18px;font-weight:700}.group-map-time{font-size:18px;background:#eef5e5;padding:7px 10px;border-radius:9px}.group-map-meta{font-size:12px;color:#597267}.group-map-open{display:flex;justify-content:space-between;width:100%;font-size:13px;font-weight:700;color:#1b5b4e;border-top:1px solid #e1e9e4;padding-top:10px;margin-top:4px}.group-map-card[open] .group-map-open>span{transform:rotate(180deg)}.group-map-card[open]>summary{background:#f3f8ef}.group-map-roster{padding:0 18px 18px;border-top:1px solid #e1e9e4}.group-map-roster section{margin-top:18px}.group-map-roster h3{font-size:16px}.group-map-roster ul{list-style:none;padding:0;margin:0}.group-map-roster li{padding:10px 0;border-bottom:1px solid #e7eee9;font-size:14px}.group-map-note{font-size:12px;color:#61796c;margin-top:18px}.group-map-card>summary:focus-visible{outline:3px solid #c59b24;outline-offset:-3px}
.shell button:focus-visible,.shell a:focus-visible,.public-school a:focus-visible{outline:3px solid #c59b24;outline-offset:3px}
@media(max-width:760px){
 .shell .main{padding:20px 14px 24px}.shell .page-heading{margin-bottom:18px;gap:10px}.shell .page-heading h1{font-size:26px;line-height:1.2;margin:8px 0}.shell .page-heading p{font-size:14px;line-height:1.5;margin:0}
 .shell .card{border-radius:16px;padding:17px;margin-bottom:16px}.shell .card h3{line-height:1.35}.shell .card p,.shell .card li{overflow-wrap:anywhere}
 .shell input:not([type=checkbox]):not([type=radio]),.shell select,.shell textarea{max-width:100%;min-width:0;min-height:46px;font-size:16px!important}.shell input[type=checkbox],.shell input[type=radio]{width:20px;height:20px}
 .shell button,.shell summary{min-height:44px}.shell summary{display:flex;align-items:center;gap:8px;line-height:1.4}.shell button.secondary{line-height:1.35}
 .shell .team-all-functions{gap:10px}.shell .team-all-functions .team-task{display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:12px;row-gap:4px;min-height:86px;padding:15px;align-content:center}
 .shell .team-all-functions .team-task>svg{grid-column:1;grid-row:1/3;align-self:center;width:25px;height:25px}.shell .team-all-functions .team-task>h2{grid-column:2;font-size:18px;line-height:1.25;margin:0}.shell .team-all-functions .team-task>p{grid-column:2;margin:0;font-size:13px;line-height:1.4}.shell .team-all-functions .team-task>span{display:none}
 .shell .school-shortcuts{gap:5px;padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.shell .school-shortcuts button{min-height:52px;font-size:12px;padding:8px 4px}.shell .school-shortcuts .mobile-menu-toggle{font-size:15px;gap:5px}
 .shell .workspace-footer{padding-bottom:105px}.shell .main{padding-bottom:25px}.shell .sidebar nav.expanded{bottom:calc(75px + env(safe-area-inset-bottom));max-height:calc(100dvh - 95px - env(safe-area-inset-bottom))}.shell .menu-personal{flex-wrap:wrap}
 .shell .attendance-photo img{height:140px}.shell .attendance-photo{margin-bottom:14px}.shell .attendance-sections{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shell .attendance-sections button{font-size:14px;padding:10px 7px}.shell .attendance-related{gap:6px}.shell .attendance-related button{font-size:12px;min-height:40px}
 .shell .two-columns,.shell .groups-local .daily-session-list{grid-template-columns:minmax(0,1fr)}.shell .groups-local .daily-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shell .groups-local .daily-filters label{min-width:0}.shell .person-row{flex-wrap:wrap;gap:10px}.shell .person-info{min-width:0;flex:1}.shell .person-info p{overflow-wrap:anywhere}.shell .facts dd{overflow-wrap:anywhere}
 .shell .huecos-local .huecos-toolbar{padding:16px}.shell .huecos-heading{flex-wrap:wrap}.shell .huecos-heading>div{flex:1 1 100%}.shell .huecos-heading h2{font-size:23px}.shell .huecos-local .daily-filters{grid-template-columns:1fr 1fr;gap:12px}.shell .huecos-local .daily-filters label:last-child{grid-column:1/-1}.shell .huecos-day-picker{gap:6px;margin:12px 0}.shell .huecos-day-picker button{min-height:42px;font-size:13px;padding:9px 12px}.shell .huecos-tabs button{font-size:13px;min-height:46px}.shell .huecos-local .daily-session-list .card{padding:17px}.shell .huecos-local .group-facts{font-size:12px}.shell .huecos-count-panel{margin:12px 0;padding:12px}.shell .huecos-local .huecos-big-count{font-size:34px}
 .shell .adult-category{gap:7px}.shell .adult-category button{flex:1 1 auto;font-size:13px;min-height:44px;padding:10px 12px}.shell .adult-category button:last-child{flex-basis:100%}.shell .exercise-filter-grid{gap:12px}.shell .adult-fiche.card{padding:17px}.shell .adult-fiche p,.shell .adult-fiche li{font-size:15px}.shell .adult-mobile-picker{margin-bottom:0}.shell .adult-court svg{max-width:250px}.shell .adult-fiche h3{font-size:23px}.shell .exercise-resource-grid{grid-template-columns:minmax(0,1fr)}
 .shell .league-picker{gap:10px}.shell .league-entry{min-height:110px;padding:15px}.shell .league-entry h2{font-size:19px;margin:8px 0}.shell .league-entry p{font-size:13px;margin-bottom:8px}.shell .school-real-photo img{height:190px}.shell .attendance-photo img{height:140px}.shell .school-leagues{gap:14px}.shell .league-facts{gap:7px;margin-top:14px}.shell .league-facts span{font-size:13px;padding:8px}.shell .league-schedule p{padding:10px 0}.shell .table-scroll{max-width:100%;overflow-x:auto}
 .public-school .public-main{padding:16px 14px 14px}.public-school .public-main .entrance-photo{min-height:420px;padding:24px 20px;background-position:center 32%}.public-school .entrance-photo h1{font-size:31px;line-height:1.1}.public-school .entrance-photo p{font-size:15px;line-height:1.5}.public-school .entrance-photo .primary{min-height:50px;width:100%;justify-content:center}.public-school .public-family-note{font-size:13px;line-height:1.5;margin:8px 0}.public-school .public-footer{gap:6px;padding:14px;font-size:11px}
}

/* Alumnos: reservar el ancho de lectura del nombre en móvil. */
@media(max-width:760px){
 .shell .person-row{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:start;gap:8px 12px;}
 .shell .person-row>.avatar{grid-column:1;grid-row:1;flex-shrink:0;}
 .shell .person-row>.person-info{grid-column:2;grid-row:1;min-width:0;width:100%;flex:initial;writing-mode:horizontal-tb;word-break:normal;overflow-wrap:break-word;}
 .shell .person-info>strong{display:block;font-size:16px;line-height:1.45;white-space:normal;word-break:normal;overflow-wrap:normal;hyphens:none;writing-mode:horizontal-tb;}
 .shell .person-info p{margin:5px 0;word-break:normal;overflow-wrap:anywhere;}
 .shell .person-row>:not(.avatar):not(.person-info){grid-column:2;min-width:0;max-width:100%;}
 .shell .person-row>.person-edit{grid-column:1/-1;padding-left:0;}
}
.pupils-search{display:block;font-weight:600}.pupils-search input{display:block;width:100%;margin-top:8px}.pupils-list{display:grid;gap:12px}.pupil-card h3{font-size:17px;line-height:1.5;white-space:normal;word-break:normal;overflow-wrap:normal;writing-mode:horizontal-tb;margin:0 0 10px}.pupil-group{padding-top:10px;margin-top:10px;border-top:1px solid #e7eee9;min-width:0}.pupil-group strong{font-size:14px}.pupil-group p{font-size:14px;line-height:1.6;margin:5px 0}.shell .pupil-card{min-width:0;width:100%;margin:0}@media(min-width:900px){.pupils-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.school-register .register-pupil{display:grid;gap:12px;border-top:1px solid #dce5e1;padding:18px 0;min-width:0}
.school-register .register-pupil>strong{font-size:18px;overflow-wrap:normal;word-break:normal;writing-mode:horizontal-tb}
.school-register label{display:grid;gap:6px;min-width:0}
.school-register input,.school-register select{width:100%;min-height:46px;min-width:0;box-sizing:border-box}
.school-register .register-saved{color:#326a4f;font-size:13px}
.school-register .group-map-card>div{padding-top:16px}
.school-register .attendance-pane-tabs{display:flex;flex-wrap:wrap;gap:8px}
.school-register .register-count{padding:4px 16px}

.public-main .entrance-photo{display:grid;grid-template-columns:1.1fr 1fr;min-height:0;padding:0!important;background:#123f52;overflow:hidden;gap:0;align-items:stretch}
.entrance-visual{min-width:0;min-height:390px}.entrance-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%}
.entrance-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:30px;gap:10px;min-width:0}
.entrance-copy h1,.entrance-copy p{margin:0}.entrance-copy h1{font-size:38px}.entrance-copy .primary{margin-top:10px;white-space:normal;max-width:100%}.entrance-copy small{font-size:13px}
@media(max-width:760px){.public-main .entrance-photo{grid-template-columns:1fr;min-height:0!important}.entrance-visual{min-height:0;height:270px}.entrance-copy{padding:24px 20px}.entrance-copy h1{font-size:30px}.entrance-copy .primary{width:100%;justify-content:center}}

.court-agenda h2{font-size:1.55rem}.court-scroll{overflow:auto;max-height:68vh;border:1px solid #dbe2df;border-radius:14px}.court-grid{border-collapse:separate;border-spacing:4px;width:100%;min-width:650px}.court-grid caption{text-align:left;padding:12px;font-weight:700;font-size:1.1rem}.court-grid th{font-size:1rem;white-space:nowrap}.court-grid thead th{position:sticky;top:0;background:#fff;z-index:2;padding:12px 6px}.court-grid tbody th{position:sticky;left:0;background:#fff;z-index:1}.court-grid td{padding:0;min-width:80px;vertical-align:stretch}.court-cell{height:64px;width:100%;padding:5px;border-radius:8px;border:1px solid #c6ddd4;font-size:.78rem;line-height:1.15;overflow-wrap:anywhere}.court-cell:disabled{opacity:1;cursor:default}.court-cell.free{background:#edf8f1;color:#215f43}.court-cell.blocked{background:repeating-linear-gradient(135deg,#e0e3e2,#e0e3e2 7px,#d6dad8 7px,#d6dad8 9px);color:#48534e}.court-cell.reserved{background:#f0dcb6;color:#66451a}.court-cell.app{background:#234f46;color:white}.court-cell small{display:block;margin-top:5px;font-size:.7rem}.court-legend{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.court-legend span{padding:5px 9px;border-radius:8px;font-size:.82rem}.court-legend .free{background:#edf8f1}.court-legend .blocked{background:#e0e3e2}.court-legend .reserved{background:#f0dcb6}.court-legend .app{background:#234f46;color:white}.court-check{display:flex!important;align-items:flex-start;gap:12px}.court-check input{width:22px!important;min-height:22px!important;flex-shrink:0}.court-editor{border:2px solid #4a7765}.court-editor:focus-within{scroll-margin:80px}@media(max-width:600px){.court-agenda .card{padding:16px}.court-grid{min-width:620px}.court-scroll{max-height:55vh}.court-agenda .filters{display:grid;grid-template-columns:1fr 1fr}.court-editor .row-between h3{font-size:1.15rem}}
.court-grid:has(thead th:last-child:nth-child(2)){min-width:0}.court-grid:has(thead th:last-child:nth-child(2)) .court-cell{font-size:.95rem}

.group-view-toggle,.weekly-range{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.weekly-range button{font-size:.88rem;padding:9px 13px}.weekly-map-heading h2{margin-bottom:8px}.weekly-map-scroll{overflow:auto;max-height:72vh;border:1px solid #dbe3e0;border-radius:12px}.weekly-map-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.weekly-map-table caption{text-align:left;padding:12px;font-weight:600}.weekly-map-table th{padding:12px;background:#eff3f1;white-space:nowrap;font-size:1rem}.weekly-map-table thead th{position:sticky;top:0;z-index:3}.weekly-map-table thead th:first-child{left:0;z-index:4}.weekly-map-table tbody th{position:sticky;left:0;z-index:2;vertical-align:top}.weekly-map-table td{width:190px;min-width:190px;padding:6px;border:1px solid #e7ece9;vertical-align:top;background:#fafcfb}.weekly-group{display:flex;flex-direction:column;text-align:left;gap:5px;width:100%;padding:11px;margin-bottom:6px;border-radius:10px;border:1px solid #b4d9cb;background:#e7f5ed;color:#173e30;font-size:.85rem;line-height:1.25}.weekly-group.tenis{background:#edeafa;border-color:#c9bde6;color:#433761}.weekly-group:hover,.weekly-group:focus-visible{outline:2px solid #347158;outline-offset:1px}.weekly-group .weekly-site{font-size:.95rem}.weekly-group small{font-size:.75rem}.map-sport-padel{color:#215d43}.map-sport-tenis{color:#655091}.weekly-group-dialog{width:min(620px,calc(100% - 28px));max-height:85vh;overflow:auto;border:0;border-radius:18px;padding:24px;color:#182d29;box-shadow:0 20px 80px #0005}.weekly-group-dialog::backdrop{background:#10232dcc}.weekly-group-dialog .weekly-site{font-size:1.15rem;font-weight:700}.weekly-group-dialog .row-between{gap:12px}.weekly-group-dialog h2{font-size:1.4rem}.weekly-group-dialog li{margin:9px 0}.entrance-visual{overflow:hidden}.entrance-visual img{width:114.2857%;max-width:none;object-position:left 35%}@media(max-width:600px){.weekly-map{padding:14px!important}.weekly-map-table td{min-width:155px;width:155px}.weekly-map-table th{font-size:.87rem;padding:10px 7px}.weekly-group{padding:9px;font-size:.8rem}.weekly-map-scroll{max-height:65vh}.weekly-group-dialog{padding:18px}.group-view-toggle button{flex:1;font-size:.9rem}}

.huecos-local .daily-session-list .huecos-site{display:block;font-size:21px;font-weight:800;line-height:1.3;color:#183c37;margin:10px 0 4px}
.huecos-local .daily-session-list h3{font-size:21px;line-height:1.35}
.huecos-local .daily-session-list .group-level{font-size:20px;line-height:1.35}
.recovery-date{display:grid;gap:6px;font-size:14px;font-weight:600;margin:18px 0 10px}.recovery-date input{width:100%;min-height:46px;font-size:16px}
.recovery-seat-list{display:grid;gap:9px;grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}.huecos-local .recovery-seat{display:grid;text-align:left;gap:6px;border:1px solid #d5b448;border-radius:12px;padding:13px;background:#fff5c3;color:#584410;min-height:85px}.recovery-seat b{font-size:16px}.recovery-seat span{font-size:13px;line-height:1.4}.huecos-local .recovery-seat.taken{background:#eef2f0;border-color:#cbd7cf;color:#3a5549;opacity:1}.recovery-seat s{font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.recovery-dialog{width:calc(100% - 28px);max-width:480px;border:1px solid #d0ddd4;border-radius:18px;padding:24px;color:#183c37;max-height:85dvh;overflow:auto}.recovery-dialog::backdrop{background:#102d23b3}.recovery-dialog form,.recovery-confirm{display:grid;gap:14px}.recovery-dialog h3{font-size:23px;margin:0}.recovery-dialog p{font-size:15px;line-height:1.5;margin:0}.recovery-dialog label,.recovery-confirm label{display:grid;gap:6px;font-size:15px}.recovery-dialog select,.recovery-confirm select{width:100%;min-width:0;font-size:16px;min-height:46px}.recovery-actions{display:flex;gap:8px;flex-wrap:wrap}.recovery-actions button{min-height:46px;flex:1}.recovery-dialog button{min-height:46px}.recovery-bookings article{border-top:1px solid #dce7e0;padding:16px 0}.recovery-confirm{padding:18px;background:#f0f6f2;border-radius:12px}.recovery-confirm .marked-toggle{display:flex;align-items:center;gap:10px}.recovery-confirm input[type=checkbox]{width:20px;height:20px}.register-recovery{font-weight:700;color:#1b5b4e;background:#eef7f1;padding:8px 12px;border-radius:8px}
@media(max-width:420px){.recovery-dialog{padding:18px}.recovery-actions{flex-direction:column}.recovery-seat-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

.recovery-dialog form{gap:10px}.recovery-dialog label{margin:0}.recovery-dialog .huecos-site{margin:0!important;font-size:23px}.recovery-dialog .marked-toggle{display:flex;align-items:flex-start;gap:8px}.recovery-dialog input[type=checkbox]{width:18px;height:18px;min-height:18px;flex-shrink:0;margin:2px 0 0}

/* Un único bloque visible por plaza, fecha legible en móvil. */
.recovery-seat-list{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin:12px 0 16px}.recovery-seat{padding:18px;min-height:130px;gap:6px}.recovery-seat b{font-size:22px;line-height:1.25}.recovery-seat .recovery-seat-state{font-size:18px;font-weight:700}.recovery-seat .recovery-seat-day{font-size:18px;line-height:1.4}.recovery-seat span:last-child{font-size:16px}.recovery-date{margin-top:12px}
@media(max-width:420px){.recovery-seat-list{grid-template-columns:1fr}}

.personal-recovery-list{padding-left:20px}.personal-recovery-teacher{margin:8px 0;font-size:16px}.personal-recovery-list .recovery-actions{margin-top:10px}.personal-recovery-confirm{width:100%}

.court-cell.past{background:#edf0f2;color:#6a747b;cursor:not-allowed}.court-editor .notice{margin:12px 0}.court-cell.app span{font-weight:700}

.pupil-followup{margin:14px 0}.pupil-followup>summary{cursor:pointer;font-weight:700;padding:12px;background:#eef4ef;border-radius:10px}.pupil-followup .followup-view{margin-top:14px}.pupil-followup .card{box-shadow:none;border:1px solid #e0e7e2}
.school-prices{display:grid;gap:30px;max-width:1000px}.price-membership{display:flex;gap:28px;align-items:center;justify-content:space-between;padding:30px;border-radius:22px;background:linear-gradient(130deg,#164a40,#286757);color:white}.price-membership h2{font-size:clamp(1.35rem,3vw,1.8rem);color:white;margin:14px 0}.price-membership p{line-height:1.6;max-width:550px;color:#e0f0e9;margin:0}.price-eyebrow{display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.membership-amount{flex-shrink:0;display:grid;gap:6px;padding:20px 24px;border:1px solid #8bb6a7;border-radius:16px;text-align:center}.membership-amount strong{font-size:2.6rem;line-height:1.1;white-space:nowrap}.membership-amount span{font-size:.85rem;color:#e0f0e9}.price-section-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px;color:#205b4d}.price-section-heading h2{margin:0;font-size:1.35rem}.price-section-heading p{margin:5px 0 0;color:#59675f}.class-price-grid,.league-price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.class-price-card{margin:0!important;padding:22px!important}.class-price-card .price-eyebrow,.league-price-card .price-eyebrow{color:#5c7469}.class-price-card h3{margin:10px 0 20px;font-size:1.2rem}.class-price-card dl{margin:0;display:grid;gap:12px}.class-price-card dl>div{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #e5ebe6;padding-top:12px}.class-price-card dt{font-size:.95rem}.class-price-card dd{margin:0;display:flex;align-items:baseline;gap:5px;white-space:nowrap}.class-price-card dd strong{font-size:1.8rem;color:#174e40}.class-price-card dd span{font-size:.8rem;color:#637067}.league-price-card{margin:0!important;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:22px!important}.league-price-card h3{margin:8px 0 0;font-size:1.1rem}.league-price-card>strong{font-size:2rem;color:#174e40;white-space:nowrap}@media(max-width:620px){.school-prices{gap:25px}.price-membership{flex-direction:column;align-items:stretch;padding:23px;gap:22px}.membership-amount{padding:16px;text-align:left}.membership-amount strong{font-size:2.4rem}.class-price-grid,.league-price-grid{grid-template-columns:1fr}.class-price-card,.league-price-card{padding:19px!important}}


/* Incorporaciones previstas: señal visual; el texto de estado se conserva. */
.shell .planned-pupil-name{color:#7936a8!important;font-weight:800}
.section-school-photo{margin:0 0 20px;border-radius:18px;overflow:hidden;background:#e3eae7}
.section-school-photo img{display:block;width:100%;height:230px;object-fit:cover;object-position:center 30%}
.section-photo-ejercicios img,.section-photo-huecos img{object-position:center 33%}
.school-shortcuts .shortcut-inicio{display:none}
@media(max-width:760px){
 .shell .school-shortcuts{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:6px 7px calc(6px + env(safe-area-inset-bottom))}
 .shell .school-shortcuts button,.shell .school-shortcuts .mobile-menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 2px;min-height:60px;font-size:10px;line-height:1.1;font-weight:700;overflow-wrap:normal;border-radius:12px}
 .shell .school-shortcuts button svg{width:24px;height:24px;flex:none;stroke-width:1.8}
 .shell .school-shortcuts .shortcut-inicio{display:flex}
 .shell .school-shortcuts button[aria-current=page]{background:#e0f2e9;color:#175442;border-color:#e0f2e9}
 .shell .school-shortcuts .mobile-menu-toggle{background:#d8f075;color:#182d42;border-color:#d8f075;font-size:10px}
 .section-school-photo{margin-bottom:16px;border-radius:14px}.section-school-photo img{height:180px;object-position:center 30%}
 .section-photo-ejercicios img,.section-photo-huecos img{object-position:center 35%}
}

/* Asistencias, bajas y seis accesos móviles */
.shell .inactive-pupil-name{color:#b42332!important;font-weight:800}.attendance-stats{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;background:#edf5f1;margin:12px 0}.attendance-stats strong{font-size:18px;color:#24574a}.attendance-stats small,.absence-alert small{font-size:12px;line-height:1.5}.absence-alert{padding:14px;border:1px solid #e6bc57;background:#fff8e4;border-radius:12px;margin:12px 0}.absence-alert textarea{width:100%;min-height:110px;resize:vertical}.absence-alert small{display:block;margin-top:9px}.attendance-export{margin:16px 0}.section-photo-grupos img,.attendance-photo img{object-position:center 35%}@media(max-width:760px){.school-shortcuts{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:2px!important;padding:5px 4px calc(5px + env(safe-area-inset-bottom))!important}.school-shortcuts button{padding:5px 1px!important;min-height:56px!important;font-size:9px!important;border-radius:10px!important}.school-shortcuts button svg{width:22px!important;height:22px!important}.school-shortcuts button span{white-space:nowrap}.attendance-stats span{font-size:13px}.section-school-photo img{height:175px}}

.competition-photo-menores img{object-fit:contain!important;height:300px!important;background:#e8eef0}.section-photo-grupos img{object-position:center 47%;height:260px}.competition-photo-americano img{object-position:center 37%}@media(max-width:760px){.section-photo-grupos img{height:225px!important;object-fit:contain;background:#e8eef0}.attendance-photo img{object-position:center 42%}}
.csv-download-ready{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid #ccd9d3;border-radius:10px;text-decoration:none;color:#193c33;font-weight:700;}

/* Fichas de entrenador: colocación y secuencia explícita */
.teacher-version{color:#52685f;font-size:12px!important}.teacher-start,.teacher-turn{background:#f1f6f3;border-left:3px solid #176552;border-radius:8px;padding:3px 13px;margin:16px 0}.teacher-start h4,.teacher-turn h4{margin-top:10px}.teacher-visual{margin:10px 0;background:#f6faf8;border:1px solid #d6e5dd;border-radius:16px;padding:14px;min-width:0}.teacher-visual h4{margin:0 0 12px!important;font-size:17px!important}.teacher-pitch{display:block;width:100%;max-width:260px;margin:auto}.teacher-visual figcaption,.sequence-intro{font-size:13px!important;line-height:1.55;color:#3d5a4b}.teacher-legend{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:10px 0}.teacher-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-player{background:#176552}.legend-coach{background:#694991}.legend-ball{background:#174e82}.teacher-sequence{display:grid;margin-top:17px;gap:4px}.sequence-node{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;border:1px solid #c8dbd0;border-radius:11px;background:white;padding:12px;color:#263e33;line-height:1.55;font-size:14px;cursor:pointer;min-height:48px}.sequence-node.is-current{border:2px solid #176552;padding:11px;background:#eaf5ee}.sequence-symbol{position:relative;display:grid;place-items:center;min-width:34px;height:36px;color:#176552;margin-right:4px}.sequence-symbol b{position:absolute;right:-4px;bottom:-8px;border-radius:50%;background:#176552;color:white;font-size:11px;width:18px;height:18px;display:grid;place-items:center}.sequence-arrow{justify-self:center;color:#52816b}.teacher-current{background:white;border-radius:8px;padding:11px;margin:14px 0 4px;font-size:14px!important}.teacher-scale{display:block;font-size:11px;color:#53695c;margin-top:11px}.teacher-written-steps{counter-reset:teacher;padding-left:0!important;list-style:none}.teacher-written-steps li{counter-increment:teacher;position:relative;padding:9px 0 9px 34px!important;border-bottom:1px solid #e2ece6}.teacher-written-steps li:before{content:counter(teacher);position:absolute;left:0;top:10px;width:23px;height:23px;border-radius:7px;background:#e6f0e9;color:#176552;display:grid;place-items:center;font-weight:bold}.adult-fiche-body{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr)}
@media(max-width:950px){.adult-fiche-body{grid-template-columns:minmax(0,1fr) minmax(240px,.85fr)}}@media(max-width:650px){.adult-fiche-body{grid-template-columns:minmax(0,1fr)}.teacher-visual{padding:13px;margin-top:6px}.teacher-pitch{max-width:245px}.sequence-node{font-size:15px}.teacher-current{font-size:15px!important}}

.monthly-table-scroll{overflow:auto;max-height:65vh;border:1px solid #dce5df;border-radius:12px;isolation:isolate}
.monthly-attendance-table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:15px}
.monthly-attendance-table caption{text-align:left;padding:12px;font-weight:700;background:#eef4ee}
.monthly-attendance-table th,.monthly-attendance-table td{padding:10px 9px;border-bottom:1px solid #e1e8e3;border-right:1px solid #e1e8e3;text-align:center;min-width:44px;white-space:nowrap}
.monthly-attendance-table thead th{position:sticky;top:0;background:#edf3ee;z-index:2}
.monthly-attendance-table th:first-child{position:sticky;left:0;z-index:1;background:#fff;text-align:left;min-width:160px;max-width:230px;white-space:normal;line-height:1.3}
.monthly-attendance-table thead th:first-child{z-index:3;background:#edf3ee}
.monthly-attendance-table th span,.monthly-attendance-table th strong,.monthly-attendance-table small{display:block}
.monthly-attendance-table th span{font-size:12px;color:#53665a}
.monthly-mark{font-weight:800}.monthly-mark.mark-X{color:#11633e;background:#e4f5e9}.monthly-mark.mark-F{color:#a12727;background:#ffeded}.monthly-mark.mark-R{color:#5441a3;background:#efebff}.monthly-mark.mark-LL,.monthly-mark.mark-S{color:#405779;background:#edf2fa}.monthly-mark.mark-empty{color:#8b9890}.monthly-future{background:#f6f7f6;color:#9aa39c}.monthly-today{box-shadow:inset 0 0 0 2px #628a38}.monthly-percent{font-weight:700}.monthly-overview>p{margin:12px 0}
@media(max-width:600px){.monthly-attendance-table{font-size:14px}.monthly-attendance-table th:first-child{min-width:140px;max-width:170px}.monthly-attendance-table th,.monthly-attendance-table td{padding:9px 7px}}

.school-courts-grid{width:100%;border-collapse:collapse;min-width:380px;font-size:15px}.school-courts-grid caption{text-align:left;padding:8px;font-weight:700}.school-courts-grid td,.school-courts-grid th{padding:9px 5px;text-align:center;border:1px solid #dce5df;white-space:nowrap}.school-courts-grid th{background:#edf3ee}.school-courts-grid small{font-size:11px;font-weight:400}.school-courts-grid td{font-weight:800}.court-count-full{background:#fae5db;color:#913616}.court-count-used{background:#e4f2e7;color:#17552c}.court-count-zero{color:#8c968e}.court-count-pending{background:#fff4cc}.school-courts-mornings{margin-top:10px}.school-courts-overview .card{padding:14px}.school-courts-overview h3{margin:0 0 9px}@media(max-width:600px){.school-courts-grid{font-size:13px;min-width:350px}.school-courts-grid td,.school-courts-grid th{padding:8px 3px}.school-courts-overview .card{padding:10px}}
/* Seis días visibles, incluido sábado, sin desplazar el móvil hacia la derecha. */
.school-courts-fit{width:100%;overflow:visible}.school-courts-fit .school-courts-grid{table-layout:fixed;width:100%;min-width:0!important}.school-courts-fit .school-courts-grid th:first-child{width:23%}.school-courts-fit .school-courts-grid th,.school-courts-fit .school-courts-grid td{padding:8px 2px;white-space:normal;overflow-wrap:normal;font-size:13px}.school-courts-fit .school-courts-grid td small{font-size:10px}.school-courts-afternoon th,.school-courts-afternoon td{border-top:3px solid #afc4b2}@media(max-width:600px){.school-courts-fit .school-courts-grid th,.school-courts-fit .school-courts-grid td{font-size:11px;padding:8px 1px;letter-spacing:-.2px}.school-courts-fit .school-courts-grid td small{font-size:9px}.school-courts-overview .card{padding:8px}.school-courts-fit .school-courts-grid caption{padding:6px 2px}}

/* Biblioteca por golpes y observación de Pedro */
.exercise-topic-title{font-size:1rem;margin:18px 0 10px}.exercise-topic-tabs{display:flex;flex-wrap:wrap;gap:7px}.exercise-topic-tabs button{margin:0;padding:8px 10px;background:#edf5f2;color:#234b42;border:1px solid #c7dcd4;border-radius:9px;font-size:.85rem}.exercise-topic-tabs button.active{background:#176552;color:white;border-color:#176552}.exercise-topic-tabs button:disabled{opacity:.48;cursor:default}.exercise-turn-filter{display:flex;align-items:center;gap:9px;margin:16px 0}.exercise-turn-filter input{width:19px;height:19px;min-width:19px;margin:0}.exercise-result-line{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between;margin-top:14px}.observation-guide summary{cursor:pointer;font-weight:700;color:#176552}.observation-guide label{display:block;margin:14px 0}.observation-guide select{width:100%}.observation-phase{margin-top:8px;border:1px solid #dce7e2;border-radius:8px;padding:10px}.observation-phase summary{color:#344a43}.observation-criterion{padding:10px 0;border-top:1px solid #e4ebe7}.observation-criterion:first-of-type{margin-top:10px}.observation-criterion p{margin:5px 0}.observation-criterion span{font-weight:600}.exercise-corrections{margin:20px 0;padding:15px;background:#f0f7f3;border-radius:12px}.correction-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.correction-card{padding:12px;border:1px solid #d2e3db;background:white;border-radius:9px}.correction-card p{margin:8px 0}.adult-fiche-top{flex-wrap:wrap}.adult-fiche-top .adult-proposal{white-space:normal}.exercise-library-local *{overflow-wrap:break-word}@media(max-width:520px){.correction-grid{grid-template-columns:1fr}.exercise-topic-tabs button{font-size:.81rem}.exercise-corrections{padding:12px}.observation-guide{padding:14px}.adult-fiche-top{gap:8px}}

/* Nivel del alumno: perfiles y polígono de habilidades */
.student-level-section{min-width:0}.student-level-section>label{display:block;margin:15px 0}.student-level-section input,.student-level-section select,.student-level-section textarea{width:100%;min-width:0}.student-level-form fieldset{border:0;padding:0;margin:0;min-width:0}.student-level-top{display:grid;grid-template-columns:1fr 1fr;gap:16px}.student-level-top label,.student-level-form>fieldset>label{display:block}.student-level-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,1fr);gap:24px;margin:20px 0;align-items:start}.student-level-aspects label{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:12px;align-items:center;margin:10px 0}.student-level-aspects input{text-align:center}.student-level-radar{margin:0;min-width:0}.student-level-radar svg{display:block;width:100%;max-width:400px;margin:auto}.student-level-radar figcaption{font-size:13px;color:#5c6e63}.student-level-radar ol{padding-left:24px;font-size:14px}.student-level-history,.student-level-reference{margin:20px 0;border-top:1px solid #dce5df;padding-top:14px}.student-level-history summary,.student-level-reference summary{cursor:pointer;font-weight:700;color:#176552}.student-level-history article{padding:14px 0;border-bottom:1px solid #dce5df}.student-level-form button{margin-top:16px}.student-level-fiche h3{margin-top:18px}.student-level-reference h3{font-size:16px}.student-level-section *{overflow-wrap:break-word}.shortcut-asistencia{min-width:0}@media(max-width:650px){.student-level-columns,.student-level-top{grid-template-columns:1fr}.student-level-section{padding:16px}.student-level-aspects label{grid-template-columns:minmax(0,1fr) 90px}.school-shortcuts button[aria-label="Asistencia y nivel"] span{font-size:10px;line-height:1.15;white-space:normal;max-width:64px}}

/* Biblioteca del libro: ficha y croquis conservados por número. */
.book-intro h3{margin-top:0}.book-intro button{background:#176552;color:#fff;border:0;border-radius:10px;padding:12px 18px;font-weight:700}.book-source-label{display:block;margin-bottom:18px}.book-source-label select{display:block;width:100%;margin-top:6px;min-height:44px}.book-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,30%);gap:24px;align-items:start}.book-columns h4{margin:18px 0 8px}.book-fiche p{line-height:1.65}.book-adaptation{padding:16px;border-radius:12px}.book-adaptation h4{margin-top:0}.book-notes{border-left:4px solid #b67d21;padding:2px 16px;background:#fff9ed;margin:18px 0}.book-diagram{margin:0;text-align:center}.book-diagram img{width:100%;height:auto;max-width:290px;display:block;margin:auto;background:white}.book-diagram figcaption{font-size:12px;line-height:1.65;margin-top:12px;color:#48595e}.book-legend{margin-top:22px;padding:16px;background:#f1f6f4;border-radius:12px}.book-legend summary{font-weight:700;cursor:pointer}.book-legend-images{display:grid;grid-template-columns:1fr 1fr;gap:14px}.book-legend img{width:100%;height:auto}.book-credit{font-size:12px;color:#59676a;border-top:1px solid #dce5e0;padding-top:14px;margin-top:22px}.book-level{padding:12px 16px;background:#eff5fa;border-radius:10px;font-size:13px}.book-description{white-space:pre-line}.book-fiche{min-width:0;overflow-wrap:anywhere}.book-columns details{font-size:13px}.book-columns details summary{cursor:pointer}
@media(max-width:700px){.book-columns{grid-template-columns:1fr}.book-diagram{background:#f8faf9;padding:12px;border-radius:12px}.book-diagram img{max-width:250px}.book-legend-images{grid-template-columns:1fr}.book-source-label select{max-width:100%}}

.student-ficha-link{font:inherit;font-weight:inherit;color:#12614d;text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:2px 0;text-align:inherit;cursor:pointer}.student-ficha-link:focus-visible{outline:3px solid #557d1a;outline-offset:3px}.student-ficha-dialog{box-sizing:border-box;width:min(850px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;border:0;border-radius:18px;padding:20px;color:#193e34}.student-ficha-dialog::backdrop{background:#122e32a8}.student-ficha-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.student-ficha-heading h2{font-size:1.3rem;overflow-wrap:anywhere}.student-ficha-group{padding:12px;border-radius:12px;background:#f1f6ee;margin-bottom:8px}@media(max-width:600px){.student-ficha-dialog{padding:14px}.student-ficha-dialog .student-level-columns{display:block}.student-ficha-heading{flex-wrap:wrap}}
.student-ficha-summary{display:grid;gap:12px;margin:16px 0}.student-ficha-summary-card{padding:14px;border:1px solid #dce6df;border-radius:14px;background:#fff}.student-ficha-summary-card h3{margin:0 0 8px}.student-ficha-summary-card article+article{border-top:1px solid #e4e9e5;margin-top:12px;padding-top:8px}.student-ficha-summary-card p{overflow-wrap:anywhere}.student-ficha-summary-card small{color:#53665e}.student-ficha-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.student-ficha-totals div{background:#f1f6ee;padding:10px;border-radius:10px}.student-ficha-totals dt{font-size:.85rem;overflow-wrap:anywhere}.student-ficha-totals dd{margin:4px 0 0;font-size:1.5rem;font-weight:700}@media(max-width:450px){.student-ficha-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.student-ficha-totals div:last-child{grid-column:1/-1}}

.student-payments{border-top:1px solid #d9e4df;margin-top:20px;padding-top:12px}.student-payments h4{margin:14px 0 8px}.payment-review{border-left:5px solid #b42318;color:#8b1912;background:#fff0ee;padding:12px;border-radius:8px}.payment-method{background:#edf5ef;padding:12px;border-radius:8px}.cash-payment-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cash-payment-fields label:last-child{grid-column:1/-1}.student-payments label{display:flex;flex-direction:column;gap:6px;min-width:0}.student-payments input,.student-payments select{width:100%;min-width:0;box-sizing:border-box;padding:10px;font:inherit}.cash-payment-form{background:#f5f8f5;border-radius:12px;padding:14px;margin:14px 0}.cash-payment-form button{margin-top:12px}.cash-payment-history{list-style:none;padding:0}.cash-payment-history li{border-bottom:1px solid #dce5df;padding:12px 0;overflow-wrap:anywhere}.cash-payment-history p{margin:5px 0}.payment-history-heading{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.payment-voided{color:#666;background:#f5f5f5}.student-payments details{margin:10px 0}.student-payments details summary{cursor:pointer}@media(max-width:520px){.cash-payment-fields{grid-template-columns:1fr}.cash-payment-form{padding:10px}.student-payments button{max-width:100%;white-space:normal}}
/* Keep the complete groups label inside its mobile shortcut. */
@media(max-width:760px){.shell .school-shortcuts button{min-width:0}.shell .school-shortcuts .shortcut-grupos span{display:block;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.15;text-align:center}}

/* Huecos: navegación compacta, fecha común y detalle a demanda. */
.huecos-simple .huecos-toolbar h2{margin:0 0 14px}.huecos-simple .huecos-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:20px}.huecos-simple .huecos-tabs button{min-width:0;white-space:normal;padding:12px 6px}.huecos-simple .gap-main-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.gap-card-heading{display:flex;justify-content:space-between;gap:12px}.gap-card-heading h3{font-size:1.35rem;margin:0 0 6px}.gap-card-heading strong{font-size:1.2rem}.gap-place-count{background:#e9f5d4;color:#24422b;border-radius:14px;padding:8px 12px;align-self:start;font-weight:800}.gap-members,.gap-more-filters{border-top:1px solid #dde4e3;padding:12px 0;margin:10px 0}.gap-members summary,.gap-more-filters summary,.gap-school-courts>summary{cursor:pointer;font-weight:700;min-height:32px}.gap-members li{padding:6px 0}.gap-count{margin:16px 0 0}.huecos-simple .recovery-slots{margin-top:12px}.huecos-simple .gap-school-courts{margin-top:24px}.huecos-simple form>label{display:block;margin:14px 0}.huecos-simple select{width:100%;min-width:0}.huecos-simple .recovery-seat{min-width:0}.huecos-simple .daily-session-list{align-items:start}@media(max-width:600px){.huecos-simple .gap-main-filters{grid-template-columns:1fr 1fr}.huecos-simple .gap-main-filters>label:first-child{grid-column:1/-1}.huecos-simple .huecos-tabs button{font-size:.9rem}.huecos-simple .daily-session-list{display:grid;grid-template-columns:1fr}.huecos-simple .card{padding:16px}.huecos-simple .daily-filters{min-width:0}.huecos-simple .gap-count{font-size:1rem}}
.recovery-seat-list>div>.recovery-seat{width:100%}.recovery-seat-list>div>p{font-size:13px}
.inactive-pupil-name .student-ficha-link{color:#b42318}.planned-pupil-name .student-ficha-link{color:#7a35a6}

/* Propuesta 08-10: sedes, biblioteca y agenda compacta. */
.shell [data-site="Maristas"]{--site-bg:#d1b2e8;--site-ink:#24332e;--site-border:#9561b9}
.shell [data-site^="Complejo"]{--site-bg:#bde3bf;--site-ink:#24332e;--site-border:#69a873}
.shell .group-map-card[data-site],.shell .gap-group-card[data-site]{border-color:var(--site-border,#dbe2df)}
.shell .group-map-card[data-site]>summary,.shell .group-map-card[data-site][open]>summary,.shell .gap-group-card[data-site],.shell .weekly-group[data-site]{background:var(--site-bg,#fff);color:var(--site-ink,#23382f)}
.shell [data-site] .group-map-site,.shell [data-site] .group-map-teacher,.shell [data-site] .group-map-meta,.shell [data-site] .group-map-open,.shell [data-site] .group-map-sport,.shell .gap-group-card[data-site] h3{color:var(--site-ink,#23382f)}
.shell [data-site] .group-map-time{background:#ffffff85;color:var(--site-ink,#23382f)}
.exercise-library-bottom{margin-top:24px!important}.exercise-library-bottom>summary,.exercise-more>summary{cursor:pointer;font-weight:700;padding:12px 0;min-height:44px}.exercise-library-bottom>summary{font-size:15px}.exercise-library-bottom .book-source-label{margin:16px 0}.exercise-more{border-top:1px solid #dbe2df;margin-top:16px}.exercise-more .adult-variants{margin-top:8px}
.court-size-toggle{margin:8px 0 14px;min-height:44px}.court-compact .court-scroll{max-height:56vh}.court-compact .court-grid{min-width:0;table-layout:fixed;border-spacing:2px}.court-compact .court-grid th:first-child{width:46px}.court-compact .court-grid th{font-size:12px;padding:8px 1px}.court-compact .court-grid td{min-width:0}.court-compact .court-cell{height:44px;min-height:44px;padding:3px 1px;font-size:11px;overflow:hidden}.court-compact .court-cell span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.court-compact .court-grid caption{font-size:14px}.court-expanded .court-scroll{max-height:68vh}
@media(max-width:420px){.court-compact .card{padding:10px}.court-compact .court-grid th:first-child{width:36px}.court-compact .court-grid th{font-size:10px}.court-compact .court-cell{font-size:10px}.court-compact .court-scroll{border-radius:8px}}

.shell .group-map-card[data-site]{padding:0}.shell .group-map-card[data-site]>summary{margin:0}.shell .group-map-card[data-site]>.monthly-overview{padding:16px}.shell .group-map-card[data-site]>.register-recovery{margin:16px}

.teacher-sequence-compact{display:flex;flex-wrap:wrap;gap:8px}.teacher-sequence-compact .sequence-node{width:auto;min-width:88px;min-height:44px;flex:1;padding:8px;justify-content:center}.teacher-sequence-compact .sequence-symbol,.teacher-sequence-compact .sequence-arrow{display:none}

.shell .pupil-group[data-site]{background:var(--site-bg,#f7f9f9);color:var(--site-ink,#23382f);padding:12px;border-radius:10px;margin-top:10px}

.court-price-unit{color:#175442;margin:12px 0 20px}.court-prices-table{width:100%;table-layout:fixed;margin:14px 0 20px}.court-prices-table th:first-child{width:48%}.court-prices-table th,.court-prices-table td{padding:14px 8px;overflow-wrap:break-word;white-space:normal}.court-prices-table tbody th{background:transparent;color:#263e4b;font-size:14px;font-weight:500}.court-prices-table td{font-weight:800;color:#175442;text-align:center}.court-prices-table thead th:not(:first-child){text-align:center}@media(max-width:450px){.court-prices{padding:16px!important}.court-prices-table th,.court-prices-table td{padding:12px 5px}.court-prices-table thead th{font-size:12px}}

/* Aclaración de Pedro: fondo completo del grupo, abierto y cerrado; texto oscuro neutro. */
.shell .group-map-card[data-site],.shell .group-map-card[data-site][open],.shell .gap-group-card[data-site],.shell .weekly-group[data-site],.shell .pupil-group[data-site]{background:var(--site-bg,#fff);color:#24332e}
.shell .group-map-card[data-site]>summary,.shell .group-map-card[data-site][open]>summary,.shell .group-map-card[data-site] .group-map-roster,.shell .group-map-card[data-site] .register-pupil{background:transparent;color:#24332e}
.shell .group-map-card[data-site] .register-recovery{background:#ffffff70;color:#24332e}
.shell .group-map-card[data-site] .monthly-overview{background:transparent}

/* Ficha: licencias y competiciones, sin cambiar colores de sedes. */
.student-ficha-dialog [hidden]{display:none!important}
.student-ficha-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:16px 0;padding:5px;background:#edf3ef;border-radius:14px}
.student-ficha-tabs button{min-height:44px;border:0;background:transparent;border-radius:10px;color:#24332e;font-weight:700;padding:8px}
.student-ficha-tabs button[aria-pressed="true"]{background:#214c38;color:#fff;box-shadow:0 2px 6px #143a2420}
.student-competitions h3{margin-bottom:6px}.student-competitions>p{line-height:1.5}
.competition-card{padding:18px;margin:14px 0;background:#f8fbf9;border:1px solid #cfdfd5;border-radius:16px;color:#24332e}
.competition-card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.competition-card-heading h4{margin:0;font-size:1.05rem}.competition-card-heading>span{white-space:nowrap;font-size:.85rem;color:#43584b}
.competition-card fieldset{border:0;margin:14px 0;padding:0;min-width:0}.competition-card legend{font-weight:650;padding:0;margin-bottom:8px}
.competition-choices{display:flex;flex-wrap:wrap;gap:8px}.competition-choices label{display:flex;align-items:center;gap:7px;padding:10px 12px;border:1px solid #b9ccc0;border-radius:12px;background:#fff;min-height:44px;cursor:pointer}.competition-choices label.selected{background:#dceee2;border-color:#3f7854;color:#173f28;font-weight:700}.competition-choices input{width:18px;height:18px;margin:0;accent-color:#245d39}
.competition-payment{margin-top:16px;padding-top:14px;border-top:1px solid #cbded1}.competition-payment h5{font-size:1rem;margin:0 0 10px}.competition-payment-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.competition-payment label{display:flex;flex-direction:column;gap:5px;margin:10px 0}.competition-payment input,.competition-payment select{width:100%;max-width:100%;min-height:44px;padding:9px;border:1px solid #9bb5a5;border-radius:8px;background:#fff;color:#24332e}
.competition-notice{background:#fff4d9;padding:12px;border-radius:10px;color:#614515}.competition-updated{display:block;margin-top:8px}.competition-history{margin:18px 0}.competition-history summary{cursor:pointer;padding:12px;background:#eef3ef;border-radius:10px}.competition-history article{padding:12px 0;border-bottom:1px solid #dbe6df}.competition-history p{margin:5px 0}
@media(max-width:600px){.student-ficha-tabs{grid-template-columns:1fr 1fr}.competition-card{padding:14px}.competition-card-heading{align-items:flex-start}.competition-payment-fields{grid-template-columns:1fr}.competition-choices{gap:6px}.competition-choices label{padding:10px}.student-ficha-dialog{max-width:calc(100vw - 16px)}}

.student-birth{font-weight:650;background:#f1f4ef;border-radius:8px;padding:10px 12px;color:#24332e}

/* Croquis compacto: misma información y controles, sin estirar casillas. */
.shell .weekly-map-table{min-width:0;table-layout:fixed}
.shell .weekly-map-table th{padding:8px 7px;font-size:.82rem}
.shell .weekly-map-table td{width:166px;min-width:166px;max-width:166px;padding:4px}
.shell .weekly-group{display:flex;gap:2px;padding:7px;margin-bottom:4px;min-height:44px;border-radius:8px;font-size:.78rem;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.shell .weekly-group:last-child{margin-bottom:0}
.shell .weekly-group .weekly-site{font-size:.8rem}
.shell .weekly-group small{font-size:.72rem;line-height:1.2}
@media(max-width:600px){.shell .weekly-map{padding:9px!important}.shell .weekly-map-table td{width:148px;min-width:148px;max-width:148px;padding:3px}.shell .weekly-map-table th{padding:7px 5px;font-size:.78rem}.shell .weekly-group{padding:6px;font-size:.76rem}.shell .weekly-group .weekly-site{font-size:.78rem}}

.payment-months{display:grid;gap:8px;margin:12px 0}.payment-month{padding:12px 14px;border:1px solid #d7dfdf;border-radius:12px;background:#f7faf9}.payment-month p{margin:5px 0}.payment-month small{display:block;line-height:1.45}.payment-month-pendiente{background:#fff1ee;border-color:#e8aaa3}.payment-month-pasado_cuenta{background:#eaf5ed;border-color:#b3d6bd}.payment-month-no_pasado,.payment-month-por_confirmar{background:#fff8e8;border-color:#e4d4a8}

.payment-export form{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin:16px 0}.payment-export label{margin:0;min-width:190px}.payment-export p{margin:8px 0}.payment-export button{max-width:100%}@media(max-width:600px){.payment-export label,.payment-export button{width:100%}}

/* Pagos: cuenta protegida y corrección de importes */
.payment-bank-account{overflow-wrap:anywhere}.payment-bank-account button{display:block;margin-top:8px}.payment-correction-actions{display:flex;flex-wrap:wrap;gap:8px}.cash-correction-form{padding:14px;border:1px solid #bdd5c9;border-radius:12px;background:#f3f8f5}.cash-correction-form button{margin:8px 8px 0 0}.student-payments details label small{display:block;font-weight:400;line-height:1.45;margin:6px 0}

/* Bajas: formulario y navegación compactos */
.group-view-toggle{flex-wrap:wrap}.withdrawal-list .card{margin-bottom:12px}.withdrawal-list label{display:block;margin:12px 0}.withdrawal-list input[type=checkbox]{width:auto;margin-right:8px}.withdrawal-form select,.withdrawal-form input[type=date]{width:100%;max-width:100%}.withdrawal-list details{margin-top:12px}.withdrawal-form button{margin:4px 8px 4px 0}

.withdrawal-list button{border:1px solid #33624f;background:#33624f;color:white;padding:10px 14px;border-radius:10px;font:inherit;font-weight:600;cursor:pointer}.withdrawal-list button.secondary{background:white;color:#244e3e}.withdrawal-list button:disabled{opacity:.5;cursor:default}.withdrawal-list label:has(input[type=checkbox]){display:flex;align-items:center;gap:6px}.withdrawal-list input[type=checkbox]{flex:0 0 auto;margin:0}.group-view-toggle button{white-space:normal}

.court-cell.closed,.court-legend .closed{background:repeating-linear-gradient(135deg,#e2e5e4 0,#e2e5e4 7px,#f3f4f3 7px,#f3f4f3 14px);color:#4a514e}.court-cell.closed span{text-decoration:line-through}.court-cell.closed:disabled{opacity:1}.hours-exception{display:flex!important;align-items:center;gap:10px}.hours-exception input{width:auto!important}

/* Inicio visible al principio del menú del ordenador; móvil conservado. */
@media(min-width:761px){.sidebar .menu-personal [data-personal-section=inicio]{display:none}}
@media(max-width:760px){.sidebar nav .desktop-home{display:none}}
@media(min-width:761px){
 .sidebar{padding:18px 16px}
 .sidebar .nav-label{margin:20px 10px 10px}
 .sidebar nav{gap:3px;min-height:0;overflow-y:auto;flex:1;overscroll-behavior:contain}
 .sidebar nav button{min-height:34px;padding:7px 10px;font-size:13px;line-height:1.3;gap:9px;flex-shrink:0}
 .sidebar nav button svg{width:17px;height:17px}
 .sidebar .menu-personal{padding-top:7px;gap:4px}
 .sidebar nav .session-exit{min-height:34px;padding:7px 10px;margin-top:4px}
 .sidebar-foot{margin-top:10px;padding:10px 10px 0;font-size:12px;flex-shrink:0}
 .sidebar-foot a{min-height:28px}
 .sidebar-foot span{margin-top:6px}
}

/* Piloto manual de notificaciones: sólo cuenta de Pedro */
.push-pilot{margin-bottom:20px}.push-pilot .badge{margin:8px 0}.push-state{font-weight:700}.push-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.push-actions button{white-space:normal}.push-pilot p{line-height:1.5}@media(max-width:600px){.push-actions{flex-direction:column}.push-actions button{width:100%;min-height:44px}}
.notice-center{margin-top:20px}.notice-center .notice-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.notice-center .notice-title small{color:#526c60;font-weight:700;font-size:11px;letter-spacing:.06em}.notice-center h3{margin:5px 0 12px}.notice-center h4{font-size:17px;margin:12px 0;overflow-wrap:anywhere}.notice-center .notice-tabs{display:flex;gap:6px;overflow-x:auto;padding:12px 0 16px}.notice-center .notice-tabs button{white-space:nowrap;flex-shrink:0;min-height:44px}.notice-center .notice-form{max-width:680px}.notice-center .notice-form>label,.notice-center fieldset>label{display:block;font-weight:650;margin:14px 0}.notice-center input:not([type=radio]):not([type=checkbox]),.notice-center select,.notice-center textarea{display:block;width:100%;max-width:100%;border:1px solid #9db1a5;border-radius:8px;padding:12px;font:inherit;color:#24332e;background:white;margin-top:7px}.notice-center input[readonly]{background:#f0f5ef!important}.notice-center textarea{resize:vertical}.notice-center small{display:block;color:#526256;line-height:1.5}.notice-center fieldset{border:0;padding:0;margin:20px 0}.notice-center legend{font-weight:700;margin-bottom:12px}.notice-center .notice-modes,.notice-center .notice-days{display:flex;flex-wrap:wrap;gap:12px}.notice-center .notice-modes label,.notice-center .notice-days label{display:flex;gap:7px;align-items:center;min-height:44px;margin:0}.notice-center input[type=radio],.notice-center input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:#28663b}.notice-center .notice-days{margin-top:15px}.notice-center .notice-item,.notice-center .notice-review{border:1px solid #d8e1d8;border-radius:12px;padding:20px;margin:14px 0;background:#f8faf7}.notice-center .notice-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.notice-center button{min-height:44px}.notice-center>button{margin-top:14px}.notice-center .notice-review{max-width:680px}.notice-center p{line-height:1.55}@media(max-width:600px){.notice-center .notice-tabs button{font-size:13px;padding:10px}.notice-center .notice-item,.notice-center .notice-review{padding:16px}.notice-center .notice-actions button{flex:1}.notice-center .notice-modes{gap:10px}.notice-center .notice-title{gap:8px}}

.notice-recipients {max-height:360px;overflow:auto}.notice-recipients>label{display:flex;align-items:center;gap:10px;padding:8px 4px}.notice-recipients>label input{width:20px;min-width:20px;height:20px}.notice-recipients small{display:block}.notice-recipients .notice-actions{position:sticky;top:0;background:#fff;padding:6px 0;flex-wrap:wrap}
.notice-center .notice-tabs{flex-wrap:wrap;overflow:visible}.notice-center .notice-tabs button{flex:1 1 auto}
.notice-center .notice-recipients>label{flex-direction:row;justify-content:flex-start;text-align:left;min-height:44px}.notice-center .notice-recipients>label>input{margin:0;padding:0;flex:0 0 20px}.notice-center .notice-recipients>label>span{flex:1}
.notice-center .notice-recipients>label{display:flex!important}.notice-center .notice-recipients>label>input{height:20px!important;min-height:20px!important;max-width:20px!important}.notice-center .notice-recipients>label>span{min-width:0;line-height:1.35}

/* Selección de destinatarios: evitar cuatro botones mínimos y texto letra a letra en móvil. */
@media(max-width:600px){
 .notice-center .notice-recipients>.notice-actions:has(>button:nth-child(4)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
 .notice-center .notice-recipients>.notice-actions:has(>button:nth-child(4))>button{width:100%;min-width:0;flex:none;padding:10px 8px;font-size:13px;line-height:1.35;white-space:normal;word-break:normal;overflow-wrap:normal}
}

.notice-delete-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;border:1px solid #b7cbbb;border-radius:16px;padding:22px;color:#24332e;background:#fff;box-shadow:0 16px 60px #10232d55}.notice-delete-dialog::backdrop{background:#10232daa}.notice-delete-dialog h4{font-size:20px;margin:0 0 14px}.notice-delete-dialog p{line-height:1.5;overflow-wrap:anywhere}.notice-delete-dialog .notice-actions{display:flex;flex-wrap:wrap;gap:10px;position:sticky;bottom:-22px;background:#fff;padding:12px 0;margin-bottom:0}.notice-delete-dialog button{min-height:44px;flex:1}@media(max-width:420px){.notice-delete-dialog{padding:16px}.notice-delete-dialog .notice-actions{bottom:-16px}}

/* Instalación sencilla Safari */
.install-simple{color:#24332e}.install-simple>summary{font-size:18px;line-height:1.35;color:#174e55}.install-simple .install-intro{font-size:16px;line-height:1.4;margin:10px 0 16px}.install-steps{padding:0;margin:0;list-style:none;display:grid;gap:10px}.install-steps>li{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid #d7e3e7;border-radius:12px;background:#f8fafb}.install-drawing{width:72px;height:64px;flex:0 0 72px}.install-steps strong{display:block;font-size:17px;line-height:1.35}.install-simple .install-steps p{font-size:15px;line-height:1.4;margin:6px 0 0}.install-simple .install-finish{background:#edf5e5;border-radius:10px;padding:12px;line-height:1.45;font-size:16px}.install-safari-start{border-left:3px solid #174e55;padding:2px 0 2px 12px;margin-bottom:14px}.install-simple .install-safari-start p{margin:6px 0;font-size:15px;line-height:1.4}.install-simple .install-help{margin-top:10px}.install-simple .install-help>summary{font-size:15px;line-height:1.4;min-height:44px;align-content:center;color:#285e56;cursor:pointer}.install-simple .install-help p{font-size:15px;line-height:1.45;margin:10px 0}.install-feedback{padding:12px;background:#edf5e5;border-radius:10px;overflow-wrap:anywhere}.install-simple summary:focus-visible{outline:3px solid #426dde;outline-offset:3px;border-radius:4px}@media(max-width:420px){.install-simple{padding:14px!important}.install-drawing{width:56px;height:50px;flex-basis:56px}.install-steps>li{padding:10px;gap:10px}.install-steps strong{font-size:16px}.install-simple .install-steps p{font-size:14px}}
.download-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:end}.download-filters label{min-width:0}.download-filters button{min-height:48px}.download-filters input,.download-filters select{width:100%;min-width:0}@media(max-width:700px){.download-filters{grid-template-columns:1fr}}

/* Cabecera: accesos de perfil y vuelta con función visible. */
.topbar .avatar{text-decoration:none;cursor:pointer;flex-shrink:0;min-width:44px;min-height:44px}.topbar .avatar:focus-visible,.topbar .header-back:focus-visible{outline:3px solid #31836b;outline-offset:3px}.topbar .header-back{width:auto;min-height:44px;padding:8px;gap:5px;flex-shrink:0;font-size:12px}.topbar .header-back span{white-space:nowrap}

.withdrawal-dialog .withdrawal-form{display:grid;gap:12px}.withdrawal-dialog .withdrawal-form>label{display:grid;gap:6px}.withdrawal-dialog .withdrawal-form>label:has(input[type="checkbox"]){display:flex;align-items:center;gap:9px}.withdrawal-dialog input[type="checkbox"]{width:auto}

/* Carteles completos de las ligas: imágenes originales, sin texto superpuesto. */
.league-poster-card{display:grid;grid-template-columns:minmax(200px,290px) 1fr;align-items:center;gap:24px;margin:0 0 20px;padding:18px;background:linear-gradient(120deg,#eef5d8,#fff);border:1px solid #d5e3b6;border-radius:18px}.league-poster-preview{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:100%;padding:0;border:0;background:transparent;color:#24332e;cursor:pointer}.league-poster-preview img{display:block;width:auto;max-width:100%;height:310px;object-fit:contain;border-radius:10px}.league-poster-preview span{font-size:13px;font-weight:700}.league-poster-caption h2{margin:10px 0}.league-poster-caption small{font-weight:700;color:#38582c}.league-poster-card button{min-height:44px}.league-poster-preview:focus-visible{outline:3px solid #31836b;outline-offset:4px;border-radius:10px}.league-poster-dialog{width:min(1000px,calc(100vw - 24px));max-height:90dvh;padding:0;border:0;border-radius:16px;background:#fff;color:#24332e}.league-poster-dialog::backdrop{background:rgba(10,25,21,.78)}.league-poster-dialog[open]{display:flex;flex-direction:column}.league-poster-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #ddd;flex-shrink:0}.league-poster-dialog-header h2{font-size:18px;margin:0}.league-poster-dialog-header button{min-height:44px;flex-shrink:0}.league-poster-dialog-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:8px}.league-poster-dialog-body img{display:block;width:100%;height:auto}.league-poster-caption .secondary{min-height:44px}@media(max-width:600px){.league-poster-card{grid-template-columns:1fr;gap:12px;padding:12px}.league-poster-caption{text-align:center}.league-poster-caption h2{font-size:22px}.league-poster-preview img{height:auto;width:100%;max-width:280px}.league-poster-dialog-header{padding:10px}.league-poster-dialog-header h2{font-size:15px}}


.phone-compact{margin:10px 0 16px;padding:10px 12px;border:1px solid #e0e8e3;border-radius:12px;background:#f7faf8}.phone-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.phone-heading h3{margin:0;font-size:15px}.phone-compact button,.phone-compact input,.phone-compact select{font:inherit}.phone-compact button{cursor:pointer}.phone-compact button:disabled{cursor:wait;opacity:.6}.phone-edit{padding:6px 8px;min-height:40px;background:none;color:#12614d;border:0;font-size:13px!important;font-weight:600}.phone-list{display:grid;gap:4px}.phone-contact{border-top:1px solid #e0e8e3;padding-top:6px}.phone-contact small{font-size:11px;color:#52695d;display:block}.phone-chat{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;color:#193e34;text-decoration:none;border-radius:8px}.phone-number{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.phone-wa{display:flex;align-items:center;gap:5px;padding:7px 8px;border-radius:8px;background:#e0f3e6;color:#136d3b;font-size:12px;font-weight:600;flex-shrink:0}.phone-wa svg{width:17px;height:17px}.phone-chat:hover .phone-wa{background:#d0ead8}.phone-note{font-size:12px;color:#52695d;margin:6px 0;line-height:1.4}.phone-compact [role="alert"]{color:#a02b26}.phone-editor{display:grid;gap:8px;margin-top:4px}.phone-edit-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(100px,.65fr) auto;gap:6px;align-items:end}.phone-edit-row label{display:grid;gap:4px;font-size:11px;color:#52695d;min-width:0}.phone-edit-row input,.phone-edit-row select{box-sizing:border-box;width:100%;min-width:0;min-height:40px;font-size:13px;border:1px solid #cedbd2;background:white;border-radius:8px;padding:7px 8px;color:#193e34}.phone-remove{border:0;background:none;color:#7f433e;min-width:28px;min-height:40px;font-size:23px!important;padding:0}.phone-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}.phone-actions>button:first-child:not(.phone-save){margin-right:auto}.phone-save{border:0;border-radius:8px;min-height:40px;padding:8px 14px;background:#17664f;color:white;font-size:13px!important;font-weight:600}.phone-compact a:focus-visible,.phone-compact button:focus-visible{outline:3px solid #31836b;outline-offset:2px}@media(max-width:360px){.phone-compact{padding:8px}.phone-edit-row{grid-template-columns:minmax(0,1fr) minmax(82px,.8fr) auto}.phone-number{font-size:12px}.phone-wa{font-size:11px;padding:7px 6px}}

/* Inscripción manual visible, con datos pendientes y contactos separados. */
.manual-registration-quick{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px}.external-participants>button{margin:0 8px 10px 0}.manual-incomplete{background:#fff2cc;border:1px solid #d9c26a;border-radius:10px;padding:10px;color:#4e451c}.manual-registration-actions{display:flex;gap:8px;flex-wrap:wrap}.manual-registration-actions button,.manual-registration-quick button{min-height:44px}.manual-registration-dialog{width:min(800px,calc(100vw - 24px));max-height:90dvh;border:0;border-radius:16px;padding:0;background:#fff;color:#24332e}.manual-registration-dialog::backdrop{background:rgba(10,25,21,.78)}.manual-registration-dialog[open]{display:flex;flex-direction:column}.manual-registration-dialog-header,.manual-registration-dialog-footer{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 16px;flex-shrink:0}.manual-registration-dialog-header{border-bottom:1px solid #ddd}.manual-registration-dialog-footer{border-top:1px solid #ddd}.manual-registration-dialog h2{font-size:20px;margin:0}.manual-registration-dialog-body{overflow:auto;overscroll-behavior:contain;padding:16px;min-height:0}.manual-registration-dialog .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-registration-dialog .manual-registration-wide,.manual-registration-dialog .manual-registration-activity{grid-column:1/-1}.manual-registration-dialog button{min-height:44px}.manual-registration-checkbox{display:flex!important;flex-direction:row!important;align-items:center;gap:10px}.manual-registration-checkbox input{width:22px!important;flex-shrink:0}.manual-registration-dialog input,.manual-registration-dialog select,.manual-registration-dialog textarea{min-width:0;width:100%;box-sizing:border-box}.manual-registration-dialog :focus-visible{outline:3px solid #31836b;outline-offset:2px}@media(max-width:600px){.manual-registration-dialog .form-grid{grid-template-columns:1fr}.manual-registration-dialog-header,.manual-registration-dialog-footer{padding:10px}.manual-registration-dialog h2{font-size:17px}.manual-registration-dialog-footer{flex-wrap:wrap}.manual-registration-dialog-footer button{flex:1}.manual-registration-dialog-body{padding:12px}}

.manual-registration-dialog-footer{flex-wrap:wrap}.manual-registration-dialog-footer>.notice{flex-basis:100%;margin:0}

/* Categorías alineadas y previsión JUDEX */
.student-season-category{padding:0 12px 10px;margin:0 0 12px;color:#24332e}
.student-season-category p{margin:4px 0}
.student-season-category .student-season-next{margin-top:8px}

/* Filtros privados de destinatarios, sin activar acceso de alumnos. */
.notice-center .notice-recipient-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;margin:12px 0;align-items:end}.notice-center .notice-recipient-filters label{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0}.notice-recipient-filters input,.notice-recipient-filters select{width:100%;min-width:0;box-sizing:border-box}@media(max-width:700px){.notice-center .notice-recipient-filters{grid-template-columns:minmax(0,1fr)}}

/* WhatsApp por grupo: contactos privados, selector claro y controles táctiles. */
.group-whatsapp{margin-top:16px;padding-top:14px;border-top:1px solid rgba(35,65,48,.18)}
.group-whatsapp-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.group-whatsapp button,.group-whatsapp .whatsapp-open{min-height:42px;font-size:14px;padding:9px 12px}
.group-whatsapp .whatsapp-open{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:9px}
.group-whatsapp-panel{margin-top:12px;background:rgba(255,255,255,.76);border-radius:12px;padding:12px;color:#24332e}
.group-whatsapp-panel label{display:block;font-size:13px;font-weight:600;margin:10px 0}
.group-whatsapp-panel input,.group-whatsapp-panel select{display:block;width:100%;max-width:100%;min-width:0;margin-top:5px;min-height:42px;box-sizing:border-box;font:inherit}
.group-whatsapp-panel h4{margin:18px 0 8px}.group-whatsapp-panel p{font-size:13px;line-height:1.5}
.group-whatsapp-pupil{padding:12px 0;border-bottom:1px solid rgba(35,65,48,.15);overflow-wrap:anywhere}
.group-whatsapp-pupil strong,.group-whatsapp-pupil small{display:block}
.group-whatsapp-pupil strong{font-size:14px}.group-whatsapp-pupil small{font-size:12px;color:#6d4179}
.group-whatsapp-panel [role=alert]{color:#9c2323}

.notice-center .notice-form .notice-recipient-filters>label>input,.notice-center .notice-form .notice-recipient-filters>label>select{height:48px;min-height:48px;margin:0}

.league-organizer{display:grid;gap:18px}.league-organizer .card{margin:0}.league-organizer-switch{display:flex;gap:10px;flex-wrap:wrap}.league-organizer-header small{letter-spacing:.08em}.league-organizer label{display:grid;gap:8px;margin:12px 0}.league-organizer select,.league-organizer input:not([type=checkbox]){width:100%;min-width:0;min-height:44px}.league-organizer input[type=checkbox]{width:20px;height:20px;vertical-align:middle}.league-organizer table{width:100%;border-collapse:collapse;white-space:nowrap}.league-organizer th,.league-organizer td{padding:12px;text-align:left;border-bottom:1px solid #dce6e0}.league-organizer th{color:#205646;background:#edf5ef}.league-organizer .table-scroll{overflow:auto}.league-result{font-size:1.1rem;font-weight:600}.league-score-grid{display:grid;grid-template-columns:minmax(85px,.7fr) minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:center;margin:20px 0}.league-score-line{display:contents}.league-score-grid input{min-width:0;text-align:center}.league-roster{display:grid;gap:6px}.league-roster-row{grid-template-columns:minmax(140px,1fr) minmax(140px,1fr);align-items:center;border-bottom:1px solid #dce6e0;padding:10px 0}.league-inline-form,.league-pair-form{margin-top:18px}.league-history-matches{max-height:600px;overflow:auto}.league-history-matches p{padding:12px;border-bottom:1px solid #dce6e0}.league-organizer details summary{cursor:pointer;padding:8px 0;font-weight:600}.league-organizer button{min-height:44px}.league-organizer .notice{margin:0}.league-organizer .daily-filters{flex-wrap:wrap}.league-organizer .daily-filters label{flex:1 1 220px}@media(max-width:600px){.league-organizer-switch button{flex:1 1 140px}.league-organizer .card{padding:18px}.league-roster-row{grid-template-columns:1fr}.league-score-grid{gap:8px;font-size:14px}.league-organizer th,.league-organizer td{padding:10px}.league-organizer .daily-filters label{flex-basis:100%}}
@media(max-width:600px){.league-organizer table{font-size:12px}.league-organizer th,.league-organizer td{padding:9px 4px}.league-organizer th:nth-child(2),.league-organizer td:nth-child(2){white-space:normal;max-width:110px;overflow-wrap:anywhere}}
.league-organizer .student-ficha-link{padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;white-space:normal;border-radius:0;min-height:44px;text-decoration:underline}

.league-minor-levels{display:grid;gap:18px}.league-minor-levels .league-check{display:flex;align-items:center;gap:10px}.league-minor-levels .league-check input{flex:0 0 20px}.league-minor-levels h4{margin-top:18px}

/* Complejo separado de la agenda operativa de Maristas. */
.court-site-tabs{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}.court-site-tabs button{border:1px solid #b9cbbb;border-radius:12px;padding:12px 16px;background:#fff;color:#24332e;font-weight:700;min-height:44px}.court-site-tabs button[aria-pressed=true]{background:#214f3f;color:#fff;border-color:#214f3f}.complex-grid-scroll{overflow:auto;max-height:65vh;border:1px solid #cbd9cf;border-radius:12px}.complex-grid{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}.complex-grid th,.complex-grid td{padding:5px;text-align:center;border-bottom:1px solid #dde5df}.complex-grid thead th{position:sticky;top:0;background:#e4eee7;z-index:2}.complex-grid th:first-child{position:sticky;left:0;background:#e4eee7;z-index:1;min-width:52px}.complex-grid thead th:first-child{z-index:3}.complex-grid th small{display:block;font-weight:400;white-space:nowrap}.complex-slot{border:1px solid #aabdb1;border-radius:7px;min-width:78px;min-height:52px;width:100%;padding:6px;color:#183c2d;background:#edf6ef;cursor:pointer}.complex-slot strong,.complex-slot small{display:block;white-space:nowrap}.complex-slot.blocked{background:repeating-linear-gradient(135deg,#e4dee9,#e4dee9 8px,#d8d0e1 8px,#d8d0e1 10px);color:#40304d}.complex-slot.reserved{background:#f6e4bc;color:#543a14}.complex-slot.unknown{background:#eee;color:#555}.complex-dialog-backdrop{position:fixed;inset:0;background:#142a2466;z-index:10000;display:grid;place-items:center;padding:18px}.complex-dialog{max-width:440px;width:100%;box-shadow:0 12px 45px #0004}.complejo-agenda .filters{margin:16px 0}

/* Cuadrante compacto del Complejo; nueve columnas visibles en móvil. */
.complejo-agenda .complex-grid th,.complejo-agenda .complex-grid td{padding:2px}
.complejo-agenda .complex-slot{min-width:62px;min-height:44px;padding:4px;font-size:11px}
.complejo-agenda .complex-grid-scroll{max-height:72vh}
@media(max-width:600px){
.complejo-agenda{padding:12px!important}
.complejo-agenda .complex-grid{table-layout:fixed;font-size:11px}
.complejo-agenda .complex-grid th:first-child{width:38px;min-width:38px;padding:2px 0;font-size:10px;font-variant-numeric:tabular-nums}
.complejo-agenda .complex-grid thead th{padding:7px 0;font-size:12px}
.complejo-agenda .complex-court-word,.complejo-agenda .complex-grid th small{display:none}
.complejo-agenda .complex-grid td{padding:1px}
.complejo-agenda .complex-slot{min-width:0;min-height:48px;padding:2px 0;border-radius:4px}
.complejo-agenda .complex-slot small{display:none}
.complejo-agenda .complex-slot strong{font-size:0}
.complejo-agenda .complex-slot strong:after{content:'○';font-size:15px}
.complejo-agenda .complex-slot.blocked strong:after{content:'×';font-size:19px;font-weight:800}
.complejo-agenda .complex-slot.reserved strong:after{content:'R';font-size:13px;font-weight:800}
.complejo-agenda .complex-slot.unknown strong:after{content:'?';font-size:13px}
.complejo-agenda .court-legend{gap:6px;font-size:10px;flex-wrap:wrap}
.complejo-agenda .form-note,.complejo-agenda .notice{font-size:12px}
.complejo-agenda .filters{margin:10px 0}
.complejo-agenda .court-site-tabs{margin-bottom:10px}
.complejo-agenda .court-site-tabs button{padding:8px 12px}
}

/* Ranking agregado de Huecos: mantiene el scroll dentro de su tarjeta. */
.gap-ranking-scroll{max-width:100%;overflow-x:auto;border:1px solid #dce4df;border-radius:12px;margin:16px 0}.gap-ranking table{width:100%;border-collapse:collapse;font-size:14px}.gap-ranking caption{text-align:left;font-weight:600;padding:12px}.gap-ranking th,.gap-ranking td{padding:12px 10px;border-bottom:1px solid #e3e9e5;text-align:right;white-space:nowrap}.gap-ranking th:first-child{text-align:left;white-space:normal;min-width:105px}.gap-ranking thead{background:#eef4ef}.gap-ranking tbody tr:last-child>*{border-bottom:0}.gap-ranking th:last-child,.gap-ranking td:last-child{background:#f4f7f4}.gap-ranking small{font-weight:400}.gap-ranking-scroll:focus-visible{outline:2px solid #296442;outline-offset:3px}@media(max-width:600px){.gap-ranking th,.gap-ranking td{padding:10px 7px;font-size:12px}.gap-ranking thead th{white-space:normal;min-width:68px}.huecos-tabs button{flex-basis:calc(50% - 8px)}}

/* Cuatro accesos de Huecos; dos por fila en móvil y totales completos. */
.huecos-simple .huecos-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:600px){.huecos-simple .huecos-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.gap-ranking th,.gap-ranking td{padding:10px 5px}.gap-ranking thead th{min-width:0}.gap-ranking th:first-child{min-width:90px}}

.gap-ranking-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.gap-ranking-toolbar h3{margin:0}.gap-ranking-toolbar button{min-height:44px;white-space:normal}.gap-ranking [role="status"]{margin:8px 0;min-height:1.5em}

/* Marcador común de tenis y pádel: jugadores en filas, sets en columnas. */
.league-score-scroll{max-width:100%;overflow-x:auto}
.league-score-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:.5rem 0}
.league-score-table .league-score-side-col{width:56%}
.league-score-table.with-super .league-score-side-col{width:40%}
.league-score-table th,.league-score-table td{padding:6px 4px;vertical-align:middle;text-align:center;white-space:normal;overflow-wrap:anywhere}
.league-score-table th[scope="row"]{text-align:left;font-size:.86rem;line-height:1.35}
.league-score-table th[scope="col"]{font-size:.78rem;line-height:1.3}
.league-score-table input{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:4rem;min-height:44px;margin:auto;padding:6px;text-align:center}
.league-score-side{font-weight:700;color:var(--muted,#52635c)}
.league-set-tiebreak{min-width:0;margin:.75rem 0;padding:12px;border:1px solid #c9d7d0;border-radius:12px}
.league-set-tiebreak legend{font-weight:700;font-size:.9rem}
.league-set-tiebreak p{margin:.25rem 0 .6rem}
.league-set-tiebreak label{display:grid;gap:6px;min-width:0}
.league-set-tiebreak select{box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:44px}
.league-set-tiebreak small{display:block;margin-top:8px;line-height:1.4}
@media(max-width:480px){.league-score-table th,.league-score-table td{padding:5px 3px}.league-score-table th[scope="row"]{font-size:.78rem}.league-score-table th[scope="col"]{font-size:.7rem}.league-score-table input{padding:5px 2px;font-size:16px}.league-set-tiebreak{padding:10px}}

/* Mi perfil: paneles existentes con despliegue progresivo. */
.profile-notifications{min-width:0}.profile-notifications>summary,.profile-notification-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;cursor:pointer;font-weight:700;list-style:none;color:var(--ink,#142c3f)}.profile-notifications>summary::-webkit-details-marker,.profile-notification-group>summary::-webkit-details-marker{display:none}.profile-notifications>summary:after,.profile-notification-group>summary:after{content:"+";font-size:22px;flex:none}.profile-notifications[open]>summary:after,.profile-notification-group[open]>summary:after{content:"−"}.profile-notification-group{border:1px solid #d9e2e8;border-radius:12px;margin-top:10px;min-width:0;overflow-wrap:anywhere}.profile-notification-group>summary{padding:12px 14px;background:#f5f8fa;border-radius:12px}.profile-notification-content{padding:0 12px 12px;min-width:0}.profile-notification-content>.card{margin:12px 0 0;box-shadow:none}.profile-notifications summary:focus-visible{outline:3px solid #719c1e;outline-offset:3px}

/* Avisos en el perfil: acciones legibles en pantallas estrechas. */
@media(max-width:600px){.profile-notifications .notice-item .notice-actions>button{flex:1 1 120px;min-width:0;white-space:normal;word-break:normal;overflow-wrap:normal}}
@media(max-width:650px){.student-level-aspects label{grid-template-columns:1fr;gap:6px}.student-level-aspects select{min-height:44px;width:100%}}

/* Cuadrante semanal de monitores: nombres visibles sin consulta previa. */
.monitor-week-overview{min-width:0}.monitor-week-overview h3{margin:16px 0 8px}.monitor-site-filter{max-width:300px;margin:14px 0}.monitor-week-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid #dce5df;border-radius:10px}.monitor-week-scroll:focus-visible{outline:3px solid #516d55;outline-offset:2px}.monitor-week-grid{width:100%;min-width:720px;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:12px}.monitor-week-grid caption{text-align:left;padding:10px;font-weight:700}.monitor-week-grid th,.monitor-week-grid td{padding:9px 6px;border-top:1px solid #dce5df;border-right:1px solid #dce5df;vertical-align:top;white-space:normal;overflow-wrap:break-word}.monitor-week-grid th{background:#edf3ee;text-align:center;font-size:12px}.monitor-week-grid th:first-child{width:66px;position:sticky;left:0;z-index:1;background:#edf3ee;white-space:nowrap}.monitor-week-grid td:last-child,.monitor-week-grid th:last-child{border-right:0}.monitor-week-grid td{text-align:left;line-height:1.4}.monitor-week-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.monitor-week-grid li{font-weight:600;margin:0}.monitor-week-free{background:#edf7ee;color:#243b2b}.monitor-week-busy{text-align:center!important;color:#65716a;background:#fafbfa}.monitor-week-pending{background:#fff6dd;color:#66501b}.monitor-week-grid small{display:block;font-size:11px;margin-top:7px;color:#66501b}.monitor-week-afternoon th,.monitor-week-afternoon td{border-top:3px solid #afc4b2}.monitor-week-legend{margin:9px 0 14px;font-size:12px}.monitor-scroll-hint{display:none}.monitor-specific{margin:16px 0;border:1px solid #dce5df;border-radius:10px;padding:10px}.monitor-specific>summary{font-weight:600;cursor:pointer}.monitor-specific .daily-filters{margin-top:14px}.monitor-specific article{padding:8px 0;border-bottom:1px solid #e3e9e5}.monitor-specific article p{margin:4px 0}@media(max-width:600px){.monitor-scroll-hint{display:block;font-size:12px;color:#59665e;margin:8px 0}.monitor-week-grid{min-width:680px}.monitor-week-grid th,.monitor-week-grid td{padding:8px 5px}.monitor-week-grid th:first-child{width:58px}.monitor-site-filter{max-width:none}}

.monitor-pending{padding:10px;margin:14px 0;border:1px solid #dfc889;border-radius:10px;background:#fff9e9}.monitor-pending summary{cursor:pointer;font-weight:600}.monitor-pending article{padding:8px 0}.monitor-pending article p{margin:4px 0}.automatic-notices{min-width:0}.automatic-notices h4{margin:10px 0}.automatic-notices .notice-item p{overflow-wrap:anywhere}.automatic-notices .notice-item ul{padding-left:20px}

.automatic-notices .notice-item{padding:14px 0;border-bottom:1px solid #dce5df}.automatic-notices .notice-item>a{display:inline-flex;margin:8px 0}.automatic-notices>button:last-child{margin-top:12px}

.monthly-mark.mark-partial{background:linear-gradient(135deg,#d8efdb 50%,#dce8f5 50%);color:#183b32;font-weight:700;white-space:nowrap}

/* Torneos: estilos aislados */
.tournament-integration .bracket-scroll{overflow-x:auto;margin:20px 0;max-width:100%;border:1px solid #ddd;border-radius:12px;background:#fafafa}.tournament-integration .tree{position:relative;width:1160px;height:920px;padding:0}.tournament-integration .tree>h3{position:absolute;top:0;margin:0;padding:6px 12px}.tournament-integration .tree svg{position:absolute;inset:0;width:1160px;height:900px;pointer-events:none}.tournament-integration .tree path{stroke:#9b84ae;stroke-width:2;fill:none}.tournament-integration .tree-match{position:absolute;width:350px;height:220px;text-align:left;background:white;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:14px}.tournament-integration .tree-match.round-1{height:220px}.tournament-integration .tree-match.round-2{height:220px;border:2px solid #77558f}.tournament-integration .team-score{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;border-bottom:1px solid #eee;padding:8px 0}.tournament-integration .team-score>span:first-child{flex:1}.tournament-integration .digits{display:flex;gap:8px;white-space:nowrap}.tournament-integration .digits b{min-width:14px}.tournament-integration .winner{font-weight:700;color:#375b38;background:#eff7ef}.tournament-integration .match-meta{font-size:12px;color:#59616b}.tournament-integration .score-pairs{width:100%;table-layout:fixed;border-collapse:collapse}.tournament-integration .score-pairs th:first-child{width:52%;text-align:left}.tournament-integration .score-pairs th,.tournament-integration .score-pairs td{padding:8px;border-bottom:1px solid #ddd}.tournament-integration .score-pairs input{width:100%;padding:8px 3px;text-align:center}.tournament-integration .score-pairs th{font-size:14px}@media(max-width:650px){.tournament-integration .score-pairs th:first-child{width:43%}.tournament-integration .score-pairs th,.tournament-integration .score-pairs td{padding:4px}.tournament-integration .score-pairs th{font-size:12px}}.tournament-integration .category-manager{max-width:1110px;margin:20px auto;padding:16px;border:1px solid #ddd;background:white;border-radius:12px}.tournament-integration .pool-matches{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:20px}.tournament-integration .tree-match{height:220px}.tournament-integration .category-manager h1{font-size:1.5rem}

.tournament-integration .standings-scroll{max-width:100%;overflow-x:auto}.tournament-integration .pool-standings{width:100%;min-width:640px;border-collapse:collapse;font-size:14px}.tournament-integration .pool-standings th,.tournament-integration .pool-standings td{padding:8px;text-align:left;border-bottom:1px solid #ddd}.tournament-integration fieldset{min-width:0}.tournament-integration .manual-registration-dialog{max-width:min(680px,95vw)}
.tournament-integration{min-width:0;max-width:100%}.tournament-integration .standings-scroll{width:100%;min-width:0}

.tournament-integration .consolation-option{display:flex;align-items:center;gap:10px;margin:14px 0}.tournament-integration .consolation-option input{width:20px;height:20px;min-height:20px;flex:none}.tournament-integration .tournament-tree-section{min-width:0;margin-top:20px}.tournament-integration .tournament-tree-section>h3{padding:12px;background:#eadff0;border-radius:9px}.tournament-integration .tournament-winner{background:#e6f1dc;color:#24332e;padding:10px;border-radius:9px;font-weight:700}

/* Turnos del equipo: alcance exclusivo .team-turns */
.team-turns{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#24332e;background:#f4f5f0;font-synthesis:none;font-size:15px;--green:#183c31;--line:#dde4db;--muted:#626e66}.team-turns *{box-sizing:border-box}.team-turns{margin:0}.team-turns button,.team-turns input,.team-turns select,.team-turns textarea{font:inherit}.team-turns button{cursor:pointer;min-height:44px;border:1px solid #cbd6cc;border-radius:10px;background:#fff;padding:10px 15px;color:var(--green);font-weight:650}.team-turns button:hover{background:#edf3e9}.team-turns button:focus-visible,.team-turns a:focus-visible,.team-turns input:focus-visible,.team-turns select:focus-visible,.team-turns textarea:focus-visible{outline:3px solid #547fca;outline-offset:2px}.team-turns button:disabled{opacity:.5;cursor:default}.team-turns .primary{background:var(--green);color:white;border-color:var(--green)}.team-turns .primary:hover{background:#2a5645}.team-turns .preview{padding:10px 24px;display:flex;gap:22px;justify-content:center;background:#faf0cd;border-bottom:1px solid #e7d99d;font-size:12px;color:#5c4b15;letter-spacing:.02em}.team-turns .preview strong{letter-spacing:.07em}.team-turns .layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 37px)}.team-turns aside{background:#fcfdf9;border-right:1px solid var(--line);padding:32px 18px}.team-turns .brand{display:block;color:var(--green);font-weight:900;font-size:33px;text-decoration:none;padding:0 10px;letter-spacing:-1.5px}.team-turns .brand span{font-style:italic;font-weight:600;color:#668a39}.team-turns .brand small{font-size:9px;letter-spacing:1.5px;display:block;margin-top:5px;color:var(--muted)}.team-turns .aside-label{font-size:10px;letter-spacing:1.2px;color:#7b867d;margin:46px 12px 18px}.team-turns .menu-muted,.team-turns .menu-active{padding:14px 12px;border-radius:9px;font-size:13px}.team-turns .menu-muted{color:#929b94}.team-turns .menu-active{background:#e1ebd8;color:var(--green);font-weight:750}.team-turns .aside-note{font-size:12px;line-height:1.8;margin:28px 12px;color:var(--muted)}.team-turns main{padding:35px clamp(20px,3.6vw,58px);max-width:1460px;width:100%;min-width:0}.team-turns header{display:flex;gap:20px;justify-content:space-between;align-items:flex-start}.team-turns .eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:750;color:#728565}.team-turns h1{font-size:34px;letter-spacing:-1.2px;margin:10px 0 7px;line-height:1.1}.team-turns header p{margin:0;color:var(--muted);line-height:1.6}.team-turns .view-label{display:grid;gap:6px;font-size:11px;color:var(--muted);min-width:225px}.team-turns .view-label select{font-size:13px}.team-turns .simulation{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:24px 0 20px;font-size:12px;color:var(--muted)}.team-turns .text-button{background:transparent;border:0;padding:6px 4px;text-decoration:underline;font-weight:600;min-height:36px;font-size:12px}.team-turns .tabs{display:flex;gap:6px;border-bottom:1px solid #cad5c8;margin-bottom:27px;overflow:auto}.team-turns .tabs button{border:0;border-bottom:3px solid transparent;border-radius:8px 8px 0 0;background:transparent;white-space:nowrap;font-size:14px;padding:13px 17px;color:var(--muted)}.team-turns .tabs button[aria-pressed=true]{background:#e8eee1;color:var(--green);border-bottom-color:#496e36}.team-turns .section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:25px 0 18px}.team-turns h2{font-size:22px;letter-spacing:-.5px;margin:0 0 6px}.team-turns h3{font-size:17px;margin:0 0 8px}.team-turns .section-head p,.team-turns .muted{font-size:13px;color:var(--muted);line-height:1.65;margin:0}.team-turns .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.team-turns .stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:8px}.team-turns .stat span{font-size:12px;color:var(--muted)}.team-turns .stat strong{font-size:27px;letter-spacing:-1px}.team-turns .stat small{font-size:11px;color:var(--muted)}.team-turns .stat.green{background:#e4eedb;border-color:#d6e4cc}.team-turns .two-col{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,1fr);gap:20px;align-items:start}.team-turns .card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;margin-bottom:14px}.team-turns .turn-top{display:flex;align-items:center;gap:15px;padding:19px 20px;background:#e6f0e2;border-bottom:1px solid #d9e7d2}.team-turns .date-tile{border:1px solid #cbdac2;background:#fffefa;border-radius:11px;min-width:56px;text-align:center;display:flex;flex-direction:column;padding:7px 9px}.team-turns .date-tile b{font-size:23px}.team-turns .date-tile small{font-size:10px;text-transform:uppercase;letter-spacing:.8px}.team-turns .turn-title{flex:1;min-width:0}.team-turns .turn-title strong{display:block;font-size:16px}.team-turns .turn-title small{display:block;color:#586d56;font-size:12px;margin-top:5px}.team-turns .card-body{padding:18px 20px}.team-turns .between{display:flex;align-items:center;justify-content:space-between;gap:12px}.team-turns .badge{display:inline-block;font-size:11px;font-weight:650;line-height:1.4;border-radius:20px;padding:6px 9px;background:#edf0ea;color:#546350;white-space:nowrap}.team-turns .badge.pending{background:#fff0ce;color:#795414}.team-turns .badge.confirmed{background:#e6e5f8;color:#4d427c}.team-turns .badge.done{background:#dfeddb;color:#315d29}.team-turns .teacher-line{font-weight:650;font-size:14px}.team-turns .avatar{display:inline-flex;align-items:center;justify-content:center;background:#e9eee5;border-radius:50%;height:32px;width:32px;margin-right:8px;font-size:12px;color:#526d39}.team-turns .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.team-turns .actions button{font-size:12px;flex-grow:0}.team-turns .cash-total{padding-top:15px;border-top:1px dashed var(--line);margin-top:17px}.team-turns .cash-total strong{font-size:21px}.team-turns .cash-total small{font-size:11px;color:var(--muted);display:block;margin-top:4px}.team-turns .detail{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.team-turns summary{cursor:pointer;min-height:35px;display:list-item;font-size:12px;font-weight:650;color:#486139}.team-turns .collection{padding:12px 0;border-bottom:1px solid #edf0e9;font-size:12px;line-height:1.7}.team-turns .collection:last-child{border-bottom:0}.team-turns .collection .text-button{font-size:11px}.team-turns .notice{background:#fcf7e8;border:1px solid #ede2b7;padding:13px;border-radius:10px;font-size:12px;line-height:1.65;margin-top:12px}.team-turns .intro-box{padding:22px;background:#f0eee6;border:1px solid #e3e0d3;border-radius:14px;position:sticky;top:20px}.team-turns .intro-box h3{font-size:16px}.team-turns .intro-box p{font-size:13px;line-height:1.75;color:#61685b}.team-turns .steps{margin:17px 0 0;padding:0;list-style:none;counter-reset:steps}.team-turns .steps li{counter-increment:steps;margin:15px 0;font-size:12px;display:flex;gap:10px;align-items:center;color:#59664d}.team-turns .steps li:before{content:counter(steps);background:#fffdf4;border:1px solid #d7ddc9;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700}.team-turns .tiny{font-size:11px;line-height:1.65;color:var(--muted)}.team-turns .judex-top{background:#eee7f5;padding:20px;border-bottom:1px solid #e1d7e9}.team-turns .judex-top small{font-size:11px;letter-spacing:.8px;color:#725885}.team-turns .judex-top h3{font-size:23px;margin:7px 0}.team-turns .progress{height:7px;background:#f0eaf6;border-radius:5px;margin-top:12px;overflow:hidden}.team-turns .progress span{display:block;height:100%;background:#9374ab}.team-turns .participant{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0e9;font-size:13px}.team-turns .participant small{font-size:11px;color:var(--muted);display:block;margin-top:3px}.team-turns .participant .actions{margin:0;gap:5px}.team-turns .participant button{font-size:11px;min-height:38px;padding:7px 9px}.team-turns .empty{padding:24px;text-align:center;color:var(--muted);font-size:13px;line-height:1.7}.team-turns .filter{display:flex;gap:12px;align-items:center;font-size:12px;margin:16px 0}.team-turns .filter select{width:auto;min-width:180px}.team-turns .table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:white}.team-turns table{width:100%;border-collapse:collapse;font-size:13px}.team-turns th,.team-turns td{text-align:left;padding:15px 16px;border-bottom:1px solid #edf0e9;white-space:nowrap}.team-turns th{font-size:11px;background:#e9efe3;color:#526448;font-weight:700}.team-turns tr:last-child td{border-bottom:0}.team-turns .history-item{padding:12px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.6}.team-turns .history-item span{display:block;color:var(--muted);font-size:11px}.team-turns footer{font-size:11px;color:#7a857a;margin:35px 0 0;padding-top:18px;border-top:1px solid var(--line);line-height:1.8}.team-turns label{display:grid;gap:7px;font-size:13px;color:#344333;font-weight:600}.team-turns input,.team-turns select,.team-turns textarea{width:100%;border:1px solid #c5d0c0;border-radius:9px;padding:11px 12px;background:#fff;min-height:44px;color:#24332e}.team-turns textarea{resize:vertical;min-height:80px}.team-turns .field{margin:0 0 17px}.team-turns .field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.team-turns .field small{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:5px}.team-turns .check{display:flex;align-items:center;gap:10px;line-height:1.5}.team-turns .check input{width:20px;height:20px;min-height:20px}.team-turns .icon-button{border:0;font-size:25px;min-width:44px;padding:3px;background:transparent}.team-turns dialog{border:1px solid var(--line);border-radius:18px;width:min(560px,calc(100vw - 24px));max-height:90vh;overflow:auto;padding:24px;color:#24332e}.team-turns dialog::backdrop{background:#12271888;backdrop-filter:blur(2px)}.team-turns .dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.team-turns .dialog-head h2{font-size:23px}.team-turns .dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.team-turns .dialog-actions button{font-size:13px}.team-turns #form-error{color:#a02d27;font-size:13px;line-height:1.5}.team-turns #toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#183c31;color:#fff;box-shadow:0 8px 30px #16332433;border-radius:12px;font-size:13px;padding:14px 20px;max-width:calc(100vw - 24px);z-index:10;display:none}.team-turns .balance-mobile{display:none}.team-turns .balance-numbers{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.team-turns .balance-numbers small{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.team-turns .balance-numbers b{font-size:19px}
@media(min-width:1500px){.team-turns .layout{max-width:1600px;margin:auto}}@media(max-width:1000px){.team-turns .layout{grid-template-columns:180px 1fr}.team-turns .two-col{grid-template-columns:1fr}.team-turns .intro-box{position:static}.team-turns .stats .stat{padding:15px}.team-turns .view-label{min-width:190px}.team-turns .turn-title strong{font-size:15px}.team-turns header{flex-wrap:wrap}.team-turns .view-label{width:100%;max-width:280px}}
@media(max-width:650px){.team-turns .balance-desktop{display:none}.team-turns .balance-mobile{display:block}}
@media(max-width:650px){.team-turns .preview{flex-direction:column;gap:3px;text-align:center;padding:9px 12px;font-size:10px}.team-turns .layout{display:block}.team-turns aside{display:none}.team-turns main{padding:25px 16px}.team-turns .eyebrow{font-size:9px}.team-turns h1{font-size:29px}.team-turns header p{font-size:13px}.team-turns .view-label{max-width:none}.team-turns .simulation{margin:16px 0 11px;gap:7px;align-items:flex-start;line-height:1.6}.team-turns .simulation .text-button{min-width:90px;max-width:100px;font-size:11px}.team-turns .tabs{margin-bottom:22px;gap:0}.team-turns .tabs button{padding:12px 10px;font-size:12px}.team-turns .stats{gap:7px}.team-turns .stat{padding:13px 10px!important;border-radius:11px}.team-turns .stat strong{font-size:23px}.team-turns .stat span{font-size:10px;line-height:1.45}.team-turns .stat small{font-size:9px}.team-turns .section-head{align-items:flex-start}.team-turns h2{font-size:20px}.team-turns .section-head .primary{font-size:12px;padding:10px 12px;white-space:nowrap}.team-turns .section-head p{font-size:12px}.team-turns .turn-top{padding:15px 14px;gap:10px}.team-turns .turn-title strong{font-size:14px}.team-turns .turn-title small{font-size:11px}.team-turns .date-tile{min-width:47px;padding:6px}.team-turns .date-tile b{font-size:21px}.team-turns .card-body{padding:15px}.team-turns .badge{font-size:10px;padding:6px 8px}.team-turns .actions button{flex-grow:1;padding:10px}.team-turns .participant{flex-wrap:wrap}.team-turns .participant .actions{width:100%}.team-turns .participant .actions button{flex-grow:0}.team-turns .judex-top{padding:17px}.team-turns .intro-box{padding:18px}.team-turns .table-wrap{border-radius:10px}.team-turns th,.team-turns td{padding:13px 12px}.team-turns .field-grid{gap:10px}.team-turns dialog{padding:18px}.team-turns .dialog-actions{display:grid;grid-template-columns:1fr 1fr}.team-turns .dialog-actions button{font-size:12px;padding:10px}.team-turns .between .teacher-line{max-width:65%}.team-turns .filter{align-items:flex-start;flex-direction:column}.team-turns .filter select{width:100%}}.team-turns .note-box{margin-top:20px;padding:16px;background:#f4f6ee;border:1px solid #dde5d5;border-radius:12px}.team-turns .note-box textarea{margin-top:3px;min-height:95px;line-height:1.7;background:#fff}.team-turns .note-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.team-turns .note-footer button{font-size:12px;white-space:nowrap}.team-turns .note-footer .tiny{max-width:60%}.team-turns .header-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.team-turns .header-actions button{font-size:12px}.team-turns .eligible-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 12px;margin:20px 0}.team-turns .eligible-grid label{font-size:12px}.team-turns hr{border:0;border-top:1px solid #d8ddcf;margin:24px 0}@media(max-width:650px){.team-turns .section-head{flex-wrap:wrap}.team-turns .header-actions{justify-content:flex-start;width:100%}.team-turns .header-actions button{flex:1}.team-turns .note-box{padding:12px}.team-turns .note-footer{align-items:flex-start;flex-wrap:wrap}.team-turns .note-footer button{margin-left:auto}.team-turns .eligible-grid{grid-template-columns:1fr}.team-turns .teacher-line{font-size:13px}.team-turns .avatar{margin-right:5px}.team-turns .section-head .primary{white-space:normal}}.team-turns .notice a{color:#425a35;text-underline-offset:3px}.team-turns .master-conditional{background:#f7f4e9}@media(max-width:650px){.team-turns .tabs{display:grid;grid-template-columns:1.35fr .6fr 1.1fr;overflow:visible}.team-turns .tabs button{white-space:normal;line-height:1.4;padding:10px 7px;font-size:12px}}

.team-turns{background:transparent;min-width:0}.team-turns dialog{margin:auto;z-index:90}.team-turns #toast{z-index:100}.team-turns .tabs{position:static}.team-turns .intro-box{position:static}.team-turns [aria-busy=true]{opacity:.8}

/* Cuadrante consulta y reparto visual: alcance exclusivo */
.consulta-cuadrante{min-width:0}.consulta-cuadrante .qc-intro p{margin:10px 0}.consulta-cuadrante .qc-filters{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px;margin:16px 0}.consulta-cuadrante .qc-filters label:last-child{grid-column:1/-1}.consulta-cuadrante .qc-count{font-size:13px;margin:14px 0;color:#4c6068}.consulta-cuadrante .qc-tools{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;margin:12px 0}.consulta-cuadrante .qc-zoom,.consulta-cuadrante .qc-pan{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.consulta-cuadrante .qc-tools button{min-height:44px;min-width:44px;padding:9px 12px;background:white;border:1px solid #c5d4d0;border-radius:8px;color:#193c35;font-size:13px}.consulta-cuadrante .qc-zoom output{min-width:46px;text-align:center;font-size:13px}.consulta-cuadrante .qc-scroll{overflow:auto;max-height:72dvh;border:1px solid #b8c7c6;border-radius:10px;background:#fff;cursor:grab;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;position:relative}.consulta-cuadrante .qc-scroll:focus-visible{outline:3px solid #14736d;outline-offset:3px}.consulta-cuadrante .qc-dragging{cursor:grabbing;user-select:none}.consulta-cuadrante .qc-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:calc(12px * var(--qc-scale,1));line-height:1.45}.consulta-cuadrante .qc-table caption{caption-side:bottom;text-align:left;font-size:12px;padding:12px;background:#f4f7f6}.consulta-cuadrante .qc-table th,.consulta-cuadrante .qc-table td{border-right:1px solid #c6d2cf;border-bottom:1px solid #c6d2cf;vertical-align:top;padding:5px;white-space:normal;width:calc(180px * var(--qc-scale,1));max-width:calc(220px * var(--qc-scale,1));min-width:calc(168px * var(--qc-scale,1));color:#24332e}.consulta-cuadrante .qc-table thead th{position:sticky;top:0;z-index:3;background:#183c39;color:#fff;text-align:center;letter-spacing:.025em;font-size:1em;padding:10px 7px}.consulta-cuadrante .qc-table tr>th:first-child{position:sticky;left:0;z-index:2;width:66px;min-width:66px;max-width:66px;background:#edf2ef;text-align:center;font-weight:750;padding:10px 4px}.consulta-cuadrante .qc-table thead th:first-child{z-index:4;color:#fff;background:#183c39}.consulta-cuadrante .qc-table td:empty{background:repeating-linear-gradient(135deg,#fafbf9,#fafbf9 8px,#f4f6f3 8px,#f4f6f3 9px)}.consulta-cuadrante .qc-group{background:#d1b2e8;padding:0;border-radius:7px;border:1px solid #b596cd;margin:0 0 5px;overflow-wrap:anywhere}.consulta-cuadrante .qc-group:last-child{margin-bottom:0}.consulta-cuadrante .qc-group[data-site="Complejo Alcántara"]{background:#bde3bf;border-color:#9cc6a0}.consulta-cuadrante .qc-group header{display:block;border-bottom:1px solid #24332e30;padding-bottom:7px;margin-bottom:8px;line-height:1.5}.consulta-cuadrante .qc-group header small{display:block;font-size:.9em}.consulta-cuadrante .qc-level{font-weight:700;margin:6px 0 8px;font-size:.95em}.consulta-cuadrante .qc-group ul{list-style:none;margin:0;padding:0}.consulta-cuadrante .qc-group li{border-top:1px solid #24332e22;margin:0;padding:6px 0;line-height:1.45;font-size:1em}.consulta-cuadrante .qc-group .student-name-button{font-size:inherit!important;line-height:inherit!important;text-align:left;white-space:normal;font-weight:500;color:#24332e}.consulta-cuadrante .qc-planned{display:block;font-size:.85em;color:#794b08}.consulta-cuadrante .qc-note,.consulta-cuadrante .qc-empty-group{font-size:.9em;margin:8px 0 0}.consulta-cuadrante .qc-no-results{padding:20px}.consulta-cuadrante .qc-dialog{width:calc(100vw - 20px);max-width:none;height:calc(100dvh - 20px);max-height:none;margin:auto;padding:18px;border:1px solid #a8bcb4;border-radius:12px;background:#f4f6f8;color:#24332e}.consulta-cuadrante .qc-dialog::backdrop{background:#12342cb3}.consulta-cuadrante .qc-dialog .qc-scroll{max-height:calc(100dvh - 170px)}.consulta-cuadrante .qc-occasional{margin-top:18px}.consulta-cuadrante .qc-occasional article{margin-top:16px;border-top:1px solid #ddd;padding-top:14px}.consulta-cuadrante .qc-occasional ul{padding-left:20px}
.team-turns .te-reparto-matrix{overflow:auto;max-height:70dvh;background:#fff;border:1px solid #c5d3c9;border-radius:12px;overscroll-behavior:contain}.team-turns .te-reparto-matrix table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.team-turns .te-reparto-matrix caption{text-align:left;background:#f0f4ed;color:#395044;padding:12px;font-size:12px}.team-turns .te-reparto-matrix th,.team-turns .te-reparto-matrix td{white-space:normal;vertical-align:middle;text-align:center;border-bottom:1px solid #e2e9e1;padding:14px 8px;font-size:15px}.team-turns .te-reparto-matrix tr>th:first-child{width:45%;text-align:left;background:#fff;font-size:13px;position:sticky;left:0;font-weight:650;z-index:1}.team-turns .te-reparto-matrix thead th{position:sticky;top:0;z-index:2;background:#e8eee5;color:#344c39;font-size:12px}.team-turns .te-reparto-matrix thead th:first-child{z-index:3;background:#e8eee5}.team-turns .te-reparto-matrix .te-domingo{background:#f0f7ec}.team-turns .te-reparto-matrix .te-judex{background:#f5eefb}.team-turns .te-reparto-matrix .te-has-value{font-weight:800;color:#193b31}.team-turns .te-reparto-matrix .te-total{font-size:18px;font-weight:800;color:#213e34}
.consulta-cuadrante .qc-table{min-width:0}.consulta-cuadrante .qc-group .student-ficha-link{font-size:inherit!important;line-height:inherit!important;font-weight:500;text-align:left;white-space:normal;color:#24332e}
@media(max-width:650px){.consulta-cuadrante .qc-filters{grid-template-columns:1fr 1fr;gap:10px}.consulta-cuadrante .qc-filters label{font-size:12px}.consulta-cuadrante .qc-tools{gap:8px}.consulta-cuadrante .qc-table tr>th:first-child{width:56px;min-width:56px;max-width:56px;font-size:11px;padding:10px 3px}.consulta-cuadrante .qc-dialog{padding:12px}.consulta-cuadrante .qc-dialog .qc-scroll{max-height:calc(100dvh - 215px)}.team-turns .te-reparto-matrix th,.team-turns .te-reparto-matrix td{padding:12px 5px;font-size:14px}.team-turns .te-reparto-matrix tr>th:first-child{font-size:12px;width:46%}.team-turns .te-reparto-matrix thead th{font-size:10px}.team-turns .te-reparto-matrix .te-total{font-size:16px}}

/* Cuadrante compacto: las fichas y los datos conservan su ámbito existente. */
.consulta-cuadrante .qc-group-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 6px;width:100%;min-height:44px;margin:0;padding:8px;border:0;border-radius:6px;background:transparent;color:#24332e;font-size:inherit;font-family:inherit;line-height:1.3;text-align:left;cursor:pointer;box-shadow:none;white-space:normal}
.consulta-cuadrante .qc-group-toggle:hover{background:#ffffff2b}.consulta-cuadrante .qc-group-toggle:focus-visible{outline:3px solid #14736d;outline-offset:-3px}.consulta-cuadrante .qc-group-title{font-weight:750;font-size:1em}.consulta-cuadrante .qc-sport{font-weight:500}.consulta-cuadrante .qc-chevron{font-weight:800;font-size:15px;justify-self:end;line-height:1}.consulta-cuadrante .qc-group-time{grid-column:1/-1;font-weight:650;font-size:.9em}.consulta-cuadrante .qc-group-teacher{font-size:.85em;align-self:center}.consulta-cuadrante .qc-member-count{font-size:.8em;white-space:nowrap;align-self:center;justify-self:end;color:#35483d}.consulta-cuadrante .qc-group-content{padding:8px;border-top:1px solid #24332e30}.consulta-cuadrante .qc-group-content header{font-size:.9em;margin-bottom:5px;padding-bottom:5px}.consulta-cuadrante .qc-group-content .qc-level{margin:4px 0}.consulta-cuadrante .qc-group-content li{padding:5px 0}.consulta-cuadrante .qc-help{font-size:12px;margin:8px 0}.consulta-cuadrante .qc-help summary{cursor:pointer;color:#476158}.consulta-cuadrante .qc-help p{line-height:1.45}.consulta-cuadrante .qc-intro h2{margin-bottom:6px}.consulta-cuadrante .qc-intro>p{font-size:13px;margin:6px 0}.consulta-cuadrante .qc-occasional .qc-group{padding-top:0;margin-top:8px;border-top:1px solid #b596cd}.consulta-cuadrante .qc-scroll .qc-group-content ul{padding:0}
@media(max-width:650px){.consulta-cuadrante .qc-table td,.consulta-cuadrante .qc-table thead th:not(:first-child){min-width:calc(156px * var(--qc-scale,1));width:calc(170px * var(--qc-scale,1))}.consulta-cuadrante .qc-group-toggle{padding:7px}.consulta-cuadrante .qc-intro>p.muted{font-size:11px}}

.consulta-cuadrante .qc-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;padding:15px}.consulta-cuadrante .qc-intro h2{margin:0;font-size:20px;align-self:center}.consulta-cuadrante .qc-intro>button{grid-column:2;grid-row:1;min-height:40px;padding:8px 10px;font-size:12px}.consulta-cuadrante .qc-intro>p,.consulta-cuadrante .qc-intro>.qc-help{grid-column:1/-1;margin:2px 0;font-size:12px}.consulta-cuadrante .qc-intro>.muted{font-size:11px}.consulta-cuadrante .qc-filter-panel{margin:10px 0;border:1px solid #ccd8d3;border-radius:8px;background:#fff}.consulta-cuadrante .qc-filter-panel>summary{cursor:pointer;padding:12px;font-size:12px;font-weight:650;min-height:44px}.consulta-cuadrante .qc-filter-panel .qc-filters{margin:0;padding:0 12px 12px}.consulta-cuadrante .qc-count{margin:10px 0;font-size:12px}.consulta-cuadrante .qc-tools{margin:9px 0}

.tournament-integration .phase-pools,.tournament-integration .phase-crosses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.tournament-integration .phase-group{min-width:0;padding:16px}.tournament-integration .phase-group .pool-standings{min-width:0;font-size:12px}.tournament-integration .phase-qualified{background:#edf4e7}.tournament-integration .phase-matches{display:grid;gap:10px;margin-top:14px}.tournament-integration .phase-review{border-left:4px solid #aa8bbd;margin-top:18px}.tournament-integration .phase-crosses>div{background:#f3f0f6;border-radius:9px;padding:13px;margin-bottom:16px}.tournament-integration .phase-crosses h4{font-size:14px;margin:0 0 9px}.tournament-integration .phase-crosses p{font-size:13px;margin:5px 0}@media(max-width:760px){.tournament-integration .phase-pools,.tournament-integration .phase-crosses{grid-template-columns:1fr}}


/* Edición de Cuadrante: sólo controles del diálogo administrativo. */
.qe-dialog{width:min(620px,calc(100vw - 24px));max-height:90dvh;overflow:auto;border:1px solid #bfd1c7;border-radius:12px;background:#fff;color:#24332e;padding:20px}.qe-dialog::backdrop{background:#12342cb3}.qe-dialog>header{display:flex;gap:12px;justify-content:space-between;align-items:start}.qe-dialog h2{margin:0}.qe-dialog label{display:grid;gap:6px;margin:12px 0}.qe-dialog input,.qe-dialog select{width:100%;min-height:44px}.qe-dialog .qe-day{display:flex;align-items:center;gap:8px;font-size:13px}.qe-dialog .qe-day input{width:20px;min-height:20px}.qe-dialog fieldset{border:1px solid #cbd8d0;border-radius:8px;margin:14px 0;padding:12px}.qe-dialog .qe-actions{display:flex;gap:8px;flex-wrap:wrap}.qe-dialog button{min-height:44px}.qe-dialog .qe-preview{border-left:4px solid #6a4187;padding:12px;background:#f2eaf8;margin:12px 0}.qe-dialog .qe-preview li{margin:6px 0}.qe-dialog .qe-history{margin-top:16px;font-size:13px;overflow-wrap:anywhere}.consulta-cuadrante .qc-edit{margin-top:8px;min-height:44px;width:100%;font-size:12px}

/* Cuadrante: secciones por día; sólo presentación, no cambia grupos ni aforos. */
.consulta-cuadrante .qc-days-table .qc-day-band>th:first-child{position:static;background:#dbe8e3;color:#183c39;text-align:left;padding:10px 8px;border-top:3px solid #809c91;min-width:0;max-width:none;width:auto;font-size:calc(15px * var(--qc-scale,1))}
.consulta-cuadrante .qc-days-table .qc-day-band>th>span{position:sticky;left:10px;display:inline-block;font-weight:800}
.consulta-cuadrante .qc-days-table .qc-day-band small{font-weight:400;font-size:.85em;margin-left:18px}
.consulta-cuadrante .qc-days-table tr>th.qc-day-hour,.consulta-cuadrante .qc-days-table thead tr>th:first-child{width:calc(85px * var(--qc-scale,1));min-width:calc(85px * var(--qc-scale,1));max-width:calc(85px * var(--qc-scale,1))}
.consulta-cuadrante .qc-days-table .qc-day-hour>span,.consulta-cuadrante .qc-days-table .qc-day-hour>strong{display:block}
.consulta-cuadrante .qc-days-table .qc-day-hour>span{font-size:.85em;margin-bottom:4px}
.consulta-cuadrante .qc-days-table .qc-session-heading{font-size:1em;font-weight:800;color:#152f2c;grid-column:1}
.consulta-cuadrante .qc-group-site{display:block;grid-column:1 / -1;font-size:.85em;font-weight:600;line-height:1.3;color:#243b37}
.consulta-cuadrante .qc-days-table .qc-group-title{font-weight:600;grid-column:1 / -1}



.team-turns .te-calendar-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;align-items:start}
.team-turns .te-calendar-layout>*{min-width:0}.team-turns .te-calendar-navigation{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;align-items:center;margin-bottom:10px}
.team-turns .te-calendar-navigation>button{font-size:25px;padding:2px;min-height:44px}.team-turns .te-month-label select{font-size:15px;text-transform:capitalize;min-width:0}
.team-turns .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.team-turns .te-sunday-calendar{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0;border:1px solid #cedbcd;border-radius:14px;overflow:hidden;margin:0;background:#fff}
.team-turns .te-sunday-calendar th{width:12%;height:33px;padding:4px;text-align:center;font-size:12px}.team-turns .te-sunday-calendar th:last-child{width:28%;background:#d7e8d8}
.team-turns .te-sunday-calendar abbr{text-decoration:none}.team-turns .te-sunday-calendar td{padding:4px;height:76px;vertical-align:top;text-align:center;border-bottom:1px solid #e5ebe2;font-size:13px}
.team-turns .te-sunday-calendar td>time{display:block;padding-top:7px;color:#7a8476}.team-turns .te-sunday-calendar .te-calendar-empty{background:#f8faf5}
.team-turns .te-calendar-sunday>button{display:grid;grid-template-rows:auto auto 5px;justify-items:center;align-content:center;gap:4px;min-height:66px;padding:5px 2px;width:100%;border:1px solid #cbdcc9;border-radius:9px;background:#edf5e9;color:#243d2b;white-space:normal;font-weight:700;font-size:12px;line-height:1.2}
.team-turns .te-calendar-sunday>button time{font-size:17px}.team-turns .te-calendar-sunday>button span{overflow-wrap:anywhere}.team-turns .te-calendar-sunday>button[aria-pressed=true]{background:#275c42;color:#fff;border-color:#275c42;box-shadow:0 0 0 2px #bfd4bd}
.team-turns .te-calendar-sunday>button i{display:block;border-radius:50%;width:5px;height:5px;background:#ab8337}.team-turns .te-calendar-sunday>button i.is-confirmed{background:#4ba46c}.team-turns .te-calendar-sunday>button i.is-done{background:#6178a1}
.team-turns .te-calendar-mine>button{outline:2px solid #74a369;outline-offset:0}.team-turns .te-calendar-legend{margin-top:9px}.team-turns .te-selected-turn{margin:0}.team-turns .te-selected-turn .turn-title strong{font-size:16px}
.team-turns .te-reminder-settings{display:flex;justify-content:space-between;gap:15px;align-items:center;border:1px solid #dce5d7;border-radius:12px;padding:16px;margin:18px 0;background:#f7f9f3;font-size:13px}
.team-turns .te-reminder-settings p{margin:5px 0;font-size:13px}.team-turns .te-reminder-settings small{font-size:11px;color:#62705e}.team-turns .te-reminder-settings>button{flex-shrink:0}
.team-turns .te-draw-preview{margin:0 0 18px;padding:15px}.team-turns .te-draw-preview p{font-size:13px;margin:6px 0}.team-turns .te-draw-preview details{margin-top:12px}
.team-turns .te-draw-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin-top:12px;font-size:12px}.team-turns .te-draw-counts span{display:flex;justify-content:space-between;gap:10px}
@media(max-width:750px){.team-turns .te-calendar-layout{grid-template-columns:minmax(0,1fr);gap:14px}.team-turns .te-sunday-calendar td{height:68px}.team-turns .te-calendar-sunday>button{min-height:58px;font-size:12px}.team-turns .te-calendar-sunday>button time{font-size:16px}.team-turns .te-reminder-settings{flex-wrap:wrap}.team-turns .te-reminder-settings>button{width:100%}.team-turns .te-calendar-navigation>button{flex-grow:0}.team-turns .te-draw-counts{grid-template-columns:1fr}}

/* Turnos: un único desplazamiento vertical en móvil para ver los13profesores. */
@media(max-width:650px){.team-turns .te-reparto-matrix{max-height:none;overflow:visible;overscroll-behavior:auto}}

/* Mi jornada: estilos ya comprobados, limitados a sus componentes. */
.team-turns .mj{max-width:1050px}.team-turns .mj-filters{display:flex;align-items:end;flex-wrap:wrap;gap:15px;margin-bottom:16px}.team-turns .mj label{display:grid;gap:6px;font-size:13px}.team-turns .mj input,.team-turns .mj select,.team-turns .mj textarea{max-width:100%;padding:10px;border:1px solid #cbd6cc;border-radius:8px;background:white;color:#24332e}.team-turns .mj-state{display:grid;gap:6px;margin-bottom:18px}.team-turns .mj-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin:16px 0}.team-turns .mj-download{color:#183c31;font-weight:650;padding:12px 0}.team-turns .mj-message{min-height:22px;color:#183c31}.team-turns .mj-message[role=alert]{color:#a32323}.team-turns .mj .stats{margin:18px 0}.team-turns .mj-entries,.team-turns .mj-corrections{display:grid;gap:12px;margin:16px 0}.team-turns .mj-entry-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.team-turns .mj pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-height:300px;overflow:auto}.team-turns .mj-editor{border:2px solid #658b45;margin:20px 0;display:grid;gap:14px}.team-turns .mj small{line-height:1.5;color:#626e66}.team-turns .mj li{margin-bottom:6px}.team-turns .mj .notice{padding:14px;background:#fff3d8;border-radius:10px}.team-turns .mj .card{min-width:0;overflow-wrap:anywhere}
.team-turns .mj-interval{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin:12px 0}
@media(max-width:650px){.team-turns .tabs{grid-template-columns:1fr 1fr}.team-turns .mj-filters{display:grid;grid-template-columns:1fr;gap:10px}.team-turns .mj-filters>a{grid-column:1/-1}.team-turns .mj .stats{grid-template-columns:1fr}.team-turns .mj-actions>*{flex:1;min-width:135px}.team-turns .mj-entry-head{align-items:flex-start}.team-turns .mj input,.team-turns .mj select,.team-turns .mj textarea{font-size:16px;width:100%}.team-turns .mj-download{display:block}.team-turns .mj .card-body{padding:14px}.team-turns .mj-interval{grid-template-columns:1fr}.team-turns .mj-interval button{justify-self:start}}

.team-turns .mj-month{margin-top:26px}.team-turns .mj-month-reports{display:grid;gap:18px}.team-turns .mj-month-version{border-top:1px solid #cbd6cc;padding:15px 0}.team-turns .mj-month small{overflow-wrap:anywhere}.team-turns .mj-month [aria-busy=true]{opacity:.8}
.mj-signatures{margin:20px 0}.mj-sign-canvas{display:block;width:100%;max-width:540px;height:180px;border:2px dashed #82998a;border-radius:10px;background:#fff;touch-action:none}.mj-signed-ink{width:280px;height:94px;max-width:100%;border-bottom:1px solid #82998a}.mj-signed-ink svg{width:100%;height:100%;overflow:hidden}.mj-sign-consent{display:flex!important;align-items:flex-start;gap:10px}.mj-sign-consent input{width:auto!important;flex:none;margin-top:4px}.mj-sign-table{overflow-x:auto}.mj-sign-table table{width:100%;border-collapse:collapse;font-size:.9rem}.mj-sign-table th,.mj-sign-table td{padding:8px;text-align:left;border-bottom:1px solid #dce4dc}.mj-hash{overflow-wrap:anywhere}.mj-signatures [hidden]{display:none!important}@media(max-width:480px){.mj-sign-canvas{height:140px}.mj-sign-table th,.mj-sign-table td{padding:5px;font-size:.78rem}}



/* Calendario laboral: presentación móvil; estados y acciones existentes. */
.mj-calendar{--mj-ink:#273f46;--mj-purple:#705493;margin:18px 0;padding:20px;border:1px solid #e7e0eb;border-radius:24px;background:linear-gradient(150deg,#fff 60%,#faf7ff);color:var(--mj-ink);box-shadow:0 8px 26px #40335408}
.mj-calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.mj-calendar-heading h3{font-size:20px;line-height:1.2;letter-spacing:-.5px}.mj-calendar-month{display:block;margin-top:5px;font-size:13px;font-weight:600;color:#6b6078;text-transform:none}.mj-calendar-month::first-letter{text-transform:uppercase}.mj-calendar-symbol{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:14px;background:#e7eff8;color:#395981;transform:rotate(7deg)}.mj-calendar-symbol svg{width:22px;height:22px;transform:rotate(-7deg)}
.mj-calendar-hint{font-size:13px;line-height:1.5;margin:0 0 12px;color:#57666c}.mj-calendar-legend{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}.mj-calendar-key{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:20px;font-size:11px;line-height:1.3;font-weight:600;background:#fff;border:1px solid #e9e5ed}.mj-calendar-key i{display:block;width:7px;height:7px;flex:none;border-radius:50%;background:var(--mj-dot)}
.mj-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.mj-calendar-weekday{padding:0 0 6px;text-align:center;font-weight:700;font-size:11px;color:#718087}.mj-calendar-day{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:102px;min-width:0;padding:5px 3px 7px;border:1px solid var(--mj-line,#e4e8e8);border-radius:15px;background:var(--mj-bg,#f7f9f8);color:var(--mj-fg,#6b797d);overflow-wrap:normal}
.mj-calendar .mj-calendar-red{--mj-bg:#fff0ed;--mj-fg:#8c302d;--mj-line:#f0d7d2}.mj-calendar .mj-calendar-blue{--mj-bg:#edf4ff;--mj-fg:#285b8a;--mj-line:#d8e5f4}.mj-calendar .mj-calendar-green{--mj-bg:#eaf6ee;--mj-fg:#216748;--mj-line:#d3e8da}.mj-calendar .mj-calendar-neutral{--mj-bg:#f5f6f6;--mj-fg:#667477;--mj-line:#e7ebeb}
.mj-calendar .mj-calendar-today{outline:0;border:2px solid #8e70ae;background:#f0eaf8;color:#5b3f79;padding:4px 2px 6px;box-shadow:0 3px 10px #70549316}.mj-calendar .mj-calendar-today.mj-calendar-red,.mj-calendar .mj-calendar-today.mj-calendar-green,.mj-calendar .mj-calendar-today.mj-calendar-blue{background:var(--mj-bg);color:var(--mj-fg)}
.mj-calendar .mj-calendar-date{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0;min-height:44px!important;width:100%;border:0!important;background:transparent!important;color:inherit!important;padding:0!important;cursor:pointer;font:inherit;box-shadow:none!important;border-radius:10px;text-align:center;touch-action:manipulation}.mj-calendar-date strong{display:grid;place-items:center;min-width:29px;height:29px;font-size:16px;line-height:1;font-weight:700;letter-spacing:-.4px}.mj-calendar-today .mj-calendar-date strong{background:#705493;border-radius:50%;color:white}.mj-calendar-day-today{position:absolute;left:0;right:0;top:36px;font-size:8px!important;font-weight:700;letter-spacing:.3px;text-transform:uppercase;line-height:1}
.mj-calendar .mj-cal-long{font-size:10px;line-height:1.3;text-align:center;max-width:100%}.mj-calendar .mj-cal-short{display:none}.mj-calendar-day small{font-size:10px;line-height:1.4;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.25px}.mj-calendar .mj-calendar-date:focus-visible,.mj-calendar .mj-calendar-day button:focus-visible{outline:3px solid #705493!important;outline-offset:1px}.mj-calendar-selected{box-shadow:inset 0 0 0 2px #705493}
.mj-calendar-day button[data-j-action=calendar-correct]{border:0;border-radius:7px;background:#ffffff9c;color:inherit;min-height:24px;padding:2px 7px;font-size:10px;font-weight:700}.mj-calendar-help{margin-top:15px;border-top:1px solid #e8e4ed;padding-top:12px;font-size:12px;color:#637378}.mj-calendar-help summary{cursor:pointer;font-weight:600;min-height:32px}.mj-calendar-help p{margin:4px 0 8px;line-height:1.55}.mj-calendar-pending{margin-top:12px!important;padding:10px 12px;border:1px solid #f1d9d3;border-radius:12px;background:#fff5f1;color:#863c33;font-size:12px;line-height:1.5}.mj-calendar-admin{margin-top:16px;font-size:13px}.mj-calendar-admin summary{cursor:pointer;min-height:36px}.mj-calendar-admin form{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.mj-calendar-admin label{display:flex;flex-direction:column;gap:5px}.mj-day-panel{scroll-margin-top:150px}.mj-day-panel .mj-actions{margin:12px 0}
@media(max-width:600px){.mj-calendar{padding:14px 10px;border-radius:21px}.mj-calendar-heading h3{font-size:18px}.mj-calendar-grid{gap:4px}.mj-calendar-day{min-height:89px;border-radius:11px;padding:4px 1px 6px}.mj-calendar .mj-calendar-today{padding:3px 0 5px}.mj-calendar .mj-calendar-day .mj-cal-long{display:none}.mj-calendar .mj-calendar-day .mj-cal-short{display:block;font-size:9px;line-height:1.35;white-space:nowrap;text-align:center}.mj-calendar-day small{font-size:9px;letter-spacing:-.35px}.mj-calendar .mj-calendar-date strong{font-size:15px}.mj-calendar-legend{gap:4px;margin-bottom:15px}.mj-calendar-key{padding:4px 6px;font-size:10px}.mj-calendar-admin form{flex-direction:column}.mj-calendar-hint{font-size:12px}.mj-calendar-pending{padding:9px;font-size:11px}}
@media(prefers-reduced-motion:no-preference){.mj-calendar-date{transition:transform .12s ease}.mj-calendar-date:active{transform:scale(.93)}}


/* Mi jornada: consulta administrativa, sin alterar fichajes ni permisos. */
.mj-view-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin:.65rem 0 1rem}.mj-view-tabs button[aria-pressed=true]{background:#e5dbf5;border-color:#75509b;color:#30203d}.mj-team-scroll{max-width:100%;overflow:auto;border:1px solid #ddd;border-radius:10px;margin-top:.8rem}.mj-team-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.8rem}.mj-team-table caption{text-align:left;padding:.65rem;font-weight:600}.mj-team-table th,.mj-team-table td{padding:.22rem;text-align:center;border-bottom:1px solid #eee}.mj-team-table thead th span,.mj-team-table thead th strong{display:block}.mj-team-table th:first-child{position:sticky;left:0;z-index:2;min-width:132px;max-width:160px;background:#faf8fd;text-align:left}.mj-team-table th:first-child button{white-space:normal;text-align:left;min-height:38px;width:100%;padding:.35rem}.mj-team-day{width:26px;height:32px;padding:0!important;border:1px solid #ccc;border-radius:5px;font-weight:700}.mj-team-day.mj-calendar-red{background:#fee2e2;color:#8d1717}.mj-team-day.mj-calendar-green{background:#d4eddb;color:#14542a}.mj-team-day.mj-calendar-blue{background:#dceaff;color:#173f81}.mj-team-day.mj-calendar-neutral{background:#f2f2f2;color:#4d4d4d}.mj-team-today{box-shadow:inset 0 0 0 2px #70438c}@media(max-width:600px){.mj-view-tabs button{flex:1 1 140px}.mj-team-table th:first-child{min-width:110px;max-width:120px}.mj-team-table{font-size:.75rem}}

/* Mis nóminas: descarga individual y recepción separada. */
.payrolls{max-width:780px;margin:auto}.payroll-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid #e5e1e9}.payroll-card p{margin:.35rem 0}.payroll-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}.payroll-sign{margin:1.2rem 0}.payroll-sign summary{cursor:pointer;font-weight:600}.payroll-draw{margin:1rem 0;max-width:100%}.payroll-draw canvas{display:block;border:1px solid #b2a7c4;background:white;border-radius:8px;width:100%;height:auto;max-width:600px;touch-action:none}.payroll-draw button{margin-top:.5rem}.payroll-check{display:flex;gap:.5rem;align-items:flex-start;margin:1rem 0}.payroll-check input{width:auto;flex:0 0 auto}@media(max-width:600px){.payroll-card{gap:.5rem;align-items:flex-start}.payroll-card button{min-height:44px}.payroll-actions>*{flex:1 1 140px}.payrolls{overflow-wrap:anywhere}}

.payrolls .payroll-check{display:flex;flex-direction:row;gap:.55rem;align-items:flex-start}.payrolls .payroll-check input{appearance:auto;width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:2px 0 0}.payroll-actions .button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem .9rem;border:1px solid #d8d3dc;border-radius:8px;text-decoration:none;color:inherit;font-weight:600;background:#fff}


/* Propuesta local: solo Inicio, Alumnos y Grupos. No cambia estados ni acciones. */
.shell:has(.team-all-functions,.pupils-source,.groups-local) .main{background:#f7f8f5;color:#213c3c}
.shell:has(.team-all-functions,.pupils-source,.groups-local) .page-heading{padding:24px;border:1px solid #deeadc;border-radius:24px;background:linear-gradient(115deg,#eff7dc 0%,#e6f3ed 60%,#f1ecf9 100%);margin-bottom:22px;position:relative;overflow:hidden}
.shell:has(.team-all-functions,.pupils-source,.groups-local) .page-heading h1{color:#19423b;letter-spacing:-1.1px}
.shell:has(.team-all-functions,.pupils-source,.groups-local) .page-heading .eyebrow{color:#50735a;letter-spacing:1.8px;font-size:10px}
.shell:has(.team-all-functions,.pupils-source,.groups-local) .page-heading p{color:#45645b;line-height:1.5;margin-top:7px}
.shell:has(.team-all-functions,.pupils-source,.groups-local) .page-heading .refresh{flex-shrink:0;width:44px;height:44px;padding:12px;border-radius:50%;background:#ffffffd9;border-color:#ccded0;color:#315d4c}
.shell:has(.team-all-functions,.pupils-source,.groups-local) .card{border-radius:20px;border-color:#e2e8e2;box-shadow:0 3px 12px #173d3205}
.shell:has(.team-all-functions,.pupils-source,.groups-local) :is(button,a,input,select,summary):focus-visible{outline:3px solid #497b6c;outline-offset:3px}
.shell .team-all-functions{gap:14px}
.shell .team-all-functions .team-task{background:white;border:1px solid #e0e8e2;border-radius:22px;padding:22px;box-shadow:0 4px 12px #26473705;color:#263f3e;position:relative;overflow:hidden;min-width:0}
.shell .team-all-functions .team-task>svg{box-sizing:content-box;width:25px;height:25px;padding:11px;border-radius:15px;background:#e9f2db;color:#46632f;margin-bottom:16px}
.shell .team-all-functions .team-task:nth-child(4n+2)>svg{background:#ece6f8;color:#70598e}
.shell .team-all-functions .team-task:nth-child(4n+3)>svg{background:#e1f2ef;color:#326d62}
.shell .team-all-functions .team-task:nth-child(4n)>svg{background:#fbe9da;color:#8b5a33}
.shell .team-all-functions .team-task.featured{background:#f1f8e7;border-color:#cedfb5}
.shell .team-all-functions .team-task h2{font-size:18px;line-height:1.25;letter-spacing:-.3px;color:#223f38;margin:0 0 8px}
.shell .team-all-functions .team-task p{color:#5b6d66;font-size:13px;line-height:1.5;margin:0 0 14px}
.shell .team-all-functions .team-task>span{font-size:12px;font-weight:700;color:#3b6553}
.shell .team-all-functions .team-task:hover{border-color:#91ad93;box-shadow:0 5px 16px #26473710}
.shell:has(.pupils-source,.groups-local) .group-view-toggle{gap:6px;background:#eaf0e9;padding:6px;border:1px solid #dde5db;border-radius:17px;margin-bottom:20px;display:flex;flex-wrap:wrap}
.shell:has(.pupils-source,.groups-local) .group-view-toggle button{min-height:44px;border:0;border-radius:12px;box-shadow:none;background:transparent;color:#4c6359;padding:10px 14px}
.shell:has(.pupils-source,.groups-local) .group-view-toggle button[aria-pressed=true]{background:#fff;color:#204c3e;box-shadow:0 2px 7px #233d3010;font-weight:750}
.shell .pupils-source>.card:first-child,.shell .groups-local>.card:first-child{background:white;padding:22px}
.shell .pupils-source h2,.shell .groups-local h2{font-size:21px;letter-spacing:-.5px;color:#23463d}
.shell .pupils-source .pupils-search input,.shell .groups-local .daily-filters select{border-radius:13px;background:#f7faf6;border:1px solid #d6e2d6;min-height:48px;font-size:16px;color:#254139}
.shell .pupils-source .pupils-search{font-size:13px;color:#3e5f50}
.shell .pupils-source [role=status]{font-size:12px;color:#536d5b}
.shell .pupils-list{gap:12px}
.shell .pupil-card{padding:20px;border-left:4px solid #abc4a1}
.shell .pupil-card h3{font-size:16px;line-height:1.5;letter-spacing:.1px}
.shell .pupil-card .student-name{color:#285849;text-decoration-thickness:1px;text-underline-offset:4px}
.shell .pupil-card .pupil-group{padding:11px 12px;border:0;border-radius:12px;background:#f3f6ef;margin-top:9px}
.shell .pupil-card .pupil-group[data-site*=Maristas]{background:#f2ebf8;border-left:3px solid #b797cc}
.shell .pupil-card .pupil-group[data-site*=Complejo]{background:#eaf5eb;border-left:3px solid #95bf99}
.shell .pupil-card .pupil-group strong{font-size:13px;color:#3b5147}
.shell .pupil-card .pupil-group p{font-size:13px;line-height:1.6;margin:4px 0 0;color:#4b5f55}
.shell .group-map-card{border-radius:20px;box-shadow:none}
.shell .group-map-card .group-map-open{background:#ffffff75;border-radius:10px;padding:8px 10px}
@media(max-width:760px){
 .shell:has(.team-all-functions,.pupils-source,.groups-local) .main{padding:18px 14px 28px}
 .shell:has(.team-all-functions,.pupils-source,.groups-local) .page-heading{padding:19px 17px;border-radius:22px;gap:10px;margin-bottom:18px}
 .shell:has(.team-all-functions,.pupils-source,.groups-local) .page-heading h1{font-size:27px;line-height:1.1}
 .shell:has(.team-all-functions,.pupils-source,.groups-local) .page-heading p{font-size:13px}
 .shell .team-all-functions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .shell .team-all-functions .team-task{padding:17px 14px;border-radius:19px;min-height:0;display:flex;align-items:flex-start;flex-direction:column;text-align:left}
 .shell .team-all-functions .team-task>svg{width:23px;height:23px;padding:9px;margin-bottom:13px;border-radius:13px}
 .shell .team-all-functions .team-task h2{font-size:16px;line-height:1.25;margin-bottom:7px;overflow-wrap:anywhere}
 .shell .team-all-functions .team-task p{font-size:12px;line-height:1.5;margin-bottom:12px}
 .shell .team-all-functions .team-task>span{margin-top:auto;display:block}
 .shell:has(.pupils-source,.groups-local) .group-view-toggle{gap:3px;padding:5px}
 .shell:has(.pupils-source,.groups-local) .group-view-toggle button{font-size:12px;padding:9px 10px;flex:1 1 auto}
 .shell .pupils-source>.card:first-child,.shell .groups-local>.card:first-child{padding:18px}
 .shell .pupil-card{padding:17px 15px}
 .shell .pupils-list{grid-template-columns:1fr}
 .shell .pupils-source nav[aria-label='Crear, editar y eliminar alumnos'] button{font-size:12px;padding:9px 10px;flex:1 1 auto;border-radius:11px}
}
@media(prefers-reduced-motion:reduce){.shell .team-all-functions .team-task{transition:none}}
/* La foto existente conserva su contenido, con menos altura en el Inicio móvil. */
@media(max-width:760px){.shell:has(.team-all-functions) .section-photo-inicio{height:110px;margin:14px 0;border-radius:18px;overflow:hidden}.shell:has(.team-all-functions) .section-photo-inicio img{width:100%;height:100%;object-fit:cover}.shell:has(.team-all-functions) .main>.disclosure{padding:15px 18px;margin-bottom:15px}}
@media(max-width:760px){.shell .pupils-source>.card:first-child p{font-size:13px;line-height:1.5;margin:7px 0}.shell .pupils-source>.card:first-child p.muted{font-size:11px}.shell .pupils-source nav[aria-label='Crear, editar y eliminar alumnos'] button{flex:1 1 0;min-width:0;line-height:1.3;padding:9px 6px}.shell .pupils-source .pupils-search{margin-top:12px}.shell .pupils-source>.card:first-child [role=status]{margin-bottom:0}}

/* Copia visual: Asistencias y Huecos. Conserva controles, estados y colores de sede. */
.shell:has(.school-register,.huecos-simple) .main{background:#f7f8f5;color:#213c3c}
.shell:has(.school-register,.huecos-simple) .page-heading{padding:24px;border:1px solid #deeadc;border-radius:24px;background:linear-gradient(115deg,#eff7dc 0%,#e6f3ed 60%,#f1ecf9 100%);margin-bottom:22px}
.shell:has(.school-register,.huecos-simple) .page-heading h1{color:#19423b;letter-spacing:-1.1px}
.shell:has(.school-register,.huecos-simple) .page-heading .eyebrow{color:#50735a;letter-spacing:1.8px;font-size:10px}
.shell:has(.school-register,.huecos-simple) .page-heading p{color:#45645b;line-height:1.5}
.shell:has(.school-register,.huecos-simple) .page-heading .refresh{width:44px;height:44px;padding:12px;border-radius:50%;background:#ffffffd9;border-color:#ccded0;color:#315d4c;flex-shrink:0}
.shell:has(.school-register,.huecos-simple) :is(button,a,input,select,summary):focus-visible{outline:3px solid #497b6c;outline-offset:3px}
.shell :is(.school-register,.huecos-simple) .card{border-radius:20px;border-color:#e2e8e2;box-shadow:0 3px 12px #173d3205}
.shell :is(.school-register,.huecos-simple) h2{color:#214b42;letter-spacing:-.45px}
.shell :is(.school-register,.huecos-simple) label{color:#3c5b52;font-weight:600;min-width:0}
.shell :is(.school-register,.huecos-simple) :is(input:not([type=checkbox]),select){min-height:46px;border-radius:13px;background:#f9fbf8;border-color:#d5e2d7;color:#203c36;max-width:100%;font-size:16px}
.shell :is(.attendance-pane-tabs,.huecos-tabs){display:flex;gap:5px;padding:6px;background:#eaf0e9;border-radius:17px;border:1px solid #e1e8de}
.shell :is(.attendance-pane-tabs,.huecos-tabs) button{flex:1 1 0;min-width:0;min-height:44px;border:0;border-radius:12px;font-size:14px;line-height:1.3;padding:10px;background:transparent;color:#456052;box-shadow:none}
.shell :is(.attendance-pane-tabs,.huecos-tabs) button.primary{background:#fff;color:#244a3c;box-shadow:0 2px 8px #254c3610}
.shell .school-register .daily-filters,.shell .huecos-simple .gap-main-filters{gap:14px;margin-top:18px}
.shell :is(.register-count,.gap-count){border-radius:14px;background:#edf4df;padding:13px 16px;color:#36552a;font-size:14px}
.shell .school-register .group-map-card{border-radius:19px;padding:18px}
.shell .school-register .group-map-card summary{min-height:48px;gap:8px}
.shell .school-register .group-map-open{font-weight:600}
.shell .school-register .register-pupil{border-radius:16px;background:#ffffffdf;padding:18px;margin:12px 0;border:1px solid #ffffffc9}
.shell .school-register .attendance-stats{background:#f1f5ef;border-radius:12px;padding:12px;font-size:13px}
.shell .school-register .muted,.shell .huecos-simple .muted{line-height:1.55}
.shell .huecos-simple .gap-group-card{border-radius:20px;padding:20px}
.shell .huecos-simple .gap-place-count{border-radius:15px;background:#ffffffb8;color:#254c38;padding:10px 13px}
.shell .huecos-simple :is(.gap-members,.gap-more-filters){border-radius:13px;background:#ffffff85;padding:12px 14px;margin-top:12px}
.shell .huecos-simple :is(.gap-members,.gap-more-filters) summary{min-height:24px;font-weight:600;color:#345749}
.shell .huecos-simple .recovery-seat{border-radius:16px;min-height:100px;padding:15px}
.shell .huecos-simple .recovery-seat.free{background:#f2f9e6;border:1px solid #92b56b;color:#294d29}
.shell .huecos-simple .recovery-seat.taken{background:#f0eaf8;border:1px solid #c5b4d9;color:#49375c}
.shell .huecos-simple .recovery-seat.pending{border-style:dashed;background:#f6f4ee;color:#625f50}
.shell .huecos-simple .huecos-date{font-size:12px;color:#63756c}
@media(max-width:760px){
 .shell:has(.school-register,.huecos-simple) .page-heading{padding:20px 18px;border-radius:22px;margin-bottom:16px}
 .shell:has(.school-register,.huecos-simple) .page-heading h1{font-size:27px}
 .shell .class-view .attendance-photo{height:110px;overflow:hidden;border-radius:18px;margin:14px 0}
 .shell .class-view .attendance-photo img{height:100%;width:100%;object-fit:cover}
 .shell :is(.school-register,.huecos-simple)>.card{padding:18px}
 .shell .school-register .daily-filters,.shell .huecos-simple .gap-main-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .shell .school-register .daily-filters>label:first-child{grid-column:1/-1}
 .shell :is(.attendance-pane-tabs,.huecos-tabs) button{font-size:12px;padding:9px 5px}
 .shell :is(.school-register,.huecos-simple) .card>p{font-size:13px;line-height:1.5}
 .shell :is(.school-register,.huecos-simple) .muted{font-size:12px}
 .shell .school-register .register-pupil{padding:15px}
 .shell .huecos-simple .gap-group-card{padding:18px}
 .shell .huecos-simple .recovery-seat-list{gap:10px}
}

/* Reserva la pista: presentación, sin alterar estados ni acciones. */
.shell:has(.court-site-tabs) .main{background:#f7f8f5;color:#213c3c}
.shell:has(.court-site-tabs) .page-heading{padding:24px;border:1px solid #deeadc;border-radius:24px;background:linear-gradient(115deg,#eff7dc,#e6f3ed 60%,#f1ecf9);margin-bottom:20px}
.shell:has(.court-site-tabs) .page-heading h1{color:#19423b;letter-spacing:-1px}
.shell:has(.court-site-tabs) .page-heading .eyebrow{color:#50735a;letter-spacing:1.8px;font-size:10px}
.shell:has(.court-site-tabs) .page-heading .refresh{width:44px;height:44px;padding:12px;border-radius:50%;background:#ffffffd9;border-color:#ccded0;color:#315d4c;flex-shrink:0}
.shell:has(.court-site-tabs) :is(button,a,input,select,summary):focus-visible{outline:3px solid #497b6c;outline-offset:3px}
.shell .court-site-tabs{display:flex;gap:6px;padding:6px;background:#eaf0e9;border:1px solid #e1e8de;border-radius:17px;margin-bottom:18px}
.shell .court-site-tabs button{flex:1;min-width:0;min-height:44px;padding:10px 12px;border:0;border-radius:12px;background:transparent;color:#456052;line-height:1.3}
.shell .court-site-tabs button[aria-pressed=true]{background:#fff;color:#244a3c;box-shadow:0 2px 8px #254c3610}
.shell :is(.court-agenda>.card,.complejo-agenda){border-radius:22px;border-color:#e2e8e2;box-shadow:0 3px 12px #173d3205;padding:24px}
.shell :is(.court-agenda,.complejo-agenda) h2{color:#214b42;letter-spacing:-.45px}
.shell :is(.court-agenda,.complejo-agenda) .filters{gap:14px;padding:15px;background:#f0f5ee;border-radius:16px;margin:18px 0}
.shell :is(.court-agenda,.complejo-agenda) label{color:#3c5b52;font-weight:600;min-width:0}
.shell :is(.court-agenda,.complejo-agenda) :is(input:not([type=checkbox]),select){min-height:46px;border-radius:13px;border-color:#d5e2d7;background:#fff;color:#203c36;font-size:16px;max-width:100%}
.shell .court-legend{gap:7px;flex-wrap:wrap;margin:14px 0}
.shell .court-legend span{border-radius:9px;padding:7px 10px;font-size:12px;font-weight:600}
.shell :is(.court-scroll,.complex-grid-scroll){border:1px solid #d9e3d8;border-radius:15px;background:#fff;margin-top:14px}
.shell :is(.court-grid,.complex-grid) caption{background:#f0f5e8;color:#31523c;padding:12px;font-weight:700}
.shell :is(.court-grid,.complex-grid) th{background:#eaf1e5;color:#31523c}
.shell .court-cell{border-radius:8px;min-height:36px}
.shell .complex-slot{border-radius:10px}
.shell .court-size-toggle{border-radius:12px;min-height:44px}
.shell :is(.court-agenda,.complejo-agenda) .form-note{line-height:1.55;color:#5b6c61}
.shell .court-editor{border-left:4px solid #89ac70;scroll-margin-top:15px}
.shell .complex-dialog{border-radius:22px}
@media(max-width:760px){
 .shell:has(.court-site-tabs) .page-heading{padding:20px 18px;border-radius:22px;margin-bottom:16px}
 .shell:has(.court-site-tabs) .page-heading h1{font-size:27px}
 .shell :is(.court-agenda>.card,.complejo-agenda){padding:17px;border-radius:20px}
 .shell .court-site-tabs button{font-size:13px}
 .shell :is(.court-agenda,.complejo-agenda) .filters{display:grid;grid-template-columns:1fr;gap:12px;padding:13px}
 .shell :is(.court-agenda,.complejo-agenda) .form-note{font-size:12px}
 .shell :is(.court-agenda,.complejo-agenda)>.card>p{font-size:13px;line-height:1.5}
 .shell .court-legend span{padding:6px 8px;font-size:11px}
 .shell .court-scroll,.shell .complex-grid-scroll{max-width:100%;overscroll-behavior-x:contain}
 .shell .court-editor .row-between{gap:10px;flex-wrap:wrap}
}

/* Continuidad visual del equipo: sólo presentación. Estados y permisos intactos. */
.shell .main{background:#f7f8f5;color:#213c3c}
.shell .page-heading{padding:24px;border:1px solid #deeadc;border-radius:24px;background:linear-gradient(115deg,#eff7dc,#e6f3ed 60%,#f1ecf9);margin-bottom:20px}
.shell .page-heading h1{color:#19423b;letter-spacing:-1px}
.shell .page-heading .eyebrow{color:#50735a;letter-spacing:1.8px;font-size:10px}
.shell .page-heading .refresh{width:44px;height:44px;padding:12px;border-radius:50%;background:#ffffffd9;border-color:#ccded0;color:#315d4c;flex-shrink:0}
.shell .card{border-radius:22px;box-shadow:0 3px 12px #173d3206}
.shell :is(.card-heading,.section-head) h2,.shell .card h3{letter-spacing:-.35px}
.shell :is(button,input,select,textarea,summary):focus-visible,.student-ficha-dialog :is(button,input,select,textarea,summary):focus-visible{outline:3px solid #497b6c;outline-offset:3px}
.shell :is(.competition-tabs,.league-organizer-switch,.team-turns>.tabs,.download-tabs,.profile-notifications .push-tabs),.student-ficha-tabs{gap:7px;padding:7px;border:1px solid #e0e7dc;border-radius:17px;background:#eef2e9;flex-wrap:wrap}
.shell :is(.competition-tabs,.league-organizer-switch,.team-turns>.tabs,.download-tabs) button,.student-ficha-tabs button{border-radius:12px;min-height:44px;line-height:1.35}
.shell :is(.competition-tabs,.league-organizer-switch,.team-turns>.tabs,.download-tabs) button[aria-pressed=true],.student-ficha-tabs button[aria-pressed=true]{background:#285747;color:white;border-color:#285747}
.shell :is(.form-grid,.board80x-form,.download-filters,.daily-filters,.push-filters) :is(input:not([type=checkbox]):not([type=radio]),select,textarea),.student-ficha-dialog :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-radius:12px;border-color:#bfd0c5;min-height:44px;max-width:100%;box-sizing:border-box}
.shell :is(.form-grid,.board80x-form,.download-filters,.daily-filters,.push-filters) label{min-width:0;line-height:1.5}
.shell :is(.primary,.secondary){border-radius:12px}
.shell :is(.profile-notifications,.board80x,.competition-hub,.team-turns,.downloads-view,.school-prices) p{line-height:1.55}
.shell .profile-notifications{background:#fff;border:1px solid #dce7df;padding:24px}
.shell .profile-notifications>h2{color:#254d42;font-size:25px;margin-bottom:8px}
.shell .profile-notifications>.card{background:#f8faf5;box-shadow:none;border:1px solid #dfe8df;padding:20px;margin:16px 0}
.shell .profile-notification-group{border:1px solid #dfe5eb;border-radius:16px;background:#f5f3fa;margin:12px 0;padding:0 16px}
.shell .profile-notification-group>summary{min-height:48px;padding:14px 0;font-weight:650;color:#3e405c;line-height:1.5}
.shell .profile-notification-content{padding:0 0 16px}
.shell .push-actions{gap:10px;flex-wrap:wrap}
.shell .push-actions>button{min-height:44px;white-space:normal}
.shell .facts{padding:16px;border-radius:16px;background:#f3f6ee;overflow-wrap:anywhere}
.shell .board80x-note{box-shadow:0 4px 14px #213c3c06}
.shell .board80x .board80x-filters{padding:8px;border-radius:16px;background:#edf2e9}
.shell .board80x .board80x-filters button{border-radius:11px}
.shell .board80x .board80x-manage,.shell .board80x .board80x-history{padding:0 12px;border-radius:12px;background:#f5f7f2}
.shell .competition-hub>.competition-tabs{margin:18px 0}
.shell .tournament-integration{padding:20px;border:1px solid #dedfeb;border-radius:22px;background:linear-gradient(135deg,#f6f3fc,#f5f9f1)}
.shell .tournament-integration fieldset{min-width:0}
.shell .competition-pupil{border-color:#dce5dd}
.shell .league-organizer,.shell .league-match-card{border-radius:18px}
.shell .team-turns .section-head{padding:18px;border-radius:18px;background:linear-gradient(115deg,#f1f6df,#edf2fa)}
.shell .team-turns .card-body{border-radius:18px}
.shell .team-turns :is(button,summary){min-height:44px}
.shell .team-turns .tabs{margin-bottom:18px}
.shell .downloads-view>.card,.shell .school-prices>.card{border-color:#dfe7df}
.shell .download-filters{padding:16px;background:#f2f5ec;border-radius:16px;gap:14px}
.shell .school-prices .price-membership{border-radius:24px}
.student-ficha-dialog{border:1px solid #dce5dc;border-radius:24px;box-shadow:0 20px 70px #17362b30;color:#253e36}
.student-ficha-dialog::backdrop{background:#152e265e}
.student-ficha-dialog .student-ficha-heading{background:linear-gradient(110deg,#edf6de,#e7f2ee 60%,#f2ebf9);padding:18px;border-radius:17px;margin-bottom:16px}
.student-ficha-dialog .student-ficha-heading h2{color:#204a3c;letter-spacing:-.5px}
.student-ficha-dialog .student-ficha-group{border-radius:15px;border-color:#dce5dc;padding:16px;background:#f8faf5}
.student-ficha-dialog .student-ficha-tabs{margin:16px 0}
.student-ficha-dialog button{min-height:44px;border-radius:11px}
.shell :is(.exercise-library,.exercise-catalog,.exercise-card,.book-exercise,.library-card){border-radius:18px}
@media(max-width:620px){
 .shell .page-heading{padding:18px;border-radius:20px;gap:12px}
 .shell .page-heading h1{font-size:28px;line-height:1.15}
 .shell .card{border-radius:19px}
 .shell .profile-notifications{padding:17px}
 .shell .profile-notifications>.card{padding:16px;border-radius:15px}
 .shell :is(.competition-tabs,.league-organizer-switch,.team-turns>.tabs){gap:6px}
 .shell :is(.competition-tabs,.team-turns>.tabs) button{flex:1 1 135px;padding:10px 12px;white-space:normal}
 .shell .tournament-integration{padding:14px;border-radius:18px}
 .shell :is(.form-grid,.board80x-form,.download-filters,.daily-filters,.push-filters) :is(input:not([type=checkbox]):not([type=radio]),select,textarea),.student-ficha-dialog :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px}
 .shell .download-filters{grid-template-columns:minmax(0,1fr)}
 .shell .push-actions>button{flex:1 1 135px}
 .student-ficha-dialog{max-width:calc(100vw - 16px);padding:14px;border-radius:20px}
 .student-ficha-dialog .student-ficha-heading{padding:14px;gap:8px}
 .student-ficha-dialog .student-ficha-heading h2{font-size:21px;line-height:1.3}
 .student-ficha-dialog .student-ficha-tabs button{flex:1 1 auto;padding:10px}
}
.shell .payroll-card{padding:18px;border-radius:16px;border:1px solid #dfe5dc;background:#f6f8f2;margin:14px 0}.shell .payroll-actions{gap:10px;flex-wrap:wrap}.shell .payroll-actions>*{border-radius:12px;min-height:44px}
