:root{--green:#154f3c;--lime:#d5ec86;--muted:#557064;--line:#dce5df}*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,sans-serif;color:#143629;background:#f6f8f4}header{background:white;border-bottom:1px solid var(--line);padding:16px max(20px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{font-size:27px;font-weight:800;text-decoration:none;line-height:1}.brand small{display:block;font-size:12px;font-weight:600}nav{display:flex;gap:18px;align-items:center}main{max-width:1180px;margin:auto;padding:24px}h1{font-size:clamp(32px,5vw,54px);line-height:1.12;max-width:740px}h2,h3{line-height:1.25}h1,h2,h3{margin:12px 0}a{color:var(--green)}button{background:var(--green);color:white;font:inherit;font-weight:650;border:1px solid var(--green);padding:12px 18px;border-radius:12px;cursor:pointer;min-height:46px}button.secondary{background:white;color:var(--green);border-color:var(--line)}button:disabled{opacity:.55;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #80aa5a;outline-offset:2px}.hero{padding:28px 0 42px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700;color:var(--muted)}.hero p:not(.eyebrow){max-width:660px;color:var(--muted);font-size:19px}label{display:flex;flex-direction:column;gap:6px;margin:12px 0;font-weight:600;font-size:14px}input,textarea,select{font:16px system-ui;color:#143629;padding:12px;border:1px solid #bacbc1;border-radius:9px;width:100%;min-width:0;background:white}textarea{resize:vertical}.search{padding:20px;background:white;border:1px solid var(--line);border-radius:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:14px}.search label{margin:0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{padding:24px;border:1px solid var(--line);border-radius:18px;background:white;overflow-wrap:anywhere}.avatar{height:64px;width:64px;object-fit:cover;border-radius:50%;background:#e4eedf}.chip{display:inline-block;border:1px solid var(--line);padding:4px 9px;margin:3px;border-radius:12px;font-size:12px}.hint{font-size:13px;color:var(--muted)}.paging{display:flex;align-items:center;justify-content:center;gap:15px;margin:26px 0}footer{padding:24px;text-align:center;color:var(--muted);font-size:13px}dialog{width:min(800px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid var(--line);border-radius:20px;padding:24px;color:inherit;background:#fff;overscroll-behavior:contain}dialog::backdrop{background:#102d23a6}.dialogTop{display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:-24px;background:#fff;z-index:2;padding:12px 0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.tabs{display:flex;gap:8px;margin:18px 0}.check{flex-direction:row;align-items:flex-start;font-weight:400}.check input{width:20px;height:20px;margin:0;flex:none}fieldset{border:1px solid var(--line);border-radius:14px;padding:16px;margin:22px 0;min-width:0}legend{font-weight:750;padding:0 8px}.slot{background:#f4f7f1;border-radius:12px;padding:14px;margin:14px 0}.slot .grid{grid-template-columns:repeat(3,minmax(0,1fr))}.savebar{position:sticky;bottom:-24px;background:white;padding:14px 0;border-top:1px solid var(--line);z-index:1}.savebar p{margin:8px 0;font-size:14px}.notice{color:#9b3819}details{padding:18px 0;border-top:1px solid var(--line);margin:20px 0}summary{font-weight:700;cursor:pointer}.agenda{padding:14px;border:1px solid var(--line);border-radius:12px;margin:12px 0;overflow-wrap:anywhere}.longtext{white-space:pre-wrap;overflow-wrap:anywhere}[hidden]{display:none!important}@media(max-width:760px){header{padding:14px 16px}nav{gap:10px;font-size:14px}nav button{padding:10px;font-size:13px}main{padding:18px}.search,.cards{grid-template-columns:1fr}.grid,.slot .grid{grid-template-columns:1fr}.hero{padding-top:14px}.hero p:not(.eyebrow){font-size:17px}dialog{padding:18px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.dialogTop{top:-18px}.savebar{bottom:-18px}.paging button{padding:10px}button{touch-action:manipulation}.card{padding:20px}}
@media(max-width:420px){header{flex-wrap:wrap}nav{flex-wrap:wrap}h2{font-size:23px}.dialogTop{align-items:flex-start}.tabs{flex-wrap:wrap}}

.calendar{border:1px solid var(--line);border-radius:14px;padding:14px;margin:18px 0;background:#fff}.calendarTop{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendarTop h3{text-transform:capitalize;font-size:18px}.calendarTop button{padding:8px 14px}.calendarGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendarWeekday{text-align:center;font-size:12px;padding:8px;color:var(--muted)}.calendarDay{min-width:0;min-height:56px;padding:6px 2px;background:#eef4e7;color:var(--green);border:1px solid var(--line);font-size:14px}.calendarDay b,.calendarDay small{display:block}.calendarDay small{font-size:10px;min-height:15px}.calendarDay.selected{background:var(--green);color:#fff}.calendarDay.off{background:#f7ece5;color:#9b4c2e}.calendarDay.today{border:2px solid #93a55f}.calendarSelected{margin-top:15px}.calendarSelected>b{display:block;text-transform:capitalize}.calendarBlank{min-width:0}.catalogSearch{grid-template-columns:2fr 1fr auto}@media(max-width:760px){.catalogSearch{grid-template-columns:1fr}}@media(max-width:420px){.calendar{padding:8px}.calendarGrid{gap:3px}.calendarTop h3{font-size:16px}.calendarDay{min-height:49px;font-size:13px}.calendarDay small{font-size:9px}}

/* Profesores V4 */
.courseChoices,.dayChoices{display:flex;flex-wrap:wrap;gap:10px}.courseChoice{flex:1 1 250px;background:#f3f7ed;border:1px solid #d9e4d3;border-radius:12px;padding:12px}.dayChoices label{padding:10px 12px;background:#f3f7ed;border-radius:10px;display:flex;align-items:center;gap:8px}.dayChoices input{width:auto}.dayChoices{margin:14px 0}.calendarViews{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.calendarViews button{padding:10px 14px}.calendarLegend{display:flex;gap:12px;flex-wrap:wrap;font-size:.85rem;color:#647068}.legendFree{color:#176239}.legendBusy,.busyCount{color:#ad443d}.calendarDay.hasBusy{border-bottom:4px solid #b54b42}.calendarEvent.free{border-left:5px solid #337e48;background:#edf5e9}.calendarEvent.busy{border-left:5px solid #b54b42;background:#fbecea;color:#862d29}.calendarWeek{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:8px;overflow:auto;padding-bottom:8px}.weekDay{min-width:0;border:1px solid #d9e2d8;border-radius:12px;padding:8px}.weekDay>button{width:100%;padding:10px 4px;font-size:.85rem}.weekDay .agenda{padding:10px 7px;font-size:.82rem;overflow-wrap:anywhere}.weekDay.active{outline:2px solid #15593d}.offMessage{color:#69756b}.busyPanel{background:#f5f6f0;border-radius:14px;padding:16px;margin:18px 0}.busyPanel summary{font-weight:700;cursor:pointer}.busyRow{padding:12px;border-bottom:1px solid #d6ddd2;display:flex;align-items:center;justify-content:space-between;gap:12px}.busyRow button{padding:8px}.ratingSummary{color:#8c6400;font-weight:700}.ratingChoices{display:flex;gap:8px;flex-wrap:wrap;border:0;padding:0;margin:14px 0}.ratingChoices label{display:flex;gap:6px;align-items:center;background:#fff4d2;border-radius:8px;padding:10px}.ratingChoices input{width:auto}.review{border-top:1px solid #dee5d9;padding:14px 0}.review p{white-space:pre-wrap;overflow-wrap:anywhere}#reviewForm textarea{width:100%;box-sizing:border-box}#reviewForm{margin-top:16px;background:#f6f7ef;padding:18px;border-radius:14px}#reviewsStatus{white-space:pre-wrap}.calendarDay.selected .busyCount{color:#ffe1d0}@media(max-width:650px){.calendarWeek{grid-template-columns:1fr;overflow:visible}.weekDay .agenda{font-size:.95rem}.weekDay>button{font-size:1rem}.courseChoice{flex-basis:100%}.calendarDay{min-height:64px}.calendarDay small{font-size:.65rem}.busyRow{align-items:flex-start;flex-wrap:wrap}}
/* Profesores V5: ventanas y ficha profesional */
dialog.flexWindow{width:min(1120px,calc(100vw - 32px));height:min(920px,calc(100dvh - 32px));max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);min-width:min(460px,calc(100vw - 16px));min-height:300px;resize:both;position:fixed;overflow:auto}.flexWindow .dialogTop{cursor:move}.windowControls{display:flex;gap:6px;align-items:center;flex-shrink:0}.windowControls button{padding:6px 12px;font-size:22px;min-width:42px}.flexWindow.windowMax{resize:none}.flexWindow.windowMinimized{visibility:hidden;pointer-events:none}.flexWindow.windowMinimized::backdrop{background:transparent;pointer-events:none}#teacherWindowDock{position:fixed;right:16px;bottom:16px;display:flex;gap:8px;z-index:2147483647;max-width:90vw;flex-wrap:wrap}#teacherWindowDock button{box-shadow:0 3px 16px #13332d55;background:#d5ec86;color:#154f3c}.calendarWeek{grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible}.weekDay .agenda{font-size:.85rem}.dayChoices label{flex-direction:row}.avatar{width:112px;height:112px}.teacherPortrait{width:140px;height:140px;object-fit:cover;border-radius:18px}.priceLine{display:flex;align-items:center;gap:8px}.priceLine input{min-width:0}.slotStatus{font-size:.9rem;display:block;margin:10px 0}.slot.saved{outline:2px solid #6b9b4e}.slotActions{display:flex;flex-wrap:wrap;gap:10px}.successNotice{color:#155b30;background:#edf7e7;padding:12px;border-radius:10px}#teacherToast{position:fixed;top:18px;right:18px;max-width:min(450px,90vw);background:#155b30;color:white;padding:18px;border-radius:14px;box-shadow:0 4px 20px #0003;z-index:2147483647}.credentialUpload{padding:16px;border:1px solid #dce5df;border-radius:12px;margin:16px 0}.credentialReview{background:#f4f7ef;border-radius:14px;padding:20px;margin:18px 0}.profileAudience{display:flex;flex-wrap:wrap;gap:8px}.reviewValid{color:#155b30;font-weight:700}.reviewPending{color:#8e5d14}@media(max-width:650px){dialog.flexWindow{width:calc(100vw - 16px);height:calc(100dvh - 16px);min-width:0;resize:none;left:8px!important;top:8px!important;margin:0!important}.calendarWeek{grid-template-columns:1fr}.windowControls button{padding:6px 9px;min-width:36px}.flexWindow .dialogTop{cursor:default}.teacherPortrait{width:120px;height:120px}.windowControls button:first-child{display:none}.avatar{width:96px;height:96px}}
