:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e5e7eb;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#020617;font-family:system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background-color:#020617;margin:0;overflow:hidden}a{color:#38bdf8;font-weight:500;text-decoration:none}a:hover{color:#22c55e}#root{width:100%;min-height:100vh}.auth-wrapper{background:radial-gradient(circle at 0 0,#0ea5e9 0,#020617 45%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{color:#e5e7eb;background:radial-gradient(circle at 0 0,#94a3b82e,#020617);border:1px solid #94a3b859;border-radius:1.5rem;width:100%;max-width:420px;padding:1.75rem 1.8rem 1.6rem;box-shadow:0 24px 60px #0f172ae6}.auth-header h1{margin:0;font-size:1.8rem}.auth-header p{color:#9ca3af;margin:.4rem 0 .9rem;font-size:.9rem}.auth-form{flex-direction:column;gap:.9rem;margin-top:.6rem;display:flex}.auth-field{flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.auth-field span{color:#d1d5db}.auth-field input{color:#e5e7eb;background-color:#0f172ad9;border:1px solid #94a3b899;border-radius:.8rem;padding:.55rem .75rem;font-family:inherit;font-size:.9rem}.auth-field input:focus{outline-offset:1px;border-color:#0000;outline:2px solid #38bdf8}.auth-error{color:#fecaca;margin:0;font-size:.8rem}.auth-submit{cursor:pointer;color:#020617;background:linear-gradient(135deg,#38bdf8,#22c55e);border:none;border-radius:999px;width:100%;margin-top:.2rem;padding:.55rem 1.2rem;font-size:.95rem;font-weight:600;transition:transform 80ms,box-shadow .12s,filter .12s;box-shadow:0 14px 40px #0f172ae6}.auth-submit:hover:not(:disabled){filter:brightness(1.03);transform:translateY(-1px)}.auth-submit:disabled{opacity:.7;cursor:default}.auth-hint{color:#9ca3af;text-align:center;margin:.9rem 0 0;font-size:.8rem}.dashboard-root{color:#e5e7eb;box-sizing:border-box;background:radial-gradient(circle at 0 0,#0ea5e9 0,#020617 40%);flex-direction:column;gap:10px;min-height:100vh;padding:1.5rem 2rem 2rem;display:flex}.dashboard-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.dashboard-header h1{margin:0;font-size:1.8rem}.dashboard-header p{color:#9ca3af;margin:.2rem 0 0}.dashboard-layout{grid-template-columns:minmax(0,3fr) minmax(260px,1.1fr);align-items:flex-start;gap:1.5rem;display:grid}.calendar-wrapper{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172af2;border:1px solid #94a3b840;border-radius:1.25rem;width:100%;height:80vh;padding:1.25rem 1.5rem;box-shadow:0 18px 45px #0f172abf}.calendar-header{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.calendar-header h2{margin:0;font-size:1.25rem}.calendar-subtitle{color:#9ca3af;margin:0;font-size:.85rem}.calendar-grid{flex-direction:column;gap:.35rem;display:flex}.calendar-row{border-radius:.75rem;grid-template-columns:70px minmax(0,1fr);align-items:stretch;gap:.75rem;padding:.45rem .35rem;transition:background .16s;display:grid}.calendar-row:hover{background:#0f172ad9}.calendar-time{color:#9ca3af;justify-content:flex-end;align-items:center;padding-right:.5rem;font-size:.8rem;font-weight:500;display:flex}.calendar-slot{flex-wrap:wrap;gap:.35rem;display:flex}.calendar-slot-empty{color:#6b7280;font-size:.8rem}.calendar-event{border:1px solid #0000;border-radius:999px;align-items:baseline;gap:.4rem;padding:.45rem .7rem;font-size:.8rem;display:inline-flex}.calendar-event-name{font-weight:500}.calendar-event-time{opacity:.85}.calendar-event-pendiente{color:#facc15;background:#facc1526;border-color:#facc1566}.calendar-event-confirmado{color:#4ade80;background:#22c55e26;border-color:#22c55e73}.calendar-event-rechazado{color:#fb7185;background:#f8717126;border-color:#f8717166}.side-panel{flex-direction:column;gap:.75rem;display:flex}.side-panel-tabs{background:#0f172ae6;border:1px solid #94a3b866;border-radius:999px;align-self:flex-end;padding:.15rem;display:inline-flex}.tab-button{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.3rem .9rem;font-size:.78rem;transition:background-color .15s,color .15s}.tab-button-active{color:#020617;background:linear-gradient(135deg,#38bdf8,#22c55e)}.side-panel-content{margin-top:.4rem}.panel-section{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0f172af5;border:1px solid #94a3b840;border-radius:1.1rem;flex-direction:column;height:70vh;padding:.85rem .9rem .9rem;display:flex;box-shadow:0 18px 40px #0f172acc}.panel-section-header{justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.6rem;display:flex}.panel-section-header h2{margin:0;font-size:.95rem}.panel-section-body{flex-direction:column;flex:1;gap:.5rem;padding-right:.15rem;display:flex;overflow-y:scroll}.empty-text{color:#6b7280;margin:.2rem 0;font-size:.8rem}.badge{border:1px solid #0000;border-radius:999px;padding:.1rem .55rem;font-size:.75rem}.badge-pending{color:#facc15;background:#facc152e;border-color:#facc1599}.badge-confirmed{color:#4ade80;background:#22c55e2e;border-color:#22c55e99}.badge-rejected{color:#fb7185;background:#f8717129;border-color:#f8717199}.reserva-card{cursor:pointer;background:radial-gradient(circle at 0 0,#94a3b829,#020617);border:1px solid #1f2937e6;border-radius:.85rem;flex-direction:column;gap:.45rem;padding:.55rem .7rem;display:flex}.reserva-card-main{align-items:flex-start;gap:.55rem;display:flex;overflow:hidden}.reserva-card-time{color:#e5e7eb;flex-direction:column;gap:10px;min-width:70px;font-size:.8rem;font-weight:500;display:flex}.time-range-separator{opacity:.5}.reserva-card-info{flex-direction:column;flex:1;gap:.15rem;display:flex}.reserva-paciente{margin:0;font-size:.9rem;font-weight:500}.reserva-contacto{color:#9ca3af;margin:0;font-size:.78rem}.reserva-card-actions{gap:.4rem;margin-left:70px;display:flex}.reserva-status-chip{text-transform:capitalize;border:1px solid #0000;border-radius:999px;padding:.1rem .5rem;font-size:.7rem}.status-pendiente{color:#facc15;background:#facc152e;border-color:#facc1599}.status-confirmado{color:#4ade80;background:#22c55e2e;border-color:#22c55e99}.status-rechazado{color:#fb7185;background:#f8717129;border-color:#f8717199}.btn{cursor:pointer;color:inherit;background:0 0;border:1px solid #0000;border-radius:999px;padding:.35rem .9rem;font-size:.78rem;font-weight:500;transition:background .15s,border-color .15s,transform 80ms}.btn-primary{color:#0f172a;background:linear-gradient(135deg,#38bdf8,#22c55e);border-color:#0f172ae6}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172acc}.btn-ghost{color:#e5e7eb;border-color:#94a3b866}.btn-ghost:hover{background:#0f172ae6}.reserva-modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172abf;justify-content:center;align-items:center;transition:all .3s ease-in-out;animation:.5s Aparecer;display:flex;position:fixed;inset:0}@keyframes Aparecer{0%{opacity:0}to{opacity:1}}.reserva-modal{background:radial-gradient(circle at 0 0,#94a3b838,#020617);border:1px solid #94a3b880;border-radius:1.25rem;width:100%;max-width:460px;padding:1.2rem 1.3rem 1rem;box-shadow:0 24px 80px #0f172ae6}.reserva-modal-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.9rem;display:flex}.reserva-modal-header h3{margin:0;font-size:1.1rem}.reserva-modal-body{flex-direction:column;gap:.45rem;font-size:.86rem;display:flex}.reserva-modal-row{justify-content:space-between;gap:1rem;display:flex}.reserva-modal-row .label{color:#9ca3af}.reserva-modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.9rem;display:flex}@media (width<=960px){.dashboard-layout{grid-template-columns:minmax(0,1fr)}.side-panel{flex-direction:row;overflow-x:auto}.panel-section{min-width:240px;max-height:none}.reserva-card-actions{margin-left:0}}@media (width<=640px){.dashboard-root{padding:1.2rem 1.1rem 1.4rem}.dashboard-header,.calendar-header{flex-direction:column;align-items:flex-start}}
