:root{--navy:#15385f;--navy-2:#0e2948;--red:#e64138;--ink:#172033;--muted:#647188;--line:#dce4ef;--bg:#f4f7fb;--white:#fff;--green:#16754a;--amber:#a76408;--rose:#fff0f0;--blue:#eef6ff}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}a{color:#1b5d9c;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;min-height:72px;padding:10px 28px;background:var(--navy-2);color:#fff;box-shadow:0 4px 20px #0b203b26}.brand{display:flex;align-items:center;gap:11px;color:#fff;min-width:210px}.brand:hover{text-decoration:none}.brand small,.brand strong{display:block}.brand small{font-size:11px;color:#b9c8dc}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--red);color:#fff;font-weight:850;letter-spacing:-.5px}.brand-mark.large{width:60px;height:60px;border-radius:17px;font-size:21px}.nav{display:flex;align-items:center;gap:4px;flex:1}.nav a{color:#cfdaea;padding:9px 10px;border-radius:8px;font-weight:650;font-size:14px}.nav a:hover,.nav a.active{background:#ffffff17;color:#fff;text-decoration:none}.link-button{border:0;background:none;color:#cfdaea;cursor:pointer;padding:8px}.link-button.danger{color:#b52d2d}.menu-button{display:none;background:#ffffff16;color:#fff;border:1px solid #ffffff2e;border-radius:8px;padding:7px 10px}.page{max-width:1460px;margin:0 auto;padding:34px 28px 60px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#0d2948,#1b4c7a)}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.page-heading h1{margin:0;font-size:30px;line-height:1.15;letter-spacing:-.6px}.page-heading p{margin:7px 0 0;color:var(--muted)}.page-heading .eyebrow{margin:0 0 7px;color:var(--red);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1px}.actions{display:flex;gap:10px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;border:1px solid #bcc8d8;border-radius:9px;background:#fff;color:var(--ink);font-weight:700;cursor:pointer}.button:hover{text-decoration:none;border-color:#8fa0b7}.button.primary{background:var(--red);border-color:var(--red);color:#fff}.button.danger{background:#a92d2d;border-color:#a92d2d;color:#fff}.button.small{min-height:34px;padding:6px 11px;font-size:13px}.card{margin-bottom:22px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 7px 24px #1b315a0b}.card h2{margin:0 0 13px;font-size:19px}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}.card-heading h2{margin-bottom:3px}.card-heading p{margin:0;color:var(--muted);font-size:14px}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:22px}.metric-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{min-height:106px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 7px 24px #1b315a0b}.metric span{display:block;color:var(--muted);font-size:13px}.metric strong{display:block;margin-top:10px;font-size:27px;line-height:1.1}.metric strong.small{font-size:18px;overflow-wrap:anywhere}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 2px;border-top:1px solid #edf1f6;color:var(--ink)}.list-row:hover{text-decoration:none;background:#f9fbfd}.list-row strong,.list-row small{display:block}.list-row small{margin-top:2px;color:var(--muted)}.list-row.muted{opacity:.55}.empty{padding:20px!important;color:var(--muted);text-align:center}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;min-width:780px}.table-wrap th{padding:10px 12px;border-bottom:2px solid var(--line);color:#536177;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.45px}.table-wrap td{padding:13px 12px;border-bottom:1px solid #e8edf4;vertical-align:top}.table-wrap td small{display:block;color:var(--muted)}.table-wrap tr:last-child td{border-bottom:0}.row-annulled{background:var(--rose);color:#7f4e4e}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#e9eef5;color:#4d5a6e;font-size:12px;font-weight:750;white-space:nowrap}.badge.active,.badge.confirmed,.badge.completed{background:#e6f6ee;color:var(--green)}.badge.draft,.badge.proposed,.badge.planning,.badge.warning{background:#fff4dd;color:var(--amber)}.badge.annulled,.badge.inactive{background:#fde7e7;color:#9c3030}.filters,.inline-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}.filters input,.filters select{min-width:240px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label,.inline-form label,.stack label{display:grid;gap:7px;color:#354158;font-weight:700}.span-2{grid-column:1/-1}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #bdc8d7;border-radius:8px;background:#fff;color:var(--ink)}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid #2f75b524;border-color:#2f75b5}.check{display:flex!important;align-items:center;gap:8px!important;font-weight:600!important}.check input{width:auto}.form-actions{display:flex;justify-content:flex-end;padding-top:4px}fieldset{border:1px solid var(--line);border-radius:10px;padding:15px}legend{padding:0 7px;font-weight:800}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;max-height:280px;overflow:auto}.bordered{margin:16px 0 0;padding-top:16px;border-top:1px solid var(--line)}.notice{padding:12px 14px;border-radius:9px;background:var(--blue);color:#275a8e}.alert{max-width:1000px;margin:0 auto 20px;padding:13px 16px;border-radius:10px;border:1px solid}.alert.success{background:#ebf8f1;border-color:#acd8bf;color:#165d3c}.alert.danger{background:#fff0f0;border-color:#efbcbc;color:#8e2929}.alert ul{margin:6px 0 0}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:18px}.pagination a,.pagination span{padding:7px 10px;border-radius:7px}.pagination a{border:1px solid var(--line)}.readiness{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;border-left:5px solid}.readiness.ready{border-left-color:var(--green);background:#f5fcf8}.readiness.pending{border-left-color:#d98b18;background:#fffaf1}.readiness p{margin:3px 0;color:var(--muted)}.readiness ul{margin:0}.login-card{width:min(430px,100%);padding:34px;background:#fff;border-radius:18px;box-shadow:0 24px 70px #0616295c}.login-brand{text-align:center;margin-bottom:25px}.login-brand .brand-mark{margin:auto}.login-brand h1{margin:13px 0 3px;font-size:29px}.login-brand p{margin:0;color:var(--muted)}.stack{display:grid;gap:16px}.top-gap{margin-top:18px}.danger-zone{border-color:#f0c8c8;background:#fffafa}details summary{display:flex;justify-content:space-between;gap:20px;cursor:pointer;list-style:none}details summary span{color:var(--muted)}.prose p{white-space:normal}.auth-page .alert{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:5}
.catalog-alert{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 auto 22px;padding:17px 19px;border:1px solid #edc26f;border-left:5px solid #d98b18;border-radius:12px;background:#fffaf0;box-shadow:0 7px 24px #1b315a0b}.catalog-alert strong,.catalog-alert span{display:block}.catalog-alert span{margin-top:3px;color:var(--muted)}.sync-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.sync-summary>div{padding:14px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.sync-summary span,.sync-summary strong{display:block}.sync-summary span{min-height:38px;color:var(--muted);font-size:12px}.sync-summary strong{margin-top:7px;font-size:24px}.sync-pending{border-left:5px solid #d98b18}.confirmation-card{border:2px solid #e6a43b;background:#fffdf8}.badge.created{background:#e6f6ee;color:var(--green)}.badge.updated{background:#e8f2ff;color:#245f98}.badge.deactivated,.badge.removed{background:#fde7e7;color:#9c3030}.badge.protected{background:#efe9ff;color:#6842a0}.badge.applied,.badge.no_changes{background:#e6f6ee;color:var(--green)}.badge.pending{background:#fff4dd;color:var(--amber)}.badge.stale,.badge.failed{background:#fde7e7;color:#9c3030}.alert.warning{background:#fff7e8;border-color:#eccf91;color:#86590d}.history-readonly{border-left:5px solid #5b77a1}.history-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.history-detail{margin-top:7px}.history-detail summary{display:block;color:#1b5d9c;font-size:13px}.history-detail p{max-width:720px;white-space:normal;color:var(--muted)}
.history-month{color:#174f82;text-transform:uppercase;letter-spacing:.3px}.launch-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.badge.extraordinary{margin-left:7px;background:#ffe3a8;color:#825006}.row-extraordinary{background:#fff9ec}.extraordinary-card{border-left:5px solid #e39a22;background:#fffdf7}.tutor-incidence{border-left:5px solid}.tutor-incidence.clear{border-left-color:#3a9a69}.tutor-incidence.review{border-left-color:#d98b18;background:#fffdf7}.tutor-incidence.change{border-left-color:#d55048;background:#fffafa}.calendar-month{margin-top:24px}.calendar-month:first-of-type{margin-top:5px}.calendar-month-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px}.calendar-month-heading h3{margin:0;text-transform:capitalize}.calendar-month-heading span{color:var(--muted);font-size:13px}.calendar-scroll{overflow-x:auto;padding-bottom:4px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(132px,1fr));min-width:980px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar-weekday{padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#eef3f9;color:#536177;text-align:center;font-size:12px;font-weight:800;text-transform:uppercase}.calendar-day{min-height:126px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.calendar-day.calendar-empty{background:#f7f9fc}.calendar-day.has-events{background:#fbfdff}.calendar-day-number{display:block;margin-bottom:6px;color:#556277;font-size:12px;font-weight:800}.calendar-event{margin:5px 0;border:1px solid;border-radius:7px;background:#fff}.calendar-event.completed{border-color:#9fd0b7;background:#eef9f3}.calendar-event.planning{border-color:#ebca8c;background:#fff9ed}.calendar-event summary{display:grid;grid-template-columns:auto 1fr;gap:5px;padding:7px;line-height:1.25}.calendar-event summary .event-time{color:#15385f;font-size:11px;font-weight:850}.calendar-event summary strong{font-size:11px;overflow-wrap:anywhere}.calendar-event-detail{padding:8px;border-top:1px solid #dfe6ef;background:#fff}.calendar-event-detail>strong{display:block;margin-bottom:5px;font-size:12px}.calendar-event-detail p{margin:5px 0;white-space:normal;color:#4f5d72;font-size:12px}.calendar-event-detail small{display:block;margin-top:7px;color:var(--muted);font-size:11px}.undated-tutorials{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(3,1fr)}.metric-grid.compact{grid-template-columns:repeat(2,1fr)}.topbar{gap:12px;padding:10px 18px}.brand{min-width:auto}.brand small{display:none}.nav a{padding:8px 7px;font-size:13px}.sync-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.menu-button{display:block;margin-left:auto}.nav{display:none;position:absolute;left:12px;right:12px;top:68px;flex-direction:column;align-items:stretch;padding:10px;background:var(--navy-2);border-radius:10px;box-shadow:0 16px 40px #07152766}.nav-open .nav{display:flex}.page{padding:24px 16px 45px}.page-heading{flex-direction:column}.two-columns{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.check-grid{grid-template-columns:1fr}.readiness{flex-direction:column}.topbar>form{display:none}.catalog-alert{align-items:flex-start;flex-direction:column}.sync-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.metric-grid,.metric-grid.compact{grid-template-columns:1fr 1fr}.metric{min-height:92px;padding:14px}.metric strong{font-size:22px}.page-heading h1{font-size:26px}.card{padding:17px}.filters>*{width:100%;min-width:0!important}.inline-form>*{width:100%}details summary{flex-direction:column;gap:3px}}

/* Disponibilidad docente y asignación múltiple · v5.7 */
.usage-legend{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin:0 0 12px;color:var(--muted);font-size:12px;font-weight:750;white-space:nowrap}.usage-legend span{display:flex;align-items:center;gap:6px}.usage-legend i{display:inline-block;width:12px;height:8px;border-radius:3px}.legend-used{background:#e64138}.legend-free{background:#d9eaff}.tutor-availability{display:grid;gap:9px}.tutor-availability.compact{min-width:300px;gap:6px}.availability-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.availability-summary strong{font-size:13px;white-space:nowrap}.availability-level{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.availability-level.high{background:#e6f6ee;color:#16754a}.availability-level.medium{background:#eef6ff;color:#275a8e}.availability-level.low{background:#fff4dd;color:#a76408}.availability-level.full{background:#fde7e7;color:#9c3030}.usage-bar{display:flex;width:100%;height:11px;overflow:hidden;border-radius:999px;background:#d9eaff;box-shadow:inset 0 0 0 1px #c8d7eb}.usage-used{display:block;height:100%;background:#e64138}.usage-free{display:block;height:100%;background:#d9eaff}.tutor-availability small{color:var(--muted);font-size:11px}.tutor-selection-list{display:grid;gap:10px;max-height:660px;padding-right:4px;overflow:auto}.tutor-choice{display:grid;grid-template-columns:minmax(230px,1fr) auto minmax(300px,1.25fr);align-items:center;gap:16px;padding:13px;border:1px solid var(--line);border-radius:11px;background:#fbfcfe}.tutor-choice:has(input:checked){border-color:#8aaed2;background:#f4f9ff}.tutor-choice-main{display:flex;align-items:center;gap:11px;cursor:pointer}.tutor-choice-main input{width:auto}.tutor-choice-name strong,.tutor-choice-name small{display:block}.tutor-choice-name small{color:var(--muted);font-size:12px}.tutor-profile-link{font-size:12px;font-weight:750}.availability-cell{min-width:350px}.row-actions{display:flex;gap:12px;white-space:nowrap}.year-filter{display:flex;align-items:flex-end;gap:8px}.year-filter label{display:grid;gap:4px;color:var(--muted);font-size:12px;font-weight:750}.year-filter input{width:100px;padding:7px 8px}.metric small{display:block;margin-top:6px;color:var(--muted)}.tutor-deviations{border-left:5px solid}.tutor-deviations.clear{border-left-color:#3a9a69;background:#f7fcf9}.tutor-deviations.review{border-left-color:#d98b18;background:#fffdf7}.tutor-deviations p,.tutor-deviations ul{margin-bottom:0}.availability-table table{min-width:1080px}.availability-table td:nth-child(n+3){min-width:260px}.monthly-value{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;color:var(--muted);font-size:11px}.monthly-value strong{color:#354158}.availability-table .usage-bar{height:9px}
@media(max-width:1000px){.tutor-choice{grid-template-columns:minmax(210px,1fr) auto}.tutor-choice .tutor-availability{grid-column:1/-1}.tutor-availability.compact{min-width:240px}}
@media(max-width:680px){.card-heading{flex-direction:column}.usage-legend{justify-content:flex-start}.tutor-choice{grid-template-columns:1fr auto}.availability-summary{align-items:flex-start;flex-direction:column;gap:5px}.tutor-availability.compact{min-width:0}.availability-cell{min-width:280px}.year-filter{width:100%}}

/* Barras visibles y selector progresivo de docentes · v5.8 */
.usage-bar-visible{position:relative;isolation:isolate;min-height:18px;border:1px solid #b8cde8!important;background:#d9eaff!important;box-shadow:inset 0 1px 2px #15385f1f!important}.usage-bar-visible .usage-used{background:#e64138!important}.usage-bar-visible .usage-free{background:#d9eaff!important}.availability-colour-labels{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:-2px;color:#526178;font-size:11px;font-weight:700}.availability-colour-labels span{display:flex;align-items:center;gap:5px}.availability-colour-labels i{display:inline-block;width:9px;height:9px;border-radius:3px}.availability-colour-labels .used-label i{background:#e64138}.availability-colour-labels .free-label i{background:#d9eaff;border:1px solid #b8cde8}.selected-tutors{display:grid;counter-reset:selected-tutor;gap:12px}.selected-tutor-card{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(360px,1.4fr) auto;align-items:center;gap:18px;padding:16px;border:1px solid #cbd8e8;border-left:5px solid #2f75b5;border-radius:13px;background:#f8fbff;box-shadow:0 5px 16px #1b315a0b}.selected-tutor-identity{display:flex;align-items:center;gap:12px;min-width:0}.selected-tutor-number{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:#15385f;color:#fff;font-size:13px;font-weight:850}.selected-tutor-actions{display:grid;justify-items:end;gap:8px}.selected-tutor-actions .tutor-remove{min-height:31px;padding:5px 10px;color:#9c3030;border-color:#e7baba;background:#fff}.tutor-combobox-panel{margin-top:16px;padding:17px;border:2px dashed #a9bfd9;border-radius:13px;background:#fbfdff}.tutor-combobox-panel>label{display:block;margin-bottom:8px;color:#263650}.tutor-combobox-row{position:relative}.tutor-combobox-row input{min-height:48px;padding-right:46px;border:2px solid #8eacd0;background:#fff;font-size:16px}.tutor-combobox-row input:focus{border-color:#1f639e;box-shadow:0 0 0 4px #2f75b51b}.search-icon{position:absolute;top:50%;right:15px;transform:translateY(-52%);color:#1f639e;font-size:26px;font-weight:800;pointer-events:none}.tutor-combobox-panel p{margin:7px 0 0;color:var(--muted);font-size:12px}.tutor-combobox-panel .combobox-status{min-height:18px;color:#1f639e;font-weight:750}.availability-table .monthly-bar{height:18px!important;min-height:18px;margin-top:8px}.availability-table .monthly-value{align-items:center;margin-bottom:0;font-size:12px}.availability-table .monthly-value strong{padding:2px 7px;border-radius:999px;background:#fff0f0;color:#a22f2a}.availability-table td:first-child{white-space:nowrap}.availability-table th:nth-child(n+3){color:#234b75}.tutor-availability.compact .usage-bar-visible{height:18px!important}.tutor-availability.compact{min-width:360px}
@media(max-width:1100px){.selected-tutor-card{grid-template-columns:minmax(220px,1fr) minmax(320px,1.3fr)}.selected-tutor-actions{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center}.tutor-availability.compact{min-width:300px}}
@media(max-width:720px){.selected-tutor-card{grid-template-columns:1fr}.selected-tutor-actions{justify-content:space-between}.tutor-availability.compact{min-width:0}.availability-colour-labels{align-items:flex-start;flex-direction:column;gap:3px}.tutor-combobox-panel{padding:13px}.availability-table .monthly-bar{min-width:210px}}

/* Planificación completa de lanzamientos · v1.6.0 */
.launch-planning-metrics .metric small{display:block;margin-top:7px;color:var(--muted)}.readiness form{display:grid;justify-items:end;gap:7px}.readiness form small{max-width:270px;text-align:right}.launch-tutor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.launch-tutor-card{display:grid;gap:12px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.launch-tutor-card.selected{border-color:#91bda5;background:#f6fcf8}.launch-tutor-heading,.launch-tutor-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.launch-tutor-heading strong,.launch-tutor-heading small{display:block}.launch-tutor-heading small{margin-top:2px;color:var(--muted);font-size:12px}.launch-tutor-actions{font-size:13px}.launch-tutor-actions form{margin:0}.launch-tutor-card .tutor-availability{min-width:0}.tutorial-content-picker{display:grid;gap:7px;position:sticky;top:82px;z-index:7;margin-bottom:14px;padding:14px;border:1px solid #aec6df;border-radius:11px;background:#f4f9ff;box-shadow:0 8px 20px #15385f14}.tutorial-content-picker select{background:#fff}.tutor-calendar-filter{margin:0 0 14px}.slot-legend{display:flex;align-items:center;gap:7px;margin:10px 0 18px;color:var(--muted);font-size:12px}.slot-legend span{display:inline-block;width:12px;height:12px;margin-left:8px;border-radius:4px}.slot-legend span:first-child{margin-left:0}.slot-free-dot{background:#e6f6ee;border:1px solid #8dc7a8}.slot-used-dot{background:#fde7e7;border:1px solid #e1a4a4}.slot-closed-dot{background:#edf0f4;border:1px solid #cbd2dc}.planning-month{margin-top:25px;overflow-x:auto}.planning-month h3{margin:0 0 10px;text-transform:capitalize}.planning-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(116px,1fr));min-width:900px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.planning-weekday{padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#eef3f9;color:#536177;text-align:center;font-size:12px;font-weight:800}.planning-day{min-height:132px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.planning-day.closed-day,.planning-day.empty-day{background:#f5f7fa}.planning-day-number{display:block;margin-bottom:5px;color:#536177;font-size:12px;font-weight:850}.holiday-name{display:block;min-height:28px;margin:-2px 0 4px;color:#9c3030;font-size:9px;line-height:1.15}.calendar-slot{display:grid;grid-template-columns:20px 1fr;align-items:center;width:100%;min-height:35px;margin:5px 0;padding:5px 7px;border:1px solid;border-radius:7px;text-align:left;font-size:10px}.calendar-slot strong{font-size:11px}.calendar-slot.free{border-color:#9cc9ae;background:#eff9f3;color:#176342;cursor:pointer}.calendar-slot.free:hover{border-color:#4e9a6c;background:#ddf3e6}.calendar-slot.occupied{border-color:#e4aaaa;background:#fff0f0;color:#8f3030}.calendar-slot.occupied.current{border-color:#deb96d;background:#fff8e8;color:#80550a}.calendar-slot.unavailable{border-color:#d8dde5;background:#edf0f4;color:#9099a8}.bank-intro{display:flex;align-items:center;justify-content:space-between;gap:24px}.bank-intro h2,.bank-intro p{margin-top:0}.bank-intro p{margin-bottom:0;color:var(--muted)}.badge.generating{background:#eef6ff;color:#275a8e}.badge.ready_for_review{background:#fff4dd;color:#a76408}.badge.approved{background:#e6f6ee;color:#16754a}.badge.archived{background:#e9eef5;color:#5d687a}.generation-progress{max-width:800px;margin:40px auto}.progress-track{height:22px;overflow:hidden;border-radius:999px;background:#d9eaff;box-shadow:inset 0 0 0 1px #b8cde8}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,#d9302c,#e96843);transition:width .35s ease}.tutorial-bank-item summary span strong,.tutorial-bank-item summary span small{display:block}.tutorial-bank-item summary small{margin-top:3px;color:var(--muted)}.tutorial-bank-list{max-width:1100px}.integration-card .form-help{margin:16px 0 0;color:var(--muted);font-size:12px}.integration-card .stack .button{justify-self:start}
@media(max-width:1000px){.launch-tutor-grid{grid-template-columns:1fr}.planning-calendar-grid{grid-template-columns:repeat(7,minmax(105px,1fr));min-width:820px}}
@media(max-width:680px){.bank-intro{align-items:flex-start;flex-direction:column}.bank-intro form,.bank-intro .button{width:100%}.readiness form{justify-items:start}.readiness form small{text-align:left}.tutorial-content-picker{top:74px}.launch-tutor-heading{align-items:flex-start;flex-direction:column}.planning-day{min-height:120px}}

/* Agenda y calendario de tutores · v1.6.1 */
.tutor-today-agenda{border-top:4px solid #15385f}.tutor-today-agenda .card-heading{align-items:flex-start}.today-count{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:9px 14px;border-radius:999px;background:#15385f;color:#fff;font-size:13px;font-weight:850}.today-empty{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;border:1px dashed #b8c9dc;border-radius:12px;background:#f6f9fd}.today-empty strong,.today-empty span{display:block}.today-empty span{color:var(--muted);font-size:13px}.today-agenda-list{display:grid;gap:9px}.today-agenda-item{border:1px solid var(--line);border-radius:11px;background:#fff}.today-agenda-item[open]{border-color:#9bb8d4;box-shadow:0 9px 22px #15385f12}.today-agenda-item>summary{display:grid;grid-template-columns:80px minmax(180px,.9fr) minmax(230px,1.25fr) minmax(180px,1fr) 44px;align-items:center;gap:15px;padding:13px 15px;cursor:pointer;list-style:none}.today-agenda-item>summary::-webkit-details-marker{display:none}.today-agenda-item>summary span{min-width:0}.today-time strong,.today-time small,.today-tutor strong,.today-tutor small,.today-course strong,.today-course small{display:block}.today-time strong{color:#15385f;font-size:18px}.today-time small,.today-tutor small,.today-course small{overflow:hidden;margin-top:2px;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.today-title{overflow:hidden;color:#33435a;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.today-expand{color:#17649b;font-size:12px;font-weight:800;text-align:right}.today-agenda-detail{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:20px;padding:15px 18px;border-top:1px solid var(--line);background:#f8fbfe}.today-agenda-detail p{margin:5px 0 0;color:#46566d}.calendar-heading{align-items:flex-start}.calendar-navigation{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.tutor-calendar-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:2px 0 15px;color:var(--muted);font-size:12px}.tutor-calendar-legend span{display:flex;align-items:center;gap:6px}.tutor-calendar-legend i{width:11px;height:11px;border-radius:4px}.calendar-today-dot{border:2px solid #15385f;background:#fff}.calendar-morning-dot{background:#dcedfb}.calendar-afternoon-dot{background:#f5e4ca}.tutor-calendar-scroll{overflow-x:auto;padding-bottom:3px}.tutor-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1040px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.tutor-calendar-weekday{padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#eaf0f7;color:#43536a;font-size:12px;font-weight:850;text-align:center}.tutor-calendar-day{min-height:145px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.tutor-calendar-day.outside,.tutor-calendar-day.non-working{background:#f5f7fa}.tutor-calendar-day.is-today{position:relative;background:#f1f7ff;box-shadow:inset 0 0 0 3px #15385f}.tutor-calendar-day-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.tutor-calendar-day-heading span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;color:#43536a;font-size:12px;font-weight:850}.tutor-calendar-day.is-today .tutor-calendar-day-heading span{background:#15385f;color:#fff}.tutor-calendar-day-heading strong{color:#15385f;font-size:10px;text-transform:uppercase}.tutor-calendar-holiday{display:block;margin:-3px 0 6px;color:#9b3434;font-size:9px;line-height:1.2}.tutor-day-events{display:grid;gap:6px}.tutor-calendar-event{border:1px solid;border-radius:7px;background:#fff}.tutor-calendar-event.morning{border-color:#9fc8e6;background:#eff8ff}.tutor-calendar-event.afternoon{border-color:#dfbf89;background:#fff8ec}.tutor-calendar-event.completed{opacity:.75}.tutor-calendar-event>summary{display:grid;grid-template-columns:38px minmax(0,1fr);gap:5px;padding:6px;cursor:pointer;list-style:none}.tutor-calendar-event>summary::-webkit-details-marker{display:none}.tutor-calendar-event>summary strong{color:#173d61;font-size:10px}.tutor-calendar-event>summary span{overflow:hidden;font-size:10px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.tutor-calendar-event-detail{display:grid;gap:4px;padding:8px;border-top:1px solid #cfdae6;background:#fff}.tutor-calendar-event-detail strong{font-size:11px}.tutor-calendar-event-detail small{color:var(--muted);font-size:9px}.tutor-calendar-event-detail p{margin:3px 0;color:#43536a;font-size:10px;line-height:1.35}.tutor-calendar-event-detail a{font-size:10px;font-weight:800}
@media(max-width:900px){.today-agenda-item>summary{grid-template-columns:70px 1fr 1fr 36px}.today-title{display:none}.today-agenda-detail{grid-template-columns:1fr}.today-empty{align-items:flex-start;flex-direction:column}.calendar-navigation{justify-content:flex-start}.tutor-calendar-grid{grid-template-columns:repeat(7,minmax(130px,1fr));min-width:930px}}
@media(max-width:560px){.today-agenda-item>summary{grid-template-columns:64px 1fr 34px}.today-course{display:none}.today-count{min-width:0}.calendar-navigation .button{padding:8px 10px}}
