:root{--ui-ink:#14213b;--ui-muted:#657289;--ui-line:#dfe6f1;--ui-soft:#f6f8fc;--ui-primary:#3659c9;--ui-primary-dark:#2645aa;--ui-mint:#19ae94;--ui-shadow:0 14px 40px rgba(34,54,105,.08)}
body{color:var(--ui-ink);background:linear-gradient(145deg,#eef3ff 0,#f8faff 42%,#effafa 100%)}
button,a,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease}
button:hover{transform:translateY(-1px)}
input:focus,select:focus,textarea:focus{outline:3px solid #e1e7ff;border-color:var(--ui-primary)!important;box-shadow:none}

/* Administración por rol */
.shell{width:min(1380px,calc(100% - 30px));margin:22px auto 50px}
#dashboard:not(.hidden){display:grid;grid-template-columns:248px minmax(0,1fr);grid-template-rows:auto auto 1fr;gap:18px;align-items:start}
#dashboard>.topbar{grid-column:1/-1;position:sticky;top:10px;z-index:30;margin:0;padding:15px 20px;border:1px solid rgba(221,228,240,.95);border-radius:20px;background:rgba(255,255,255,.92);box-shadow:var(--ui-shadow);backdrop-filter:blur(16px)}
.topbar .brand img{width:98px;height:54px;object-fit:contain}.topbar .brand small{padding-left:12px;border-left:1px solid var(--ui-line);font-size:14px;font-weight:800;color:var(--ui-ink)}
.topbar #user-name{display:inline-grid;padding:8px 12px;border-radius:11px;background:#f1f4fa;color:#46536b;font-weight:750;line-height:1.2}.topbar #user-name b{font-size:13px}.topbar #user-name small{color:#7a869b;font-size:10px}
#dashboard>nav{grid-column:1;position:sticky;top:101px;display:grid;gap:5px;margin:0;padding:10px;border:1px solid var(--ui-line);border-radius:20px;background:rgba(255,255,255,.94);box-shadow:var(--ui-shadow);overflow:visible}
#dashboard>nav:before{content:"MENÚ PRINCIPAL";padding:11px 12px 7px;color:#8a94a6;font-size:10px;font-weight:900;letter-spacing:.13em}
#dashboard>nav button{display:grid;grid-template-columns:31px 1fr auto;align-items:center;gap:9px;width:100%;padding:9px 11px;border:0;border-radius:11px;text-align:left;color:#5c687f}
#dashboard>nav button:hover{background:#f3f6fb;color:var(--ui-ink);transform:none}
#dashboard>nav button.active{background:linear-gradient(135deg,var(--ui-primary),#5574dd);color:#fff;box-shadow:0 8px 18px rgba(54,89,201,.23)}
.nav-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#edf1f8;color:#52617b;font-size:16px}.active>.nav-icon{background:rgba(255,255,255,.18);color:#fff}.nav-label{font-size:13px;font-weight:780}.badge{justify-self:end}
#dashboard>.panel,#dashboard>.feedback{grid-column:2;min-width:0}
.panel{padding:28px;border:1px solid rgba(221,228,240,.95);border-radius:23px;box-shadow:var(--ui-shadow)}
.panel>.eyebrow:first-child{margin-top:0}.panel>h1{margin:6px 0 26px;font-size:clamp(29px,4vw,46px)}
.heading{position:relative;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid #e8edf4}.heading>div:first-of-type{padding-left:15px}.section-marker{position:absolute;left:0;top:3px;width:5px;height:39px;border-radius:99px;background:linear-gradient(var(--ui-primary),var(--ui-mint))}.heading h2{font-size:24px}.heading p{font-size:14px}
.metrics{gap:15px}.metrics article{position:relative;min-height:140px;padding:22px;border:1px solid #e1e7f1;border-radius:19px;background:linear-gradient(145deg,#fff,#f3f6ff);overflow:hidden}.metrics article:after{content:"";position:absolute;right:-30px;bottom:-35px;width:100px;height:100px;border-radius:50%;background:rgba(54,89,201,.07)}.metrics strong{font-size:34px}.metrics span{font-weight:700}
.quick-heading{display:flex;justify-content:space-between;align-items:end;margin:30px 0 13px}.quick-heading h2{margin:0;font-size:21px}.quick-heading p{margin:3px 0 0;color:var(--ui-muted);font-size:13px}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-action{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;min-height:88px;padding:15px;border:1px solid #e0e7f1;border-radius:16px;background:#fff;color:var(--ui-ink);box-shadow:0 6px 18px rgba(34,54,105,.045);text-align:left}.quick-action:hover{border-color:#c5d2ee;background:#f9faff;box-shadow:0 10px 24px rgba(34,54,105,.08)}.quick-action>span:first-child{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#edf1ff;color:var(--ui-primary);font-size:21px}.quick-action strong,.quick-action small{display:block}.quick-action strong{font-size:14px}.quick-action small{margin-top:3px;color:var(--ui-muted);font-size:11px;line-height:1.35}
.form-grid{gap:15px 18px;padding:21px;border-color:#e1e7f1;border-radius:18px;background:#f8faff}.form-grid label{margin:0}.form-grid>button{align-self:end;min-width:180px}
.form-launcher{width:auto;min-width:160px;align-self:center}.collapsible-form{max-height:1200px;opacity:1;overflow:visible;transform:translateY(0);transition:max-height .24s ease,opacity .18s ease,transform .22s ease,margin .22s ease,padding .22s ease,border-width .22s ease}.collapsible-form.is-collapsed{max-height:0;margin-block:0;padding-block:0;border-width:0;opacity:0;overflow:hidden;transform:translateY(-7px);pointer-events:none}
input,select,textarea{border-radius:12px!important;background:#fff}.cards{gap:14px}.cards article{position:relative;padding:19px;border-color:#e0e7f0;border-radius:16px;box-shadow:0 6px 18px rgba(34,54,105,.04)}.cards article:hover{border-color:#c9d4ec;box-shadow:0 10px 24px rgba(34,54,105,.075)}
.inbox-layout{border:1px solid #e0e6f0;border-radius:18px;overflow:hidden}.conversation-detail header{border-radius:0}.conversation-detail form{background:#fff}.integration-card{border:1px solid #dce4f4;border-radius:17px;background:linear-gradient(145deg,#f1f4ff,#f3fbfa)}
.conversation-item{position:relative;padding-left:20px!important}.conversation-item:before{content:"";position:absolute;left:8px;top:19px;width:7px;height:7px;border-radius:50%;background:#aab3c2}.conversation-item.is-pending:before{background:#e0544b;box-shadow:0 0 0 4px #fff0ef}.conversation-item.is-active-human:before{background:#16a375;box-shadow:0 0 0 4px #eaf9f3}.conversation-item.is-bot:before{background:#4d70d6}.conversation-item.is-closed{opacity:.68}.conversation-item.active{background:linear-gradient(135deg,#edf2ff,#f0faf8)!important;box-shadow:inset 4px 0 var(--ui-primary)}.conversation-item strong{font-size:14px}.conversation-item p{font-size:12px}.conversation-back{display:none;width:auto!important;min-height:34px!important;padding:6px 9px!important;font-size:12px}
.access-card{border-color:#e0e7f1;border-radius:27px;box-shadow:0 24px 70px rgba(34,54,105,.12)}.access-card .brand img{width:120px;height:auto}.access-card h1{margin-bottom:25px}.access-card button{border-radius:12px;background:linear-gradient(135deg,var(--ui-primary),#5574dd);box-shadow:0 8px 18px rgba(54,89,201,.2)}

/* Chat del paciente */
.chat-shell{border-inline:1px solid #e1e7f0;box-shadow:0 18px 60px rgba(25,42,84,.13)}
.chat-shell>header{padding:15px 18px;background:rgba(255,255,255,.94);box-shadow:0 5px 18px rgba(25,42,84,.05);z-index:2}.chat-shell .avatar{border-radius:15px;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 55%,#24bba0));box-shadow:0 7px 16px color-mix(in srgb,var(--primary) 25%,transparent)}
#messages{padding:22px;background:linear-gradient(180deg,#f8faff,#f2f6fb)}.message{border-color:#dfe6f0;box-shadow:0 5px 15px rgba(25,42,84,.045)}.message.patient{border:0;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 80%,#5978df));box-shadow:0 7px 17px color-mix(in srgb,var(--primary) 20%,transparent)}
.chat-shell>form{padding:13px 16px;background:#fff}.chat-shell>form input{border-radius:15px}.chat-shell>form button{border-radius:14px;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 78%,#5e7de2))}.chat-shell>footer{background:#fff}

/* Portal de turnos */
.portal-shell{width:min(900px,calc(100% - 24px))}.portal-shell>header{padding:5px 4px}.portal-shell .mark{background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 55%,#20b89b))}.booking-card{padding:32px;border-color:#dfe6f0;border-radius:27px;box-shadow:0 22px 65px rgba(25,42,84,.11)}.booking-card .intro{padding:13px 16px;border-left:4px solid var(--primary);border-radius:0 12px 12px 0;background:#f4f7ff}.booking-card .grid{gap:17px 18px}.booking-card button{border-radius:13px;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 78%,#5e7de2));box-shadow:0 8px 18px color-mix(in srgb,var(--primary) 18%,transparent)}.success>div{box-shadow:0 9px 24px rgba(6,118,71,.15)}
.booking-card .grid{display:grid;grid-template-columns:1fr;gap:16px}.booking-step{padding:18px;border:1px solid #e0e7f1;border-radius:18px;background:#fbfcff}.booking-step-title{display:flex;align-items:center;gap:11px;margin-bottom:17px}.booking-step-title>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e9eef9;color:#66738a;font-weight:900}.booking-step.active .booking-step-title>span{background:var(--primary);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--primary) 22%,transparent)}.booking-step.complete .booking-step-title>span{font-size:0;background:#dcfae6;color:#087443}.booking-step.complete .booking-step-title>span:after{content:"✓";font-size:17px}.booking-step-title strong,.booking-step-title small{display:block}.booking-step-title small{margin-top:2px;color:#748096;font-size:12px}.booking-step-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.booking-step-fields>.wide{grid-column:1/-1}
.chat-suggestions{display:flex;gap:7px;padding:8px 16px 3px;background:#fff;overflow-x:auto}.chat-suggestions button{width:auto;min-height:34px;padding:7px 11px;border:1px solid color-mix(in srgb,var(--primary) 24%,#dce3ee);border-radius:999px;background:#f4f7ff;color:var(--primary);box-shadow:none;font-size:12px;white-space:nowrap}.chat-suggestions button:hover{background:#e9efff;transform:none}.chat-suggestions.used{display:none}

@media(max-width:900px){#dashboard:not(.hidden){grid-template-columns:1fr;gap:12px}#dashboard>.topbar{grid-column:1;position:static}#dashboard>nav{grid-column:1;position:sticky;top:6px;z-index:25;display:flex;gap:5px;padding:6px;border-radius:15px;overflow-x:auto}#dashboard>nav:before{display:none}#dashboard>nav button{display:flex;width:auto;min-width:max-content;padding:8px 11px}.nav-icon{width:27px;height:27px}#dashboard>.panel,#dashboard>.feedback{grid-column:1}.quick-actions{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.shell{width:min(100% - 14px,1380px);margin:7px auto 26px}#dashboard>.topbar{padding:13px 14px;border-radius:17px}.topbar .brand img{width:79px;height:43px}.topbar .brand small{font-size:12px}.topbar #user-name{width:100%;font-size:12px}.panel{padding:18px;border-radius:19px}.heading{gap:12px;flex-direction:column}.heading>select,.heading>button{width:100%}.metrics{grid-template-columns:1fr 1fr}.metrics article{min-height:115px;padding:16px}.metrics strong{font-size:28px}.quick-actions{grid-template-columns:1fr}.quick-action{min-height:76px}.form-grid{padding:14px}.form-grid>button{width:100%;min-width:0}.form-launcher{width:100%}.booking-card{padding:19px}.portal-shell>header{align-items:flex-start}.chat-shell{border:0}.message{max-width:91%}}
@media(max-width:420px){.metrics{grid-template-columns:1fr}.topbar>div:last-child{width:100%;flex-wrap:wrap}.topbar #logout{flex:1}.portal-shell{width:min(100% - 14px,900px)}}
@media(max-width:620px){.booking-card{padding:16px}.booking-step{padding:14px}.booking-step-fields{grid-template-columns:1fr}.booking-step-fields>.wide{grid-column:auto}.chat-suggestions{padding-inline:10px}.chat-shell>form{padding-inline:10px}}
.inbox-message{border-radius:16px!important;box-shadow:0 5px 14px rgba(25,42,84,.045)}.inbox-message.agent{border-color:#cfd9f6!important;background:linear-gradient(135deg,#edf2ff,#f1f4ff)!important}.inbox-message.bot{border-color:#dfe4ec!important;background:#f5f7fa!important}
@media(max-width:760px){.inbox-layout{display:block;min-height:540px}.inbox-layout>aside{max-height:none;height:540px;border:0}.inbox-layout>.conversation-empty,.inbox-layout>.conversation-detail{display:none!important}.inbox-layout.mobile-chat-open>aside{display:none}.inbox-layout.mobile-chat-open>.conversation-detail:not(.hidden){display:grid!important;min-height:540px}.conversation-back{display:block}.conversation-detail>header{display:grid;grid-template-columns:1fr auto;align-items:start}.conversation-detail>header>.conversation-back{grid-column:1/-1}.conversation-detail>header>div:last-child{flex-wrap:wrap}.conversation-detail>section{min-height:340px}.inbox-message{max-width:90%}}
.cards>p:only-child,.appointments>p:only-child,.conversation-empty{padding:34px 20px;border:1px dashed #d5deec;border-radius:16px;background:#fafbfe;color:var(--ui-muted);text-align:center}
.patient-history{grid-column:1/-1;margin-top:14px;padding-top:14px;border-top:1px solid #e5e9f2}.patient-history-section+ .patient-history-section{margin-top:18px}.patient-history-section h4{margin:0 0 10px}.patient-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f6}.patient-history-row div{display:grid;gap:3px}.patient-history-row p{grid-column:1/-1;margin:0;color:#667085}
