/* AgendaNegocio Pro — capa visual premium (se carga después de styles.css).
   Sin recursos remotos: tipografías del sistema e iconos como máscaras SVG en data: (permitido por la CSP). */
:root{
  --teal:#312e81;--teal2:#4338ca;--cream:#f4f5fa;--paper:#fff;--amber:#f5a524;--amber-d:#a35f00;
  --ink:#0f172a;--muted:#5a6478;--line:#e4e7f0;--ok:#047857;--bad:#b91c1c;
  --brand:#4f46e5;--brand-d:#3730a3;--brand-soft:#eef0ff;--accent:#14b8a6;--night:#0b1020;
  --r:16px;--r-sm:10px;
  --shadow:0 1px 2px rgba(15,23,42,.05),0 10px 30px -12px rgba(30,27,75,.18);
  --shadow-lg:0 2px 4px rgba(15,23,42,.06),0 30px 60px -20px rgba(30,27,75,.35);
  --serif:'Inter','Segoe UI Variable Display','Segoe UI',system-ui,-apple-system,Roboto,sans-serif;
  --sans:'Inter','Segoe UI Variable Text','Segoe UI',system-ui,-apple-system,Roboto,sans-serif;
}
body{background:var(--cream);background-image:radial-gradient(900px 420px at 85% -10%,rgba(99,102,241,.10),transparent 60%),radial-gradient(700px 360px at -5% 0,rgba(20,184,166,.08),transparent 60%);background-attachment:fixed;font-size:16px;-webkit-font-smoothing:antialiased;letter-spacing:-.003em}
h1,h2,h3{color:var(--ink);letter-spacing:-.025em;font-weight:750}
h1{font-size:clamp(1.9rem,4.4vw,3.2rem);line-height:1.08}
h2{font-size:clamp(1.25rem,2.4vw,1.6rem)}h3{font-size:1.05rem}
a{color:var(--brand-d)}
:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:6px;box-shadow:0 0 0 6px rgba(79,70,229,.18)}
.skip{background:var(--night);border-radius:0 0 10px 0}

/* Barra superior */
.topbar{background:rgba(255,255,255,.82);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid rgba(228,231,240,.9)}
.topbar-in{min-height:64px}
.brand{font-family:var(--serif);font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.logo{gap:.6rem}.logo img{width:32px;height:32px;border-radius:9px;box-shadow:0 4px 12px -2px rgba(79,70,229,.45)}
.logo strong{background:linear-gradient(90deg,var(--brand),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav-links{display:inline-flex;gap:.5rem;align-items:center}
.topbar-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.biz-name{font-weight:650;color:var(--muted);max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.biz-switch{width:auto;min-height:40px;border-radius:999px;padding:.3rem 1rem;font-weight:600}
.lang{background:#f1f2f8;border:0;padding:3px;gap:2px}
.lang-btn{border-radius:999px;min-height:44px;min-width:44px;padding:.25rem .85rem;font-size:.85rem;transition:background .2s,color .2s,box-shadow .2s}
.lang-btn[aria-pressed=true]{background:#fff;color:var(--brand-d);box-shadow:0 1px 3px rgba(15,23,42,.18)}

/* Botones */
.btn{border-radius:12px;border:1px solid transparent;background:linear-gradient(180deg,#5b54f0,var(--brand-d));color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 6px 16px -6px rgba(55,48,163,.7);letter-spacing:-.01em;transition:transform .15s,box-shadow .2s,filter .2s,background .2s}
.btn:hover{background:linear-gradient(180deg,#6760f5,#4338ca);transform:translateY(-1px);box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 12px 22px -8px rgba(55,48,163,.75)}
.btn:active{transform:translateY(0)}
.btn-ghost{background:#fff;color:var(--brand-d);border-color:var(--line);box-shadow:0 1px 2px rgba(15,23,42,.05)}
.btn-ghost:hover{background:var(--brand-soft);border-color:#c9cdfa;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.btn-small{min-height:40px;padding:.35rem .95rem;border-radius:10px}
.btn-large{min-height:54px;padding:.75rem 1.7rem;font-size:1.05rem;border-radius:14px;background:linear-gradient(180deg,#ffbe4d,var(--amber));color:#1c1400;border-color:transparent;box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 12px 28px -10px rgba(245,165,36,.9)}
.btn-large:hover{background:linear-gradient(180deg,#ffc862,#f8ad32)}
.btn-danger{background:linear-gradient(180deg,#d33,var(--bad));box-shadow:0 6px 16px -6px rgba(185,28,28,.7)}
.btn-danger-ghost{background:#fff;color:var(--bad);border-color:#f3c6c6}.btn-danger-ghost:hover{background:#fef2f2}
.btn[disabled]{filter:grayscale(.4)}

/* Superficies */
.card{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:1.4rem}
.subpanel,.summary{background:#f6f7fd;border:1px solid var(--line);border-radius:14px}
.step-card{border-left:0;position:relative;overflow:hidden}
.step-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--brand),var(--accent))}
.step-card h2{display:flex;align-items:center;gap:.7rem}
.step-card h2>span:first-child{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--brand-soft);color:var(--brand-d);font-size:.95rem;font-weight:800}
.notice,.demo-banner{background:#fff8e6;border:1px solid #f6dfa6;border-radius:14px;color:#5a3d00}
.ok-note{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;border-radius:14px}
.empty{border:1.5px dashed #cfd4e6;background:rgba(255,255,255,.6);border-radius:var(--r);padding:2.6rem 1rem}
.empty h3{color:var(--ink)}
.code{background:#eef0ff;color:var(--brand-d);border-radius:6px}

/* Formularios */
input,select,textarea{border:1px solid #cbd0e1;border-radius:12px;background:#fff;transition:border-color .15s,box-shadow .15s;min-height:46px}
input:hover,select:hover,textarea:hover{border-color:#a9b0cc}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px rgba(79,70,229,.18)}
.field>label,.field>span.lbl,legend{color:#27304a;font-weight:650}
.field.has-error input,.field.has-error select{box-shadow:0 0 0 4px rgba(185,28,28,.12)}
fieldset{border-radius:14px;border-color:var(--line);background:#fcfcff}
.state-error,.form-error{background:#fef2f2;border-color:#fecaca;border-radius:12px}
.chip,.check{border-radius:999px;border-color:var(--line);background:#fff;transition:border-color .15s,background .15s}
.chip:has(input:checked),.check:has(input:checked){background:var(--brand-soft);border-color:#b8bdfb;color:var(--brand-d)}
input[type=checkbox],input[type=radio]{accent-color:var(--brand)}

/* Etiquetas de estado */
.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .65rem;font-size:.76rem;letter-spacing:.01em;background:#eef0f6;color:#334155}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}
.badge-confirmed{background:#e6f8ef;color:var(--ok)}.badge-cancelled{background:#fdecec;color:var(--bad)}
.badge-completed{background:#e8efff;color:#1d4ed8}.badge-no_show{background:#fff3d6;color:var(--amber-d)}
.badge-rem-pending,.badge-rem-sending{background:#e8efff;color:#1d4ed8}
.badge-rem-accepted,.badge-rem-sent{background:#e6f8ef;color:var(--ok)}
.badge-rem-retry,.badge-rem-blocked_no_provider{background:#fff3d6;color:var(--amber-d)}
.badge-rem-failed,.badge-rem-cancelled{background:#fdecec;color:var(--bad)}
.tag{background:#eef0f6;color:#334155;border-radius:999px;padding:.15rem .65rem}

/* Diálogos y avisos */
dialog,.dialog{border-radius:22px;box-shadow:var(--shadow-lg);border:1px solid var(--line)}
dialog::backdrop{background:rgba(11,16,32,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
dialog[open]{animation:pop .18s ease-out}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.dialog-head{border-bottom:1px solid var(--line);padding:1.1rem 1.4rem}
.dialog-body{padding:1.4rem}
.toast{background:var(--night);border-radius:14px;box-shadow:var(--shadow-lg);border-left:4px solid var(--accent)}
.toast.error{background:#7f1d1d;border-left-color:#f87171}
.spin{border-color:#dfe2f2;border-top-color:var(--brand)}

/* Reserva pública */
.slots{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.55rem}
.slot{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;min-height:46px;font-variant-numeric:tabular-nums;transition:all .15s}
.slot:hover{border-color:var(--brand);color:var(--brand-d);background:var(--brand-soft);transform:translateY(-1px)}
.slot[aria-pressed=true],.slot.selected{background:linear-gradient(180deg,#5b54f0,var(--brand-d));color:#fff;border-color:transparent;box-shadow:0 8px 18px -8px rgba(55,48,163,.8)}
.datechips{gap:.55rem;padding:.2rem .1rem .6rem;scroll-snap-type:x proximity}
.datechip{scroll-snap-align:start;border:1px solid var(--line);border-radius:14px;min-width:68px;min-height:62px;background:#fff;transition:all .15s;font-weight:600}
.datechip:hover{border-color:var(--brand);background:var(--brand-soft)}
.datechip[aria-pressed=true],.datechip.selected{background:linear-gradient(180deg,#5b54f0,var(--brand-d));border-color:transparent;color:#fff;box-shadow:0 8px 18px -8px rgba(55,48,163,.8)}
.choice{border:1px solid var(--line);border-radius:14px;padding:1rem;transition:border-color .15s,box-shadow .15s,transform .15s}
.choice:hover{border-color:#b8bdfb;transform:translateY(-1px)}
.choice:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 3px rgba(79,70,229,.18);background:#fafaff}
.book-head{padding:2.4rem 1rem 1.6rem;background:linear-gradient(135deg,var(--night),#1e1b4b 60%,#312e81);color:#fff;border-radius:0 0 28px 28px;margin-bottom:1.6rem;position:relative;overflow:hidden}
.book-head::after{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(20,184,166,.45),transparent 70%)}
.book-head h1,.book-head h2,.book-head p{color:#fff;position:relative;z-index:1}
.book-head .muted{color:rgba(255,255,255,.75)}
.detail dt{font-size:.9rem}.detail dd{color:var(--ink)}
.auth-card{margin:3rem auto;border-radius:22px;box-shadow:var(--shadow-lg);padding:2rem}

/* Marketing */
.hero{background:radial-gradient(800px 420px at 85% 10%,rgba(99,102,241,.55),transparent 60%),radial-gradient(600px 400px at 0% 100%,rgba(20,184,166,.28),transparent 60%),var(--night);padding:clamp(2.6rem,7vw,5.5rem) 0;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse at 50% 40%,#000,transparent 75%);mask-image:radial-gradient(ellipse at 50% 40%,#000,transparent 75%)}
.hero-in{position:relative;gap:clamp(1.5rem,5vw,4rem)}
.hero h1{background:linear-gradient(180deg,#fff,#c7cbff);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .8rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.07);color:#9ff0e5;letter-spacing:.06em}
.lead{font-size:clamp(1.02rem,1.6vw,1.2rem);color:#cdd2ee;opacity:1;max-width:56ch}
.hero-copy .row-between{gap:.8rem;margin-top:1.6rem}
.hero-copy .btn-ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.25);box-shadow:none}
.hero-copy .btn-ghost:hover{background:rgba(255,255,255,.16)}
.mock{background:rgba(255,255,255,.96);border-radius:22px;padding:1.1rem;box-shadow:var(--shadow-lg),0 0 0 1px rgba(255,255,255,.4) inset;transform:perspective(1200px) rotateY(-6deg) rotateX(2deg);position:relative}
.mock-head{display:flex;gap:6px;padding:.2rem .3rem .8rem}
.mock-head span{width:10px;height:10px;border-radius:50%;background:#e4e7f0}
.mock-head span:nth-child(1){background:#fda4af}.mock-head span:nth-child(2){background:#fde68a}.mock-head span:nth-child(3){background:#86efac}
.mock-grid{display:grid;gap:.5rem}
.mock-row{display:grid;grid-template-columns:52px 1fr;gap:.7rem;align-items:center;background:transparent;padding:.2rem 0;margin:0}
.mock-time{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}
.mock-bar{display:block;height:40px;border-radius:10px;background:linear-gradient(90deg,#e0e3ff,#f0f1ff);border-left:4px solid var(--brand)}
.mock-bar-1{background:linear-gradient(90deg,#d1f5ef,#eafaf7);border-left-color:var(--accent);width:82%}
.mock-bar-2{background:linear-gradient(90deg,#fff0cc,#fff8e6);border-left-color:var(--amber);width:66%}
.mock-bar-3{width:90%}
.mock-pill{margin-top:.8rem;display:inline-block;font-size:.72rem;font-weight:700;color:var(--ok);background:#e6f8ef;border-radius:999px;padding:.2rem .7rem}
.section{padding-block:clamp(2.5rem,6vw,4.5rem)}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}
.hero .actions .btn-ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.25);box-shadow:none}
.hero .actions .btn-ghost:hover{background:rgba(255,255,255,.16)}
.section h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-bottom:1.4rem}
.steps{gap:1.1rem}
.step{border-radius:var(--r);padding:1.3rem;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;border:1px solid var(--line)}
.step:hover,.feature:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.step-n{background:linear-gradient(135deg,var(--brand),var(--accent));color:#fff;width:36px;height:36px;box-shadow:0 8px 16px -6px rgba(79,70,229,.6)}
.features{gap:1.1rem}
.feature{position:relative;border-radius:var(--r);padding:1.4rem;transition:transform .2s,box-shadow .2s}
.feature::before{content:"";display:block;width:34px;height:34px;margin-bottom:.8rem;background:linear-gradient(135deg,var(--brand),var(--accent));-webkit-mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M8 12.5l3 3 5-6'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M8 12.5l3 3 5-6'/></svg>") center/contain no-repeat}
.footer{border-top:1px solid var(--line);margin-top:2rem;padding:2rem 0}

/* Panel de administración */
.pagehead{margin-bottom:1.4rem}
.pagehead h1{font-size:clamp(1.5rem,2.6vw,2rem)}
.toolbar{gap:.7rem}
.toolbar input:not([type=checkbox]),.toolbar select{width:auto;min-height:42px}
.toolbar>label,.toolbar .field>label{font-weight:600;color:var(--muted);font-size:.9rem}
.seggroup{border:0;background:#eceef7;padding:3px;border-radius:12px;gap:2px}
.seg{background:transparent;color:var(--muted);border-radius:9px;min-height:38px;transition:all .15s}
.seg[aria-pressed=true]{background:#fff;color:var(--brand-d);box-shadow:0 1px 3px rgba(15,23,42,.2)}
.adminnav{background:transparent;border:0;margin:0}
.navlink{border-radius:12px;color:#3b4560;gap:.65rem;font-weight:600;transition:background .15s,color .15s}
.navlink::before{content:"";flex:none;width:19px;height:19px;background:currentColor;opacity:.85;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat;--ic:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/></svg>")}
.navlink:hover{background:#eceefb;color:var(--brand-d)}
.navlink[aria-current=page]{background:linear-gradient(180deg,#5b54f0,var(--brand-d));color:#fff;box-shadow:0 8px 18px -8px rgba(55,48,163,.8)}
.navlink[href="/app"]::before{--ic:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'><rect x='3' y='3' width='7' height='9' rx='1'/><rect x='14' y='3' width='7' height='5' rx='1'/><rect x='14' y='12' width='7' height='9' rx='1'/><rect x='3' y='16' width='7' height='5' rx='1'/></svg>")}
.navlink[href="/app/calendar"]::before{--ic:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M3 10h18M8 3v4M16 3v4'/></svg>")}
.navlink[href="/app/services"]::before{--ic:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'><path d='M3 12V4h8l10 10-8 8z'/><circle cx='7.5' cy='8.5' r='1'/></svg>")}
.navlink[href="/app/staff"]::before{--ic:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><circle cx='12' cy='8' r='4'/><path d='M4 21c0-4 3.6-7 8-7s8 3 8 7'/></svg>")}
.navlink[href="/app/schedule"]::before{--ic:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>")}
.navlink[href="/app/customers"]::before{--ic:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><circle cx='9' cy='8' r='3.5'/><path d='M2 20c0-3.5 3-6 7-6s7 2.5 7 6M16 4.5a3.5 3.5 0 010 7M18 14c2.5.6 4 2.6 4 6'/></svg>")}
.navlink[href="/app/reminders"]::before{--ic:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 16v-5a6 6 0 0112 0v5l2 2H4zM10 21h4'/></svg>")}
.navlink[href="/app/settings"]::before{--ic:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><path d='M4 7h10M18 7h2M4 17h2M10 17h10'/><circle cx='16' cy='7' r='2'/><circle cx='8' cy='17' r='2'/></svg>")}
.subnav{margin-top:.5rem}
.admin-main{padding-top:1.5rem}

/* Estadísticas */
.stats{gap:1rem;align-items:start}
.stat{position:relative;border-radius:var(--r);padding:1.2rem 1.2rem 1.1rem;box-shadow:var(--shadow);overflow:hidden}
.stat::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--brand),var(--accent))}
.stat-value{font-family:var(--serif);font-weight:800;letter-spacing:-.04em;color:var(--ink);font-size:2.3rem;line-height:1.1;font-variant-numeric:tabular-nums}
.bar-track{background:#eceef7;height:10px}
.bar-fill{background:linear-gradient(90deg,var(--brand),var(--accent))}
.linkcard{border:1px solid #c9cdfa;background:linear-gradient(135deg,#f7f7ff,#f0fbf9)}
.linkbox{background:#fff}
.agenda-item{border-radius:14px;border:1px solid var(--line);background:#fff;transition:border-color .15s,box-shadow .15s,transform .15s}
.agenda-item:hover{border-color:#b8bdfb;box-shadow:var(--shadow);transform:translateY(-1px)}
.agenda-when{font-weight:700;font-variant-numeric:tabular-nums}
.item{border-radius:var(--r);box-shadow:var(--shadow);padding:1.1rem 1.2rem;transition:box-shadow .2s,transform .2s}
.item:hover{box-shadow:var(--shadow-lg)}
.checklist li::marker{content:""}

/* Calendario */
.calwrap{border-radius:var(--r);box-shadow:var(--shadow);border:1px solid var(--line);background:#fff}
.cal-dayhead{background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#27304a;font-size:.85rem;border-bottom:1px solid var(--line)}
.cal-dayhead.today{color:var(--brand-d)}
.cal-col.today{background:linear-gradient(180deg,rgba(79,70,229,.05),rgba(79,70,229,.02))}
.cal-col,.cal-axis{border-color:#eceef6}
.cal-line{border-top:1px dashed #e9ebf5}
.cal-appt{border-radius:10px;border-left-width:4px;box-shadow:0 2px 6px -2px rgba(15,23,42,.25);transition:transform .15s,box-shadow .15s;background:#e6f8ef;color:#064e3b;font-weight:500}
.cal-appt:hover{transform:translateY(-1px);box-shadow:0 8px 16px -6px rgba(15,23,42,.35)}
/* Bloques bajos: hora y nombre en una línea; el servicio solo si cabe. El detalle completo está en el diálogo (clic, toque o teclado). */
.cal-appt.dense-1,.cal-appt.dense-2{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.4rem;align-content:flex-start;padding-top:.15rem;padding-bottom:.1rem;line-height:1.25}
.cal-appt.dense-1>*,.cal-appt.dense-2>*{display:inline}
.cal-appt.dense-1 .ca-time,.cal-appt.dense-2 .ca-time{flex:0 0 auto;font-variant-numeric:tabular-nums;font-weight:700}
.cal-appt.dense-1 .ca-name,.cal-appt.dense-2 .ca-name{flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.cal-appt.dense-1 .ca-svc{display:none}
.cal-appt.dense-1{font-size:.72rem;column-gap:.3rem;flex-wrap:wrap;overflow:hidden}
/* En bloques de 30 min y columnas estrechas (semana) el nombre del cliente tiene prioridad; la hora pasa a la línea oculta si no cabe entera (sigue en el tooltip y en el nombre accesible). */
.cal-appt.dense-1 .ca-name{order:1;flex:0 1 auto;min-width:0;max-width:100%}
.cal-appt.dense-1 .ca-time{order:2;flex:0 0 auto;white-space:nowrap;font-weight:600;opacity:.85}
.cal-appt.dense-1.no-time .ca-time{display:none}
.cal-appt.dense-2 .ca-name{order:1;flex:0 0 100%}
.cal-appt.dense-2 .ca-time{order:2;font-size:.72rem}
.cal-appt.dense-2 .ca-svc{order:3;flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.72rem;opacity:.85}
.cal-appt:focus-visible{outline:3px solid #1e1b4b;outline-offset:2px;z-index:3}
.cal-appt.st-cancelled{background:#fdecec;color:var(--bad)}
.cal-appt.st-completed{background:#e8efff;color:#1d4ed8;border-left-color:#1d4ed8}
.cal-appt.st-no_show{background:#fff3d6;color:var(--amber-d)}

/* Tablas */
.tablewrap{border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow-x:auto}
.table{border-collapse:separate;border-spacing:0}
.table th{background:#f8f9fd;color:#5a6478;font-size:.74rem;letter-spacing:.06em;border-bottom:1px solid var(--line)}
.table td{border-bottom:1px solid #eef0f6}
.table td a{display:inline-flex;align-items:center;min-height:36px}
.table tbody tr:hover td{background:#fafbff}
.table tbody tr:last-child td{border-bottom:0}

/* Escritorio: navegación lateral */
@media(min-width:1024px){
  .page:has(>.subnav){display:grid;grid-template-columns:264px minmax(0,1fr);grid-template-rows:auto 1fr;align-items:start;column-gap:2rem;width:100%}
  .page:has(>.subnav)>.topbar{grid-column:1/-1}
  .page:has(>.subnav) .topbar-in{max-width:none;padding-left:1.5rem;padding-right:1.5rem}
  .page:has(>.subnav)>.subnav{grid-column:1;grid-row:2;position:sticky;top:88px;margin:1.5rem 0 0 1.2rem;padding:1rem;max-width:none;width:auto;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
  .page:has(>.subnav)>.admin-main{grid-column:2;grid-row:2;max-width:1220px;margin:0;padding-right:1.5rem}
  .adminnav ul{flex-direction:column;overflow:visible;padding:0;gap:.2rem}
  .adminnav li{width:100%}.navlink{width:100%;min-height:46px;padding:.5rem .9rem}
}
@media(max-width:1023px){
  .navlink{padding:.3rem 1rem;background:#fff;border:1px solid var(--line)}
  .navlink[aria-current=page]{border-color:transparent}
  .adminnav ul{gap:.4rem;padding:.4rem .1rem}
}
@media(max-width:860px){
  .mock{transform:none}
  .book-head{border-radius:0 0 22px 22px}
}
@media(max-width:560px){
  .container{padding:0 .9rem}
  .card{padding:1.1rem}
  .table tr{border-radius:14px;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line)}
  .stat-value{font-size:2rem}
  .topbar-actions{gap:.4rem}
  .auth-card{margin:1.5rem auto;padding:1.4rem}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.btn:hover,.slot:hover,.step:hover,.feature:hover,.cal-appt:hover{transform:none}}
@media(forced-colors:active){.btn,.slot,.datechip,.navlink{border:1px solid ButtonText}.navlink[aria-current=page]{outline:2px solid Highlight}}

/* Centro de comunicaciones */
.biz-context{display:flex;align-items:center;gap:.4rem;min-width:0}
.notification-wrap{position:relative;flex:none}
.notification-button{position:relative;width:44px;height:44px;padding:0;color:var(--brand-d)}
.notification-count{position:absolute;right:-3px;top:-3px;min-width:19px;height:19px;padding:0 .25rem;border-radius:999px;background:var(--bad);color:#fff;font-size:.68rem;font-weight:800;line-height:19px}
.notification-count[hidden]{display:none}
.notification-panel{position:absolute;z-index:20;top:calc(100% + .65rem);right:0;width:min(390px,calc(100vw - 24px));max-height:min(72vh,620px);overflow:auto;padding:1rem;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg)}
.notification-panel[hidden]{display:none}
.notification-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.notification-panel-head h2{margin:0;font-size:1.1rem}
.notification-panel-head .btn{min-height:38px;padding:.3rem .6rem;font-size:.78rem}
.notification-list{display:grid;gap:.5rem;margin-top:.7rem}
.notification-item{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.notification-item.is-unread{border-color:#c7d2fe;background:#f7f7ff}
.notification-item-button{display:grid;width:100%;gap:.25rem;padding:.75rem;text-align:left;background:transparent;border:0;color:var(--ink);cursor:pointer}
.notification-item-button small{color:var(--muted);overflow-wrap:anywhere}
.notification-empty{padding:.5rem}
.notification-error{color:var(--bad)}
.email-center .pagehead h1{margin-bottom:.25rem}
.email-contact-list{display:grid;gap:.35rem;max-height:300px;overflow:auto;padding:.25rem;border:1px solid var(--line);border-radius:12px;background:#fff}
.email-contact,.email-select-all{display:flex;align-items:center;gap:.65rem;padding:.5rem .65rem}
.email-contact span{display:grid;min-width:0}
.email-contact small{color:var(--muted);overflow-wrap:anywhere}
.email-contact input,.email-select-all input{flex:none;min-height:1rem}
.email-history{display:grid;gap:.75rem}
.email-history-item{display:grid;gap:.55rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#fff;min-width:0}
.email-history-item p{margin:0;overflow-wrap:anywhere}
.email-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.email-history-item .badge{max-width:100%;white-space:normal}
.email-history-body,.email-preview-body{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:var(--ink);background:#f7f8fc;border:1px solid var(--line);border-radius:10px;padding:.8rem;max-height:260px;overflow:auto}
.badge-mail-draft{background:#eef0ff;color:var(--brand-d)}
.badge-mail-pending{background:#fff3d6;color:var(--amber-d)}
.badge-mail-accepted,.badge-mail-accepted_test{background:#e6f8ef;color:var(--ok)}
.badge-mail-failed,.badge-mail-unknown{background:#fdecec;color:var(--bad)}
.email-center [hidden]{display:none!important}
.brand-group{display:flex;align-items:center;gap:.45rem}
.mail-shortcut{width:42px;height:42px;color:var(--brand-d);text-decoration:none}
.mail-icon,.notification-icon{display:block;width:21px;height:21px;background:currentColor}
.mail-icon{-webkit-mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='m3 7 9 6 9-6'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='m3 7 9 6 9-6'/></svg>") center/contain no-repeat}
.notification-icon{-webkit-mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'><path d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9M10 21h4'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'><path d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9M10 21h4'/></svg>") center/contain no-repeat}
.navlink[href="/app/emails"]::before{--ic:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='m3 7 9 6 9-6'/></svg>")}
@media(max-width:560px){
  .biz-context{gap:.2rem}
  .biz-name{max-width:12ch}
  .notification-panel{right:-3.3rem}
  .email-history-item{padding:.8rem}
  .email-contact-list{max-height:240px}
}
