@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#071426;--panel:#0e2038;--panel2:#122945;--line:#213a59;--text:#edf4ff;--muted:#91a6c1;--blue:#347ff2;--cyan:#50c4e8;--green:#2ac58b}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 12% 0%,#12315a 0,transparent 42%),var(--bg);color:var(--text);font:15px 'DM Sans',sans-serif;min-height:100vh}.top{height:76px;border-bottom:1px solid #1b3452;background:#08172beF;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,22px);position:sticky;top:0;z-index:2;backdrop-filter:blur(12px)}.brand{font:800 20px Manrope,sans-serif;letter-spacing:.5px;color:white;text-decoration:none}.brand b{color:#58b5ff}.top-right{display:flex;align-items:center;gap:18px;color:#b6c7dc}.logout,.text-link{color:#70b9ff;text-decoration:none}.wrap{width:min(1160px,92%);margin:42px auto 70px}footer{text-align:center;color:#627b99;padding:25px;font-size:12px;border-top:1px solid #172e49}.login-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:7vw;align-items:center;min-height:calc(100vh - 190px)}.intro h1{font:800 clamp(38px,5vw,64px)/1.08 Manrope;margin:18px 0}.intro h1 em{font-style:normal;color:#60baff}.intro p{max-width:520px;color:#a6bad2;font-size:18px;line-height:1.7}.eyebrow,.panel-kicker{font-size:11px;font-weight:700;letter-spacing:2px;color:#65baff}.feature-row{display:flex;gap:20px;flex-wrap:wrap;margin-top:32px;color:#a8c5e4;font-size:13px}.panel{background:linear-gradient(145deg,#102641,#0c1d33);border:1px solid #244261;border-radius:18px;padding:27px;box-shadow:0 18px 55px #0003}.login-card{max-width:440px;width:100%;justify-self:end}.panel h2{font:700 22px Manrope;margin:8px 0}.panel h1{font:800 30px Manrope;margin:8px 0}.muted{color:var(--muted);line-height:1.55}.login-card label,.panel label{display:block;color:#c3d3e7;font-size:13px;margin:17px 0 0}input{display:block;width:100%;margin-top:8px;padding:14px 15px;border-radius:10px;border:1px solid #2a4565;background:#08182c;color:white;font:inherit;outline:none}input:focus{border-color:#4b9cff;box-shadow:0 0 0 3px #398cf326}.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:13px 18px;border-radius:10px;text-decoration:none;font-weight:700;border:0;cursor:pointer;font:700 14px 'DM Sans';min-height:46px}.primary{background:linear-gradient(110deg,#2872e5,#329eea);color:white;box-shadow:0 8px 22px #247be53b}.secondary{border:1px solid #345475;color:#c7dcf5;background:#122945}.full{width:100%;margin-top:22px}.secure-note{text-align:center;color:#7289a5;font-size:11px;margin-top:18px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.page-head h1{font:800 34px Manrope;margin:7px 0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.stat{background:#102641;border:1px solid #244261;border-radius:15px;padding:22px}.stat span,.stat small{display:block;color:#91a6c1}.stat strong{display:block;font:800 30px Manrope;margin:8px 0}.stat small{font-size:12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.table-wrap{overflow:auto;margin-top:18px}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid #203954;font-size:13px}th{color:#8fa9c8;font-weight:600}td{color:#dbe8f8}.pill,.admin-tag{display:inline-block;border:1px solid #2a527a;border-radius:99px;padding:5px 10px;color:#9bd2ff;font-size:11px;background:#173554}.admin-tag{color:#80d6c0;border-color:#286b61;background:#123b3b}.admin-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:18px}.business-list{margin-top:18px}.business-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 0;border-bottom:1px solid #203954}.business-item strong,.business-item small{display:block}.business-item small{color:#8199b5;font-size:11px;margin-top:5px}.empty{padding:30px 10px;text-align:center;color:#8da4bf}.alert,.success{padding:13px 15px;border-radius:10px;margin:15px 0;font-size:13px}.alert{background:#48232b;border:1px solid #88424d;color:#ffc1c8}.success{background:#123a36;border:1px solid #286e60;color:#9ce6ce}.narrow{max-width:520px;margin:30px auto}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:760px){.top{height:64px;padding:0 18px}.wrap{width:calc(100% - 28px);margin:25px auto 45px}.login-layout{display:flex;flex-direction:column;align-items:stretch;gap:25px;min-height:auto;padding:22px 0}.intro h1{font-size:38px;margin:12px 0}.intro p{font-size:15px}.feature-row{gap:10px 16px;margin-top:20px}.login-card{max-width:none;justify-self:stretch;padding:22px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:29px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:16px}.stat:last-child{grid-column:span 2}.admin-grid{grid-template-columns:1fr}.panel{padding:20px}.top-right{gap:10px;font-size:12px}.two{grid-template-columns:1fr 1fr}th,td{padding:11px 9px}.btn{min-height:44px}}

select{display:block;width:100%;margin-top:8px;padding:14px 15px;border-radius:10px;border:1px solid #2a4565;background:#08182c;color:white;font:inherit}.head-actions{display:flex;gap:10px;flex-wrap:wrap}.permission-panel{margin-top:18px}.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.permission-grid>div{padding:15px;border:1px solid #25415f;border-radius:12px;background:#0a1b30}.permission-grid p{font-size:13px;color:#91a6c1;line-height:1.5;margin-bottom:0}@media(max-width:760px){.permission-grid{grid-template-columns:1fr}.head-actions{width:100%}.head-actions .btn{flex:1}}


/* Agenda de turnos: escritorio y móvil */
.appointments-layout{display:grid;grid-template-columns:minmax(270px,.78fr) minmax(0,1.42fr);gap:18px;align-items:start}
.appointment-form{position:sticky;top:96px}
.field-help{display:block;color:#7f9ab8;font-size:11px;line-height:1.45;margin-top:7px}
.appointment-list{min-width:0}
.appointment-cards{display:grid;gap:11px;margin-top:18px}
.appointment-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid #25415f;border-radius:13px;background:linear-gradient(120deg,#0b1d32,#102640)}
.appointment-patient{font:700 16px Manrope;color:#f1f6ff;margin-bottom:8px}
.appointment-meta{display:flex;flex-wrap:wrap;gap:8px 16px;color:#b7cbe2;font-size:13px}
.appointment-meta i{font-style:normal;color:#62baff;margin-right:4px}
.appointment-professional,.appointment-phone{font-size:12px;color:#819bb8;margin-top:7px}
.whatsapp-btn{flex-shrink:0;background:#168b61;color:#fff;min-height:42px;padding:10px 13px}
.whatsapp-btn:hover{background:#1aa873}
.wa-icon{font-size:16px}
.no-phone{font-size:12px;color:#8fa3ba}
.appointments-head{align-items:center}
@media(max-width:900px){.appointments-layout{grid-template-columns:1fr}.appointment-form{position:static}}
@media(max-width:600px){
 .appointments-head{gap:12px}
 .appointments-head>.btn{width:100%}
 .appointment-card{align-items:stretch;flex-direction:column;gap:13px;padding:14px}
 .appointment-card .whatsapp-btn{width:100%}
 .appointment-meta{gap:7px 13px}
 .appointment-patient{font-size:15px}
 .appointment-list .section-head{align-items:flex-start}
}


/* Datos del consultorio y comprobante para WhatsApp */
.settings-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}
.color-input{height:48px;padding:5px;max-width:110px}
.receipt-preview{background:#f2f6fb;color:#17304b;border-radius:18px;padding:26px;text-align:center;min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #d6e1ed}
.preview-label{font-size:10px;letter-spacing:1.5px;color:#70849a;font-weight:700;margin-bottom:18px}
.preview-logo{max-width:120px;max-height:85px;object-fit:contain;margin-bottom:12px}
.preview-logo-placeholder{width:90px;height:70px;border:1px dashed #9bb0c5;border-radius:12px;display:grid;place-items:center;color:#8298ae;font-size:12px;margin-bottom:12px}
.receipt-preview h3{font:800 20px Manrope;margin:8px 0;color:#173b61}
.receipt-preview p{font-size:12px;color:#657a90;margin:4px 0}
.preview-stamp{margin-top:20px;padding:10px 18px;border-radius:8px;background:#173b61;color:#fff;font-size:11px;letter-spacing:1px;font-weight:700}
.share-status{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:10;background:#143654;color:#fff;border:1px solid #315778;border-radius:12px;padding:12px 18px;max-width:min(92vw,560px);font-size:13px;box-shadow:0 8px 30px #0005}
.share-receipt:disabled{opacity:.65;cursor:wait}
@media(max-width:760px){.settings-grid{grid-template-columns:1fr}.receipt-preview{min-height:280px}.share-status{bottom:10px}}


/* Línea de tiempo mensual y selector de horarios */
.timeline-panel{margin-bottom:18px;overflow:hidden}
.timeline-heading,.slots-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.timeline-heading h2{margin:7px 0}
.timeline-legend{display:flex;gap:14px;flex-wrap:wrap;color:#9db2ca;font-size:11px}
.timeline-legend span{display:flex;align-items:center;gap:6px}
.free-dot,.busy-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#28c58b}
.busy-dot{background:#687b91}
.month-strip,.day-strip{display:flex;gap:9px;overflow-x:auto;padding:12px 2px 16px;scrollbar-width:thin;scrollbar-color:#315779 transparent}
.month-chip{flex:0 0 auto;min-width:104px;padding:12px 15px;border-radius:11px;border:1px solid #294765;background:#0a1b30;color:#dceaff;text-align:left;cursor:pointer}
.month-chip span,.month-chip small{display:block}
.month-chip span{font-weight:700;font-size:13px}
.month-chip small{color:#8ea8c5;font-size:10px;margin-top:4px}
.month-chip.active{background:linear-gradient(130deg,#1e5fa8,#287fc4);border-color:#56a9ed;color:#fff}
.month-chip.active small{color:#d7ebff}
.day-strip{border-top:1px solid #203954;border-bottom:1px solid #203954;gap:7px}
.day-chip{flex:0 0 55px;height:67px;border:1px solid #294765;border-radius:10px;background:#0a1b30;color:#dceaff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}
.day-chip small{font-size:10px;color:#91a9c4}
.day-chip strong{font:700 18px Manrope}
.day-chip.active{background:#eaf4ff;color:#173b61;border-color:#fff;box-shadow:0 5px 16px #0002}
.day-chip.active small{color:#35618d}
.slots-heading{margin:18px 0 10px}
.slots-heading h3{font:700 17px Manrope;margin:0}
.slots-heading .muted{font-size:11px;margin:5px 0 0}
.time-slots{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}
.time-slot{min-height:58px;border-radius:10px;border:1px solid #24644f;background:#10372f;color:#bdf4dc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer}
.time-slot strong{font-size:14px}
.time-slot small{font-size:10px;opacity:.8}
.time-slot.available:hover{background:#155440;border-color:#38c98d;transform:translateY(-1px)}
.time-slot.occupied{background:#18283a;border-color:#2b4057;color:#7e91a8;cursor:not-allowed;opacity:.8}
.timeline-hint{font-size:11px;color:#8da5c0;margin:14px 0 0}
@media(max-width:900px){.time-slots{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){
 .timeline-panel{padding:16px}
 .timeline-heading{align-items:flex-start;flex-direction:column}
 .timeline-legend{padding-bottom:3px}
 .month-chip{min-width:94px;padding:11px}
 .day-chip{flex-basis:49px;height:62px}
 .time-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 .time-slot{min-height:55px}
 .slots-heading{align-items:flex-start}
}

/* Datos ampliados del consultorio */
.consultorio-fields label{display:block;margin:14px 0;color:#263b50;font-weight:650;font-size:13px}
.consultorio-fields input:not([type=file]):not([type=color]),.consultorio-fields textarea{width:100%;margin-top:7px}
.consultorio-fields textarea{min-height:105px;resize:vertical}
.consultorio-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.consultorio-brand-kicker{margin-top:24px}
.preview-hours{width:100%;margin:12px 0;padding:12px;border-radius:12px;background:#e7eef6;text-align:left}
.preview-hours strong{font-size:10px;letter-spacing:.08em;color:#173b61}
.preview-hours p{white-space:normal;line-height:1.5}
@media(max-width:600px){.consultorio-two-cols{grid-template-columns:1fr;gap:0}}

/* Acciones de eliminación de turnos */
.appointment-delete-form{margin:10px 0 0}
.appointment-delete-btn{background:#512632;border:1px solid #914353;color:#ffd5dc;min-height:40px;padding:10px 14px}
.appointment-delete-btn:hover{background:#71303e}

/* Acción de eliminación claramente visible en cada reserva */
.appointment-actions{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0}
.appointment-delete-form{display:block;margin:0}
.appointment-delete-btn{background:#8f2638!important;border:1px solid #ef6478!important;color:#fff!important;min-height:44px;padding:11px 16px;font-weight:800;letter-spacing:.3px;box-shadow:0 4px 14px #8f263844}
.appointment-delete-btn:hover{background:#b52f45!important}
@media(max-width:600px){.appointment-actions,.appointment-delete-form,.appointment-delete-btn{width:100%}.appointment-actions{justify-content:stretch}}

/* Navegación principal superior */
.main-nav{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:8px;background:#102d4b;border-bottom:1px solid rgba(255,255,255,.08);overflow-x:auto}
.main-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;color:#c5d3e2;text-decoration:none;font-size:12px;font-weight:800;letter-spacing:.08em;white-space:nowrap;border-bottom:3px solid transparent;transition:.18s}
.main-nav a:hover{color:#fff;background:rgba(255,255,255,.05)}
.main-nav a.active{color:#fff;border-bottom-color:#55a6e8;background:rgba(255,255,255,.06)}
.menu-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-top:22px}
.menu-card{display:block;padding:25px;background:#fff;border:1px solid #e2e9f0;border-radius:16px;text-decoration:none;color:#173b61;box-shadow:0 8px 24px rgba(16,45,75,.05);transition:transform .18s,box-shadow .18s}
.menu-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(16,45,75,.1)}
.menu-card h2{font-size:18px;margin:14px 0 8px}.menu-card p{color:#718096;line-height:1.55;margin:0 0 18px;font-size:14px}
.menu-icon,.coming-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:#eaf3fb;color:#1b5b91;font-size:25px;font-weight:700}
.coming-soon{text-align:center;padding:52px 24px;max-width:720px;margin:22px auto}.coming-icon{margin:0 auto 16px}.coming-soon h2{margin:0 0 10px}.coming-soon p{max-width:500px;margin:0 auto;line-height:1.6}
@media(max-width:640px){.main-nav{padding:0 10px;gap:0}.main-nav a{padding:0 14px;min-height:46px;font-size:11px}.menu-card{padding:20px}}

/* Vistas día / semana / mes */
.appointment-view-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 20px;padding:14px;background:var(--surface,#f5f7fa);border:1px solid var(--border,#e3e8ef);border-radius:14px}.view-switch,.view-date-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.view-switch-btn{border:1px solid var(--border,#d8e0e9);background:#fff;color:#24415f;padding:9px 15px;border-radius:9px;font-weight:700;cursor:pointer}.view-switch-btn.active{background:#173b61;color:#fff;border-color:#173b61}.view-date-controls input{min-height:38px;border:1px solid var(--border,#d8e0e9);border-radius:8px;padding:6px 9px;max-width:155px}.view-range-label{width:100%;margin:0;font-size:.88rem}.appointment-card[hidden],#viewEmpty[hidden]{display:none!important}@media(max-width:600px){.appointment-view-toolbar{align-items:stretch}.view-switch{display:grid;grid-template-columns:repeat(3,1fr)}.view-switch-btn{padding:10px 5px}.view-date-controls{display:grid;grid-template-columns:38px minmax(0,1fr) 38px 64px}.view-date-controls input{width:100%;max-width:none;min-width:0}}


/* Calendario visual profesional: día / semana / mes */
.calendar-visual{margin:18px 0 22px;min-width:0}.calendar-day-view{border:1px solid #294663;border-radius:16px;overflow:hidden;background:#0a1b30}.calendar-day-summary{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;background:linear-gradient(110deg,#15395e,#102945);color:#b9d4ef;font-size:13px}.calendar-date-number{font:800 19px Manrope;color:#fff}.calendar-hour-row{display:grid;grid-template-columns:76px minmax(0,1fr);min-height:62px;border-top:1px solid #1d3550}.calendar-hour-label{padding:17px 12px;color:#81a2c5;font:700 12px Manrope;text-align:center}.calendar-hour-slot{border-left:1px solid #1d3550;padding:7px 10px;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.calendar-free{color:#58718d;font-size:11px}.calendar-event{display:flex;flex-direction:column;gap:2px;min-width:120px;max-width:220px;padding:8px 11px;border-left:3px solid #49a5ff;border-radius:8px;background:linear-gradient(110deg,#173e65,#12304e);color:#eaf4ff;font-size:12px}.calendar-event strong{color:#79c4ff;font:800 12px Manrope}.calendar-event small{color:#9bb4ce;font-size:10px}.calendar-week-view{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;overflow-x:auto;padding:2px 1px 10px}.calendar-week-day{min-height:240px;padding:9px;border:1px solid #294663;border-radius:13px;background:#0b1d32}.calendar-week-day.is-selected{border-color:#4a9df1;box-shadow:inset 0 0 0 1px #4a9df1}.calendar-week-head{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;color:#9bb7d4;padding:5px 3px 12px;cursor:pointer}.calendar-week-head span{font-size:10px;font-weight:800;letter-spacing:1px}.calendar-week-head strong{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#183b5e;color:#fff;font:700 13px Manrope}.calendar-week-day .calendar-event{min-width:0;max-width:none;margin:5px 0;padding:7px}.calendar-empty-day{display:block;color:#607a96;text-align:center;padding:22px 0;font-size:11px}.calendar-month-view{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-month-weekday{text-align:center;padding:8px 2px;color:#82a4c6;font-size:10px;font-weight:800;letter-spacing:1px}.calendar-month-cell{min-width:0;min-height:106px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:9px;border:1px solid #294663;border-radius:11px;background:#0b1d32;color:#eaf3ff;text-align:left;cursor:pointer}.calendar-month-cell.is-selected{border-color:#54a8ff;background:#123456;box-shadow:inset 0 0 0 1px #54a8ff}.calendar-month-cell.is-blank{visibility:hidden}.calendar-month-cell>strong{font:800 14px Manrope}.calendar-month-count{font-size:10px;color:#6fc3ff;font-weight:800}.calendar-month-cell small{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a9c0d9;font-size:10px}.calendar-month-cell .calendar-more{color:#6fc3ff}.calendar-month-cell:hover,.calendar-week-head:hover{filter:brightness(1.2)}
@media(max-width:650px){.calendar-month-view{gap:3px}.calendar-month-cell{min-height:75px;padding:5px;border-radius:7px}.calendar-month-weekday{font-size:9px}.calendar-month-cell>strong{font-size:12px}.calendar-month-cell small{font-size:8px}.calendar-month-count{font-size:8px}.calendar-day-summary{padding:12px}.calendar-hour-row{grid-template-columns:58px minmax(0,1fr)}.calendar-hour-label{padding:16px 5px}.calendar-week-view{grid-template-columns:repeat(7,130px)}}


/* Ocultar encabezados internos: la navegación principal ya está en el menú superior */
.page-head {
    display: none !important;
}

.business-schedule{display:grid;gap:10px;margin:12px 0 22px}
.business-schedule-row{display:grid;grid-template-columns:minmax(130px,1.2fr) repeat(2,minmax(110px,1fr));gap:12px;align-items:end;padding:12px;border:1px solid var(--line,#dce3eb);border-radius:12px;background:var(--surface,#fff)}
.business-schedule-row label{display:grid;gap:5px;font-size:13px}
.business-schedule-row .schedule-day{display:flex;align-items:center;gap:9px;min-height:42px}
.business-schedule-row input[type=time]{min-width:0}
@media(max-width:600px){.business-schedule-row{grid-template-columns:1fr 1fr}.business-schedule-row .schedule-day{grid-column:1/-1}}

/* Horarios compactos y dos tramos por día */
.business-schedule{gap:6px;margin:8px 0 18px}
.business-schedule-row{display:grid;grid-template-columns:105px minmax(180px,1fr) minmax(180px,1fr);gap:10px;align-items:center;padding:7px 10px;border:1px solid #e1e7ee;border-radius:8px;background:transparent}
.business-schedule-row label{font-size:12px}
.business-schedule-row .schedule-day{min-height:30px;gap:7px}
.schedule-period{display:flex;align-items:center;gap:6px;min-width:0}
.schedule-period small{width:58px;flex:0 0 58px;color:#718096;font-size:11px}
.schedule-period span{font-size:11px;color:#718096}
.schedule-period input[type=time]{width:92px;min-width:0;padding:5px 6px;font-size:12px;height:32px}
@media(max-width:650px){.business-schedule-row{grid-template-columns:1fr 1fr;gap:6px}.business-schedule-row .schedule-day{grid-column:1/-1}.schedule-period small{width:50px;flex-basis:50px}.schedule-period input[type=time]{width:100%;font-size:11px}}
