*{box-sizing:border-box}.client-portal-body{margin:0;min-height:100vh;background:var(--client-background,#f7f7fb);color:var(--client-text,#18181f);font-family:"Outfit",system-ui,sans-serif}.client-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px clamp(16px,4vw,34px);background:color-mix(in srgb,var(--client-header,var(--client-surface,#fff)) 92%,transparent);color:var(--client-header-text,var(--client-text,#18181f));backdrop-filter:blur(16px);border-bottom:1px solid var(--client-border,#e9e9ef)}.client-business-brand{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.client-business-brand img,.client-business-brand>span{width:42px;height:42px;border-radius:13px;object-fit:contain;background:var(--client-surface,#fff);border:1px solid var(--client-border,#e6e6ed);display:grid;place-items:center;font-weight:900;color:var(--client-primary)}.client-business-brand strong{font-size:15px}.client-top-actions{display:flex;align-items:center;gap:10px}.client-text-link{color:var(--client-muted,#646471);font-size:13px;font-weight:700;text-decoration:none}.client-icon-button{width:42px;height:42px;border:1px solid var(--client-border,#dedee7);border-radius:13px;background:var(--client-surface,#fff);cursor:pointer}.client-icon-button.is-active{background:color-mix(in srgb,var(--client-primary) 10%,white);border-color:color-mix(in srgb,var(--client-primary) 35%,white)}.client-shell{width:min(100%,980px);margin:0 auto;padding:clamp(20px,5vw,52px) clamp(14px,4vw,28px) 70px}.client-shell.narrow{width:min(100%,720px)}.client-hero-card,.client-panel,.client-access-card,.client-profile-strip,.client-empty-card,.client-reservation-card,.client-history-list{background:var(--client-surface,#fff);border:1px solid var(--client-border,#e8e8ef);box-shadow:0 16px 50px rgba(24,24,38,.05)}.client-hero-card{border-radius:30px;padding:clamp(24px,5vw,42px);background:linear-gradient(135deg,color-mix(in srgb,var(--client-primary) 8%,var(--client-surface,#fff)),var(--client-surface,#fff) 62%)}.client-kicker{display:block;color:var(--client-primary);font-size:11px;letter-spacing:.15em;font-weight:800}.client-hero-card h1,.client-panel h1,.client-access-card h1{font-size:clamp(32px,7vw,54px);line-height:.98;letter-spacing:-.045em;margin:12px 0}.client-hero-card p,.client-panel>p,.client-access-card>p{color:var(--client-muted,#70707c);line-height:1.6}.client-hero-actions,.client-detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.client-primary-button,.client-secondary-button,.client-danger-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:14px;padding:13px 16px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.client-primary-button{background:var(--client-primary);color:var(--client-primary-text)}.client-secondary-button{background:var(--client-surface,#fff);border:1px solid var(--client-border,#dedee7);color:var(--client-text,#33333d)}.client-danger-button{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}.client-primary-button:disabled,.client-secondary-button:disabled,.client-danger-button:disabled{opacity:.55;cursor:wait}.client-push-status{font-size:12px;color:var(--client-muted,#858590);margin-top:12px}.client-push-status.is-ok{color:#15803d}.client-section{margin-top:34px}.client-section-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:14px}.client-section-heading span{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--client-primary)}.client-section-heading h2{margin:0;font-size:28px}.client-reservation-list{display:grid;gap:12px}.client-reservation-card{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;border-radius:20px;padding:15px}.client-reservation-date{width:62px;height:66px;border-radius:16px;background:color-mix(in srgb,var(--client-text,#18181f) 4%,var(--client-surface,#fff));display:flex;flex-direction:column;align-items:center;justify-content:center}.client-reservation-date span{font-size:25px;font-weight:800;line-height:1}.client-reservation-date small{font-size:10px;color:var(--client-muted,#777783);margin-top:4px}.client-reservation-main h3{margin:7px 0 3px;font-size:18px}.client-reservation-main p{margin:0;color:var(--client-muted,#777783);font-size:13px}.client-status-pill{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;background:#f3f4f6;color:#4b5563}.client-status-pill.is-confirmada{background:#ecfdf5;color:#166534}.client-status-pill.is-pendiente{background:#fff7ed;color:#9a3412}.client-status-pill.is-cancelada{background:#fff1f2;color:#be123c}.client-status-pill.is-completada{background:#eff6ff;color:#1d4ed8}.client-card-arrow{width:42px;height:42px;border-radius:13px;background:var(--client-dark,#111827);color:var(--client-dark-text,#fff);text-decoration:none;display:grid;place-items:center;font-weight:800}.client-history-list{border-radius:20px;overflow:hidden}.client-history-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;border-bottom:1px solid var(--client-border,#ededf2)}.client-history-row:last-child{border-bottom:0}.client-history-row strong,.client-history-row small{display:block}.client-history-row small{color:var(--client-muted,#858590);margin-top:3px}.client-history-row a{color:var(--client-primary);font-size:12px;font-weight:800;text-decoration:none}.client-profile-strip{margin-top:30px;border-radius:22px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.client-profile-strip span,.client-profile-strip strong,.client-profile-strip small{display:block}.client-profile-strip span{font-size:11px;color:var(--client-muted,#858590)}.client-profile-strip small{margin-top:4px;color:var(--client-muted,#858590)}.client-profile-strip a{color:var(--client-primary);font-weight:800;text-decoration:none}.client-empty-card{border-radius:20px;padding:24px;color:var(--client-muted,#666671)}.client-empty-card.compact{padding:16px 20px}.client-empty-card p{margin-bottom:0}.client-panel{border-radius:28px;padding:clamp(22px,5vw,38px)}.client-detail-list{background:color-mix(in srgb,var(--client-text,#18181f) 3%,var(--client-surface,#fff));border-radius:18px;padding:6px 16px;margin-top:22px}.client-detail-list>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--client-border,#e7e7ed)}.client-detail-list>div:last-child{border-bottom:0}.client-detail-list span{color:var(--client-muted,#7b7b87);font-size:13px}.client-form{display:grid;gap:14px;margin-top:22px}.client-form label,.client-date-label{display:grid;gap:7px}.client-form label>span,.client-date-label>span{font-size:12px;font-weight:800;color:var(--client-text,#555560)}.client-form input,.client-date-label input{width:100%;border:1px solid var(--client-border,#dcdce5);background:var(--client-surface,#fff);border-radius:14px;padding:13px 14px;font:inherit;outline:none}.client-form input:focus,.client-date-label input:focus{border-color:var(--client-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--client-primary) 12%,transparent)}.client-alert{padding:12px 14px;border-radius:13px;background:#f3f4f6;color:#444;margin-top:14px;font-size:13px}.client-alert.success{background:#ecfdf5;color:#166534}.client-alert.error{background:#fff1f2;color:#be123c}.client-security-note{font-size:12px;color:var(--client-muted,#7d7d87);line-height:1.5}.client-link-button{border:0;background:transparent;color:var(--client-primary);font:inherit;font-weight:800;cursor:pointer}.client-access-body{display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,color-mix(in srgb,var(--client-primary) 12%,transparent),transparent 35%),var(--client-background,#f7f7fb)}.client-access-shell{width:min(100%,610px)}.client-access-shell>.client-business-brand{margin:0 0 14px 4px}.client-access-card{border-radius:30px;padding:clamp(26px,6vw,44px)}.client-time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:16px}.client-time-button{border:1px solid var(--client-border,#ddddE6);background:var(--client-surface,#fff);border-radius:13px;padding:12px 8px;font:inherit;font-weight:800;cursor:pointer}.client-time-button:hover,.client-time-button.is-selected{border-color:var(--client-primary);background:color-mix(in srgb,var(--client-primary) 8%,var(--client-surface,#fff));color:var(--client-primary)}.client-hold-box{margin:18px 0;padding:16px;border-radius:18px;background:color-mix(in srgb,var(--client-primary) 8%,var(--client-surface,#fff));border:1px solid color-mix(in srgb,var(--client-primary) 18%,var(--client-surface,#fff))}.client-hold-box span,.client-hold-box strong,.client-hold-box p{display:block}.client-hold-box span{font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--client-primary)}.client-hold-box strong{font-size:30px;margin-top:3px}.client-hold-box p{margin:4px 0 0;color:var(--client-muted,#6e6e79);font-size:12px}@media(max-width:620px){.client-topbar{padding:10px 12px}.client-business-brand strong{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-section-heading{align-items:flex-start;flex-direction:column}.client-reservation-card{grid-template-columns:auto 1fr auto;gap:10px}.client-reservation-date{width:52px;height:58px}.client-history-row{align-items:flex-start;flex-direction:column}.client-profile-strip{align-items:flex-start;flex-direction:column}.client-time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.client-detail-list>div{align-items:flex-start;flex-direction:column;gap:4px}.client-hero-actions,.client-detail-actions{display:grid;grid-template-columns:1fr}.client-primary-button,.client-secondary-button,.client-danger-button{width:100%}}

/* =========================================================
   CENTRO DE NOTIFICACIONES DEL CLIENTE
========================================================= */
.client-notification-center{position:relative}.client-notification-bell{position:relative;display:grid;place-items:center;color:#25252d}.client-notification-badge{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;border:3px solid #fff;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center}.client-notification-panel{position:absolute;right:0;top:calc(100% + 12px);width:min(380px,calc(100vw - 24px));background:var(--client-surface,#fff);border:1px solid var(--client-border,#e5e5ec);border-radius:22px;box-shadow:0 28px 70px rgba(20,20,30,.18);overflow:hidden;z-index:80}.client-notification-panel[hidden]{display:none}.client-notification-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px;border-bottom:1px solid var(--client-border,#efeff3)}.client-notification-head strong,.client-notification-head small{display:block}.client-notification-head strong{font-size:16px}.client-notification-head small{font-size:11px;color:#92929c;margin-top:2px}.client-notification-head button{border:0;background:transparent;color:var(--client-primary);font:inherit;font-size:11px;font-weight:800;cursor:pointer}.client-notification-list{max-height:390px;overflow:auto;padding:7px}.client-notification-item{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:start;padding:11px;border-radius:14px;text-decoration:none;color:inherit;position:relative}.client-notification-item:hover{background:color-mix(in srgb,var(--client-text,#18181f) 3%,var(--client-surface,#fff))}.client-notification-item.is-unread{background:color-mix(in srgb,var(--client-primary) 7%,white)}.client-notification-item.is-unread:after{content:"";position:absolute;right:9px;top:9px;width:7px;height:7px;border-radius:50%;background:var(--client-primary)}.client-notification-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--client-primary) 10%,white);color:var(--client-primary)}.client-notification-item span:nth-child(2){min-width:0;padding-right:6px}.client-notification-item strong,.client-notification-item small{display:block}.client-notification-item strong{font-size:12px;line-height:1.3}.client-notification-item small{margin-top:4px;font-size:11px;line-height:1.4;color:#7d7d88}.client-notification-item time{font-size:9px;color:#a0a0aa;white-space:nowrap;padding-right:7px}.client-notification-empty{padding:30px 18px;text-align:center;color:#8b8b96;font-size:12px}.client-notification-view-all{display:flex;align-items:center;justify-content:center;min-height:44px;margin:0 10px 10px;border-radius:12px;background:var(--client-dark,#17171f);color:var(--client-dark-text,#fff);text-decoration:none;font-size:12px;font-weight:800}.client-notification-page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.client-notification-page-title h1{margin-bottom:6px}.client-notification-page-title p{margin:0;color:#7d7d88}.client-notification-full-list{display:grid;gap:9px;margin-top:24px}.client-notification-full-item{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--client-border,#e7e7ed);border-radius:17px;text-decoration:none;color:inherit;position:relative}.client-notification-full-item.is-unread{background:color-mix(in srgb,var(--client-primary) 6%,white);border-color:color-mix(in srgb,var(--client-primary) 18%,#e7e7ed)}.client-notification-full-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--client-primary) 10%,white);color:var(--client-primary)}.client-notification-full-item strong,.client-notification-full-item small{display:block}.client-notification-full-item small{margin-top:4px;color:#7d7d88;font-size:12px}.client-notification-full-item time{font-size:10px;color:#9a9aa5}.client-notification-full-item.is-unread:after{content:"";position:absolute;right:10px;top:10px;width:7px;height:7px;border-radius:50%;background:var(--client-primary)}
@media(max-width:620px){.client-notification-panel{position:fixed;top:72px;left:12px;right:12px;width:auto;max-height:calc(100vh - 86px)}.client-notification-list{max-height:calc(100vh - 235px)}.client-notification-page-title{align-items:flex-start;flex-direction:column}.client-notification-full-item{grid-template-columns:42px 1fr}.client-notification-full-item time{grid-column:2}}
