:root{--yellow:#F5C400;--charcoal:#292929;--white:#FFFFFF;--red:#B90918;--light:#E6E6E6;--ink:#292929}*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,Arial,sans-serif;color:var(--ink);background:#f5f6f8}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.shell{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--charcoal);color:white;display:flex;flex-direction:column;flex-shrink:0}.brand{width:182px;max-height:90px;object-fit:contain;margin:22px auto 28px}.sidebar nav a{display:block;padding:13px 22px}.sidebar nav a:hover,.sidebar nav a:focus{color:var(--yellow);background:#3d3d3d}.side-bottom{margin-top:auto;padding:20px;color:#ddd;font-size:12px}.main{min-width:0;flex:1}.top{background:var(--white);border-bottom:1px solid var(--light);padding:17px 30px;display:flex;justify-content:space-between;align-items:center}.subtitle{color:#777;font-size:12px}.session{display:flex;gap:16px;align-items:center}.link{background:none;border:0;color:var(--red)}.content{max-width:1300px;margin:auto;padding:28px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.page-head h1{margin:0;font-size:27px}.page-head p{margin-top:4px;color:#666}.controls,.form-row,.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filters,.card{background:white;border:1px solid var(--light);border-radius:12px;padding:20px;margin:18px 0}.filters{margin:16px 0 28px}label{display:grid;gap:5px;font-size:13px;font-weight:600}input,select{border:1px solid #d4d7dc;background:white;border-radius:7px;padding:9px;min-width:150px}input[type=checkbox]{min-width:0;width:20px;height:20px}.primary{background:var(--yellow);border:0;border-radius:8px;padding:10px 16px;font-weight:700;color:var(--charcoal)}.primary:hover{filter:brightness(.94)}.outline{border:1px solid #ccc;background:white;border-radius:8px;padding:9px 14px;white-space:nowrap}.agenda-grid{display:grid;grid-template-columns:130px:190px:minmax(200px,1fr);background:white;border:1px solid var(--light);border-radius:12px;overflow:hidden}.grid-head{background:var(--charcoal);color:white;padding:12px 16px;font-weight:600}.grid-cell{min-height:68px;padding:16px;border-top:1px solid var(--light)}.time{font-weight:700}.pill{background:#fff3ad;padding:6px 10px;border-radius:20px}.empty{grid-column:1/-1;padding:28px;text-align:center;color:#777}.inline{display:flex;gap:10px;align-items:end;margin-top:12px}.inline input{width:95px;min-width:0}.alert,.success{padding:12px 15px;margin:12px 0;border-radius:8px}.alert{background:#fce9ec;color:#8c1020}.success{background:#e8f5e9;color:#226337}.login{max-width:380px;margin:80px auto}.login form{display:grid;gap:16px}table{border-collapse:collapse;width:100%;text-align:left}td,th{border-bottom:1px solid var(--light);padding:10px}@media(max-width:700px){.shell{display:block}.sidebar{width:100%;height:auto}.brand{height:48px;margin:10px 20px}.sidebar nav{display:flex}.side-bottom{display:none}.top{padding:12px}.content{padding:15px}.agenda-grid{grid-template-columns:85px 105px minmax(120px,1fr);font-size:12px}.grid-cell,.grid-head{padding:8px}.inline{display:block}}

.instructor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.instructor-col{border:1px solid var(--light);border-radius:10px;padding:12px}.instructor-col h3{font-size:15px;border-bottom:2px solid var(--yellow);margin:0 0 12px;padding-bottom:8px}.slot{background:#f2f3f6;color:#666;padding:8px;border-radius:6px;margin:6px 0}.lesson{background:#fff2a1;border-left:4px solid var(--yellow);padding:9px;border-radius:6px;margin:6px 0}.pending{border:1px solid var(--light);border-radius:8px;padding:12px;margin:10px 0}.warning{color:var(--red);font-weight:700}main table{display:block;overflow-x:auto;white-space:nowrap}
.agenda-grid{grid-template-columns:150px 190px minmax(200px,1fr)}
.slot.blocked{background:repeating-linear-gradient(45deg,#eff0f1,#eff0f1 7px,#e0e2e5 7px,#e0e2e5 14px);color:#73777a}
.schedule-form{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.schedule-form fieldset{border:1px solid var(--light);border-radius:8px;display:flex;gap:10px;flex-wrap:wrap}.schedule-form fieldset label{display:flex;align-items:center}
.wide-input{min-width:240px;width:100%;max-width:440px}textarea{font:inherit;border:1px solid #d4d7dc;border-radius:7px;padding:9px}td form.inline{margin-top:0}th{vertical-align:bottom}.hint{color:#666;font-size:13px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.settings-grid form{padding:16px;border:1px solid var(--light);border-radius:9px}.settings-grid form input,.settings-grid form select{max-width:100%;margin-bottom:8px}.edit-dialog{border:1px solid var(--light);border-radius:12px;max-width:min(700px,94vw);max-height:85vh;overflow:auto;padding:25px;box-shadow:0 15px 40px #0003}.edit-dialog::backdrop{background:#29292999}.close-dialog{float:right;border:0;background:none;cursor:pointer}.edit-details[open]{white-space:normal;min-width:650px}
.agenda-toolbar{display:flex;align-items:end;gap:16px;flex-wrap:wrap;background:#fff;border:1px solid var(--light);border-radius:12px;padding:16px 20px;margin:20px 0}.site-picker{display:flex;flex-wrap:wrap;gap:12px;border:1px solid #dedfe2;border-radius:8px;padding:8px 14px}.site-picker legend{font-size:12px;font-weight:700}.site-picker label{display:flex;align-items:center;gap:5px}.agenda-navigation{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0}.agenda-navigation strong{text-align:center;text-transform:capitalize}.agenda-site-head h2{margin:0}.agenda-site-head p{margin:4px 0 15px;color:#666}.timeline-wrap{overflow:auto;border:1px solid var(--light);border-radius:9px}.timeline{display:grid;grid-template-columns:70px repeat(var(--instructors), minmax(210px,1fr));min-width:max-content}.timeline-heading{background:#fff;border-bottom:1px solid var(--light);padding:12px;display:flex;align-items:center;gap:10px;min-width:210px}.timeline-heading.hour-heading{min-width:70px;font-weight:700}.avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#fff0aa;font-weight:700}.timeline-hour{background:#fafafa;padding:12px 8px;font-size:12px;border-right:1px solid var(--light);border-bottom:1px solid var(--light)}.timeline-cell{min-height:76px;padding:5px;border-right:1px solid var(--light);border-bottom:1px dashed var(--light);background:#fff}.timeline-cell.blocked{background:repeating-linear-gradient(45deg,#f1f2f4,#f1f2f4 6px,#e5e8ed 6px,#e5e8ed 12px)}.booking-card{display:grid;gap:3px;text-align:left;width:100%;height:100%;border:1px solid #e8b100;border-left:4px solid var(--yellow);border-radius:6px;background:#fff7d5;padding:7px;color:var(--ink)}.booking-card:hover{background:#ffefae}.booking-card small{color:#656565}.activity-card{border-left:4px solid var(--charcoal);background:#f3f3f3;border-radius:5px;padding:8px}.free-slot{font-size:12px;color:#666}.booking-detail{position:fixed;right:18px;top:90px;z-index:5;width:min(330px,calc(100vw - 36px));background:#fff;border:1px solid var(--light);box-shadow:0 12px 35px #0002;border-radius:10px;padding:20px}.booking-detail dl{display:grid;grid-template-columns:85px 1fr;gap:8px;border-top:1px solid var(--light);padding-top:12px}.booking-detail dt{font-weight:700}.booking-detail dd{margin:0}.calendar-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.day-summary{display:grid;gap:8px;background:#fff;border:1px solid var(--light);border-radius:10px;padding:15px}.day-summary:hover{border-color:var(--yellow)}.day-summary small{color:#666}.available-slots form{border-top:1px solid var(--light);padding:10px 0}.resource-choice[hidden]{display:none}
.parameters-head{padding:10px 0}.parameters-head h2{font-size:24px;margin:0 0 4px}.parameters-head p{color:#666;margin:0}.parameters-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.parameter-card{background:#fff;border:1px solid #dedfe2;border-radius:12px;overflow:hidden;box-shadow:0 3px 12px #2929290a}.parameter-card header{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--light);background:#fffdf3}.parameter-card h3{margin:0;font-size:17px}.parameter-card header p{margin:2px 0 0;color:#666;font-size:13px}.parameter-icon{display:grid;place-items:center;width:40px;height:40px;background:var(--yellow);border-radius:9px;font-size:22px;font-weight:700}.parameter-add{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:18px 20px}.parameter-add label{flex:1;min-width:175px}.parameter-add input,.parameter-add select{width:100%}.parameter-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:0 20px 14px}.parameter-filter label{flex:1;min-width:140px}.parameter-filter input,.parameter-filter select{width:100%;min-width:0}.parameter-card .hint{padding:0 20px}.parameter-list{padding:0 20px 18px;max-height:420px;overflow:auto}.parameter-columns,.parameter-row{display:grid;grid-template-columns:minmax(100px,1fr) 82px 95px;gap:10px;align-items:center}.parameter-columns{color:#777;text-transform:uppercase;font-size:11px;letter-spacing:.04em;font-weight:700;padding:9px 0}.parameter-row{padding:10px 0;border-top:1px solid #eee;font-size:13px;min-height:54px}.parameter-row strong{overflow-wrap:anywhere}.parameter-row small{font-weight:400;color:#666}.parameter-row .outline{padding:6px 8px;font-size:12px}.status{border-radius:20px;padding:4px 7px;text-align:center;font-size:11px}.status.active{color:#486421;background:#eff6df}.status.inactive{color:#852531;background:#fce9ec}.student-search{display:flex;align-items:end;gap:12px}.student-search label{flex:1}.student-search input{width:100%}.student-results{display:grid;gap:8px}.student-result{display:flex;align-items:center;gap:12px;border:1px solid #ececec;border-radius:8px;padding:12px}.student-result:hover{border-color:var(--yellow);background:#fffdf4}.student-result small{display:block;color:#666}.student-result>span:last-child{margin-left:auto;color:#855f00}.student-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.student-panel{margin:0;min-width:0}.student-panel h2{margin-top:0}.detail-list{display:grid;grid-template-columns:140px 1fr;gap:10px;border-top:1px solid var(--light);padding-top:15px}.detail-list dt{font-weight:700;color:#555}.detail-list dd{margin:0;overflow-wrap:anywhere}.package-box{border:1px solid #e6e6e6;border-radius:9px;padding:15px;margin:12px 0}.package-box h3{margin:0}.package-box p{margin:3px 0 12px;color:#666;font-size:13px}.count-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.count-grid span{background:#f8f8f8;padding:9px;border-radius:7px;font-size:12px}.count-grid strong{display:block;font-size:20px}.package-box details{border-top:1px solid var(--light);padding-top:9px}.balance-row{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--light);padding:15px 0}.balance-row small{display:block;color:#666}.balance-row>div:last-child{text-align:right}.balance-row>div:last-child strong{font-size:22px;color:#a81627}@media(max-width:950px){.parameters-grid,.student-panels{grid-template-columns:1fr}}@media(max-width:550px){.parameter-columns,.parameter-row{grid-template-columns:minmax(70px,1fr) 70px 80px;gap:5px}.count-grid{grid-template-columns:repeat(2,1fr)}.detail-list{grid-template-columns:100px 1fr}.student-search{display:block}}
.timeline-cell.reservable{cursor:pointer;background:#fffef3}.timeline-cell.reservable:hover{background:#fff3bf;box-shadow:inset 0 0 0 2px var(--yellow)}.timeline-cell.reservable .free-slot{font-weight:700;color:#665100}.booking-dialog{width:min(560px,94vw)}.booking-form{display:grid;gap:15px;clear:both}.booking-form input,.booking-form select{width:100%}.booking-form .primary{justify-self:start}.booking-dialog h2{margin-top:0}

.reserve-slot{display:block;width:100%;min-height:64px;border:1px dashed #c99b00;border-radius:7px;background:#fff9db;text-align:left;padding:12px;cursor:pointer;color:#554600;font:inherit;font-weight:700}.reserve-slot:hover,.reserve-slot:focus-visible{background:#ffec9b;outline:2px solid #bd9000}.unavailable-slot{display:block;padding:9px;color:#777}.timeline-cell:has(.unavailable-slot){background:#f7f7f7}

.booking-detail{position:fixed;inset:0;margin:auto;width:min(650px,calc(100vw - 32px));max-width:none;max-height:88vh;overflow:auto;padding:0;border:1px solid #e6e6e6;border-radius:16px;box-shadow:0 24px 70px #29292945}.booking-detail::backdrop{background:#29292999}.booking-detail-head{display:flex;align-items:start;justify-content:space-between;padding:22px 26px 17px;background:#fff9df;border-bottom:3px solid var(--yellow)}.booking-detail-head h2{margin:4px 0 0;font-size:23px}.booking-detail-head .close-dialog{float:none;font-size:27px;line-height:1;color:var(--charcoal)}.detail-kicker{color:#796200;font-size:11px;letter-spacing:.12em;font-weight:800}.booking-detail>h3{margin:20px 26px 12px}.booking-detail-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 26px 20px}.booking-detail-summary>div{background:#f5f5f5;border-radius:9px;padding:10px}.booking-detail-summary small,.booking-detail-summary strong{display:block}.booking-detail-summary small{color:#686868}.booking-edit-form{padding:20px 26px 26px;border-top:1px solid var(--light);display:grid;gap:16px}.booking-edit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.booking-edit-form select,.booking-edit-form input{width:100%;min-width:0}.booking-edit-actions{display:flex;justify-content:flex-end;gap:10px}.booking-edit-form .hint{margin:0}.booking-edit-form select:disabled,.booking-edit-form input:disabled{background:#f4f4f4}@media(max-width:570px){.booking-edit-grid,.booking-detail-summary{grid-template-columns:1fr}.booking-detail-head,.booking-edit-form{padding:18px}.booking-detail-summary{margin:0 18px 18px}.booking-detail>h3{margin:18px}}

.agenda-legend{display:flex;flex-wrap:wrap;gap:9px;margin-top:9px}.agenda-legend span,.reservation-state{display:inline-block;border-radius:30px;padding:4px 11px;font-size:12px;font-weight:700}.legend-pending,.state-pendiente{background:#fff1b6;color:#745900}.legend-confirmed,.state-confirmada{background:#dff4e3;color:#14642d}.legend-cancelled,.state-cancelada{background:#f9dce0;color:#9d1324}.booking-card.booking-pendiente{background:#fff1bd;border-color:#c99500;border-left-color:var(--yellow)}.booking-card.booking-confirmada{background:#e3f6e8;border-color:#91c9a0;border-left-color:#269149}.booking-card.booking-confirmada:hover{background:#d2eedb}.booking-card.booking-pendiente:hover{background:#ffe79c}.cancellation-mark{display:block;margin:5px 2px 0;border-left:3px solid var(--red);background:#fce9ec;color:#9c1324;font-size:11px;padding:3px 7px}.student-profile-head{padding:6px 0 16px}.student-profile-head h1{margin-top:4px}.account-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:8px 0 24px}.account-overview>div{padding:19px 22px;border-radius:11px;background:#fff;border:1px solid var(--light);border-top:4px solid var(--yellow)}.account-overview>div:last-child{border-top-color:var(--red)}.account-overview small,.account-overview strong{display:block}.account-overview small{color:#666}.account-overview strong{font-size:22px}.student-panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-panel-title h2{margin:0 0 12px}.student-add-payment{border:1px solid #e5dba3;background:#fffdf2;border-radius:9px;padding:13px;margin:16px 0}.student-add-payment summary{font-weight:700;cursor:pointer}.payment-entry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.payment-entry label{min-width:0}.payment-entry input,.payment-entry select{width:100%;min-width:0}.payment-entry button{justify-self:start;align-self:end}.student-edit-dialog{width:min(850px,95vw);max-width:none}.student-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.student-edit-form input,.student-edit-form select{width:100%;min-width:0}.student-edit-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.student-edit-dialog .close-dialog{font-size:24px}@media(max-width:650px){.account-overview{grid-template-columns:1fr}.student-edit-form,.payment-entry{grid-template-columns:1fr}}

.package-heading{display:flex;justify-content:space-between;align-items:start;gap:10px}.package-heading h3{margin:0}.package-delete{border-color:#dca9af;color:var(--red);font-size:12px;padding:6px 10px}.package-delete:hover{background:#fce9ec}.package-locked{font-size:11px;color:#777;max-width:165px;text-align:right}@media(max-width:600px){.package-heading{flex-wrap:wrap}}

/* Ficha de Alumno: pagos a ancho completo y listado por fecha de alta. */
.student-panels>.student-full-width{grid-column:1/-1}
.student-full-width table{width:100%;table-layout:auto}
.student-full-width td,.student-full-width th{white-space:normal;overflow-wrap:anywhere}
.student-list-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.student-new-link{display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap}
.student-list-card{margin-top:18px}
.student-list-heading h2{margin:0 0 5px}
.student-list-heading p{margin:0 0 18px;color:#666}
.student-table-wrap{overflow-x:auto}
.student-list-table{width:100%;min-width:710px}
.student-list-table th{background:#fff9e1;color:#292929}
.student-list-table tr:hover td{background:#fffdf4}
.student-open{display:inline-block;text-decoration:none;white-space:nowrap}
.student-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:18px}
.student-pagination span{color:#555}
@media(max-width:650px){.student-list-head{align-items:flex-start;flex-direction:column}.student-search .outline{display:inline-block;margin-top:10px}}

/* Administración de ingresos monetarios. */
.income-head{padding:5px 0 14px}.income-head h1{margin:4px 0}.income-head p{color:#626262;margin:0}
.income-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:8px 0 20px}
.income-overview>div{border:1px solid #dedfe2;border-top:4px solid var(--yellow);background:#fff;border-radius:11px;padding:18px 20px}
.income-overview>div:first-child{border-top-color:var(--red)}.income-overview small,.income-overview strong,.income-overview span{display:block}
.income-overview small,.income-overview span{color:#686868}.income-overview strong{font-size:25px;margin:4px 0}
.income-card{margin:0 0 19px}.income-section-title{display:flex;align-items:center;justify-content:space-between;gap:16px}
.income-section-title h2{margin:0 0 4px}.income-section-title p{margin:0 0 17px;color:#666}.income-count{white-space:nowrap;color:#705300;background:#fff3c5;border-radius:30px;padding:5px 11px}
.income-form{display:grid;grid-template-columns:minmax(230px,2fr) repeat(3,minmax(130px,1fr)) auto;gap:12px;align-items:end}
.income-form label,.income-filters label,.income-edit-form label{min-width:0}.income-form input,.income-form select,.income-filters input,.income-filters select,.income-edit-form input,.income-edit-form select{width:100%;min-width:0}
.income-form button{white-space:nowrap}.income-filters{display:flex;gap:14px;margin-bottom:16px}.income-filters label:first-child{flex:2}.income-filters label:last-child{flex:1}
.income-table-wrap{overflow-x:auto}.income-table{width:100%;min-width:900px}.income-table th{background:#fff9e1;color:#292929}.income-table td{vertical-align:middle}.income-table td strong,.income-table td small{display:block}.income-table td small{font-size:12px;color:#777}.income-table .income-amount{font-weight:700;white-space:nowrap}.income-row[hidden]{display:none}
.income-status{font-size:12px;font-weight:700;border-radius:30px;padding:5px 9px;white-space:nowrap}.income-status.paid{color:#14642d;background:#dff4e3}.income-status.void{color:#991c2a;background:#f9dce0}
.income-inline{display:inline-block}.income-table td:last-child{white-space:nowrap}.income-void{color:#9d1324;border-color:#ebc2c9}
.income-dialog{width:min(680px,95vw);max-width:none}.income-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.income-dialog-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}
@media(max-width:1050px){.income-form{grid-template-columns:repeat(2,minmax(0,1fr))}.income-form button{justify-self:start}}
@media(max-width:650px){.income-overview{grid-template-columns:1fr}.income-form,.income-edit-form{grid-template-columns:1fr}.income-filters{flex-direction:column}.income-dialog-actions{grid-column:1}}

/* DAN-MAR · diseño uniforme para módulos administrativos e informes. */
.sidebar nav a.active{background:#414141;color:var(--yellow);border-left:4px solid var(--yellow);padding-left:18px;font-weight:700}
.admin-workspace,.reports-page{max-width:1180px;margin:0 auto}
.admin-page-head{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:10px 0 22px}
.admin-page-head h1{font-size:30px;line-height:1.15;letter-spacing:-.03em;margin:6px 0 8px;color:var(--charcoal)}
.admin-page-head p{margin:0;max-width:760px;color:#666;font-size:15px}
.admin-page-accent{flex:0 0 58px;width:58px;height:58px;border-radius:15px;background:linear-gradient(145deg,var(--yellow) 0 72%,var(--red) 72% 100%);box-shadow:0 6px 18px #29292919}
.admin-save-hint{margin:0 0 18px;color:#686868;font-size:13px}
.admin-workspace>section.card,.reports-card{padding:26px 28px;margin:0 0 20px;border-radius:14px;border:1px solid #e0e0e0;box-shadow:0 4px 18px #2929290a}
.admin-workspace>section.card>h2,.reports-card-title h2{font-size:20px;line-height:1.3;letter-spacing:-.01em;margin:0 0 19px;padding:0 0 14px;border-bottom:1px solid #e6e6e6;position:relative}
.admin-workspace>section.card>h2:after,.reports-card-title h2:after{content:"";position:absolute;bottom:-1px;left:0;width:48px;height:3px;background:var(--yellow);border-radius:3px}
.admin-workspace>section.card>p{color:#666}
.admin-workspace>section.card>form.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:16px;align-items:end;background:#fffdf5;border:1px solid #f1e9ba;border-radius:11px;padding:18px;margin:0 0 22px}
.admin-workspace>section.card>form.form-row label{min-width:0}.admin-workspace>section.card>form.form-row input,.admin-workspace>section.card>form.form-row select,.admin-workspace>section.card>form.form-row textarea{min-width:0;width:100%;max-width:none}
.admin-workspace>section.card>form.form-row button{justify-self:start;white-space:nowrap}
.admin-workspace>section.card>form.form-row[hidden]{display:none}
.admin-workspace input:focus,.admin-workspace select:focus,.admin-workspace textarea:focus,.reports-page input:focus,.reports-page select:focus{outline:2px solid #f5c40080;outline-offset:1px;border-color:#b49300}
.admin-workspace .admin-table-scroll{max-width:100%;overflow-x:auto;border:1px solid #e8e8e8;border-radius:10px;margin:14px 0 5px}
.admin-workspace .admin-table-scroll table{width:100%;min-width:630px;margin:0;border-collapse:collapse}
.admin-workspace .admin-table-scroll th{background:#fff8df;color:#3b3423;font-size:12px;letter-spacing:.025em;text-transform:uppercase;white-space:nowrap}
.admin-workspace .admin-table-scroll td,.admin-workspace .admin-table-scroll th{padding:12px 14px;border-bottom:1px solid #ebebeb;text-align:left}
.admin-workspace .admin-table-scroll tr:last-child td{border-bottom:0}.admin-workspace .admin-table-scroll tr:hover td{background:#fffdf6}
.admin-workspace .admin-table-scroll td:has(.warning),.admin-workspace .admin-table-scroll td.warning{color:#9d1324;font-weight:700}
.admin-workspace .admin-table-scroll .inline{margin:0;align-items:center;flex-wrap:wrap}
.admin-workspace .admin-table-scroll .outline{padding:7px 10px;font-size:12px}
.admin-workspace details:not(.edit-details){padding:12px 0}.admin-workspace details summary{cursor:pointer;font-weight:700;color:#544200}
.admin-workspace .edit-details[open]{min-width:380px}.admin-workspace .edit-details .form-row{margin:12px 0;gap:10px}
.admin-workspace .edit-dialog{border:1px solid #e6e6e6;border-radius:15px;box-shadow:0 22px 65px #29292945;padding:26px;width:min(750px,94vw);max-width:none;max-height:88vh;overflow:auto}
.admin-workspace .edit-dialog::backdrop{background:#29292996}
.reports-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}
.reports-categories>div{display:grid;grid-template-columns:45px 1fr;column-gap:12px;align-items:center;background:#fff;border:1px solid #e2e2e2;border-top:3px solid var(--yellow);border-radius:12px;padding:16px 18px;box-shadow:0 3px 14px #29292909}
.reports-icon{grid-row:1/3;display:grid;place-items:center;background:#fff3be;color:#413500;border-radius:10px;font-size:22px;font-weight:700;width:42px;height:42px}
.reports-categories strong{font-size:15px}.reports-categories small{color:#666}
.reports-card-title p{color:#666;margin:-8px 0 20px}.reports-form{display:grid;grid-template-columns:1.5fr repeat(2,minmax(130px,1fr)) 1.4fr;gap:18px;align-items:end}
.reports-form label{min-width:0}.reports-form input,.reports-form select{width:100%;min-width:0}.reports-action{grid-column:1/-1;display:flex;align-items:center;gap:15px;border-top:1px solid #eee;padding-top:18px}.reports-action small{color:#666}
@media(max-width:900px){.reports-form{grid-template-columns:repeat(2,minmax(0,1fr))}.reports-categories{grid-template-columns:1fr}}
@media(max-width:600px){.admin-page-head{align-items:flex-start}.admin-page-accent{width:42px;height:42px;flex-basis:42px}.admin-workspace>section.card,.reports-card{padding:18px}.reports-form{grid-template-columns:1fr}.reports-action{flex-wrap:wrap}}
.reports-form{grid-template-columns:1.5fr repeat(2,minmax(130px,1fr))}
.reports-sites-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px}
.reports-sites{display:flex;flex-wrap:wrap;gap:10px 18px;min-width:0;border:1px solid #e2e2e2;border-radius:10px;padding:10px 16px 13px;background:#fffdf6}
.reports-sites legend{font-weight:700;padding:0 6px}
.reports-sites label{display:inline-flex;align-items:center;gap:7px;width:auto;margin:0;white-space:nowrap}
.reports-sites input[type=checkbox]{width:17px;min-width:17px;height:17px;accent-color:#f5c400;margin:0}
.reports-sites-actions>.outline{flex:none;white-space:nowrap}
.reports-table-wrap{max-width:100%;overflow:auto;border:1px solid #e1e1e1;border-radius:9px}
.reports-table{min-width:100%;border-collapse:collapse;white-space:nowrap}
.reports-table th,.reports-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e8e8e8}
.reports-table th{background:#fff4c6;color:#292929;position:sticky;top:0}
.reports-table tr:nth-child(even){background:#fafafa}
.content:has(.reports-page){max-width:1900px;width:100%;padding-inline:clamp(16px,2vw,34px)}
.reports-page{max-width:none;width:100%}
.reports-table{white-space:normal;table-layout:auto}
.reports-table th,.reports-table td{overflow-wrap:break-word;vertical-align:top}
.reports-table th{white-space:normal}
.custom-reports-page .custom-report-source,.custom-reports-page .custom-report-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:15px;align-items:end}
.custom-reports-page .custom-report-source input,.custom-reports-page .custom-report-source select,.custom-reports-page .custom-report-filters input,.custom-reports-page .custom-report-filters select{width:100%;min-width:0}
.custom-report-columns{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:9px}
.custom-report-columns label{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid #e5e5e5;border-radius:8px;background:#fffdf5;overflow-wrap:anywhere}
.custom-report-columns input,.custom-report-share input{flex:none}
.custom-report-actions,.custom-report-save{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.custom-report-save{border-top:1px solid #e6e6e6;margin-top:18px;padding-top:18px}
.custom-report-save>label:first-child{flex:1;min-width:220px}.custom-report-save>label:first-child input{width:100%}
.custom-report-share{display:flex;align-items:center;gap:8px}.custom-reports-page .admin-table-scroll{overflow:auto}
@media(max-width:750px){.reports-form{grid-template-columns:1fr}.reports-sites-actions{flex-wrap:wrap}.reports-sites{width:100%}}

/* Agenda de 20 minutos: cada reserva colorea todos los segmentos que ocupa. */
.timeline .timeline-hour{font-variant-numeric:tabular-nums;color:#4d4d4d}
.timeline .timeline-cell{min-height:32px}
.timeline .reserve-slot{min-height:0;height:100%;padding:8px 10px;font-size:12px}
.timeline .booking-card{min-height:46px}
.timeline .activity-card{min-height:32px;height:100%}
.timeline .occupied-segment{background:#fff}
/* El recuadro completo ocupa varias filas de la grilla, sin cortes entre horas. */
.timeline{grid-auto-flow:row;align-items:stretch}
.timeline .timeline-cell{min-height:0;height:100%}
.timeline .booking-card,.timeline .activity-card{height:100%;align-content:center}
.timeline .reserve-slot{display:flex;align-items:center;height:100%}

/* Agenda: sedes apiladas y acciones en ventanas */
.agenda-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.agenda-toolbar .site-picker{display:grid;grid-template-columns:1fr;gap:7px;min-width:185px}
.agenda-toolbar .site-picker label{display:flex;align-items:center;gap:9px;white-space:nowrap}
.agenda-site{width:100%;max-width:100%;overflow:hidden}
.agenda-site .timeline{min-width:100%;grid-template-columns:70px repeat(var(--instructors),minmax(0,1fr))}
.agenda-site .timeline-heading{min-width:0}
.agenda-action-dialog{width:min(850px,96vw);max-width:none;padding:0;border:1px solid var(--light);border-radius:16px}
.agenda-action-dialog::backdrop{background:#292929aa}
.agenda-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:20px;background:#fff8dd;border-bottom:3px solid var(--yellow);padding:20px 26px}
.agenda-dialog-head h2{margin:2px 0 0;font-size:23px}
.agenda-dialog-head small{font-size:11px;font-weight:800;letter-spacing:.1em;color:#735a00}
.agenda-dialog-head .close-dialog{float:none;font-size:27px;line-height:1;color:var(--charcoal)}
.agenda-dialog-body{padding:22px 26px 27px}
.agenda-dialog-body>p:first-child{margin-top:0;color:#606060}
.agenda-action-dialog .schedule-form,.agenda-action-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.agenda-action-dialog label,.agenda-action-dialog input,.agenda-action-dialog select{min-width:0;width:100%}
.agenda-action-dialog .schedule-form fieldset{display:grid;align-content:start;gap:7px;min-width:0;margin:0;padding:12px}
.agenda-action-dialog .resource-choice{width:auto;justify-content:start}
.agenda-action-dialog .resource-choice input{width:20px;min-width:20px}
.agenda-action-dialog .schedule-form>.primary{grid-column:1/-1;justify-self:end}
.agenda-action-form .full-row{grid-column:1/-1}
.agenda-dialog-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}
.agenda-action-dialog details{margin-top:18px;padding:14px;border:1px solid var(--light);border-radius:9px}
.agenda-action-dialog details summary{font-weight:700;cursor:pointer}
.agenda-action-dialog details form{margin-top:14px}
.package-summary{display:flex;flex-wrap:wrap;gap:10px;padding:13px;border-radius:9px;border:1px solid #e7d889;background:#fffbee;font-size:13px}
.package-summary strong{width:100%;font-size:15px}
.package-summary span{padding:5px 9px;border-radius:6px;background:white;border:1px solid #e9e3ca}
.package-summary small{width:100%;color:#606060}
@media(max-width:650px){.agenda-action-dialog .schedule-form,.agenda-action-form{grid-template-columns:1fr}.agenda-dialog-head,.agenda-dialog-body{padding:18px}.agenda-site .timeline{min-width:max-content;grid-template-columns:70px repeat(var(--instructors),minmax(200px,1fr))}.agenda-head-actions{margin-top:12px}}
.booking-extra-form{border-top:1px solid var(--light);padding:18px 26px;display:grid;gap:12px}
.booking-extra-form[hidden]{display:none}
.booking-extra-form h3{margin:0;font-size:17px}
.booking-extra-form select,.booking-extra-form input{width:100%;min-width:0}
.booking-extra-form button{justify-self:end}
.agenda-pending-item{padding:16px;margin:12px 0;border:1px solid var(--light);border-left:4px solid var(--yellow);border-radius:9px;background:#fff}
.agenda-pending-item .form-row{margin-top:12px}
.content:has(.agenda-toolbar){max-width:none;width:100%;padding:24px clamp(16px,2vw,32px)}

/* Tres sedes visibles lado a lado en la vista diaria */
.agenda-toolbar{align-items:center}
.agenda-toolbar .site-picker{display:flex;flex-direction:row;align-items:center;gap:12px;min-width:0;padding:8px 14px}
.agenda-sites{display:grid;grid-template-columns:repeat(var(--sites),minmax(0,1fr));align-items:start;gap:14px}
.agenda-sites .agenda-site{min-width:0;margin:0;padding:14px}
.agenda-sites .agenda-site-head h2{font-size:19px}
.agenda-sites .timeline-wrap{width:100%;overflow-x:auto}
.agenda-sites .timeline{min-width:100%;grid-template-columns:49px repeat(var(--instructors),minmax(104px,1fr))}
.agenda-sites .timeline-heading{min-width:0;padding:7px 5px;font-size:11px;gap:5px;overflow-wrap:anywhere}
.agenda-sites .timeline-heading .avatar{width:25px;height:25px;flex-shrink:0;font-size:10px}
.agenda-sites .timeline-heading.hour-heading{min-width:49px}
.agenda-sites .timeline-hour{padding:6px 3px;font-size:11px}
.agenda-sites .booking-card,.agenda-sites .reserve-slot,.agenda-sites .activity-card{padding:5px;font-size:11px;overflow-wrap:anywhere}
.agenda-sites .booking-card small{font-size:10px}
@media(max-width:1000px){.agenda-sites{grid-template-columns:repeat(var(--sites),minmax(0,1fr));gap:8px}.agenda-sites .agenda-site{padding:8px}}
@media(max-width:700px){.agenda-sites{display:flex;overflow-x:auto}.agenda-sites .agenda-site{min-width:300px;width:300px;flex:none}.agenda-toolbar .site-picker{flex-wrap:wrap}}

/* Reservas pendientes: celeste DAN-MAR para distinguirlas de la disponibilidad amarilla */
.agenda-legend .legend-pending{background:#caeeff;color:#125278}
.agenda-sites .booking-card.booking-pendiente{background:#8edcff;border-color:#4db6e4;border-left-color:#168ac2;color:#123c51}
.agenda-sites .booking-card.booking-pendiente:hover{background:#6fcff9}
.agenda-sites .booking-card.booking-pendiente small{color:#24556d}
.agenda-action-dialog#habilitar-agenda{width:min(1120px,98vw);max-width:none;max-height:calc(100dvh - 22px)}
#habilitar-agenda .agenda-dialog-head{padding:16px 24px}
#habilitar-agenda .agenda-dialog-body{padding:15px 24px 20px}
#habilitar-agenda .agenda-dialog-body>p{margin:5px 0 12px}
#habilitar-agenda .schedule-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 13px}
#habilitar-agenda .schedule-form fieldset{grid-column:span 2}
#habilitar-agenda .schedule-form>.primary{grid-column:1/-1}
#habilitar-agenda details{margin-top:10px;padding:10px 13px}
#habilitar-agenda details .form-row{display:grid;grid-template-columns:1.2fr 1.3fr .6fr auto;align-items:end;gap:12px}
#habilitar-agenda details .form-row input,#habilitar-agenda details .form-row select{min-width:0;width:100%}
@media(max-width:750px){#habilitar-agenda .schedule-form{grid-template-columns:repeat(2,minmax(0,1fr))}#habilitar-agenda details .form-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){#habilitar-agenda .schedule-form,#habilitar-agenda details .form-row{grid-template-columns:1fr}#habilitar-agenda .schedule-form fieldset{grid-column:1}}

/* Edición compacta de sedes y liquidaciones */
.sede-edit-table{width:100%;table-layout:fixed}
.sede-edit-table th:first-child,.sede-edit-table td:first-child{width:24%}
.sede-edit-table th:nth-child(2),.sede-edit-table td:nth-child(2){width:52%}
.sede-edit-table th:nth-child(3),.sede-edit-table td:nth-child(3){width:15%}
.sede-edit-table th:nth-child(4),.sede-edit-table td:nth-child(4){width:9%}
.sede-edit-table input,.sede-edit-table select{width:100%;min-width:0}
.sede-edit-table .sede-address{width:100%;max-width:none}
.liquidation-filters{display:flex;align-items:end;gap:15px;flex-wrap:wrap;border-top:3px solid var(--yellow)}
.liquidation-filters select{min-width:275px}
.liquidation-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}
.liquidation-summary>div{background:#fff;border:1px solid var(--light);border-top:4px solid var(--yellow);padding:17px 20px;border-radius:10px}
.liquidation-summary small,.liquidation-summary strong{display:block}.liquidation-summary small{color:#666}.liquidation-summary strong{font-size:23px}
.liquidation-panel h2{margin:0 0 8px}.liquidation-panel-head p{margin:0 0 18px;color:#666}
.liquidation-panel td,.liquidation-panel th{white-space:nowrap}
.liquidation-panel input[type=checkbox]{width:20px;min-width:20px;accent-color:#c99e00}
.liquidation-status{border-radius:20px;padding:4px 10px;font-size:12px;font-weight:700}
.liquidation-status.open{background:#fff2bc;color:#755800}.liquidation-status.paid{background:#dff2e2;color:#1a6830}.liquidation-status.missing{background:#fae0e3;color:#a42231}
.liquidation-pay{display:flex;align-items:end;justify-content:flex-end;gap:14px;flex-wrap:wrap;margin-top:18px;padding-top:18px;border-top:1px solid var(--light)}
@media(max-width:700px){.liquidation-summary{grid-template-columns:1fr}.sede-edit-table{min-width:650px}}
.liquidation-selected{display:grid;gap:2px;margin-right:auto;color:#666;font-size:12px}.liquidation-selected strong{color:var(--charcoal);font-size:20px}
.student-enrollment .card{padding:24px 28px;border-top:3px solid var(--yellow)}
.student-enrollment h2{margin:0 0 18px;font-size:19px}
.student-enrollment h2 small{font-size:12px;color:#666;font-weight:500;margin-left:8px}
.student-enrollment .card p{margin:-8px 0 18px;color:#666}
.enrollment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:end}
.enrollment-grid label,.enrollment-grid input,.enrollment-grid select{min-width:0;width:100%}
.enrollment-grid input[type=checkbox]{width:20px}
.enrollment-grid input[readonly]{background:#fff9df;font-weight:700}
.enrollment-actions{display:flex;justify-content:flex-end;margin:18px 0 30px}
.enrollment-actions button{padding:13px 25px}
.admin-module-gastos>section.card>form.form-row{grid-template-columns:.9fr 1fr 1.3fr 1fr 1fr .9fr auto;gap:9px;padding:14px}
.admin-module-gastos .money-cell{white-space:nowrap;font-weight:700}
@media(max-width:1100px){.admin-module-gastos>section.card>form.form-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.enrollment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.enrollment-grid,.admin-module-gastos>section.card>form.form-row{grid-template-columns:1fr}}
.admin-module-pagos .money-cell{white-space:nowrap;font-weight:700}
.parameter-card .parameter-row:has(input[name="cuit"]){grid-template-columns:minmax(0,1fr) minmax(115px,145px) auto}
.parameter-card .parameter-row:has(input[name="cuit"]) input{min-width:0;width:100%;padding:7px;font-size:12px}
@media(max-width:600px){.parameter-card .parameter-row:has(input[name="cuit"]){grid-template-columns:minmax(0,1fr) minmax(95px,120px) auto}}
.admin-module-pagos .payment-receipt{padding:0!important}
.payment-receipt summary{display:inline-block;cursor:pointer;color:#705600;font-weight:700;white-space:nowrap}
.payment-receipt-item{display:grid;gap:3px;padding:10px 0;border-top:1px solid #e8e8e8;font-size:12px;min-width:250px}
.payment-receipt-item:first-of-type{margin-top:8px}
.payment-receipt-item span{color:#555}

/* Comprobantes, consulta diaria y permisos. */
.receipt-dialog{width:min(620px,94vw)}.receipt-dialog .close-dialog,.income-receipts-dialog .close-dialog{font-size:24px}.receipt-details{background:#fffdf4;border:1px solid #f1df99;border-radius:10px;padding:15px 18px;margin:14px 0}.receipt-details p{margin:6px 0}.income-date-filter{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:0 0 15px}.income-date-filter label{display:grid;gap:4px}.income-date-filter input{min-width:175px}.income-receipt-summary{border:1px solid #dedfe2;border-top:4px solid var(--yellow);border-radius:11px;padding:18px 20px;background:#fff;text-align:left;cursor:pointer;font:inherit}.income-receipt-summary:hover{background:#fff9e1}.income-receipt-summary small,.income-receipt-summary strong,.income-receipt-summary span{display:block}.income-receipt-summary small,.income-receipt-summary span{color:#686868}.income-receipt-summary strong{font-size:25px;margin:4px 0;color:var(--charcoal)}.income-receipts-dialog{width:min(650px,94vw)}.enrollment-credentials{grid-column:1/-1;background:#fff9e1;border-radius:8px;padding:10px 14px}.permission-employee{border:1px solid #e3e3e3;border-top:3px solid var(--yellow);border-radius:10px;margin:16px 0;padding:18px}.permission-employee>div:first-child{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:10px}.permission-employee span{color:#555}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 16px;margin:15px 0}.permission-grid label{display:flex;align-items:center;gap:8px;min-width:0}.permission-grid label span{overflow-wrap:anywhere;color:var(--charcoal)}.permission-grid input{width:auto;flex:none}

.employee-access-picker{display:flex;align-items:end;gap:12px;flex-wrap:wrap;background:#fffdf2;border:1px solid #f0dfa1;border-radius:10px;padding:18px}.employee-access-picker label{flex:1;min-width:240px}.employee-access-picker select{width:100%}.employee-permission-dialog{width:min(830px,95vw)!important;max-height:90vh!important}.employee-permission-dialog .close-dialog{font-size:24px}.employee-permission-dialog h3{font-size:16px;margin:24px 0 8px}.employee-credentials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.employee-credentials input{width:100%}.employee-permission-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.employee-sites{border-top:1px solid #ececec;margin-top:22px;padding-top:4px}.employee-sites .form-row{margin:10px 0}.employee-sites p{color:#666}@media(max-width:650px){.employee-credentials{grid-template-columns:1fr}.employee-access-picker{display:grid}.employee-permission-actions{flex-wrap:wrap}}

.liquidation-alert{background:#fff3d1;border-left:4px solid #c79200;color:#654900;padding:12px 15px;border-radius:8px}.liquidation-franges{min-width:235px}.liquidation-franges summary{cursor:pointer;color:#745600;font-weight:700}.liquidation-franges-body{margin-top:8px;padding:9px 12px;border:1px solid #e7e0ca;border-radius:8px;background:#fffdf5;min-width:285px}.liquidation-frange{display:grid;gap:3px;padding:8px 0;border-bottom:1px solid #eee6ca;font-size:12px}.liquidation-frange:last-child{border-bottom:0}.liquidation-frange.invalid{color:#a40e20}.liquidation-frange-alert{font-weight:700}.liquidation-franges-body p{margin:10px 0 0;font-weight:700}

/* Clases cerradas en la agenda: conservan su lugar y el detalle de la reserva. */
.agenda-legend .legend-closed,.booking-card.booking-realizada,.agenda-sites .booking-card.booking-realizada{background:#1468b0;border-color:#0e5593;border-left-color:#063e70;color:#fff}
.booking-card.booking-realizada:hover,.agenda-sites .booking-card.booking-realizada:hover{background:#0e599c}
.booking-card.booking-realizada small,.agenda-sites .booking-card.booking-realizada small{color:#fff}
.agenda-legend .legend-absent,.booking-card.booking-ausente,.agenda-sites .booking-card.booking-ausente{background:#b80918;border-color:#950816;border-left-color:#71000a;color:#fff}
.booking-card.booking-ausente small,.agenda-sites .booking-card.booking-ausente small{color:#fff}

/* La ficha del alumno identifica las clases cerradas que consumieron cupo. */
.package-closed-count{background:#e9f3fc!important;border:1px solid #a8ccea;color:#104e84}
.package-closed-count strong{color:#104e84}.package-closed-count small{display:block;font-size:11px;color:#355b7c}
.student-panel .reservation-state.state-realizada{background:#1468b0;color:#fff}
.student-panel .reservation-state.state-ausente{background:#f9dce0;color:#9d1324}

.agenda-no-slots{color:#8b1d2c;font-weight:700;font-size:12px;margin:8px 0 4px}
#inscripcion-otro-contenedor[hidden]{display:none!important}
.student-account{max-width:1180px;margin:0 auto}
.student-account-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:4px 0 24px}
.student-account-header h1{margin:5px 0 3px;font-size:30px}
.student-account-header p{margin:0;color:#686868}
.student-account-header .primary{white-space:nowrap}
.student-account-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:20px}
.student-account-summary>div{background:#fff;border:1px solid #dedede;border-top:4px solid var(--yellow);border-radius:11px;padding:17px 20px;box-shadow:0 4px 14px #2929290a}
.student-account-summary>div:last-child{border-top-color:var(--red)}
.student-account-summary small,.student-account-summary strong{display:block}
.student-account-summary small{color:#606060;font-size:12px}
.student-account-summary strong{font-size:23px;line-height:1.3;margin-top:5px}
.student-account>.card{border-radius:13px;padding:25px 27px;box-shadow:0 4px 18px #29292909;margin:18px 0}
.student-account-section-head{border-bottom:1px solid #e7e7e7;margin-bottom:18px;padding-bottom:12px;position:relative}
.student-account-section-head:after{content:"";position:absolute;bottom:-1px;left:0;width:46px;height:3px;background:var(--yellow)}
.student-account-section-head small{display:block;font-size:11px;letter-spacing:.09em;font-weight:800;color:#806200;margin-bottom:3px}
.student-account-section-head h2{margin:0;font-size:20px}
.student-account>.card>p{color:#5f5f5f}
.student-package-form{display:grid;grid-template-columns:minmax(145px,1fr) minmax(260px,2.6fr) auto;gap:13px;align-items:end}
.student-package-form label{min-width:0}.student-package-form select{width:100%;min-width:0}
.student-package-form button{white-space:nowrap}
.student-account-table{overflow-x:auto;border:1px solid #e7e7e7;border-radius:9px}
.student-account-table table{width:100%;min-width:720px}
.student-account-table th{background:#fff6d5;font-size:12px;white-space:nowrap}
.student-account-table td,.student-account-table th{padding:12px 11px}
.student-account-table tbody tr:nth-child(even){background:#fafafa}
.student-account-table td:first-child strong,.student-account-table td:first-child small{display:block}
.student-account-table td:first-child small{color:#666;margin-top:4px}
.student-money{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:650}
.student-debt{color:#a40718}
.student-reservation-status{border-radius:30px;padding:5px 10px;font-size:12px;font-weight:700;text-transform:capitalize;background:#eee}
.student-status-pendiente{background:#e4f5fc;color:#176285}.student-status-confirmada{background:#e1f4e4;color:#14642d}
.student-status-cancelada,.student-status-ausente{background:#fbe3e6;color:#a01829}.student-status-realizada{background:#175fa6;color:#fff}
.student-cancel-form{display:flex;gap:8px;align-items:center}.student-cancel-form input{min-width:150px;width:175px}
@media(max-width:800px){.student-account-summary{grid-template-columns:1fr}.student-package-form{grid-template-columns:1fr}.student-account-header{align-items:flex-start;flex-wrap:wrap}.student-account>.card{padding:19px}}
.agenda-site-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.agenda-edit-dialog{width:min(1040px,96vw);max-width:none;max-height:90vh;overflow:auto}
.agenda-edit-row{display:grid;grid-template-columns:repeat(2,minmax(145px,1fr)) 90px 120px auto;gap:9px;align-items:end;padding:12px 0;border-bottom:1px solid #e6e6e6}
.agenda-edit-row small{grid-column:1/-1;color:#5f5f5f}
.agenda-edit-row .agenda-edit-check{display:flex;flex-direction:row;align-items:center;gap:6px;min-height:42px}
.agenda-edit-row .agenda-edit-check input{width:auto;min-width:0}
@media(max-width:800px){.agenda-edit-row{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-site-head{flex-wrap:wrap}}
.student-week-section{margin:16px 0;padding:20px}.student-week-section h2{margin:0 0 16px}.student-week-scroll{overflow-x:auto;border:1px solid #e1e2e5;border-radius:12px}.student-week-grid{width:100%;border-collapse:collapse;table-layout:fixed;min-width:790px}.student-week-grid th,.student-week-grid td{border-bottom:1px solid #e6e6e6;border-right:1px solid #e6e6e6;padding:8px;vertical-align:top}.student-week-grid thead th{background:#292929;color:#fff;text-align:left;text-transform:capitalize;padding:13px}.student-week-grid thead th:first-child{width:76px}.student-week-grid thead small{display:block;color:#ffe06a;font-weight:400;margin-top:4px}.student-week-grid tbody th{background:#f5f5f5;color:#444;font-size:12px;white-space:nowrap}.student-week-grid tbody td{height:86px;background:#fff}.student-week-slot,.student-week-booked{display:grid;gap:5px;padding:9px;border-radius:9px;min-height:70px}.student-week-slot{background:#eaf8ee;border:1px solid #83c892;color:#155a2d}.student-week-slot strong{font-size:13px}.student-week-slot small,.student-week-booked small{display:block;font-size:11px}.student-week-slot button{width:100%;padding:7px 10px}.student-week-booked{background:#d1effd;color:#124769;font-weight:700;border:1px solid #8ed3f2}.student-week-unavailable{padding:11px;background:#f5f5f5;color:#777;border-radius:8px;font-size:12px}.student-week-empty{color:#b8b8b8}.student-week-grid tr:last-child td,.student-week-grid tr:last-child th{border-bottom:0}
.employee-row-actions{display:flex;align-items:center;gap:9px;flex-wrap:nowrap}.employee-row-actions form.inline{margin:0}.employee-row-actions button{white-space:nowrap}.employee-edit-dialog{width:min(720px,94vw)!important;max-width:none}.employee-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.employee-edit-form label{min-width:0}.employee-edit-form input,.employee-edit-form select{width:100%;min-width:0}.employee-edit-buttons{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;margin-top:12px}@media(max-width:600px){.employee-edit-form{grid-template-columns:1fr}}
.package-edit-dialog{width:min(680px,94vw)!important;max-width:none}.package-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.package-edit-form label{min-width:0}.package-edit-form input,.package-edit-form select{width:100%;min-width:0}.package-name,.package-edit-buttons{grid-column:1/-1}.package-edit-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}@media(max-width:600px){.package-edit-form{grid-template-columns:1fr}}
.permission-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:20px}.employee-permission-dialog .permission-heading h3{margin:0}.permission-select-all{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer}.permission-select-all input{width:auto}
.site-permission-grid{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 4px}.site-permission-grid label{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;background:#fffdf4;border:1px solid #eadfae;border-radius:8px;cursor:pointer}.site-permission-grid input{width:auto;margin:0}
.booking-account { margin: 1rem 0; padding: 1rem; border: 1px solid #dedee0; border-radius: 14px; background: #fff; max-height: 36vh; overflow: auto; }
.booking-account:empty { display: none; }
.booking-account .account-overview { margin-bottom: 1rem; }
.booking-account h3 { margin: 1rem 0 .5rem; font-size: 1rem; color: #292929; }
.booking-account .student-account-table { overflow-x: auto; }
.booking-account table { width: 100%; min-width: 540px; }
.class-note-form { display: grid; gap: .65rem; padding: .75rem 0; min-width: 220px; }
.class-note-form textarea { min-height: 72px; }
.vehicle-expiry-dialog { width: min(680px, 96vw); border-top: 5px solid #B90918; }
.vehicle-expiry-dialog .primary { margin-top: 1rem; }
.liquidacion-payment { display: flex; align-items: end; justify-content: flex-end; gap: 1rem; flex-wrap: wrap; padding: 1rem 0; }
.liquidacion-payment strong { margin-right: auto; }
.student-site-form { margin-top: 1.25rem; padding: 1rem; background: #fffdf5; border: 1px solid #eadb94; border-radius: 12px; }
.student-site-form fieldset { border: 0; padding: 0; margin: 0 0 .8rem; }
.student-site-form legend { color: #292929; font-weight: 700; margin-bottom: .7rem; }
.student-site-choices { display: flex; flex-wrap: wrap; gap: .6rem; }
.student-site-choices label { display: inline-flex; align-items: center; gap: .55rem; padding: .65rem .9rem; border: 1px solid #d4d4d4; border-radius: 9px; background: #fff; cursor: pointer; }
.student-site-choices input { width: auto; accent-color: #B90918; }
.student-site-form .hint { margin: .7rem 0 0; }

/* Parejas de recursos para habilitar la agenda */
#habilitar-agenda .pair-intro,#habilitar-agenda .agenda-pair-list{grid-column:1/-1}
#habilitar-agenda .pair-intro{margin-top:9px;border-bottom:1px solid #e6e6e6;padding-bottom:8px}
#habilitar-agenda .pair-intro p{margin:5px 0 0;color:#626262}
#habilitar-agenda .agenda-pair-list{display:grid;gap:9px;max-height:32vh;overflow-y:auto}
#habilitar-agenda .agenda-pair-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:12px;align-items:end;background:#fff9e9;border:1px solid #ecdfaf;border-radius:10px;padding:10px}
#habilitar-agenda .agenda-pair-row label{min-width:0}
#habilitar-agenda .agenda-pair-row select{width:100%}
#habilitar-agenda #agregar-pareja{grid-column:1/-1;justify-self:start;width:auto;min-height:38px}
.timeline-heading .instructor-vehicle{display:block;font-size:11px;margin-top:4px;color:#695b26;font-weight:600}
@media(max-width:650px){#habilitar-agenda .agenda-pair-row{grid-template-columns:1fr 1fr}#habilitar-agenda .agenda-pair-row .quitar-pareja{grid-column:1/-1;justify-self:end}}
@media(max-width:450px){#habilitar-agenda .agenda-pair-row{grid-template-columns:1fr}#habilitar-agenda .agenda-pair-row .quitar-pareja{grid-column:1}}

.agenda-site-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.agenda-site-actions button{white-space:nowrap}
.agenda-site-actions .cancel-agenda-button{color:#b80918;border-color:#d6a2a8}
.agenda-site-actions .cancel-agenda-button:disabled{opacity:.5;cursor:not-allowed}
.agenda-cancel-dialog{max-width:580px}
.agenda-cancel-warning{background:#fff0f0;color:#a41120;border-left:4px solid #b80918;padding:12px;border-radius:6px}

.agenda-cancel-dialog .cancel-pair-form,.agenda-edit-dialog .modify-pair-form{display:grid;gap:15px}
.modify-pair-resources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(max-width:550px){.modify-pair-resources{grid-template-columns:1fr}}

.agenda-migration-hint{background:#fff8d5;border-left:4px solid #f5c400;border-radius:6px;color:#594600;padding:10px 12px;font-size:12px;line-height:1.45;margin:10px 0}

/* Reserva administrativa: datos y cuenta en dos columnas */
#reserva-directa.booking-dialog{width:min(1240px,96vw);max-width:96vw;max-height:92vh;overflow-y:auto;padding:28px 32px}
#reserva-directa .booking-form{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:26px;align-items:start}
#reserva-directa .booking-fields{display:grid;gap:15px;min-width:0}
#reserva-directa .booking-fields label,#reserva-directa .booking-fields select{min-width:0;width:100%}
#reserva-directa .booking-account{margin:0;max-height:none;overflow:visible;min-width:0}
#reserva-directa .booking-account .account-overview{gap:9px}
#reserva-directa .booking-account .account-overview>div{padding:12px;min-width:0}
#reserva-directa .booking-account .account-overview strong{font-size:clamp(15px,1.5vw,20px);overflow-wrap:anywhere}
#reserva-directa .booking-account table{min-width:620px}
#reserva-directa #reserva-vinculo{margin:-8px 0 0;background:#fff8dc;border-left:3px solid #f5c400;padding:8px 10px;border-radius:4px}
@media(max-width:760px){#reserva-directa.booking-dialog{padding:20px;max-width:96vw}#reserva-directa .booking-form{grid-template-columns:1fr}#reserva-directa .booking-account .account-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:480px){#reserva-directa .booking-account .account-overview{grid-template-columns:1fr}}

/* Agenda: reserva y cobro desde el estado de cuenta */
#reserva-directa.booking-dialog{width:min(1510px,98vw);max-width:98vw;padding:28px 34px}
#reserva-directa .booking-form{grid-template-columns:minmax(320px,.62fr) minmax(0,1.38fr);gap:30px}
#reserva-directa .booking-account table{min-width:720px}
.booking-payments-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:12px 0 8px}
.booking-payments-head h3{margin:0!important}
.agenda-payment-dialog{width:min(560px,94vw);max-width:94vw}
.agenda-payment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
.agenda-payment-form label{display:grid;gap:6px}.agenda-payment-form input,.agenda-payment-form select{width:100%}
.agenda-payment-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}
@media(max-width:760px){#reserva-directa.booking-dialog{max-width:96vw;padding:20px}#reserva-directa .booking-form,.agenda-payment-form{grid-template-columns:1fr}}

/* Actividades vinculadas a parejas y corrección de recursos */
.activity-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:9px 0;padding:12px;background:#fffdf4;border:1px solid #ead990;border-radius:9px}
.activity-list-item small{display:block;margin-top:5px;color:#555}.activity-list-actions{display:flex;gap:8px;flex-wrap:wrap}
.timeline .activity-edit{display:block;width:100%;text-align:left;color:#292929;cursor:pointer}
.timeline .activity-edit:disabled{cursor:default;opacity:1}
#actividad-ayuda{margin:0;background:#fff7d8;border-left:4px solid #f5c400;padding:10px;border-radius:5px}
@media(max-width:650px){.activity-list-item{align-items:stretch;flex-direction:column}}

/* Vista diaria de reservas del alumno */
.student-day-grid{width:100%;border-collapse:collapse;table-layout:fixed}
.student-day-grid th,.student-day-grid td{border-bottom:1px solid #e5e5e5;padding:12px 16px;text-align:left}
.student-day-grid thead th{background:#292929;color:#fff}
.student-day-grid tbody th{width:175px;background:#fffdf4;white-space:nowrap}
.student-day-slot{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#155a2d}
.student-day-slot .primary{min-width:110px}
@media(max-width:650px){.student-day-grid tbody th{width:115px}.student-day-slot{align-items:stretch;flex-direction:column}.student-day-slot .primary{min-width:0}}

/* Desglose de jornadas de instructores */
.liquidation-composition{min-width:180px}.liquidation-composition summary{cursor:pointer;color:#725600;font-weight:700}
.liquidation-composition-body{min-width:420px;max-width:560px;padding:12px;margin-top:8px;border:1px solid #e6dfc8;border-radius:9px;background:#fffdf5;font-size:12px}
.liquidation-composition-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:10px}
.liquidation-composition-totals span{background:white;border:1px solid #ece3bd;border-radius:6px;padding:6px}
.liquidation-composition-line{display:grid;grid-template-columns:90px 85px minmax(0,1fr) 50px;align-items:start;gap:8px;padding:8px 0;border-top:1px solid #eee5ce}
.liquidation-composition-line time{font-weight:700}.liquidation-composition-line small{text-align:right}
.liquidation-type{font-weight:700}.liquidation-clase{color:#126336}.liquidation-ausencia{color:#b90918}.liquidation-actividad{color:#185a9e}.liquidation-disponible{color:#666}
.liquidation-composition-body p{font-weight:700;margin:10px 0 0}
@media(max-width:650px){.liquidation-composition-body{min-width:300px}.liquidation-composition-line{grid-template-columns:75px 78px 1fr}.liquidation-composition-line small{grid-column:3;text-align:left}}

/* Ficha del alumno: más ancho y evaluación en ventana emergente */
.content:has(.student-profile-head){max-width:1800px;width:100%}

/* Consultas y franjas administrativas: aprovechar el ancho de escritorio. */
.content:has(.admin-module-consultas),.content:has(.admin-liquidacion-administracion){max-width:1800px;width:100%}
.admin-module-consultas,.admin-liquidacion-administracion{max-width:none;width:100%}
.admin-module-consultas>section.card>form.consulta-create-form{grid-template-columns:repeat(5,minmax(0,1fr)) auto}
.admin-module-consultas .consulta-table{min-width:1190px}
.admin-module-consultas .consulta-table td{white-space:nowrap}
.admin-module-consultas .consulta-table td:nth-child(4){white-space:normal;min-width:150px}
.admin-module-consultas .consulta-table td:last-child{min-width:650px}
.admin-module-consultas .consulta-actions,.admin-module-consultas .consulta-actions form{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin:0}
.admin-module-consultas .consulta-actions form:first-child{flex:1;min-width:0}
.admin-module-consultas .consulta-actions select{min-width:0;flex:1;width:0}
.admin-module-consultas .consulta-actions button,.admin-module-consultas .consulta-actions a{white-space:nowrap}
.admin-liquidacion-administracion .administrative-hours-table{min-width:850px}
.admin-liquidacion-administracion .administrative-hours-table td{white-space:nowrap}
.admin-liquidacion-administracion .administrative-hours-table td:last-child{min-width:210px}
.admin-liquidacion-administracion .administrative-hours-table td:last-child>form.inline{display:inline-flex;margin:0 0 0 8px;vertical-align:middle}
@media(max-width:1150px){.admin-module-consultas>section.card>form.consulta-create-form{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-module-consultas .consulta-table{min-width:1190px}}
@media(max-width:600px){.admin-module-consultas>section.card>form.consulta-create-form{grid-template-columns:1fr}}
.student-panels{grid-template-columns:minmax(320px,.72fr) minmax(650px,1.28fr);gap:22px}
.student-panels>.student-panel:nth-child(2){overflow:hidden}
.student-panels>.student-panel:nth-child(2) .package-box{min-width:0}
.student-panels>.student-panel:nth-child(2) .package-box>details{overflow-x:auto}
.student-panels>.student-panel:nth-child(2) .package-box table{display:table;width:100%;min-width:690px;white-space:normal;table-layout:auto}
.student-panels>.student-panel:nth-child(2) .package-box th,.student-panels>.student-panel:nth-child(2) .package-box td{padding:10px 8px;vertical-align:middle}
.student-observation-preview{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.student-evaluation-button{font-size:12px;padding:7px 10px}
.student-evaluation-dialog{width:min(680px,94vw);max-width:94vw;max-height:90vh}
.student-evaluation-dialog .student-panel-title{border-bottom:2px solid #f5c400;padding-bottom:12px}
.student-evaluation-form{display:grid;gap:16px;margin-top:18px}
.student-evaluation-form select,.student-evaluation-form textarea{width:100%;min-width:0}
.student-evaluation-form .student-edit-actions{margin-top:0}
@media(max-width:1050px){.student-panels{grid-template-columns:1fr}}
