:root {
    --ink: #17142d;
    --muted: #716f82;
    --line: #e9e7f1;
    --surface: #ffffff;
    --canvas: #f7f7fb;
    --primary: #7357ff;
    --primary-dark: #5b3fe5;
    --primary-soft: #eeeaff;
    --accent: #15c7a3;
    --accent-soft: #e3fbf5;
    --orange: #ff8b5e;
    --blue: #3b9df8;
    --danger: #e54c65;
    --warning: #f0a62e;
    --shadow-sm: 0 8px 24px rgba(35, 28, 72, .07);
    --shadow: 0 24px 70px rgba(35, 28, 72, .12);
    --radius: 18px;
    --radius-lg: 28px;
    --sidebar: 274px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--canvas); font-size: 15px; line-height: 1.55; }
body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, .btn { cursor: pointer; }
img { max-width: 100%; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--primary); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow.light { color: #d8d0ff; }
.pulse-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px rgba(21,199,163,.13); }

.brand { display: inline-flex; align-items: center; gap: 11px; font-weight: 850; font-size: 19px; letter-spacing: -.02em; }
.brand-mark { display: grid; place-items: center; width: 37px; height: 37px; border-radius: 12px 12px 12px 4px; color: #fff; background: linear-gradient(135deg, var(--primary), #9f6bff); box-shadow: 0 8px 20px rgba(115,87,255,.28); }
.brand-large { font-size: 22px; }
.brand-large .brand-mark { width: 44px; height: 44px; }
.brand-light { color: #fff; }

.btn { border: 0; border-radius: 12px; min-height: 42px; padding: 10px 18px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; font-weight: 750; transition: .2s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { color: #fff; background: linear-gradient(135deg, var(--primary), #8d63ff); box-shadow: 0 10px 25px rgba(115,87,255,.24); }
.btn-primary:hover { background: linear-gradient(135deg, var(--primary-dark), var(--primary)); box-shadow: 0 12px 30px rgba(115,87,255,.32); }
.btn-primary:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.btn-soft { color: var(--ink); background: #f0eef7; }
.btn-soft:hover { background: #e8e5f2; }
.btn-danger { color:#fff; background:#c94358; box-shadow:0 9px 22px rgba(201,67,88,.2); }
.btn-danger-soft { color:#a82f43; background:#fff0f3; }
.btn-small { min-height:34px; padding:7px 11px; border-radius:9px; font-size:10px; }
.btn-ghost { color: var(--primary); background: transparent; border: 1px solid #d8d1ff; }
.btn-white { color: var(--primary-dark); background: #fff; box-shadow: 0 15px 35px rgba(32,24,68,.18); }
.btn-large { min-height: 52px; padding: 14px 24px; border-radius: 14px; }
.btn-block { width: 100%; }
.text-link { color: var(--primary); font-weight: 750; }
.icon-button { display: grid; place-items: center; border: 0; border-radius: 9px; width: 36px; height: 36px; color: var(--primary); background: var(--primary-soft); }

input, select, textarea { width: 100%; border: 1px solid #dfdce9; border-radius: 11px; background: #fff; color: var(--ink); padding: 11px 13px; outline: none; transition: .2s; }
input:focus, select:focus, textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(115,87,255,.1); }
input[type="color"] { min-height: 44px; padding: 5px; }
textarea { resize: vertical; }
label { display: grid; gap: 7px; color: #464256; font-size: 13px; font-weight: 700; }
.stack-form { display: grid; gap: 18px; }
.form-grid { display: grid; gap: 15px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0,1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
fieldset { border: 0; border-top: 1px solid var(--line); margin: 4px 0 0; padding: 18px 0 0; }
legend { padding-right: 15px; font-weight: 850; font-size: 15px; }
.check-line { display: flex; align-items: flex-start; gap: 10px; font-weight: 600; }
.check-line input { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--primary); }
.form-note { margin: 0; padding: 11px 13px; background: #f2f7ff; border-radius: 10px; color: #4c6183; font-size: 13px; }
.alert { padding: 13px 16px; border-radius: 11px; font-size: 14px; }
.alert ul { margin: 8px 0 0; padding-left: 20px; }
.alert-danger { color: #9b2f42; background: #fff0f3; border: 1px solid #ffd4dc; }
.alert-warning { color: #89601d; background: #fff8e7; border: 1px solid #f9dda2; }

/* Public navigation */
.public-body { background: #fff; }
.public-header { position: relative; z-index: 50; height: 78px; display: flex; align-items: center; background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(232,229,241,.8); backdrop-filter: blur(14px); }
.nav-wrap { display: flex; align-items: center; justify-content: space-between; }
.public-nav { display: flex; align-items: center; gap: 25px; color: #4c485e; font-size: 14px; font-weight: 650; }
.public-nav > a:not(.btn):hover { color: var(--primary); }
.nav-toggle { display: none; background: transparent; border: 0; }
.nav-toggle span, .menu-button span { width: 22px; height: 2px; background: currentColor; display: block; margin: 4px 0; }
.language-menu { position: relative; }
.language-button { border: 0; padding: 7px 9px; border-radius: 8px; background: transparent; color: inherit; font-size: 12px; font-weight: 800; }
.language-dropdown { display: none; position: absolute; right: 0; top: calc(100% + 8px); min-width: 145px; padding: 7px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm); z-index: 10; }
.language-dropdown.open { display: grid; }
.language-dropdown a { padding: 7px 10px; border-radius: 7px; color: var(--ink); font-size: 13px; }
.language-dropdown a:hover { background: var(--primary-soft); }

/* Landing */
.hero { min-height: 720px; display: flex; align-items: center; position: relative; overflow: hidden; background: linear-gradient(145deg,#f9f8ff 15%,#f5f9ff 60%,#f1fffb); }
.hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(115,87,255,.13) 1px,transparent 1px); background-size: 25px 25px; mask-image: linear-gradient(to right,black,transparent 70%); }
.hero-orb { position: absolute; border-radius: 50%; filter: blur(4px); }
.hero-orb-one { width: 420px; height: 420px; background: rgba(115,87,255,.12); right: -150px; top: -130px; }
.hero-orb-two { width: 300px; height: 300px; background: rgba(21,199,163,.11); left: 38%; bottom: -150px; }
.hero-grid { position: relative; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 70px; }
.hero-copy h1 { margin: 20px 0; max-width: 660px; font-size: clamp(46px,5.3vw,76px); line-height: .99; letter-spacing: -.055em; }
.hero-copy > p { max-width: 610px; margin: 0; color: var(--muted); font-size: 19px; line-height: 1.7; }
.hero-actions { display: flex; gap: 12px; margin: 32px 0 24px; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 15px 22px; color: #777287; font-size: 12px; font-weight: 650; }
.hero-trust span::first-letter { color: var(--accent); }
.hero-visual { min-height: 515px; position: relative; display: grid; place-items: center; }
.hero-visual::before { content: ""; position: absolute; width: 430px; height: 430px; border-radius: 46% 54% 62% 38%; background: linear-gradient(135deg,rgba(115,87,255,.18),rgba(21,199,163,.12)); transform: rotate(12deg); }
.floating-card { position: relative; width: min(430px,90%); padding: 25px; border: 1px solid rgba(255,255,255,.75); border-radius: 25px; background: rgba(255,255,255,.92); box-shadow: 0 35px 80px rgba(50,36,106,.18); backdrop-filter: blur(18px); transform: rotate(-2deg); }
.mini-head { display: flex; justify-content: space-between; align-items: flex-start; }
.mini-head div { display: grid; }
.mini-head span { color: var(--muted); font-size: 12px; }
.mini-head strong { font-size: 20px; }
.live-badge { color: #0a9f82 !important; background: var(--accent-soft); padding: 5px 8px; border-radius: 8px; font-size: 9px !important; font-weight: 850; }
.mini-days { display: grid; grid-template-columns: repeat(5,1fr); gap: 6px; margin: 24px 0 15px; text-align: center; color: var(--muted); font-size: 11px; font-weight: 800; }
.mini-days span:nth-child(3) { color: #fff; background: var(--primary); border-radius: 8px; padding: 6px; margin: -6px 8px; }
.mini-slots { display: grid; gap: 12px; }
.mini-slots > div { display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: 9px; }
.mini-slots b { font-size: 12px; }
.mini-slots span { position: relative; display: grid; padding: 10px 12px 10px 16px; border-radius: 10px; background: color-mix(in srgb,var(--event) 10%,white); font-size: 12px; font-weight: 800; overflow: hidden; }
.mini-slots span::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--event); }
.mini-slots small { color: var(--muted); font-weight: 500; }
.floating-stat { position: absolute; z-index: 2; display: flex; align-items: center; gap: 11px; padding: 13px 16px; border-radius: 15px; background: #fff; box-shadow: var(--shadow-sm); }
.floating-stat strong, .floating-stat small { display: block; }
.floating-stat small { color: var(--muted); font-size: 10px; }
.stat-one { top: 80px; right: -18px; }
.stat-two { bottom: 70px; left: -20px; }
.stat-icon { display:grid; place-items:center; width:35px; height:35px; border-radius:10px; color:#078b71; background:var(--accent-soft); }
.avatar-stack { display:flex; }
.avatar-stack i { width:29px; height:29px; display:grid; place-items:center; margin-left:-7px; border:2px solid white; border-radius:50%; color:#fff; background:var(--primary); font-size:10px; font-style:normal; }
.avatar-stack i:nth-child(2){background:var(--accent)} .avatar-stack i:nth-child(3){background:var(--orange)}
.section { padding: 105px 0; }
.section-tint { background: #f8f8fc; }
.section-heading { max-width: 600px; margin-bottom: 48px; }
.section-heading.centered { text-align: center; margin-inline: auto; }
.section-heading h2 { margin: 12px 0; font-size: clamp(34px,4vw,50px); line-height: 1.1; letter-spacing: -.04em; }
.section-heading p { margin: 0; color: var(--muted); font-size: 17px; }
.service-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.service-card { position: relative; display: flex; flex-direction: column; min-height: 300px; padding: 25px; border: 1px solid var(--line); border-radius: 20px; background: #fff; transition: .25s; overflow: hidden; }
.service-card:hover { transform: translateY(-6px); border-color: #d7d0ff; box-shadow: var(--shadow-sm); }
.service-number { position: absolute; right: 20px; top: 16px; color: #e4e1ed; font-size: 36px; font-weight: 900; }
.service-icon { display: grid; place-items:center; width:47px; height:47px; margin-bottom:27px; border-radius:14px; color:var(--service-color); background:color-mix(in srgb,var(--service-color) 12%,white); }
.service-card h3 { margin: 0 0 8px; font-size: 20px; }
.service-card p { flex:1; margin:0 0 22px; color:var(--muted); font-size:13px; }
.service-meta { display:flex; justify-content:space-between; align-items:center; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.service-meta strong { color:var(--ink); font-size:15px; }
.service-card > a { margin-top:15px; color:var(--primary); font-size:13px; font-weight:800; }
.empty-public { grid-column:1/-1; padding:60px; text-align:center; color:var(--muted); background:var(--canvas); border-radius:var(--radius); }
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.team-card { padding:30px; border-radius:20px; background:#fff; box-shadow:var(--shadow-sm); text-align:center; }
.team-avatar { display:grid; place-items:center; width:85px; height:85px; margin:0 auto 18px; border-radius:30px 30px 30px 10px; color:#fff; background:linear-gradient(135deg,var(--team-color),color-mix(in srgb,var(--team-color) 55%,#fff)); font-size:30px; font-weight:900; }
.team-card h3 { margin:0 0 3px; } .team-card p { margin:0; color:var(--muted); }
.how-section { background:#fff; }
.steps-grid { display:grid; grid-template-columns:repeat(3,1fr); max-width:900px; margin:auto; }
.steps-grid article { position:relative; padding:30px; text-align:center; }
.steps-grid article:not(:last-child)::after { content:""; position:absolute; top:56px; right:-35%; width:70%; border-top:2px dashed #ded9f6; }
.steps-grid article > span { position:absolute; top:10px; right:25%; color:#ebe8f4; font-size:70px; font-weight:900; }
.step-icon { position:relative; display:grid; place-items:center; width:70px; height:70px; margin:0 auto 20px; border-radius:22px; color:var(--primary); background:var(--primary-soft); font-size:24px; }
.steps-grid article:nth-child(2) .step-icon { color:#07987c; background:var(--accent-soft); }
.steps-grid article:nth-child(3) .step-icon { color:#d65f35; background:#fff0e9; }
.cta-section { padding:20px 0 95px; }
.cta-card { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:60px 70px; border-radius:30px; color:#fff; background:linear-gradient(130deg,#292048,var(--primary) 65%,#9771ff); box-shadow:0 30px 70px rgba(67,44,160,.28); }
.cta-card h2 { max-width:650px; margin:10px 0; font-size:42px; line-height:1.08; letter-spacing:-.04em; }
.cta-card p { margin:0; color:#ddd7ff; }
.public-footer { padding:60px 0 20px; color:#ccc7dd; background:#151225; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:50px; }
.footer-grid > div { display:grid; align-content:start; gap:9px; }
.footer-grid p { max-width:320px; color:#858099; }
.footer-grid strong { color:#fff; margin-bottom:10px; }
.footer-grid a:not(.brand):hover { color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; padding-top:25px; margin-top:45px; border-top:1px solid #2a263c; font-size:12px; }

/* Login */
.auth-page { min-height:100vh; background:#fff; }
.auth-shell { min-height:100vh; display:grid; grid-template-columns:1.05fr .95fr; }
.auth-showcase { position:relative; overflow:hidden; display:flex; flex-direction:column; padding:55px clamp(45px,6vw,100px); color:#fff; background:linear-gradient(145deg,#16122d,#2c2054 55%,#5035aa); }
.auth-showcase::before,.auth-showcase::after { content:""; position:absolute; border-radius:50%; }
.auth-showcase::before { width:480px; height:480px; right:-170px; top:-160px; border:1px solid rgba(255,255,255,.12); box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.02); }
.auth-showcase::after { width:300px; height:300px; left:-130px; bottom:-130px; background:rgba(21,199,163,.12); }
.auth-quote { position:relative; z-index:1; margin:auto 0; max-width:590px; }
.auth-quote h1 { margin:14px 0 20px; font-size:clamp(42px,5vw,70px); line-height:1.02; letter-spacing:-.055em; }
.auth-quote p { max-width:530px; color:#c2bcd5; font-size:18px; }
.auth-decoration { position:relative; z-index:1; display:flex; align-items:flex-end; justify-content:space-between; }
.decor-card { width:245px; padding:18px; border:1px solid rgba(255,255,255,.12); border-radius:16px; background:rgba(255,255,255,.08); backdrop-filter:blur(10px); }
.decor-card span,.decor-card strong { display:block; }.decor-card span{color:#bfb8d5;font-size:12px}.decor-card strong{font-size:27px}.decor-card i{height:6px;margin-top:12px;display:block;background:rgba(255,255,255,.1);border-radius:5px;overflow:hidden}.decor-card b{height:100%;display:block;background:var(--accent);border-radius:5px}
.decor-bubbles { display:flex; }.decor-bubbles i{width:35px;height:35px;margin-left:-8px;border:2px solid #372b62;border-radius:50%;background:var(--primary)}.decor-bubbles i:nth-child(2){background:var(--accent)}.decor-bubbles i:nth-child(3){background:var(--orange)}
.auth-form-side { display:grid; place-items:center; padding:45px; }
.auth-form-wrap { width:min(430px,100%); }
.back-link { color:var(--muted); font-size:13px; font-weight:700; }
.auth-heading { margin:55px 0 30px; }.auth-heading h2{margin:10px 0 5px;font-size:38px;letter-spacing:-.04em}.auth-heading p{margin:0;color:var(--muted)}
.input-icon { position:relative; display:block; }.input-icon input{padding-left:42px}.input-icon > i{position:absolute;left:15px;top:11px;color:#918da2;font-style:normal}.password-toggle{position:absolute;right:9px;top:7px;width:34px;height:31px;border:0;background:transparent;color:#918da2}
.login-form { gap:20px; }
.auth-languages { display:flex; justify-content:center; gap:8px; margin-top:35px; }.auth-languages a{padding:5px 8px;border-radius:7px;color:var(--muted);font-size:11px;font-weight:800}.auth-languages a:hover{color:var(--primary);background:var(--primary-soft)}

/* Admin shell */
.admin-body { background:var(--canvas); }
.sidebar { position:fixed; z-index:100; inset:0 auto 0 0; width:var(--sidebar); display:flex; flex-direction:column; color:#c8c3d7; background:#171329; }
.sidebar-head { height:79px; display:flex; align-items:center; justify-content:space-between; padding:0 24px; border-bottom:1px solid #2b263c; }
.sidebar-close { display:none; border:0; color:#fff; background:transparent; font-size:26px; }
.business-chip { display:flex; align-items:center; gap:11px; margin:22px 16px 10px; padding:13px; border:1px solid #302a45; border-radius:13px; background:#211c36; }
.business-avatar { flex:0 0 auto; display:grid; place-items:center; width:38px; height:38px; border-radius:11px; color:#fff; background:linear-gradient(135deg,var(--primary),#a46dff); font-weight:900; }
.business-chip div { min-width:0; display:grid; }.business-chip strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:13px}.business-chip span:not(.business-avatar){color:#878197;font-size:10px;text-transform:uppercase}
.side-nav { display:grid; gap:4px; padding:8px 14px; overflow-y:auto; }
.nav-label { margin:18px 11px 6px; color:#6f6980; font-size:9px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.side-nav a { display:flex; align-items:center; gap:12px; min-height:44px; padding:10px 12px; border-radius:10px; font-size:13px; font-weight:650; }
.side-nav a:hover { color:#fff; background:#211c36; }
.side-nav a.active { color:#fff; background:linear-gradient(90deg,rgba(115,87,255,.25),rgba(115,87,255,.08)); box-shadow:inset 3px 0 var(--primary); }
.nav-icon { display:grid; place-items:center; width:24px; color:#8e86ad; font-size:17px; }
.side-nav a.active .nav-icon { color:#a994ff; }
.sidebar-foot { margin-top:auto; display:flex; align-items:center; gap:8px; padding:16px; border-top:1px solid #2b263c; }
.user-mini { min-width:0; flex:1; display:flex; gap:10px; align-items:center; }.user-avatar{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;background:#3c335a;font-size:12px;font-weight:850}.user-mini div{min-width:0;display:grid}.user-mini strong,.user-mini span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-mini strong{color:#fff;font-size:12px}.user-mini span{color:#777085;font-size:9px}.sidebar-foot .icon-button{color:#a49cb7;background:#27213b}
.sidebar-overlay { display:none; }
.admin-main { min-height:100vh; margin-left:var(--sidebar); }
.admin-topbar { position:sticky; z-index:40; top:0; height:79px; display:flex; align-items:center; gap:15px; padding:0 32px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.9); backdrop-filter:blur(12px); }
.menu-button { display:none; border:0; background:transparent; }
.topbar-spacer { flex:1; }
.topbar-action { padding:8px 12px; border-radius:9px; color:var(--primary); background:var(--primary-soft); font-size:12px; font-weight:800; }
.admin-content { max-width:1580px; margin:auto; padding:34px; }
.page-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:25px; margin-bottom:27px; }
.page-heading h1 { margin:5px 0 3px; font-size:34px; line-height:1.15; letter-spacing:-.035em; }
.page-heading p { margin:0; color:var(--muted); }
.heading-actions { display:flex; align-items:center; gap:9px; }
.panel { border:1px solid #ebe9f2; border-radius:var(--radius); background:#fff; box-shadow:0 3px 14px rgba(42,34,73,.035); }
.panel-head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; border-bottom:1px solid var(--line); }.panel-head h2{margin:4px 0 0;font-size:18px}.panel-head .eyebrow{font-size:9px}
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:17px; margin-bottom:22px; }
.metric-card { position:relative; overflow:hidden; min-height:145px; display:flex; align-items:flex-start; gap:15px; padding:22px; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 3px 13px rgba(42,34,73,.035); }
.metric-card::after { content:""; position:absolute; width:100px; height:100px; border-radius:50%; right:-45px; bottom:-55px; background:var(--metric-soft); }
.metric-icon { flex:0 0 auto; display:grid; place-items:center; width:43px; height:43px; border-radius:13px; color:var(--metric); background:var(--metric-soft); font-size:18px; font-weight:850; }
.metric-card > div:nth-child(2){display:grid}.metric-card span{color:var(--muted);font-size:11px;font-weight:700}.metric-card strong{margin:2px 0;font-size:25px;letter-spacing:-.03em}.metric-card small{color:#aaa6b5;font-size:10px}.metric-spark{position:absolute;right:18px;bottom:17px;color:var(--metric);font-size:15px;font-style:normal;letter-spacing:1px;opacity:.7}
.metric-card.purple{--metric:var(--primary);--metric-soft:var(--primary-soft)}.metric-card.green{--metric:#08a989;--metric-soft:var(--accent-soft)}.metric-card.orange{--metric:#e36c3e;--metric-soft:#fff0e9}.metric-card.blue{--metric:#2888df;--metric-soft:#e8f4ff}
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(310px,.65fr); gap:20px; }
.dashboard-side { display:grid; align-content:start; gap:20px; }
.agenda-list { padding:8px 24px 18px; }
.agenda-row { display:grid; grid-template-columns:50px 5px 1fr auto; align-items:center; gap:13px; min-height:68px; border-bottom:1px solid #f1eff5; }
.agenda-row:last-child{border:0}.agenda-row time{font-size:13px;font-weight:850}.agenda-line{height:37px;border-radius:5px;background:var(--line)}.agenda-main{display:grid}.agenda-main strong{font-size:13px}.agenda-main span{color:var(--muted);font-size:11px}
.status { display:inline-flex; align-items:center; white-space:nowrap; padding:5px 9px; border-radius:20px; font-size:9px; font-weight:850; }
.status-pending,.status-pending_payment{color:#9a6815;background:#fff5dc}.status-confirmed{color:#087e68;background:#e4f9f4}.status-arrived{color:#235eae;background:#e9f2ff}.status-in_service{color:#5c42c2;background:#eeeaff}.status-completed{color:#426074;background:#edf3f6}.status-cancelled_customer,.status-cancelled_business,.status-no_show{color:#b33a4f;background:#fff0f3}
.empty-state { min-height:180px; display:grid; place-items:center; align-content:center; gap:7px; padding:25px; color:var(--muted); text-align:center; }.empty-state > span{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;color:var(--primary);background:var(--primary-soft);font-size:20px}.empty-state strong{color:var(--ink)}.empty-state a{color:var(--primary);font-size:12px;font-weight:800}
.occupancy-panel { padding-bottom:24px; }.radial{--percent:calc(var(--value)*1%);width:170px;height:170px;margin:25px auto 0;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--primary) var(--percent),#efedf5 0);position:relative}.radial::after{content:"";position:absolute;inset:15px;border-radius:50%;background:#fff}.radial div{position:relative;z-index:1;display:grid;text-align:center}.radial strong{font-size:31px}.radial span{color:var(--muted);font-size:10px}
.quick-panel { padding-bottom:18px; }.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;padding:16px}.quick-grid a{display:grid;gap:8px;min-height:95px;padding:13px;border:1px solid var(--line);border-radius:12px;color:#514d5f;font-size:10px;font-weight:750}.quick-grid a:hover{border-color:#cfc7ff;background:#faf9ff}.quick-grid span{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;color:var(--primary);background:var(--primary-soft);font-size:16px}

/* Tables and panels */
.filter-panel { margin-bottom:16px; padding:14px 18px; }
.filter-form { display:flex; align-items:flex-end; gap:12px; }.filter-form label{min-width:160px}.filter-form .btn{margin-bottom:0}
.table-panel { overflow:hidden; }
.responsive-table { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th { padding:13px 18px; color:#908b9c; background:#faf9fc; border-bottom:1px solid var(--line); text-align:left; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
td { padding:15px 18px; border-bottom:1px solid #f0eef4; font-size:12px; vertical-align:middle; }
tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fdfcff}
.table-title { display:flex; align-items:center; gap:11px; min-width:210px; }.table-title > i{width:9px;height:36px;border-radius:6px}.table-title div{display:grid}.table-title strong{font-size:13px}.table-title span,.cell-sub{display:block;color:var(--muted);font-size:10px;max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.person-dot { display:inline-block; width:8px; height:8px; margin-right:7px; border-radius:50%; }
.inline-status { display:flex; align-items:center; gap:5px; }.inline-status select{min-width:145px;padding:7px 9px;font-size:10px}.inline-status .icon-button{width:31px;height:31px}
.team-admin-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:17px; }
.employee-card { padding:21px; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 3px 13px rgba(42,34,73,.035); }
.employee-top { display:flex; align-items:flex-start; justify-content:space-between; }.employee-avatar{display:grid;place-items:center;width:54px;height:54px;border-radius:18px 18px 18px 6px;color:#fff;background:linear-gradient(135deg,var(--employee),color-mix(in srgb,var(--employee) 55%,#fff));font-size:20px;font-weight:900}.employee-card h3{margin:16px 0 0}.employee-card > p{margin:2px 0 17px;color:var(--muted);font-size:12px}.employee-info{display:grid;gap:6px;padding:14px 0;border-top:1px solid var(--line);color:#666175;font-size:10px}.employee-foot{display:flex;justify-content:space-between;gap:10px;padding-top:11px;border-top:1px solid var(--line);font-size:9px}.employee-foot span{color:var(--muted)}

/* Modals and toast */
.modal { position:fixed; z-index:500; inset:0; display:none; place-items:center; padding:20px; }
.modal.open { display:grid; }
.modal-backdrop { position:absolute; inset:0; background:rgba(16,13,31,.62); backdrop-filter:blur(4px); }
.modal-dialog { position:relative; width:min(620px,100%); max-height:calc(100vh - 40px); overflow:auto; border-radius:20px; background:#fff; box-shadow:var(--shadow); animation:modal-in .2s ease; }
.modal-wide { width:min(860px,100%); }
@keyframes modal-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.modal-head { position:sticky; z-index:2; top:0; display:flex; justify-content:space-between; align-items:center; padding:20px 23px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.95); backdrop-filter:blur(8px); }.modal-head h2{margin:3px 0 0;font-size:21px}.modal-head > button{border:0;background:transparent;color:var(--muted);font-size:25px}
.modal-body { padding:23px; }.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:17px;border-top:1px solid var(--line)}
.toast { position:fixed; z-index:1000; top:92px; right:25px; max-width:420px; display:flex; align-items:center; gap:14px; padding:13px 15px; border-radius:12px; box-shadow:var(--shadow-sm); animation:toast-in .25s ease; }
.toast button { margin-left:auto; border:0; background:transparent; color:inherit; font-size:18px; }
.toast-error{color:#9b2f42;background:#fff0f3;border:1px solid #ffd4dc}.toast-success{color:#087e68;background:#e4f9f4;border:1px solid #bdece1}
@keyframes toast-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}

/* Booking */
.booking-page { position:relative; overflow:hidden; min-height:calc(100vh - 78px); padding:80px 0 110px; background:linear-gradient(145deg,#f8f6ff,#f4fbff 60%,#f1fffb); }
.booking-orb { position:absolute; width:500px;height:500px;right:-200px;top:-160px;border-radius:50%;background:rgba(115,87,255,.1); }
.booking-shell { position:relative; display:grid; grid-template-columns:.7fr 1.3fr; align-items:start; gap:65px; }
.booking-intro { position:sticky; top:120px; }.booking-intro h1{margin:15px 0;font-size:50px;line-height:1.02;letter-spacing:-.05em}.booking-intro>p{color:var(--muted);font-size:16px}.booking-business{display:flex;align-items:center;gap:11px;margin-top:35px;padding-top:25px;border-top:1px solid #ddd9eb}.booking-business div{display:grid}.booking-business span:not(.business-avatar){color:var(--muted);font-size:11px}
.booking-card { display:grid; gap:1px; overflow:hidden; border:1px solid #e4e0ef; border-radius:23px; background:#e9e6f0; box-shadow:var(--shadow); }
.booking-step { padding:27px; background:#fff; }.booking-step-head{display:flex;align-items:center;gap:12px;margin-bottom:20px}.booking-step-head>span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;color:#fff;background:var(--primary);font-size:12px;font-weight:850}.booking-step h2{margin:0;font-size:17px}
.service-options { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }.service-option input{position:absolute;opacity:0;pointer-events:none}.service-option>span{height:100%;display:grid;grid-template-columns:40px 1fr;column-gap:10px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.service-option i{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--option);background:color-mix(in srgb,var(--option) 11%,white);font-style:normal}.service-option b{font-size:12px}.service-option small{color:var(--muted);font-size:9px}.service-option input:checked+span{border-color:var(--primary);box-shadow:0 0 0 3px rgba(115,87,255,.1);background:#fcfbff}
.date-action { display:grid; grid-template-columns:1fr auto; gap:10px; }.slot-area{margin-top:14px}.slot-area>p{margin:0;color:var(--muted);font-size:12px}.slot-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.slot-button{border:1px solid #ded9ec;border-radius:9px;padding:8px;color:#4e485f;background:#fff;font-size:11px;font-weight:800}.slot-button:hover,.slot-button.selected{color:#fff;border-color:var(--primary);background:var(--primary)}.slot-loading{height:35px;border-radius:9px;background:linear-gradient(90deg,#f1eff5,#faf9fc,#f1eff5);background-size:200%;animation:loading 1s infinite}@keyframes loading{to{background-position:-200%}}
.contact-step { border-top:0; }.contact-step[hidden]{display:none}
.booking-success { min-height:calc(100vh - 78px); display:grid; place-items:center; padding:60px 20px; background:linear-gradient(145deg,#f8f6ff,#effffb); }.success-card{width:min(570px,100%);padding:42px;border:1px solid var(--line);border-radius:25px;background:#fff;box-shadow:var(--shadow);text-align:center}.success-icon{width:70px;height:70px;display:grid;place-items:center;margin:0 auto 18px;border-radius:50%;color:#fff;background:var(--accent);box-shadow:0 13px 30px rgba(21,199,163,.3);font-size:30px;font-weight:900}.success-card h1{margin:10px 0;font-size:38px}.success-card>p{color:var(--muted)}.success-details{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:25px 0;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden}.success-details div{display:grid;padding:15px;background:#fff}.success-details span{color:var(--muted);font-size:9px;text-transform:uppercase}.success-details strong{font-size:13px}.confirmation-code{display:grid;margin:20px 0;padding:15px;border-radius:12px;background:var(--primary-soft)}.confirmation-code span{color:var(--muted);font-size:10px}.confirmation-code strong{color:var(--primary);font-size:22px;letter-spacing:.12em}

/* Audit */
.audit-count { padding:8px 12px; border-radius:10px; color:#5947ac; background:var(--primary-soft); font-size:11px; font-weight:800; }
.audit-timeline { position:relative; display:grid; gap:12px; margin:22px 0 0 17px; padding-left:31px; }.audit-timeline::before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:#e1deeb}.audit-item{position:relative}.audit-marker{position:absolute;z-index:1;left:-48px;top:19px;width:34px;height:34px;display:grid;place-items:center;border:4px solid var(--canvas);border-radius:50%;color:var(--primary);background:var(--primary-soft);font-size:12px}.audit-marker.action-created{color:#07846d;background:var(--accent-soft)}.audit-marker.action-deleted{color:#b33a4f;background:#fff0f3}.audit-marker.action-login,.audit-marker.action-logout{color:#2a78c4;background:#e8f4ff}
.audit-card{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(42,34,73,.03)}.audit-main{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:16px 18px}.audit-main>div{font-size:12px}.audit-main>div>strong{font-size:13px}.audit-main>div>span{color:var(--muted);margin:0 3px}.audit-main>div>b{color:var(--primary)}.audit-main small{display:block;margin-top:5px;color:#9893a4;font-size:9px}.actor-badge{padding:4px 8px;border-radius:8px;color:#777187;background:#f2f0f6;font-size:8px;font-weight:850;text-transform:uppercase}.audit-card details{border-top:1px solid var(--line)}.audit-card summary{padding:10px 18px;color:var(--primary);font-size:10px;font-weight:800;cursor:pointer}.audit-diff{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0 18px 16px}.audit-diff>div{min-width:0}.audit-diff strong{font-size:9px;text-transform:uppercase}.audit-diff pre{max-height:240px;overflow:auto;margin:5px 0 0;padding:11px;border-radius:9px;color:#d9d3ed;background:#1e1931;font-size:9px;white-space:pre-wrap}.pagination{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:26px 0}.pagination a{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:11px}.pagination a.active{color:#fff;border-color:var(--primary);background:var(--primary)}

/* Version 0.2: branding, settings, customers and client access */
.brand-logo{width:44px;height:44px;object-fit:contain;border-radius:11px;background:#fff;box-shadow:0 8px 20px rgba(35,28,72,.15)}.brand:not(.brand-large) .brand-logo{width:37px;height:37px}.business-logo{flex:0 0 auto;width:42px;height:42px;padding:3px;object-fit:contain;border-radius:11px;background:#fff;border:1px solid var(--line)}
.alert-success{color:#087e68;background:#e4f9f4;border:1px solid #bdece1}
.hero-visual.has-business-hero::before{width:470px;height:470px}.business-hero-image{position:relative;z-index:1;width:min(480px,94%);height:520px;object-fit:cover;border-radius:34px 34px 34px 10px;box-shadow:0 35px 80px rgba(50,36,106,.2)}
.service-card-image{width:calc(100% + 50px);max-width:none;height:155px;margin:-25px -25px 22px;object-fit:cover}
.auth-form-wide{width:min(560px,100%)}.auth-heading.compact{margin:34px 0 24px}.auth-alternative{margin:22px 0 0;text-align:center;color:var(--muted);font-size:13px}.auth-alternative a{color:var(--primary);font-weight:800}.access-notice{padding:13px 15px;border:1px solid #ded9ee;border-radius:11px;color:#5c566d;background:#f7f5fb;font-size:12px}
.table-actions{display:flex;align-items:center;gap:6px}.service-table-title>img{flex:0 0 auto;width:48px;height:48px;border-radius:11px;object-fit:cover}
.booking-login-strip{display:flex;justify-content:space-between;gap:18px;padding:15px 25px;color:#625c73;background:#f7f5ff;font-size:12px}.booking-login-strip a{color:var(--primary);font-weight:800}.service-option img{grid-row:1/3;width:42px;height:42px;border-radius:10px;object-fit:cover}.date-action-auto{grid-template-columns:minmax(220px,1fr) minmax(230px,.75fr);align-items:end}.availability-state{min-height:45px;display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-content:center;padding:8px 13px;border-radius:11px;background:#f6f4fb}.availability-state .pulse-dot{grid-row:1/3;align-self:center}.availability-state strong{font-size:11px}.availability-state small{color:var(--muted);font-size:9px}.booking-account-summary{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#faf9fc}.booking-account-summary div{min-width:0;flex:1;display:grid}.booking-account-summary span:not(.business-avatar){color:var(--muted);font-size:10px}.booking-account-summary a{color:var(--primary);font-size:10px;font-weight:800}.booking-access-gate{align-content:start;gap:13px;padding:48px;background:#fff;text-align:center}.booking-access-gate h2{margin:4px 0;font-size:27px}.booking-access-gate p{margin:0 0 13px;color:var(--muted)}.access-gate-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 8px;border-radius:20px;color:var(--primary);background:var(--primary-soft);font-size:28px}.success-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.settings-tabs{position:sticky;z-index:30;top:79px;display:flex;gap:7px;margin-bottom:20px;padding:8px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px)}.settings-tabs a{padding:9px 14px;border-radius:9px;color:var(--muted);font-size:11px;font-weight:800}.settings-tabs a.active,.settings-tabs a:hover{color:var(--primary);background:var(--primary-soft)}.settings-section{margin-bottom:22px;scroll-margin-top:155px}.settings-form{padding:24px}.settings-actions{display:flex;justify-content:flex-end;padding-top:18px;border-top:1px solid var(--line)}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}label small,.field-help{margin:0;color:var(--muted);font-size:10px;font-weight:500}
.upload-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.upload-card{position:relative;align-content:start;padding:16px;border:1px solid var(--line);border-radius:15px;background:#faf9fc}.upload-card>span{color:var(--muted);font-size:10px;font-weight:500}.upload-card>img,.upload-card>i{width:100%;height:125px;display:grid;place-items:center;margin:7px 0;border-radius:11px;object-fit:contain;color:var(--primary);background:#fff;font-size:30px;font-style:normal}.upload-card>input[type="file"]{position:absolute;width:1px;height:1px;opacity:0}.upload-card>em{padding:8px 10px;border-radius:9px;color:var(--primary);background:var(--primary-soft);text-align:center;font-size:10px;font-style:normal;font-weight:800}.upload-card .check-line{margin-top:3px}.upload-card .check-line b{font-size:10px;font-weight:600}
.language-panels{display:grid;gap:8px}.language-panels details,.advanced-box{border:1px solid var(--line);border-radius:11px;background:#faf9fc}.language-panels summary,.advanced-box>summary{padding:11px 14px;color:#504b60;cursor:pointer;font-size:11px;font-weight:800}.language-panels details>div,.advanced-box>div{padding:4px 14px 15px}.mode-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mode-option input{position:absolute;opacity:0;pointer-events:none}.mode-option span{height:100%;display:grid;gap:4px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.mode-option strong{font-size:12px}.mode-option small{color:var(--muted);font-size:10px;font-weight:500}.mode-option input:checked+span{border-color:var(--primary);background:#fcfbff;box-shadow:0 0 0 3px rgba(115,87,255,.09)}
.email-test-form{display:flex;align-items:end;gap:12px;padding:20px 24px;border-top:1px solid var(--line)}.email-test-form label{flex:1}.cron-note{margin:0 24px 24px;padding:15px;border-radius:12px;color:#554e68;background:#f5f3fa;font-size:11px}.cron-note p{margin:3px 0 9px}.cron-note code{display:block;overflow:auto;padding:9px;border-radius:8px;color:#ddd6ef;background:#211b35}.service-image-field{display:grid;grid-template-columns:90px 1fr;gap:13px;align-items:center}.service-image-field>div{grid-row:1/3;display:grid;place-items:center;width:90px;height:90px;border-radius:14px;background:#f3f1f8}.service-image-field img{width:90px;height:90px;border-radius:14px;object-fit:cover}.service-image-field>div span{color:var(--primary);font-size:28px}.service-image-field>.check-line{grid-column:2}
.client-portal-page{min-height:70vh;padding:70px 0 100px;background:linear-gradient(145deg,#f8f6ff,#f4fbff)}.client-portal-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.client-portal-head h1{margin:7px 0 2px;font-size:42px}.client-portal-head p{margin:0;color:var(--muted)}.client-actions{display:flex;gap:8px}.client-actions form{display:flex}.client-appointment-grid{display:grid;gap:12px}.client-appointment-card{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:20px;align-items:center;padding:20px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 5px 18px rgba(42,34,73,.04)}.client-appointment-date{display:grid;place-items:center;padding:11px;border-radius:13px;color:#fff;background:linear-gradient(135deg,var(--primary),#946cff)}.client-appointment-date strong{font-size:27px;line-height:1}.client-appointment-date span{font-size:9px}.client-appointment-card h2{margin:7px 0 0;font-size:18px}.client-appointment-card p{margin:2px 0;color:var(--muted);font-size:12px}.client-appointment-card small{color:#9893a4}.client-appointment-actions{display:grid;justify-items:stretch;gap:6px;min-width:145px}.client-appointment-actions small{max-width:180px;text-align:center;font-size:9px}.cancel-summary{display:grid;gap:2px;padding:14px;border-radius:12px;background:#f7f5fb}.cancel-summary strong{font-size:14px}.cancel-summary span{color:var(--muted);font-size:11px}
.schema-warning{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:14px 16px;border:1px solid #ffd79a;border-radius:13px;color:#754a0b;background:#fff8e8}.schema-warning>div{display:grid;gap:2px}.schema-warning strong{font-size:12px}.schema-warning span{font-size:10px}.schema-status{display:flex;align-items:center;gap:14px;margin:22px 24px;padding:17px;border-radius:13px}.schema-status>span{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-size:18px;font-weight:900}.schema-status strong{font-size:13px}.schema-status p{margin:3px 0 0;font-size:11px}.schema-status-ok{color:#087e68;background:#e7faf5}.schema-status-ok>span{color:#fff;background:#15a98d}.schema-status-pending{color:#8a5709;background:#fff8e7}.schema-status-pending>span{color:#fff;background:#e39a21}.schema-repair{display:grid;gap:8px;margin:0 24px 20px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#faf9fc}.schema-repair strong{font-size:11px}.schema-repair code{padding:10px;border-radius:8px;color:#e9e5f5;background:#211b35}.schema-repair p{margin:0;color:var(--muted);font-size:10px}.schema-check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;padding:0 24px 24px}.schema-check{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px}.schema-check>span{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;font-weight:900}.schema-check>div{display:grid}.schema-check strong{font-size:10px}.schema-check small{font-size:9px}.schema-check.ok>span{color:#087e68;background:#e4f9f4}.schema-check.ok small{color:#087e68}.schema-check.missing>span{color:#a53346;background:#fff0f3}.schema-check.missing small{color:#a53346}

/* Integrated manual */
.manual-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:22px;padding:30px;border-radius:22px;color:#fff;background:linear-gradient(135deg,#211a3c,#523a9d);box-shadow:0 18px 45px rgba(43,31,85,.16)}.manual-hero h1{margin:7px 0 5px;font-size:38px;letter-spacing:-.04em}.manual-hero p{max-width:720px;margin:0;color:#cfc8e4}.manual-version{flex:0 0 auto;padding:8px 12px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.08);font-size:10px;font-weight:850}.manual-search{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:20px;padding:12px 16px}.manual-search>span{color:var(--primary);font-size:23px}.manual-search input{border:0;box-shadow:none;padding:8px 0;background:transparent}.manual-search input:focus{box-shadow:none}.manual-search small{color:var(--muted);font-size:10px}.manual-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}.manual-index{position:sticky;top:100px;padding:17px;max-height:calc(100vh - 125px);overflow:auto}.manual-index>strong{display:block;margin:2px 8px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.manual-index nav{display:grid;gap:2px}.manual-index a{display:grid;grid-template-columns:25px 1fr;align-items:center;gap:5px;padding:8px;border-radius:9px;color:#5f596d;font-size:10px;font-weight:700}.manual-index a:hover{color:var(--primary);background:var(--primary-soft)}.manual-index a span{color:#aaa4ba;font-size:8px}.manual-sections{display:grid;gap:17px}.manual-section{padding:25px;scroll-margin-top:100px}.manual-section>header{display:grid;grid-template-columns:42px 1fr;gap:14px;padding-bottom:18px;border-bottom:1px solid var(--line)}.manual-number{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:#fff;background:var(--primary);font-size:11px;font-weight:900}.manual-title-line{display:flex;align-items:center;gap:8px}.manual-title-line>span{color:var(--primary);font-size:18px}.manual-title-line h2{margin:0;font-size:22px}.manual-section header p{margin:4px 0 0;color:var(--muted);font-size:12px}.manual-roles{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:15px 0}.manual-roles strong{margin-right:3px;color:var(--muted);font-size:9px;text-transform:uppercase}.manual-roles span{padding:4px 8px;border-radius:7px;color:#5542ad;background:var(--primary-soft);font-size:8px;font-weight:800}.manual-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.manual-steps section{padding:15px;border:1px solid #efedf5;border-radius:13px;background:#fcfbfe}.manual-steps h3{margin:0 0 5px;font-size:13px}.manual-steps p{margin:0;color:#656070;font-size:11px;line-height:1.65}.manual-steps ul{display:grid;gap:5px;margin:11px 0 0;padding-left:18px;color:#656070;font-size:10px;line-height:1.5}.manual-note{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:13px;padding:13px;border-radius:11px;color:#74500e;background:#fff8e8}.manual-note strong{font-size:9px;text-transform:uppercase}.manual-note p{margin:0;font-size:10px}.manual-top{display:block;margin-top:13px;color:var(--primary);text-align:right;font-size:9px;font-weight:800}.manual-empty{min-height:200px;display:grid;place-items:center;align-content:center;gap:8px;color:var(--muted)}.manual-empty span{font-size:30px}.manual-empty strong{font-size:13px}

/* Installer */
.installer-page { min-height:100vh; color:#fff; background:linear-gradient(135deg,#15112b,#352468); }
.installer-shell { min-height:100vh; display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; align-items:center; width:min(1240px,calc(100% - 50px)); margin:auto; padding:60px 0; }
.installer-brand h1 { max-width:520px;margin:26px 0 18px;font-size:55px;line-height:1.02;letter-spacing:-.05em}.installer-brand>p{max-width:520px;color:#bab3d0;font-size:17px}.install-points{display:grid;gap:7px;margin-top:30px;color:#d7d1e8;font-size:13px}.install-points span::first-letter{color:var(--accent)}
.installer-card { color:var(--ink); padding:34px; border-radius:25px; background:#fff; box-shadow:0 35px 90px rgba(0,0,0,.28); }.card-heading{margin-bottom:22px}.card-heading h2{margin:8px 0 2px;font-size:27px}.card-heading p{margin:0;color:var(--muted)}.step-pill{display:inline-flex;padding:4px 8px;border-radius:7px;color:var(--primary);background:var(--primary-soft);font-size:9px;font-weight:900;text-transform:uppercase}.requirements{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 23px}.requirement{padding:4px 7px;border-radius:6px;font-size:9px;font-weight:750}.requirement.ok{color:#087e68;background:#e4f9f4}.requirement.fail{color:#a53346;background:#fff0f3}.success-panel{text-align:center}.success-panel h2{font-size:32px}.success-panel p{color:var(--muted)}

/* Errors */
.error-page { min-height:70vh; display:grid; place-items:center; align-content:center; gap:15px; padding:40px; text-align:center; }.error-page>span{color:#ddd8ee;font-size:110px;font-weight:950;line-height:1}.error-page h1{max-width:600px;margin:0 0 10px;font-size:25px}.error-page p{margin:0;color:var(--muted);font-size:11px}.error-safe-body{min-height:100vh;background:linear-gradient(145deg,#f8f6ff,#effffb)}.error-safe-body .error-page{min-height:100vh}

@media (max-width: 1180px) {
    .service-grid,.team-admin-grid { grid-template-columns:repeat(3,1fr); }
    .metric-grid { grid-template-columns:repeat(2,1fr); }
    .hero-grid { gap:25px; }
    .floating-stat { display:none; }
}

@media (max-width: 960px) {
    .public-header { height:68px; }
    .nav-toggle { display:block; }
    .public-nav { display:none; position:absolute; left:20px; right:20px; top:66px; padding:18px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:var(--shadow-sm); flex-direction:column; align-items:stretch; gap:7px; }
    .public-nav.open { display:flex; }.public-nav>a{padding:7px 10px}.public-nav .btn{margin-top:4px}
    .hero { min-height:auto; padding:75px 0; }.hero-grid{grid-template-columns:1fr}.hero-copy{text-align:center}.hero-copy>p{margin-inline:auto}.hero-actions,.hero-trust{justify-content:center}.hero-visual{min-height:460px}
    .service-grid { grid-template-columns:repeat(2,1fr); }.team-grid{grid-template-columns:repeat(2,1fr)}
    .auth-shell { grid-template-columns:1fr; }.auth-showcase{display:none}.auth-form-side{min-height:100vh}
    .sidebar { transform:translateX(-100%); transition:.25s; box-shadow:var(--shadow); }.sidebar.open{transform:none}.sidebar-close{display:block}.sidebar-overlay.open{display:block;position:fixed;z-index:90;inset:0;background:rgba(20,16,38,.45)}
    .admin-main { margin-left:0; }.menu-button{display:block}.admin-content{padding:25px}.admin-topbar{height:68px;padding:0 22px}
    .dashboard-grid{grid-template-columns:1fr}.dashboard-side{grid-template-columns:repeat(2,1fr)}
    .team-admin-grid { grid-template-columns:repeat(2,1fr); }
    .booking-shell { grid-template-columns:1fr; gap:30px; }.booking-intro{position:static;text-align:center}.booking-business{justify-content:center;max-width:450px;margin:25px auto 0}
    .installer-shell{grid-template-columns:1fr}.installer-brand{text-align:center}.installer-brand h1,.installer-brand>p{margin-left:auto;margin-right:auto}.install-points{justify-content:center}.installer-brand .brand{justify-content:center}
    .settings-tabs{top:68px;overflow-x:auto}.upload-grid{grid-template-columns:repeat(2,1fr)}.form-grid.four{grid-template-columns:repeat(2,1fr)}
    .manual-layout{grid-template-columns:1fr}.manual-index{position:static;max-height:none}.manual-index nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.phone-field{display:grid;grid-template-columns:minmax(105px,135px) 1fr;gap:8px;margin-top:8px}.phone-field select,.phone-field input{margin-top:0}.field-requirement{display:inline-flex;margin-left:7px;padding:2px 7px;border-radius:999px;background:#f1eff8;color:#6c687d;font-size:.72rem;font-weight:700;vertical-align:middle}.field-error,.form-error-summary{color:#b42336;font-weight:700}.field-error{display:block;margin-top:6px;font-size:.8rem}.form-error-summary{padding:12px 14px;border:1px solid #ffc7ce;border-radius:12px;background:#fff0f2}.profile-upload{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;border:1px dashed var(--line);border-radius:14px}.profile-upload>span{font-weight:800}.profile-upload img{width:54px;height:54px;border-radius:14px;object-fit:cover}.employee-avatar img,.team-avatar img,.customer-avatar img,.customer-profile-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.customer-cell{display:flex;align-items:center;gap:10px}.customer-avatar{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--primary),#986cff);font-weight:900}.customer-cell>div{display:grid}

@media (max-width: 680px) {
    .phone-field{grid-template-columns:1fr}.phone-field select{width:100%}
    .container { width:min(100% - 28px,1180px); }
    .hero-copy h1 { font-size:44px; }.hero-copy>p{font-size:16px}.hero-actions{flex-direction:column}.hero-visual{min-height:390px}.floating-card{padding:18px}
    .section { padding:75px 0; }.section-heading h2{font-size:34px}.service-grid,.team-grid,.steps-grid,.metric-grid,.dashboard-side,.team-admin-grid{grid-template-columns:1fr}.steps-grid article:not(:last-child)::after{display:none}
    .cta-card{padding:38px 25px;flex-direction:column;align-items:flex-start}.cta-card h2{font-size:33px}.footer-grid{grid-template-columns:1fr;gap:30px}
    .admin-content{padding:20px 14px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .btn{width:100%}.page-heading h1{font-size:29px}
    .metric-grid{grid-template-columns:repeat(2,1fr)}.metric-card{min-height:132px;padding:16px;flex-direction:column}.metric-spark{display:none}
    .agenda-list{padding:5px 15px}.agenda-row{grid-template-columns:42px 4px 1fr}.agenda-row>.status{grid-column:3;margin-bottom:9px;justify-self:start}.panel-head{padding:18px}
    .form-grid.two,.form-grid.three{grid-template-columns:1fr}.filter-form{align-items:stretch;flex-direction:column}.filter-form label{min-width:0}.modal{padding:8px}.modal-dialog{max-height:calc(100vh - 16px);border-radius:16px}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}
    .booking-page{padding:50px 0}.booking-intro h1{font-size:39px}.booking-step{padding:20px}.service-options{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(4,1fr)}.date-action{grid-template-columns:1fr}
    .success-card{padding:27px 20px}.success-details{grid-template-columns:1fr}
    .audit-timeline{margin-left:7px;padding-left:22px}.audit-marker{left:-39px;width:30px;height:30px}.audit-main{padding:14px;flex-direction:column}.audit-diff{grid-template-columns:1fr;padding:0 14px 14px}
    .installer-shell{width:min(100% - 20px,1240px);padding:25px 0;gap:30px}.installer-brand h1{font-size:38px}.installer-card{padding:22px}.requirements{display:grid}
    .toast{left:14px;right:14px;top:78px}
    .upload-grid,.mode-grid,.form-grid.four,.schema-check-grid{grid-template-columns:1fr}.settings-form{padding:18px}.email-test-form{align-items:stretch;flex-direction:column}.date-action-auto{grid-template-columns:1fr}.booking-login-strip,.client-portal-head,.schema-warning{align-items:flex-start;flex-direction:column}.client-actions{width:100%;flex-wrap:wrap}.booking-access-gate{padding:30px 20px}.success-actions{grid-template-columns:1fr}.client-appointment-card{grid-template-columns:64px 1fr}.client-appointment-actions{grid-column:2;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.client-appointment-actions small{grid-column:1/-1;max-width:none}.client-appointment-date{padding:9px}.business-hero-image{height:390px}.service-image-field{grid-template-columns:70px 1fr}.service-image-field>div,.service-image-field img{width:70px;height:70px}.heading-actions{width:100%;flex-direction:column}.heading-actions .btn{width:100%}.manual-hero{align-items:flex-start;flex-direction:column;padding:23px}.manual-hero h1{font-size:31px}.manual-search{grid-template-columns:auto 1fr}.manual-search small{grid-column:2}.manual-index nav,.manual-steps{grid-template-columns:1fr}.manual-section{padding:18px}.manual-section>header{grid-template-columns:35px 1fr}.manual-number{width:35px;height:35px}
}

/* NexoCita 0.6.0: correo, accesos e interfaz pública escalable */
.hero.has-custom-hero-background {
    background-image: linear-gradient(90deg, rgba(249,248,255,.97) 0%, rgba(249,248,255,.88) 48%, rgba(241,255,251,.72) 100%), var(--hero-background);
    background-position: center;
    background-size: cover;
}

.upload-grid {
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
}

.upload-card .image-remove-button {
    width: 100%;
    margin-top: 8px;
}

.auth-forgot-link {
    justify-self: end;
    margin-top: -8px;
    color: var(--primary);
    font-size: 12px;
    font-weight: 800;
}

.auth-security-note {
    margin: 16px 0 0;
    padding: 12px 14px;
    border-radius: 12px;
    color: var(--muted);
    background: #f7f5fb;
    font-size: 11px;
    line-height: 1.55;
}

.booking-phone-first {
    align-items: start;
}

.booking-phone-check {
    align-self: start;
    min-height: 47px;
    margin-top: 25px;
    margin-bottom: 0;
}

.service-picker-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    gap: 12px;
    align-items: center;
    margin-bottom: 13px;
}

.service-picker-toolbar > strong {
    color: var(--muted);
    font-size: 10px;
    white-space: nowrap;
}

.service-search {
    position: relative;
}

.service-search > span {
    position: absolute;
    z-index: 1;
    left: 13px;
    top: 50%;
    translate: 0 -50%;
    color: var(--muted);
    font-size: 18px;
}

.service-search input {
    margin: 0;
    padding-left: 39px;
    background: #fbfaff;
}

.service-options {
    max-height: 350px;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 3px 5px 3px 3px;
    scrollbar-color: #cfc8e7 transparent;
    scrollbar-width: thin;
}

.service-options::-webkit-scrollbar { width: 7px; }
.service-options::-webkit-scrollbar-thumb { border-radius: 999px; background: #cfc8e7; }

.service-filter-empty {
    margin-top: 10px;
    padding: 18px;
    border: 1px dashed var(--line);
    border-radius: 12px;
    color: var(--muted);
    background: #fbfaff;
    text-align: center;
    font-size: 12px;
}

.service-filter-empty[hidden],
.service-option[hidden] {
    display: none;
}

@media (max-width: 1100px) {
    .upload-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .upload-grid { grid-template-columns: 1fr; }
    .booking-phone-check { width: 100%; min-height: 48px; margin-top: 0; }
    .service-picker-toolbar { grid-template-columns: 1fr; }
    .service-picker-toolbar > strong { padding-left: 2px; }
    .service-options { max-height: 390px; }
}

/* NexoCita 0.5.6: imágenes y citas a domicilio */
.profile-upload,
.service-image-field {
    position: relative;
}
.image-remove-noscript {
    display: none !important;
}
.image-remove-button {
    position: static;
    width: max-content;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 11px;
    border: 1px solid #ffd0d6;
    border-radius: 9px;
    color: #af2e43;
    background: #fff4f6;
    box-shadow: 0 5px 15px rgba(72, 33, 43, .09);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    cursor: pointer;
}
.image-remove-button[hidden] {
    display: none;
}
.profile-upload .image-remove-button { margin-left: auto; }
.service-image-field .image-remove-button { grid-column: 2; justify-self: start; }
.profile-upload .image-upload-placeholder {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: var(--primary);
    background: var(--primary-soft);
    font-size: 20px;
}
.profile-upload .image-upload-placeholder[hidden],
.service-image-field .image-upload-placeholder[hidden],
.upload-card .image-upload-placeholder[hidden] {
    display: none;
}
.home-service-box {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid #ded9ee;
    border-radius: 14px;
    background: #fbfaff;
}
.home-service-toggle {
    margin: 0;
}
.home-service-address {
    margin: 0;
    background: #fff;
}
.home-service-address[hidden] {
    display: none;
}
.home-service-address > .field-help {
    display: block;
    margin: 0 0 12px;
}
.check-line.is-disabled {
    opacity: .55;
}
.calendar-event-home,
.home-service-inline,
.client-home-address {
    color: #5c44ba !important;
    font-weight: 750;
}
.agenda-main .home-service-inline {
    margin-top: 3px;
    font-size: 10px;
}
.appointment-summary .appointment-home-summary {
    grid-column: 1 / -1;
}
.success-details .success-home-address {
    grid-column: 1 / -1;
}
.client-home-address strong {
    color: inherit;
}

@media (max-width: 680px) {
    .home-service-box {
        padding: 11px;
    }
}

/* NexoCita 0.5.9: formularios públicos realmente adaptados a móvil */
html,
body.public-body,
body.auth-page {
    max-width: 100%;
    overflow-x: hidden;
}

@supports (overflow: clip) {
    html,
    body.public-body,
    body.auth-page {
        overflow-x: clip;
    }
}

.booking-page,
.booking-shell,
.booking-shell > *,
.booking-card,
.booking-card > *,
.booking-step,
.contact-step,
.booking-step .form-grid,
.booking-step .form-grid > *,
.booking-step label,
.booking-step .phone-field,
.booking-step .phone-field > *,
.booking-step .home-service-box,
.booking-step .home-service-toggle,
.booking-step .home-service-toggle > span,
.booking-step .address-fieldset,
.auth-shell,
.auth-shell > *,
.auth-form-wrap,
.auth-form-wrap form,
.auth-form-wrap form > *,
.client-register-contact-grid,
.client-register-contact-grid > *,
.client-register-contact-grid .phone-field,
.client-register-contact-grid .phone-field > * {
    min-width: 0;
    max-width: 100%;
}

.booking-step .check-line > span,
.auth-form-wrap .check-line > span,
.booking-account-summary > div,
.public-footer p,
.public-footer a,
.public-footer span {
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 680px) {
    .public-body,
    .auth-page {
        width: 100%;
    }

    .public-body .container {
        width: calc(100% - 24px);
    }

    .booking-page {
        min-height: calc(100vh - 68px);
        min-height: calc(100svh - 68px);
        padding: 30px 0 64px;
    }

    .booking-shell {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
        width: calc(100% - 24px);
    }

    .booking-intro h1 {
        margin: 10px 0;
        font-size: 33px;
        line-height: 1.08;
    }

    .booking-intro > p {
        margin: 0;
        font-size: 14px;
        line-height: 1.55;
    }

    .booking-business {
        width: 100%;
        margin-top: 17px;
        padding-top: 17px;
        text-align: left;
    }

    .booking-card {
        width: 100%;
        border-radius: 18px;
    }

    .booking-step {
        padding: 18px 14px;
    }

    .booking-step-head {
        align-items: flex-start;
        margin-bottom: 16px;
    }

    .booking-step-head > span {
        flex: 0 0 29px;
    }

    .booking-step h2 {
        padding-top: 2px;
        font-size: 16px;
        line-height: 1.3;
    }

    .booking-login-strip {
        padding: 14px;
    }

    .service-option > span {
        grid-template-columns: 40px minmax(0, 1fr);
        padding: 12px;
    }

    .slot-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .phone-field,
    .client-register-contact-grid .phone-field {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .country-picker,
    .country-picker-toggle,
    .country-picker-menu {
        width: 100%;
        max-width: 100%;
    }

    .country-picker-menu {
        left: 0;
        right: 0;
    }

    /* Evita el zoom automático de Safari al enfocar campos menores de 16 px. */
    .public-body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
    .public-body select:not(.country-native),
    .public-body textarea,
    .public-body .country-picker-toggle,
    .auth-page input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
    .auth-page select:not(.country-native),
    .auth-page textarea,
    .auth-page .country-picker-toggle {
        min-width: 0;
        min-height: 48px;
        font-size: 16px;
    }

    .public-body .country-native,
    .auth-page .country-native {
        min-height: 0;
    }

    .public-body textarea,
    .auth-page textarea {
        min-height: 108px;
    }

    .public-body label,
    .auth-page label {
        min-width: 0;
        max-width: 100%;
    }

    .booking-step .check-line,
    .auth-form-wrap .check-line,
    .home-service-toggle {
        align-items: flex-start;
        width: 100%;
    }

    .booking-step .check-line > span,
    .auth-form-wrap .check-line > span,
    .home-service-toggle > span {
        flex: 1 1 auto;
        padding-top: 1px;
        font-size: 14px;
        line-height: 1.4;
    }

    .home-service-box {
        width: 100%;
        padding: 13px;
    }

    .address-fieldset {
        width: 100%;
        padding: 13px;
    }

    .booking-account-summary {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .booking-account-summary > a {
        flex: 1 0 100%;
        padding-left: 50px;
    }

    .booking-card .btn-large,
    .auth-form-wrap .btn-large {
        min-height: 50px;
        padding: 12px 16px;
        white-space: normal;
        text-align: center;
    }

    .auth-shell {
        grid-template-columns: minmax(0, 1fr);
        min-height: 100vh;
        min-height: 100svh;
    }

    .auth-form-side {
        align-items: start;
        min-height: 100vh;
        min-height: 100svh;
        padding: 24px 18px 36px;
    }

    .auth-form-wrap,
    .auth-form-wide {
        width: 100%;
        max-width: 560px;
    }

    .auth-heading,
    .auth-heading.compact {
        margin: 27px 0 22px;
    }

    .auth-heading h2 {
        margin-top: 8px;
        font-size: 31px;
        line-height: 1.08;
    }

    .auth-heading p {
        font-size: 14px;
        line-height: 1.55;
    }

    .input-icon {
        min-width: 0;
        width: 100%;
    }

    .input-icon > i {
        top: 12px;
    }

    .password-toggle {
        top: 8px;
        min-height: 32px !important;
        font-size: 16px !important;
    }

    .auth-languages {
        flex-wrap: wrap;
        margin-top: 25px;
    }

    .footer-grid,
    .footer-grid > * {
        min-width: 0;
        max-width: 100%;
    }

    .public-footer {
        padding-top: 45px;
    }
}

@media (max-width: 390px) {
    .booking-page {
        padding-top: 24px;
    }

    .booking-shell,
    .public-body .container {
        width: calc(100% - 20px);
    }

    .booking-step {
        padding: 16px 12px;
    }

    .booking-intro h1,
    .auth-heading h2 {
        font-size: 29px;
    }

    .auth-form-side {
        padding-inline: 14px;
    }
}

/* NexoCita 0.5.4: selectores internacionales, switches y formularios claros */
input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    flex: 0 0 42px;
    width: 42px !important;
    height: 24px !important;
    margin: 0 !important;
    border: 1px solid #cbc6d7;
    border-radius: 999px;
    background: #ddd9e6;
    box-shadow: none;
    cursor: pointer;
    transition: .18s ease;
}
input[type="checkbox"]::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgba(29, 22, 49, .24);
    transition: transform .18s ease;
}
input[type="checkbox"]:checked {
    border-color: var(--primary);
    background: var(--primary);
}
input[type="checkbox"]:checked::before { transform: translateX(18px); }
input[type="checkbox"]:focus-visible { outline: 3px solid rgba(115,87,255,.2); outline-offset: 2px; }
input[type="checkbox"]:disabled { opacity: .48; cursor: not-allowed; }
.check-line { align-items: center; }
.check-line > span { line-height: 1.35; }
.check-line > span strong,.check-line > span small { display: block; }
.field-label-caption { display: inline-flex; align-items: center; gap: 4px; width: max-content; max-width: 100%; }
.field-requirement { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; vertical-align: middle; }
.field-requirement.is-required { color: #c5223a; font-size: 16px; font-weight: 900; line-height: 1; }
.phone-field { grid-template-columns: minmax(190px, .9fr) minmax(140px, 1.1fr); margin-top: 0; }
.form-grid > label { align-content: start; }
.country-picker { position: relative; min-width: 0; }
.country-native { position: absolute !important; left: 8px; bottom: 3px; width: 1px !important; height: 1px !important; padding: 0 !important; opacity: 0; pointer-events: none; }
.country-picker-toggle { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 43px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: #fff; text-align: left; cursor: pointer; }
.country-picker-toggle.empty { color: var(--muted); }
.country-picker-toggle::after { content: "⌄"; margin-left: auto; color: var(--muted); font-weight: 900; }
.country-picker-toggle span { font-size: 18px; }
.country-picker-toggle strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.country-picker-toggle small { margin-left: auto; color: var(--muted); font-size: 11px; }
.country-picker-menu { display: none; position: absolute; z-index: 140; top: calc(100% + 6px); left: 0; width: min(360px, 86vw); padding: 8px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 18px 45px rgba(32,24,57,.18); }
.country-picker.open .country-picker-menu { display: block; }
.country-picker-search { margin: 0 0 7px !important; }
.country-picker-list { display: grid; gap: 2px; max-height: 260px; overflow: auto; }
.country-picker-option { display: grid; grid-template-columns: 26px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 9px 10px; border: 0; border-radius: 9px; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.country-picker-option[hidden] { display: none; }
.country-picker-option:hover,.country-picker-option.selected { color: var(--primary); background: var(--primary-soft); }
.country-picker-option span { font-size: 18px; }
.country-picker-option strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.country-picker-option small { color: inherit; font-size: 10px; }
.address-fieldset { padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fcfbfe; }
.address-fieldset legend { padding: 0 7px; }
.address-fieldset .form-grid { margin-top: 5px; }
.system-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 20px 24px; cursor: pointer; list-style: none; }
.system-details > summary::-webkit-details-marker { display: none; }
.system-details > summary::after { content: "+"; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: var(--primary); background: var(--primary-soft); font-size: 18px; font-weight: 900; }
.system-details[open] > summary::after { content: "−"; }
.system-summary-copy { display: grid; gap: 3px; }
.system-summary-copy strong { font-size: 15px; }
.system-summary-copy span { color: var(--muted); font-size: 11px; }
.offline-booking-card { display: grid; gap: 12px; padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: var(--shadow-sm); text-align: center; }
.offline-booking-card h2 { margin: 0; font-size: 28px; }
.offline-booking-card p { margin: 0; color: var(--muted); }
.offline-booking-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 9px; }

@media (max-width: 680px) {
    .phone-field { grid-template-columns: 1fr; }
    .country-picker-menu { width: 100%; }
}

/* NexoCita 0.5.0: horario empresarial y acciones protegidas */
.business-hours-grid {
    grid-template-columns: minmax(0, 1fr);
}
.business-hours-grid .schedule-day {
    align-content: start;
}
.schedule-day-toggle {
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
}
.schedule-day.closed {
    background: color-mix(in srgb, var(--panel) 88%, var(--muted));
}
.schedule-day.closed .schedule-day-toggle span {
    color: var(--muted);
}
.icon-button.danger {
    color: #c83c52;
    border-color: rgba(200, 60, 82, .24);
}
.icon-button.danger:hover {
    color: #fff;
    background: #c83c52;
    border-color: #c83c52;
}
@media (max-width: 820px) {
    .business-hours-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 420px) {
    .metric-grid { grid-template-columns:1fr; }
    .slot-grid { grid-template-columns:repeat(3,1fr); }
}

/* Version 0.4: professional calendar, schedules and customer records */
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:12px 15px}.calendar-navigation,.calendar-view-tabs{display:flex;align-items:center;gap:7px}.calendar-navigation strong{margin-left:7px;font-size:12px}.calendar-view-tabs{padding:4px;border-radius:11px;background:#f4f2f8}.calendar-view-tabs a{padding:8px 12px;border-radius:8px;color:var(--muted);font-size:10px;font-weight:800}.calendar-view-tabs a.active{color:#fff;background:var(--primary);box-shadow:0 7px 16px rgba(115,87,255,.22)}
.calendar-columns{display:grid;grid-template-columns:repeat(7,minmax(185px,1fr));gap:10px;overflow-x:auto;padding:2px 1px 8px}.calendar-columns.calendar-single-day{grid-template-columns:minmax(360px,1fr);overflow:visible}.calendar-day-column{min-height:510px;overflow:hidden}.calendar-day-column>header{display:flex;align-items:center;justify-content:space-between;padding:14px;border-bottom:1px solid var(--line);background:#faf9fc}.calendar-day-column>header div{display:grid}.calendar-day-column>header span{color:var(--muted);font-size:9px;text-transform:uppercase}.calendar-day-column>header strong{font-size:15px}.calendar-day-column>header b{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;color:var(--primary);background:var(--primary-soft);font-size:9px}.calendar-day-column.today>header{background:var(--primary-soft)}.calendar-day-events{display:grid;align-content:start;gap:8px;padding:10px}.calendar-event{position:relative;display:grid;gap:3px;width:100%;padding:11px;border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:11px;background:#fff;text-align:left;cursor:pointer;transition:.18s}.calendar-event:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.calendar-event-time{color:var(--primary);font-size:10px;font-weight:900}.calendar-event strong{font-size:11px}.calendar-event small{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.calendar-event em{display:flex;align-items:center;gap:5px;color:#706a7c;font-size:8px;font-style:normal}.calendar-event em i{width:7px;height:7px;border-radius:50%}.calendar-event .status{justify-self:start;margin-top:4px}.calendar-day-empty{min-height:130px;display:grid;place-items:center;align-content:center;gap:5px;color:#b1abba}.calendar-day-empty span{font-size:22px}.calendar-day-empty small{font-size:9px}
.status-border-cancelled_customer,.status-border-cancelled_business{border-left-color:#c94358;opacity:.72}.status-border-completed{border-left-color:#15a98d}.status-border-no_show{border-left-color:#90909b}.status-border-pending,.status-border-pending_payment{border-left-color:#e39a21}
.month-calendar{overflow:auto}.month-weekdays,.month-grid{min-width:850px;display:grid;grid-template-columns:repeat(7,1fr)}.month-weekdays span{padding:11px;color:var(--muted);text-align:center;font-size:9px;font-weight:850;text-transform:uppercase}.month-grid{border-top:1px solid var(--line);border-left:1px solid var(--line)}.month-day{min-height:125px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.month-day.outside-month{background:#faf9fc;opacity:.55}.month-day.today{box-shadow:inset 0 0 0 2px var(--primary)}.month-day>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.month-day>header a{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;font-size:10px;font-weight:900}.month-day.today>header a{color:#fff;background:var(--primary)}.month-day>header span{color:var(--muted);font-size:8px}.month-events{display:grid;gap:4px}.month-event{display:grid;grid-template-columns:auto 1fr;gap:5px;width:100%;overflow:hidden;padding:5px 6px;border:0;border-left:3px solid var(--primary);border-radius:6px;background:#f7f5fb;text-align:left;cursor:pointer}.month-event b{font-size:8px}.month-event span{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.month-more{padding:4px;color:var(--primary);font-size:8px;font-weight:800}
.appointment-edit-layout{display:grid;gap:18px}.appointment-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.appointment-summary>div{display:grid;padding:10px;border-radius:10px;background:#f7f5fb}.appointment-summary span{color:var(--muted);font-size:8px;text-transform:uppercase}.appointment-summary strong{font-size:10px}.appointment-status-form fieldset{display:grid;grid-template-columns:1fr 1.4fr auto;align-items:end;gap:10px}.appointment-status-form button{margin-bottom:0}
.employee-schedule-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:12px 0}.employee-schedule-summary span{display:grid;padding:9px;border-radius:10px;color:var(--muted);background:#f7f5fb;font-size:8px}.employee-schedule-summary b{color:var(--ink);font-size:15px}.employee-foot{flex-wrap:wrap}.employee-foot .btn{width:100%;margin-top:6px}.schedule-manager{display:grid;gap:28px}.schedule-section-heading{display:flex;justify-content:space-between;gap:15px}.schedule-section-heading h3{margin:0;font-size:18px}.schedule-section-heading p{margin:3px 0 0;color:var(--muted);font-size:10px}.weekly-schedule-grid{display:grid;gap:7px}.schedule-day{display:grid;grid-template-columns:105px repeat(2,minmax(0,1fr));gap:9px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:11px}.schedule-day>strong{font-size:10px}.schedule-period{display:grid;grid-template-columns:1fr minmax(74px,.7fr) auto minmax(74px,.7fr);align-items:center;gap:5px}.schedule-period .check-line{margin:0}.schedule-period input[type=time]{padding:8px;font-size:10px}.schedule-period>span{color:var(--muted)}.blocks-manager{display:grid;gap:13px;padding-top:23px;border-top:1px solid var(--line)}.block-create-form{display:grid;grid-template-columns:.8fr 1fr 1fr 1.2fr auto;gap:8px;align-items:end}.block-list{display:grid;gap:7px}.block-list article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:10px;border:1px solid var(--line);border-radius:11px}.block-list article>div{display:grid}.block-list strong{font-size:10px}.block-list small{color:var(--muted);font-size:9px}.block-type{padding:5px 7px;border-radius:7px;color:#5947ac;background:var(--primary-soft);font-size:8px;font-weight:850}.block-type-vacation{color:#087e68;background:#e4f9f4}.block-type-absence{color:#a53346;background:#fff0f3}.block-type-break{color:#8a5709;background:#fff8e7}.empty-inline{padding:14px;border-radius:10px;color:var(--muted);background:#faf9fc;text-align:center;font-size:10px}.modal-confirm{width:min(460px,100%)}.modal-confirm p{margin:0;color:var(--muted);line-height:1.6}
.schedule-period.disabled{opacity:.48}.schedule-period.disabled input[type=time]{background:#f2f0f5}
.customer-record-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-bottom:16px}.customer-profile-card{display:grid;grid-template-columns:auto 1fr;gap:15px;padding:22px}.customer-profile-avatar{display:grid;place-items:center;width:62px;height:62px;border-radius:20px 20px 20px 7px;color:#fff;background:linear-gradient(135deg,var(--primary),#986cff);font-size:23px;font-weight:900}.customer-profile-card h2{margin:3px 0;font-size:22px}.customer-profile-card p{margin:0 0 7px;color:var(--muted);font-size:11px}.customer-profile-card dl{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 0}.customer-profile-card dl div{padding:10px;border-radius:10px;background:#f7f5fb}.customer-profile-card dt{color:var(--muted);font-size:8px;text-transform:uppercase}.customer-profile-card dd{margin:3px 0 0;font-size:10px;font-weight:800}.customer-profile-card aside{grid-column:1/-1;padding:12px;border-radius:10px;color:#665f72;background:#fff8e8}.customer-profile-card aside strong{font-size:9px}.customer-profile-card aside p{margin:4px 0 0;line-height:1.6}.customer-history-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.customer-history-stats article{display:grid;align-content:center;padding:17px}.customer-history-stats span{color:var(--muted);font-size:9px}.customer-history-stats strong{font-size:27px}.customer-history-panel>header{padding:19px 21px;border-bottom:1px solid var(--line)}.customer-history-panel h2{margin:4px 0 0;font-size:19px}.customer-history-list{display:grid}.customer-history-list>article{display:grid;grid-template-columns:66px 1fr auto;align-items:center;gap:15px;padding:15px 20px;border-bottom:1px solid var(--line)}.history-date{display:grid;place-items:center;padding:8px;border-radius:11px;color:#fff;background:#2b2348}.history-date strong{font-size:20px;line-height:1}.history-date span,.history-date small{font-size:8px}.history-content h3{margin:5px 0 2px;font-size:14px}.history-content p{display:flex;align-items:center;gap:5px;margin:0;color:var(--muted);font-size:10px}.history-content p i{width:7px;height:7px;border-radius:50%}.history-content>small{display:block;margin-top:5px;color:#918b9d;font-size:9px}

@media (max-width: 1180px){.calendar-columns{grid-template-columns:repeat(7,minmax(165px,1fr))}.block-create-form{grid-template-columns:repeat(2,1fr)}.block-create-form .btn{align-self:end}.schedule-day{grid-template-columns:90px 1fr}.schedule-period{grid-column:2}}
@media (max-width: 960px){.calendar-toolbar{align-items:flex-start;flex-direction:column}.customer-record-grid{grid-template-columns:1fr}.schedule-day{grid-template-columns:1fr}.schedule-period{grid-column:auto}.block-create-form{grid-template-columns:1fr 1fr}}
@media (max-width: 680px){.calendar-navigation{width:100%;flex-wrap:wrap}.calendar-navigation strong{order:2;width:100%;margin:4px 0 0}.calendar-view-tabs{width:100%}.calendar-view-tabs a{flex:1;text-align:center}.calendar-columns.calendar-single-day{grid-template-columns:1fr}.appointment-summary,.customer-profile-card dl{grid-template-columns:1fr}.appointment-status-form fieldset,.block-create-form{grid-template-columns:1fr}.schedule-period{grid-template-columns:1fr 1fr}.schedule-period .check-line{grid-column:1/-1}.schedule-period>span{display:none}.customer-history-stats{grid-template-columns:repeat(2,1fr)}.customer-history-list>article{grid-template-columns:54px 1fr}.customer-history-list>article>a{grid-column:2}.customer-profile-card{grid-template-columns:1fr}.customer-profile-avatar{width:52px;height:52px}}

/* NexoCita 0.5.1: calendario por servicio, estados legibles y tipografía administrativa */
.admin-body {
    font-size: 16px;
}
.admin-body .eyebrow,
.admin-body .panel-head .eyebrow {
    font-size: 12px;
}
.admin-body .nav-label {
    font-size: 10px;
}
.admin-body .side-nav a {
    font-size: 14px;
}
.admin-body .business-chip strong {
    font-size: 14px;
}
.admin-body .business-chip span:not(.business-avatar),
.admin-body .user-mini span {
    font-size: 11px;
}
.admin-body .user-mini strong {
    font-size: 13px;
}
.admin-body label {
    font-size: 14px;
}
.admin-body small,
.admin-body label small,
.admin-body .field-help,
.admin-body .cell-sub {
    font-size: 12px;
}
.admin-body th {
    font-size: 11px;
}
.admin-body td {
    font-size: 13px;
}
.admin-body .btn-small,
.admin-body .calendar-view-tabs a {
    font-size: 12px;
}
.admin-body .table-title strong,
.admin-body .agenda-main strong {
    font-size: 14px;
}
.admin-body .table-title span,
.admin-body .agenda-main span {
    font-size: 12px;
}

.status {
    border: 1px solid transparent;
    padding: 6px 10px;
    font-size: 12px;
}
.status-pending {
    color: #845a0b;
    border-color: #f0d48a;
    background: #fff5d8;
}
.status-pending_payment {
    color: #a54712;
    border-color: #f2ba8f;
    background: #fff0e5;
}
.status-confirmed {
    color: #087560;
    border-color: #a9dfd3;
    background: #dcf6ef;
}
.status-arrived {
    color: #1d5d9f;
    border-color: #a9cef4;
    background: #e5f2ff;
}
.status-in_service {
    color: #563caf;
    border-color: #c9bcf5;
    background: #eee9ff;
}
.status-completed {
    color: #176778;
    border-color: #a9d4dc;
    background: #e2f3f6;
}
.status-cancelled_customer {
    color: #a62d49;
    border-color: #efb2c1;
    background: #ffebf0;
}
.status-cancelled_business {
    color: #7d2637;
    border-color: #dca0ac;
    background: #f8e4e8;
}
.status-no_show {
    color: #565867;
    border-color: #c9cad1;
    background: #ececf0;
}

.calendar-columns {
    grid-template-columns: repeat(7, minmax(205px, 1fr));
}
.calendar-day-column > header span,
.calendar-day-column > header b {
    font-size: 11px;
}
.calendar-event {
    --appointment-color: var(--primary);
    gap: 4px;
    padding: 12px;
    border: 1px solid color-mix(in srgb, var(--appointment-color) 42%, var(--line));
    border-left: 1px solid color-mix(in srgb, var(--appointment-color) 42%, var(--line));
    background: color-mix(in srgb, var(--appointment-color) 16%, #fff);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--appointment-color) 7%, transparent);
}
.calendar-event:hover {
    border-color: color-mix(in srgb, var(--appointment-color) 68%, var(--line));
    background: color-mix(in srgb, var(--appointment-color) 21%, #fff);
}
.calendar-event-time {
    color: color-mix(in srgb, var(--appointment-color) 72%, #221b3c);
    font-size: 13px;
}
.calendar-event strong {
    font-size: 13px;
}
.calendar-event-services {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.calendar-event small.calendar-event-service {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    overflow: visible;
    color: #585266;
    font-size: 12px;
    line-height: 1.3;
    text-overflow: clip;
    white-space: normal;
}
.calendar-event-service > i {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    margin-top: .35em;
    border-radius: 50%;
    background: var(--appointment-color);
}
.calendar-event-service > span {
    min-width: 0;
    overflow-wrap: anywhere;
}
.calendar-event em {
    font-size: 12px;
}
.calendar-event em i {
    width: 8px;
    height: 8px;
}
.calendar-event .status {
    margin-top: 6px;
}

.month-weekdays,
.month-grid {
    min-width: 1120px;
}
.month-weekdays span {
    font-size: 11px;
}
.month-day {
    min-height: 280px;
    padding: 10px;
}
.month-day > header {
    margin-bottom: 8px;
}
.month-day > header a {
    width: 29px;
    height: 29px;
    font-size: 12px;
}
.month-day > header span,
.month-more {
    font-size: 12px;
}
.month-events {
    gap: 8px;
}
.appointment-status-form [data-status-preview] {
    justify-self: start;
    margin-top: 2px;
}
.appointment-summary span {
    font-size: 11px;
}
.appointment-summary strong {
    font-size: 13px;
}

.admin-body .metric-card span,
.admin-body .metric-card small,
.admin-body .radial span,
.admin-body .quick-grid a,
.admin-body .inline-status select,
.admin-body .employee-info,
.admin-body .employee-foot,
.admin-body .settings-tabs a,
.admin-body .upload-card > span,
.admin-body .upload-card > em,
.admin-body .upload-card .check-line b,
.admin-body .language-panels summary,
.admin-body .advanced-box > summary,
.admin-body .mode-option small,
.admin-body .cron-note,
.admin-body .schema-warning span,
.admin-body .schema-status p,
.admin-body .schema-repair p,
.admin-body .schema-check small,
.admin-body .manual-version,
.admin-body .manual-search small,
.admin-body .manual-index > strong,
.admin-body .manual-index a,
.admin-body .manual-section header p,
.admin-body .manual-steps p,
.admin-body .manual-steps ul,
.admin-body .manual-note p,
.admin-body .manual-top,
.admin-body .employee-schedule-summary span,
.admin-body .schedule-section-heading p,
.admin-body .schedule-day > strong,
.admin-body .schedule-period input[type=time],
.admin-body .block-list strong,
.admin-body .block-list small,
.admin-body .empty-inline,
.admin-body .customer-profile-card p,
.admin-body .customer-profile-card dd,
.admin-body .history-content p,
.admin-body .history-content > small,
.admin-body .calendar-day-empty small {
    font-size: 12px;
}

/* NexoCita 0.5.7: validación anticipada, selectores buscables y formularios */
.appointment-status-form label[hidden],
.home-service-address[hidden],
.image-remove-button[hidden] {
    display: none !important;
}
.availability-feedback {
    min-height: 38px;
    margin: 10px 0 0;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    color: var(--muted);
    background: #faf9fc;
    font-size: 12px;
    font-weight: 700;
}
.availability-feedback:empty { display: none; }
.availability-feedback.is-checking { color: #5a4ba0; background: #f4f1ff; }
.availability-feedback.is-valid { color: #087e68; border-color: #bce9de; background: #eafaf6; }
.availability-feedback.is-invalid { color: #b42336; border-color: #ffc7ce; background: #fff0f2; }
.availability-feedback.is-warning { color: #8a5709; border-color: #f2ddb2; background: #fff8e7; }
.btn:disabled { opacity: .55; cursor: not-allowed; box-shadow: none; }
.client-register-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    gap: 15px;
    align-items: start;
}
.client-register-contact-grid > label { align-content: start; min-width: 0; }
.client-register-contact-grid .phone-field { grid-template-columns: minmax(175px, .9fr) minmax(120px, 1.1fr); }

.admin-body .select2-container { max-width: 100%; }
.admin-body .select2-container .select2-selection--single,
.admin-body .select2-container .select2-selection--multiple {
    min-height: 43px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #fff;
}
.admin-body .select2-container--default.select2-container--focus .select2-selection--single,
.admin-body .select2-container--default.select2-container--focus .select2-selection--multiple,
.admin-body .select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(115,87,255,.12);
}
.admin-body .select2-container .select2-selection--single .select2-selection__rendered {
    padding: 7px 38px 7px 12px;
    color: var(--ink);
    line-height: 27px;
    font-size: 12px;
    font-weight: 700;
}
.admin-body .select2-container .select2-selection--single .select2-selection__arrow { top: 8px; right: 8px; }
.select2-dropdown { z-index: 650; border: 1px solid var(--line); border-radius: 11px; box-shadow: 0 15px 35px rgba(31,24,52,.14); overflow: hidden; }
.select2-search--dropdown { padding: 8px; }
.select2-container--default .select2-search--dropdown .select2-search__field { margin: 0; border: 1px solid var(--line); border-radius: 9px; }
.select2-results__option { padding: 9px 11px; font-size: 12px; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--primary); }
.settings-form > *, .modal-body > *, .form-grid > * { min-width: 0; }
.roles-guide { margin-bottom: 18px; overflow: hidden; }
.roles-guide > summary { display: flex; align-items: center; gap: 14px; padding: 15px 18px; cursor: pointer; }
.roles-guide > summary span { color: var(--muted); font-size: 12px; }
.roles-guide-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; padding: 0 18px 18px; }
.roles-guide-grid article { padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #faf9fc; }
.roles-guide-grid p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }

@media (max-width: 680px) {
    .client-register-contact-grid { grid-template-columns: 1fr; }
    .client-register-contact-grid .phone-field { grid-template-columns: 1fr; }
    .roles-guide > summary { align-items: flex-start; flex-direction: column; }
    .roles-guide-grid { grid-template-columns: 1fr; }
}

/* NexoCita 0.5.8: gestión clara y compacta del estado de una cita */
.appointment-management-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fbfaff;
}
.appointment-status-form {
    display: grid;
    gap: 15px;
    padding: 17px;
}
.appointment-status-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}
.appointment-status-title {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}
.appointment-status-title > span {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    color: var(--primary);
    background: var(--primary-soft);
    font-size: 18px;
    font-weight: 900;
}
.appointment-status-title > div {
    display: grid;
    gap: 2px;
}
.appointment-status-title strong {
    font-size: 14px;
}
.appointment-status-title small,
.appointment-danger-zone small {
    color: var(--muted);
    font-size: 11px;
    line-height: 1.4;
}
.appointment-status-head .status {
    flex: 0 0 auto;
    font-size: 11px;
}
.appointment-status-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 10px;
}
.appointment-status-main label,
.appointment-cancellation-field {
    display: grid;
    gap: 7px;
}
.appointment-status-main label > span,
.appointment-cancellation-field > span {
    font-size: 12px;
    font-weight: 800;
}
.appointment-cancellation-field {
    padding: 13px;
    border: 1px solid #f1c9d0;
    border-radius: 11px;
    background: #fff7f8;
}
.appointment-cancellation-field b {
    color: #c94358;
}
.appointment-cancellation-field input {
    background: #fff;
}
.appointment-status-main .btn {
    min-width: 170px;
    min-height: 43px;
    margin: 0;
}
.appointment-danger-zone {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 17px;
    border-top: 1px solid #f1d6da;
    background: #fff;
}
.appointment-danger-zone > div {
    display: grid;
    gap: 2px;
}
.appointment-danger-zone strong {
    color: #9f3042;
    font-size: 12px;
}
.appointment-danger-zone .btn {
    flex: 0 0 auto;
    min-height: 36px;
    padding: 8px 13px;
    box-shadow: none;
}

@media (max-width: 680px) {
    .appointment-status-head {
        align-items: flex-start;
    }
    .appointment-status-main {
        grid-template-columns: 1fr;
    }
    .appointment-status-main .btn {
        width: 100%;
    }
    .appointment-danger-zone {
        align-items: flex-start;
        flex-direction: column;
    }
    .appointment-danger-zone .btn {
        width: 100%;
    }
}
.admin-body .actor-badge,
.admin-body .audit-card summary,
.admin-body .audit-diff strong,
.admin-body .audit-diff pre,
.admin-body .manual-roles strong,
.admin-body .manual-roles span,
.admin-body .manual-index a span,
.admin-body .manual-note strong,
.admin-body .block-type,
.admin-body .customer-profile-card dt,
.admin-body .customer-profile-card aside strong,
.admin-body .customer-history-stats span,
.admin-body .history-date span,
.admin-body .history-date small {
    font-size: 11px;
}

@media (max-width: 1180px) {
    .calendar-columns {
        grid-template-columns: repeat(7, minmax(190px, 1fr));
    }
}

/* NexoCita 0.5.2: pie de producto y edición del equipo */
.admin-main {
    display: flex;
    flex-direction: column;
}
.admin-content {
    flex: 1 0 auto;
    width: 100%;
}
.product-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px 18px;
    font-size: 12px;
}
.product-footer span:not(:last-child)::after {
    content: "·";
    margin-left: 18px;
    opacity: .48;
}
.admin-product-footer {
    width: min(1512px, calc(100% - 68px));
    margin: 0 auto;
    padding: 17px 0 24px;
    border-top: 1px solid var(--line);
    color: var(--muted);
}
.footer-bottom.product-footer {
    justify-content: center;
}
.service-assignment-grid,
.employee-permission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
}
.service-assignment-grid .check-line,
.employee-permission-grid .check-line {
    min-height: 42px;
    margin: 0;
    padding: 9px 11px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #faf9fc;
}

/* NexoCita 0.5.11: separación clara al cerrar la reserva */
.contact-step > .check-line {
    margin-top: 16px;
    padding-block: 3px;
}

.contact-step > .check-line + .check-line {
    margin-top: 12px;
}

.contact-step > .btn-block {
    margin-top: 24px;
}

.booking-customer-identification {
    display: grid;
    gap: 14px;
}

.booking-phone-first {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
}

.booking-phone-first > label {
    min-width: 0;
}

.booking-phone-check {
    align-self: start;
    min-height: 47px;
    margin-top: 25px;
    margin-bottom: 0;
    white-space: nowrap;
}

.customer-recognition {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid #dcd6f4;
    border-radius: 13px;
    background: #f8f6ff;
}

.customer-recognition[hidden],
.customer-verification[hidden],
.booking-customer-details[hidden] {
    display: none;
}

.customer-status {
    margin: 0;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.5;
}

.customer-status.is-success { color: #087e68; }
.customer-status.is-error { color: #b52f48; }
.customer-status.is-info { color: #57439f; }

.customer-recognition-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.customer-verification {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
}

.customer-verification .btn {
    min-height: 43px;
    margin-bottom: 17px;
}

.booking-customer-details {
    margin-top: 2px;
}

.booking-customer-details .booking-email-field {
    grid-column: 1 / -1;
}

.customer-inline-error {
    display: block;
    margin-top: 5px;
    color: #b52f48;
    font-size: 10px;
}

.confirmation-code small {
    display: block;
    max-width: 420px;
    margin: 8px auto 0;
    color: var(--muted);
    font-size: 10px;
    font-weight: 500;
    line-height: 1.45;
}

@media (max-width: 680px) {
    .booking-phone-first,
    .customer-verification {
        grid-template-columns: minmax(0, 1fr);
    }

    .booking-phone-check,
    .customer-verification .btn {
        width: 100%;
        min-height: 48px;
        margin-top: 0;
        margin-bottom: 0;
    }

    .customer-recognition {
        padding: 13px;
    }
}

@media (max-width: 680px) {
    .admin-product-footer {
        width: calc(100% - 28px);
    }
    .product-footer {
        align-items: center;
        flex-direction: column;
    }
    .product-footer span:not(:last-child)::after {
        content: none;
    }
    .service-assignment-grid,
    .employee-permission-grid {
        grid-template-columns: 1fr;
    }
}

/* NexoCita 0.6.1: respeta el atributo hidden en las acciones de verificación pública. */
.booking-customer-identification [hidden] {
    display: none !important;
}

/* NexoCita 0.6.2 · compartir cita */
.appointment-share-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;margin:0 0 20px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,var(--surface),var(--canvas));box-shadow:0 8px 24px rgba(35,29,70,.05)}
.appointment-share-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.appointment-share-copy>span{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.appointment-share-copy>strong{font-size:1rem;color:var(--ink)}.appointment-share-copy>small{color:var(--muted);line-height:1.45}
.appointment-share-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.appointment-share-actions form{margin:0}.appointment-share-actions .btn{white-space:nowrap}
.btn-whatsapp{background:#1f9d61;color:#fff;border-color:#1f9d61}.btn-whatsapp:hover{background:#188352;color:#fff;border-color:#188352}
.public-share-card{margin-top:22px;text-align:left}
@media (max-width:720px){.appointment-share-card{align-items:stretch;flex-direction:column}.appointment-share-actions{justify-content:stretch;display:grid;grid-template-columns:1fr}.appointment-share-actions form,.appointment-share-actions .btn{width:100%}.appointment-share-actions .btn{justify-content:center;text-align:center}}

/* NexoCita 0.6.3 · protección visual del reenvío de correo */
.appointment-share-actions form[data-email-send-form] .btn:disabled{cursor:wait;opacity:.72;transform:none;box-shadow:none}
.appointment-share-actions form[data-email-send-form] .btn.is-sending{position:relative;padding-left:38px}
.appointment-share-actions form[data-email-send-form] .btn.is-sending::before{content:"";position:absolute;left:16px;width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:nexocita-email-spin .7s linear infinite}
@keyframes nexocita-email-spin{to{transform:rotate(360deg)}}

/* NexoCita 0.6.4: listados escalables y búsqueda en tiempo real */
.directory-panel{overflow:hidden}.directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:#fff}.directory-toolbar>small{color:var(--muted);font-size:10px;white-space:nowrap}.directory-search{position:relative;display:block;width:min(520px,100%)}.directory-search>span{position:absolute;z-index:1;left:13px;top:50%;translate:0 -50%;color:var(--muted);font-size:19px}.directory-search input{width:100%;margin:0;padding-left:40px;background:#faf9fc}.directory-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 18px;color:var(--muted);background:#fbfafd;font-size:10px}.directory-meta strong{color:var(--ink);font-weight:750}.directory-pagination{align-items:center;margin:18px;padding-bottom:2px}.directory-pagination>span{display:grid;place-items:center;min-width:22px;color:var(--muted)}[data-directory-results]{position:relative;min-height:90px;transition:opacity .16s ease}[data-directory-results].is-loading{opacity:.5;pointer-events:none}
@media (max-width:680px){.directory-toolbar{align-items:stretch;flex-direction:column}.directory-toolbar>small{white-space:normal}.directory-meta{align-items:flex-start;flex-direction:column}.directory-pagination{margin:16px 10px}}

/* NexoCita 0.6.4: dashboard operativo */
.dashboard-top-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,.65fr) minmax(280px,.85fr);gap:18px;align-items:stretch;margin-bottom:18px}.dashboard-top-grid>.panel{min-width:0;margin:0}.dashboard-top-grid .agenda-panel{min-height:360px}.dashboard-top-grid .occupancy-panel,.dashboard-top-grid .quick-panel{display:flex;flex-direction:column}.dashboard-top-grid .occupancy-panel .radial{margin:auto}.dashboard-top-grid .quick-grid{flex:1}.dashboard-week-panel{overflow:hidden}.dashboard-week-head{align-items:flex-start}.dashboard-week-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.dashboard-appointments-table{min-width:1100px}.dashboard-client{display:grid;gap:3px}.dashboard-client>span{color:var(--muted);font-size:10px}.service-dot{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:999px;background:var(--service-color,#7357ff)}.dashboard-appointment-actions{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:330px}.dashboard-appointment-actions form{margin:0}.mini-action{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:30px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;color:#544e63;background:#fff;font-size:9px;font-weight:800;white-space:nowrap;cursor:pointer}.mini-action:hover{border-color:#cbc3f4;color:var(--primary);background:#faf9ff}.mini-action.whatsapp{color:#087e68;border-color:#c5eadf;background:#f0fbf7}.mini-action.danger{color:#b42336;border-color:#ffd1d7;background:#fff7f8}.mini-action:disabled{opacity:.55}.dashboard-week-pagination{margin:16px 18px 20px}.reminder-channel-grid{display:grid;gap:9px}.reminder-channel-grid form,.reminder-channel-grid .btn{width:100%}
@media (max-width:1180px){.dashboard-top-grid{grid-template-columns:minmax(0,1.45fr) minmax(220px,.75fr)}.dashboard-top-grid .quick-panel{grid-column:1/-1}.dashboard-top-grid .quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){.dashboard-top-grid{grid-template-columns:1fr}.dashboard-top-grid .quick-panel{grid-column:auto}.dashboard-top-grid .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-week-head{align-items:flex-start;flex-direction:column}.dashboard-appointment-actions{min-width:290px}.mini-action span{display:none}}

/* NexoCita 0.6.5 · mejor legibilidad en tablas y acciones */
.admin-body table th{padding:15px 18px;font-size:11px;line-height:1.25;letter-spacing:.065em}
.admin-body table td{padding:16px 18px;font-size:14px;line-height:1.45}
.admin-body .table-title strong{font-size:14px}
.admin-body .table-title span,.admin-body .cell-sub{font-size:12px;line-height:1.4}
.admin-body .status{padding:7px 11px;font-size:12px;line-height:1.2}
.admin-body .btn{font-size:13px}
.admin-body .btn-small{min-height:38px;padding:8px 12px;font-size:12px}
.admin-body .table-actions{gap:8px}
.admin-body .icon-button{width:40px;height:40px;border:1px solid #ddd8ff;font-size:18px;font-weight:900;line-height:1;color:#6048cf;background:#f2efff;transition:.16s ease}
.admin-body .icon-button:hover{transform:translateY(-1px);border-color:#c9c0ff;background:#eae5ff}
.admin-body .icon-button.action-history{color:#1767a8;border-color:#c7dff5;background:#eef7ff}
.admin-body .icon-button.action-history:hover{border-color:#9fc9ed;background:#e3f1ff}
.admin-body .icon-button.action-edit{color:#6048cf;border-color:#d3cbff;background:#f2efff}
.admin-body .icon-button.action-access{color:#9a6815;border-color:#eed79b;background:#fff8e7}
.admin-body .icon-button.action-access:hover{border-color:#e5c467;background:#fff2cf}
.admin-body .icon-button.danger{color:#b42336;border-color:#f1b8c0;background:#fff0f3}
.admin-body .icon-button.danger:hover{color:#951d2f;border-color:#e58c99;background:#ffe5ea}

.dashboard-week-head p{font-size:12px;line-height:1.45}
.dashboard-appointments-table{min-width:1180px}
.dashboard-client{gap:4px}.dashboard-client>strong{font-size:14px}.dashboard-client>span{font-size:12px}
.dashboard-appointment-actions{gap:7px;min-width:500px}
.mini-action{min-height:38px;padding:7px 10px;gap:6px;border-width:1px;border-radius:10px;font-size:12px;font-weight:850;box-shadow:0 2px 7px rgba(35,29,70,.035)}
.mini-action .mini-action-icon{display:inline-grid;place-items:center;min-width:18px;font-size:18px;line-height:1;font-weight:900}
.mini-action .mini-action-label{font-size:11px;line-height:1;font-weight:850}
.mini-action.email{color:#1767a8;border-color:#bfdcf4;background:#eef7ff}.mini-action.email:hover{color:#0f568e;border-color:#91c4eb;background:#e2f2ff}
.mini-action.whatsapp{color:#087e68;border-color:#ace0d3;background:#eaf9f5}.mini-action.whatsapp:hover{color:#056956;border-color:#7fcdbb;background:#dcf5ee}
.mini-action.status-action{color:#9a6815;border-color:#ecd490;background:#fff7df}.mini-action.status-action:hover{color:#7b510c;border-color:#dfbf61;background:#fff0c6}
.mini-action.reschedule{color:#6048cf;border-color:#d0c8fb;background:#f1eeff}.mini-action.reschedule:hover{color:#4e38b1;border-color:#b9adf3;background:#e8e3ff}
.mini-action.professional{color:#27618e;border-color:#c5d9e8;background:#f0f6fa}.mini-action.professional:hover{color:#1d4e75;border-color:#a7c5da;background:#e6f1f7}
.mini-action.danger{color:#b42336;border-color:#f0b7c0;background:#fff0f3}.mini-action.danger:hover{color:#941b2d;border-color:#e38b98;background:#ffe4ea}

.owner-role-help{display:block;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.45}
.owner-protection-note,.owner-security-note{padding:12px 14px;border:1px solid #e3ddff;border-radius:12px;color:#5e5675;background:#f8f6ff;font-size:12px;line-height:1.5}

@media (max-width:760px){
    .admin-body table th{font-size:10.5px}.admin-body table td{font-size:13px}
    .dashboard-appointment-actions{min-width:315px}
    .mini-action{min-width:40px;padding:7px 9px}
    .mini-action .mini-action-label{display:none}
    .mini-action .mini-action-icon{font-size:19px}
}

/* NexoCita 0.6.6 · Portal client controls */
.btn-primary-soft{color:var(--primary);background:#f0ecff;border-color:#ded6ff}.btn-primary-soft:hover{background:#e7e0ff}.settings-option-stack{display:grid;align-content:start;gap:12px;padding:4px}.settings-option-stack>.check-line{margin:0}.client-appointment-actions .btn{white-space:nowrap}.client-appointment-actions small{line-height:1.35}.client-appointment-actions .btn-primary-soft{font-weight:750}.client-portal-page .availability-feedback{margin:0}.client-portal-page select:disabled{opacity:.65;cursor:not-allowed}

/* NexoCita 0.7.0 — servicios múltiples y alertas operativas */
.service-multiple-help{margin:0 0 12px}.service-selection-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:12px 14px;border:1px solid #ddd7f2;border-radius:12px;background:#f8f6ff}.service-selection-summary strong{font-size:12px;color:var(--primary)}.service-selection-summary span{padding:5px 8px;border-radius:999px;background:#fff;color:#514b62;font-size:11px;font-weight:700}.service-option input:checked+span{position:relative}.service-option input:checked+span:after{content:'✓';position:absolute;right:8px;top:8px;display:grid;place-items:center;width:20px;height:20px;border-radius:999px;background:var(--primary);color:#fff;font-size:12px;font-weight:900}
.appointment-delay-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;border:1px solid #efd08a;border-radius:14px;background:#fff8e8}.appointment-delay-card>div:first-child{display:flex;align-items:center;gap:10px}.appointment-delay-card>div:first-child>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#fff0c8;font-size:20px}.appointment-delay-card strong,.appointment-delay-card small{display:block}.appointment-delay-card small{margin-top:3px;color:#75550f;font-weight:700}.appointment-delay-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.appointment-delay-actions form{margin:0}.btn-mail-action{color:#1459b3;background:#eaf2ff;border-color:#c9ddff}.btn-professional-action{color:#315d85;background:#eaf4fb;border-color:#c9e2f3}.btn-warning-action{color:#674300;background:#ffd66b;border-color:#eabf4f}.force-conflict-details{margin:0;min-height:64px;padding:12px 14px;white-space:pre-wrap;border:1px solid #ead39a;border-radius:11px;background:#fff9eb;color:#594416;font:600 12px/1.55 inherit}.forced-impact-list{display:grid;gap:10px}.forced-impact-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}.forced-impact-item>div:first-child{display:grid;gap:3px}.forced-impact-item span{color:var(--muted);font-size:11px}.forced-impact-item b{color:#97650a;font-size:11px}.calendar-event-delay,.delay-inline-badge{display:inline-flex;align-items:center;gap:4px;margin-top:5px;padding:3px 7px;border-radius:999px;background:#fff0c8;color:#795306;font-size:10px;font-weight:800}.mini-action.warning{color:#855700;background:#fff0bd;border-color:#e6c764}.mini-action.professional-warning{color:#315d85;background:#e8f3fb;border-color:#c6dfef}.reminder-settings .check-line{min-height:74px}
@media(max-width:760px){.appointment-delay-card,.forced-impact-item{align-items:stretch;flex-direction:column}.appointment-delay-actions{justify-content:flex-start}.service-selection-summary{align-items:flex-start;flex-direction:column}.force-conflict-details{font-size:11px}}
.calendar-event-forced,.forced-inline-badge{display:inline-flex;align-items:center;gap:4px;margin-top:5px;padding:3px 7px;border-radius:999px;background:#ffe4d2;color:#9a4212;font-size:10px;font-weight:850}.appointment-forced-notice{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;margin-bottom:14px;border:1px solid #f0c19f;border-radius:13px;background:#fff4ec;color:#73330e}.appointment-forced-notice>span{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#ffe1cd;font-size:19px}.appointment-forced-notice strong,.appointment-forced-notice small{display:block}.appointment-forced-notice small{margin-top:3px;color:#815238;line-height:1.45}
/* NexoCita 0.7.0: alertas operativas también en Agenda de hoy */
.agenda-alerts{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.agenda-alerts .forced-inline-badge,.agenda-alerts .delay-inline-badge{margin:0}

/* NexoCita 0.7.1 — permisos sensibles y bloqueo de citas pasadas */
.sensitive-permissions{margin:4px 0 0;padding:14px 15px;border:1px solid var(--line);border-radius:13px;background:#faf9fd}.sensitive-permissions legend{padding:0 7px;color:var(--ink);font-size:12px;font-weight:850}.sensitive-permissions .employee-permission-grid{margin-top:2px}.sensitive-permissions .field-help{display:block;margin-top:9px;color:var(--muted);font-size:10px;line-height:1.45}.appointment-past-lock{margin:0 0 16px}.appointment-past-lock strong{display:block;margin-bottom:4px}
.alert-info{color:#245f85;background:#eef8ff;border:1px solid #cfe9fa}


/* 0.7.2 · Dashboard metrics + team search */
.metric-card.teal{--metric:#0e9f92;--metric-soft:#e5fbf7}
.metric-card.rose{--metric:#d64f7d;--metric-soft:#fff0f5}
.metric-card.indigo{--metric:#5467d9;--metric-soft:#edf0ff}
.metric-card.lime{--metric:#5f9d32;--metric-soft:#eff9e8}
.team-search-panel{margin-bottom:18px;overflow:hidden}
.team-search-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;background:#fff}
.team-search-bar>small{color:var(--muted);font-size:10px}
.employee-card[hidden],.team-search-empty[hidden]{display:none!important}
.team-search-empty{grid-column:1/-1}
@media(max-width:680px){.team-search-bar{align-items:stretch;flex-direction:column}.team-search-bar>small{font-size:11px}}

/* NexoCita 0.7.4: reserva pública por pasos y compatibilidad servicio/profesional */
.booking-wizard-progress {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    padding: 15px 20px;
    background: #fff;
    border-bottom: 1px solid var(--line);
}
.booking-wizard-progress-item {
    position: relative;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    min-width: 0;
    color: #8b8599;
}
.booking-wizard-progress-item:not(:last-child)::after {
    content: '';
    position: absolute;
    z-index: 0;
    top: 13px;
    left: 32px;
    right: 10px;
    height: 2px;
    background: #ece8f5;
}
.booking-wizard-progress-item > span {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    border: 1px solid #ded9eb;
    border-radius: 9px;
    color: #7f788f;
    background: #fff;
    font-size: 11px;
    font-weight: 850;
}
.booking-wizard-progress-item > b {
    position: relative;
    z-index: 1;
    width: max-content;
    max-width: calc(100% - 4px);
    padding-right: 8px;
    background: #fff;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 10px;
}
.booking-wizard-progress-item.active { color: var(--primary); }
.booking-wizard-progress-item.active > span {
    border-color: var(--primary);
    color: #fff;
    background: var(--primary);
    box-shadow: 0 0 0 4px rgba(115,87,255,.09);
}
.booking-wizard-progress-item.complete { color: #514a64; }
.booking-wizard-progress-item.complete > span {
    border-color: #cfc7ff;
    color: var(--primary);
    background: var(--primary-soft);
}
.booking-wizard-progress-item.complete:not(:last-child)::after { background: #cfc7ff; }
.booking-step[hidden] { display: none !important; }
.booking-wizard-actions {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}
.booking-wizard-actions-end { justify-content: flex-end; }
.booking-wizard-actions .btn { min-width: 145px; }
.booking-wizard-actions .btn:disabled {
    cursor: not-allowed;
    opacity: .48;
    box-shadow: none;
}
.booking-inline-warning {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid #ffd0d5;
    border-radius: 11px;
    color: #a12c3c;
    background: #fff5f6;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
}
.booking-inline-warning[hidden] { display: none; }
.professional-compatibility {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    margin-bottom: 16px;
    padding: 12px 14px;
    border: 1px solid #cceee5;
    border-radius: 12px;
    background: #f2fbf8;
}
.professional-compatibility > span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    color: #087d67;
    background: #dff7f0;
    font-weight: 900;
}
.professional-compatibility > div { display: grid; gap: 2px; }
.professional-compatibility strong { color: #176b5d; font-size: 12px; }
.professional-compatibility small { color: var(--muted); font-size: 10px; line-height: 1.4; }
.professional-compatibility.is-error {
    border-color: #ffd1d7;
    background: #fff5f6;
}
.professional-compatibility.is-error > span { color: #ad2f42; background: #ffe4e8; }
.professional-compatibility.is-error strong { color: #a12c3c; }
.booking-professional-select { display: grid; gap: 7px; }
.booking-professional-select select { width: 100%; }
.booking-wizard .service-options { max-height: min(390px, 48vh); }

@media (max-width: 680px) {
    .booking-wizard-progress {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: minmax(112px, 1fr);
        overflow-x: auto;
        overscroll-behavior-x: contain;
        padding: 12px 14px;
        scrollbar-width: none;
    }
    .booking-wizard-progress::-webkit-scrollbar { display: none; }
    .booking-wizard-progress-item > b { font-size: 10px; }
    .booking-wizard-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .booking-wizard-actions-end { grid-template-columns: 1fr; }
    .booking-wizard-actions .btn { min-width: 0; width: 100%; }
    .booking-wizard .service-options { max-height: 43vh; }
}

/* NexoCita 0.7.5 · reserva compuesta y selector visual de profesionales */
.professional-service-groups{display:grid;gap:16px}.professional-service-group{padding:15px;border:1px solid var(--line);border-radius:15px;background:#fbfaff}.professional-service-group[hidden]{display:none!important}.professional-service-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.professional-service-group>header>div{display:grid;gap:2px}.professional-service-group>header span{color:var(--muted);font-size:9px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.professional-service-group>header strong{font-size:14px}.professional-service-group>header>small{padding:5px 8px;border-radius:999px;background:#fff;color:var(--muted);font-size:10px;font-weight:750}.professional-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.professional-option{min-width:0}.professional-option input{position:absolute;opacity:0;pointer-events:none}.professional-option>span{display:grid;grid-template-columns:48px minmax(0,1fr);gap:11px;align-items:center;height:100%;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff;cursor:pointer;transition:.16s ease}.professional-option>span>i,.professional-option>span>img{grid-row:1;width:48px;height:48px;border-radius:13px}.professional-option>span>i{display:grid;place-items:center;color:var(--option,var(--primary));background:color-mix(in srgb,var(--option,var(--primary)) 11%,white);font-style:normal;font-weight:900}.professional-option>span>img{object-fit:cover}.professional-option>span>div{display:grid;min-width:0;gap:2px}.professional-option b{font-size:12px}.professional-option small{color:var(--muted);font-size:10px}.professional-option em{overflow:hidden;color:#777084;font-size:9px;font-style:normal;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.professional-option input:checked+span{border-color:var(--primary);box-shadow:0 0 0 3px rgba(115,87,255,.1);background:#fcfbff}.professional-option input:checked+span:after{content:'✓';position:absolute}.professional-option{position:relative}.professional-option input:checked+span:after{right:9px;top:9px;display:grid;place-items:center;width:20px;height:20px;border-radius:999px;background:var(--primary);color:#fff;font-size:11px;font-weight:900}.professional-option-any>span{background:#f8f6ff}.professional-option-any>span>i{color:var(--primary);background:#ece7ff}
.booking-plan-title{margin:0 0 10px;color:var(--muted);font-size:11px;font-weight:750}.booking-plan-grid{display:grid;gap:10px}.booking-plan-option{display:grid;gap:11px;width:100%;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-align:left;cursor:pointer;transition:.16s ease}.booking-plan-option:hover{border-color:#cfc5ff;background:#fdfcff}.booking-plan-option.selected{border-color:var(--primary);box-shadow:0 0 0 3px rgba(115,87,255,.11);background:#faf8ff}.booking-plan-option-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.booking-plan-option-head>strong{font-size:15px}.booking-plan-option-head>b{padding:5px 8px;border-radius:999px;color:#176b5d;background:#eaf9f4;font-size:9px}.booking-plan-itinerary{display:grid;gap:7px}.booking-plan-itinerary>span{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:center}.booking-plan-itinerary i{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;color:var(--primary);background:var(--primary-soft);font-size:9px;font-style:normal;font-weight:900}.booking-plan-itinerary>span>span{display:grid;gap:1px}.booking-plan-itinerary strong{font-size:11px}.booking-plan-itinerary small{color:var(--muted);font-size:9px}.booking-plan-option-foot{color:var(--muted);font-size:9px;font-weight:700}.booking-plan-loading{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.booking-plan-loading .slot-loading{height:78px;border-radius:13px}
@media(max-width:760px){.professional-options{grid-template-columns:1fr}.professional-service-group{padding:12px}.booking-plan-option{padding:12px}.booking-plan-option-head>strong{font-size:14px}}

/* NexoCita 0.7.5 · asistente visual de citas en administración */
.modal-booking-wizard{max-width:1040px}.admin-booking-wizard{gap:18px}.admin-wizard-progress{grid-template-columns:repeat(5,minmax(0,1fr));margin:-20px -24px 4px}.admin-wizard-progress>span{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;min-width:0;color:#8b8599}.admin-wizard-progress>span:not(:last-child):after{content:'';position:absolute;left:35px;right:8px;top:14px;height:2px;background:#ece8f5}.admin-wizard-progress b{position:relative;z-index:1;display:grid;place-items:center;width:29px;height:29px;border:1px solid #ded9eb;border-radius:9px;background:#fff;font-size:11px}.admin-wizard-progress em{position:relative;z-index:1;overflow:hidden;padding-right:8px;background:#fff;font-size:10px;font-style:normal;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.admin-wizard-progress>span.active{color:var(--primary)}.admin-wizard-progress>span.active b{border-color:var(--primary);color:#fff;background:var(--primary);box-shadow:0 0 0 4px rgba(115,87,255,.09)}.admin-wizard-progress>span.done b{color:var(--primary);border-color:#cfc7ff;background:var(--primary-soft)}.admin-wizard-progress>span.done:not(:last-child):after{background:#cfc7ff}
.wizard-section-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.wizard-step-number{display:grid;place-items:center;width:31px;height:31px;flex:0 0 31px;border-radius:9px;color:#fff;background:var(--primary);font-size:12px;font-weight:900}.wizard-section-head h3{margin:1px 0 3px;font-size:18px}.wizard-section-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.booking-admin-search{margin-bottom:12px}.admin-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:390px;overflow:auto;padding:2px 4px 2px 2px}.admin-service-card{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:11px;width:100%;padding:12px;border:1px solid var(--line);border-radius:13px;color:var(--ink);background:#fff;text-align:left;cursor:pointer;transition:.16s ease}.admin-service-card:hover{border-color:#cec4ff;background:#fdfcff}.admin-service-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px rgba(115,87,255,.1);background:#fbf9ff}.admin-service-card>i{display:none;place-items:center;width:21px;height:21px;border-radius:999px;color:#fff;background:var(--primary);font-size:11px;font-style:normal;font-weight:900}.admin-service-card.selected>i{display:grid}.service-card-visual{display:grid;place-items:center;width:48px;height:48px;overflow:hidden;border-radius:13px;color:var(--service,var(--primary));background:color-mix(in srgb,var(--service,var(--primary)) 12%,white);font-weight:900}.service-card-visual img{width:100%;height:100%;object-fit:cover}.service-card-copy{display:grid;min-width:0;gap:3px}.service-card-copy strong{font-size:12px}.service-card-copy small{color:var(--muted);font-size:10px}.booking-selection-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding:12px 14px;border:1px solid #ddd7f2;border-radius:12px;background:#f8f6ff}.booking-selection-summary strong{color:var(--primary);font-size:11px}.booking-selection-summary span{padding:5px 8px;border-radius:999px;background:#fff;color:#514b62;font-size:10px;font-weight:750}
.professional-service-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.professional-service-heading strong{font-size:14px}.professional-service-heading small{color:var(--muted);font-size:9px}.professional-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.professional-option-card{position:relative;display:grid;grid-template-columns:50px minmax(0,1fr) 22px;align-items:center;gap:11px;width:100%;min-height:76px;padding:11px;border:1px solid var(--line);border-radius:13px;color:var(--ink);background:#fff;text-align:left;cursor:pointer;transition:.16s ease}.professional-option-card:hover{border-color:#cec4ff;background:#fdfcff}.professional-option-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px rgba(115,87,255,.1);background:#fbf9ff}.professional-option-card>span:nth-child(2){display:grid;min-width:0;gap:2px}.professional-option-card strong{font-size:12px}.professional-option-card small{color:var(--muted);font-size:10px}.professional-option-card em{overflow:hidden;color:#777084;font-size:9px;font-style:normal;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.professional-option-card>i{display:none;place-items:center;width:20px;height:20px;border-radius:999px;color:#fff;background:var(--primary);font-size:10px;font-style:normal;font-weight:900}.professional-option-card.selected>i{display:grid}.professional-option-avatar{width:50px;height:50px;border-radius:13px}.professional-option-avatar img{width:100%;height:100%;border-radius:inherit;object-fit:cover}
.admin-plan-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,1fr);gap:12px;align-items:end;margin-bottom:14px}.availability-auto{display:grid;grid-template-columns:12px minmax(0,1fr);gap:9px;align-items:center;padding:11px 13px;border-radius:11px;background:#f4f1fa}.availability-auto>span{width:10px;height:10px;border:3px solid #cef6ea;border-radius:999px;background:#24c7a6}.availability-auto strong,.availability-auto small{display:block}.availability-auto strong{font-size:10px}.availability-auto small{margin-top:2px;color:var(--muted);font-size:9px}.admin-plan-grid{max-height:390px;overflow:auto}.admin-plan-grid .booking-plan-card{display:grid;gap:9px;width:100%;padding:13px;border:1px solid var(--line);border-radius:13px;color:var(--ink);background:#fff;text-align:left;cursor:pointer}.admin-plan-grid .booking-plan-card:hover,.admin-plan-grid .booking-plan-card.selected{border-color:var(--primary);background:#fbf9ff}.admin-plan-grid .booking-plan-card.selected{box-shadow:0 0 0 3px rgba(115,87,255,.1)}.booking-plan-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.booking-plan-card>header strong{font-size:14px}.plan-wait,.plan-contiguous{padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800}.plan-wait{color:#8a5b08;background:#fff0c8}.plan-contiguous{color:#087d67;background:#e6f8f2}.booking-plan-card .booking-plan-itinerary>span{grid-template-columns:70px minmax(0,1fr) minmax(0,1fr);padding:6px 0;border-top:1px solid #f0edf5}.booking-plan-card .booking-plan-itinerary b{font-size:10px}.booking-plan-card .booking-plan-itinerary em{font-size:10px;font-style:normal;font-weight:750}.booking-plan-card .booking-plan-itinerary small{font-size:9px;text-align:right}.admin-emergency-details{margin-top:14px;padding:12px 14px;border:1px solid #efd49c;border-radius:13px;background:#fffaf0}.admin-emergency-details summary{cursor:pointer;color:#80540c;font-size:11px;font-weight:850}.admin-emergency-details .alert{margin:12px 0}.admin-emergency-details .btn{margin-top:10px}.admin-wizard-actions{position:sticky;z-index:5;bottom:-20px;margin:0 -24px -20px;padding:14px 24px;border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}.admin-booking-review{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.admin-booking-review>div{display:grid;gap:8px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#faf9fd}.admin-booking-review>div>strong{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.admin-booking-review span{display:grid;gap:2px;padding-top:6px;border-top:1px solid #eeebf3}.admin-booking-review span:first-of-type{padding-top:0;border-top:0}.admin-booking-review b{font-size:11px}.admin-booking-review small{color:var(--muted);font-size:9px}
.appointment-itinerary-card{margin:0 0 14px;padding:14px 15px;border:1px solid var(--line);border-radius:13px;background:#faf9fd}.appointment-itinerary-list{display:grid;gap:8px;margin-top:8px}.appointment-itinerary-list>div{display:grid;grid-template-columns:85px minmax(0,1fr);gap:10px;align-items:center;padding-top:8px;border-top:1px solid #eeebf3}.appointment-itinerary-list>div:first-child{padding-top:0;border-top:0}.appointment-itinerary-list>b{font-size:11px}.appointment-itinerary-list span{display:grid;gap:2px}.appointment-itinerary-list strong{font-size:11px}.appointment-itinerary-list small{color:var(--muted);font-size:9px}
.employee-service-tags{display:grid;gap:7px;margin:11px 0;padding:10px 11px;border:1px solid #ece8f3;border-radius:11px;background:#faf9fd}.employee-service-tags>span{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.employee-service-tags>div{display:flex;flex-wrap:wrap;gap:5px}.employee-service-tags b{padding:4px 7px;border-radius:999px;color:#5c4dc1;background:#f0edff;font-size:9px}.employee-service-tags small{color:var(--muted);font-size:9px}
.success-itinerary{grid-column:1/-1}.success-itinerary strong{line-height:1.65!important}
@media(max-width:760px){.admin-wizard-progress{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(120px,1fr);overflow-x:auto;margin:-16px -16px 2px;padding:11px 14px}.admin-service-grid,.professional-option-grid,.admin-booking-review,.admin-plan-toolbar{grid-template-columns:1fr}.admin-service-grid{max-height:43vh}.admin-wizard-actions{bottom:-16px;margin:0 -16px -16px;padding:12px 16px}.booking-plan-card .booking-plan-itinerary>span{grid-template-columns:65px 1fr}.booking-plan-card .booking-plan-itinerary small{grid-column:2;text-align:left}.modal-booking-wizard{max-width:100%}}

/* NexoCita 0.7.5 · orden explícito de servicios en reservas compuestas */
.selected-service-order{margin-top:12px;padding:12px 14px;border:1px solid #e5e1f3;border-radius:16px;background:#faf9ff;display:grid;gap:8px}
.selected-service-order[hidden]{display:none!important}
.selected-service-order>strong{font-size:.82rem;color:#655d78;text-transform:uppercase;letter-spacing:.06em}
.selected-service-order-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:12px;background:#fff;border:1px solid #ece8f6}
.selected-service-order-row>span{font-weight:700;color:#29243a;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selected-service-order-row>div{display:flex;gap:6px;flex:0 0 auto}
.selected-service-order-row .icon-button{width:34px;height:34px;min-width:34px;font-size:1rem}
@media(max-width:640px){.selected-service-order-row{padding:7px 8px}.selected-service-order-row>span{font-size:.9rem}}

/* NexoCita 0.7.6 · Agenda filters and wizard visibility fixes. */
.btn[hidden]{display:none!important}
.agenda-filter-panel{padding:16px 18px;margin-bottom:18px}
.agenda-filter-form{display:grid;grid-template-columns:1.35fr .8fr .8fr 1.15fr;gap:12px 14px;align-items:end}
.agenda-filter-form label{display:grid;gap:6px;min-width:0}
.agenda-filter-form label>span{color:var(--muted);font-size:10px;font-weight:800}
.agenda-filter-form input,.agenda-filter-form select{min-width:0;width:100%;max-width:100%}
.agenda-filter-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;min-width:0}
.agenda-filter-actions .btn{white-space:nowrap}
.agenda-search-results{overflow:hidden}
.agenda-search-results>.panel-head{align-items:center}
.agenda-search-results>.panel-head small{color:var(--muted);font-weight:750}
.agenda-results-table{min-width:920px}
.agenda-results-table td{vertical-align:middle}
.agenda-results-table td>strong,.agenda-results-table td>small{display:block}
.agenda-results-table td>small{margin-top:3px;color:var(--muted)}
.agenda-results-table .forced-inline-badge,.agenda-results-table .delay-inline-badge{width:max-content}
.agenda-search-pagination{padding:14px 18px 18px}
/* NexoCita 0.7.9 · filtros de Agenda en dos filas estables. */
@media(max-width:1100px){.agenda-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-filter-actions{justify-content:flex-end}}
@media(max-width:760px){.agenda-filter-panel{padding:14px}.agenda-filter-form{grid-template-columns:1fr}.agenda-filter-search,.agenda-filter-actions{grid-column:auto}.agenda-filter-actions{display:grid;grid-template-columns:1fr 1fr}.agenda-filter-actions .btn{width:100%}}

/* NexoCita 0.7.7 · scroll estable y sin barras externas en el asistente administrativo. */
.modal-booking-wizard {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.modal-booking-wizard > .modal-head {
    flex: 0 0 auto;
}
.modal-booking-wizard > .admin-booking-wizard {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.modal-booking-wizard > .admin-booking-wizard::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}
.modal-booking-wizard .admin-service-grid,
.modal-booking-wizard .admin-plan-grid {
    overflow-x: hidden;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #d9d4e8 transparent;
}
.modal-booking-wizard .admin-service-grid::-webkit-scrollbar,
.modal-booking-wizard .admin-plan-grid::-webkit-scrollbar {
    width: 6px;
    height: 0;
}
.modal-booking-wizard .admin-service-grid::-webkit-scrollbar-thumb,
.modal-booking-wizard .admin-plan-grid::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #d9d4e8;
}
.modal-booking-wizard .admin-service-grid::-webkit-scrollbar-track,
.modal-booking-wizard .admin-plan-grid::-webkit-scrollbar-track {
    background: transparent;
}
@media (min-width: 761px) {
    .modal-booking-wizard .admin-wizard-progress {
        margin-left: -23px;
        margin-right: -23px;
    }
    .modal-booking-wizard .admin-wizard-actions {
        margin-left: -23px;
        margin-right: -23px;
    }
}

/* NexoCita 0.7.8 · validación de teléfono y domicilio visible en administración. */
.booking-phone-first > label > .field-error {
    margin: 6px 0 2px;
}
.booking-phone-first > label > .field-error + .field-help {
    margin-top: 2px;
}
.home-service-box.is-disabled {
    opacity: .78;
}
.home-service-box.is-disabled .home-service-toggle {
    cursor: default;
}
.home-service-settings-link {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    margin: 2px 0 0 48px;
    color: var(--primary);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}
.home-service-settings-link:hover { text-decoration: underline; }
@media (max-width: 680px) {
    .home-service-settings-link { margin-left: 0; }
}


/* NexoCita 0.7.11 · ayudas de identidad visual y envío de acceso. */
.upload-card .upload-guidance{display:block;margin-top:2px;color:#777184;font-size:11px;line-height:1.45;font-style:normal}
.upload-card .default-media-note{display:block;margin-top:7px;padding:7px 9px;border-radius:9px;background:#f4f1ff;color:#6854c7;font-size:11px;line-height:1.4;font-weight:700}
.access-send-option{margin-top:10px}
.access-send-option span{display:flex;flex-direction:column;gap:2px}
.access-send-option small{font-weight:400;color:#777184}
/* NexoCita 0.7.13 · visual identity color reset */
.settings-color-reset { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:-2px; }
.settings-color-reset small { color:var(--muted); line-height:1.4; }
@media (max-width:720px) { .settings-color-reset { align-items:stretch; } .settings-color-reset .btn { width:100%; justify-content:center; } }


/* NexoCita 0.7.14 · visual editor for existing composite bookings. */
.appointment-edit-entry{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#faf9fd}.appointment-edit-entry>div{display:grid;gap:3px}.appointment-edit-entry .eyebrow{margin:0}.appointment-edit-entry strong{font-size:14px}.appointment-edit-entry small{max-width:680px;color:var(--muted);font-size:10px;line-height:1.5}.admin-edit-progress{grid-template-columns:repeat(4,minmax(0,1fr))}.modal-booking-wizard .modal-head small[data-admin-edit-customer-summary]{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:650}
@media(max-width:760px){.appointment-edit-entry{align-items:stretch;flex-direction:column}.appointment-edit-entry .btn{justify-content:center}.admin-edit-progress{grid-template-columns:none}}


/* NexoCita 0.7.16 · matriz Empleados ↔ Servicios */
.employee-services-matrix-panel{padding:0;overflow:hidden}
.employee-services-matrix-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;cursor:pointer;list-style:none}
.employee-services-matrix-panel>summary::-webkit-details-marker{display:none}
.employee-services-matrix-panel>summary>span:first-child{display:grid;gap:4px}
.employee-services-matrix-panel>summary small{color:var(--muted);font-weight:500}
.matrix-summary-action{color:var(--primary);font-weight:800;white-space:nowrap}
.employee-services-matrix-body{padding:0 20px 20px;border-top:1px solid var(--line)}
.employee-services-matrix-intro{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:18px 0 14px}
.employee-services-matrix-intro h3{margin:0 0 4px;font-size:18px}
.employee-services-matrix-intro p{margin:0;color:var(--muted);font-size:13px}
.matrix-service-search{width:min(340px,100%)}
.employee-services-matrix-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;scrollbar-width:thin}
.employee-services-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.employee-services-matrix th,.employee-services-matrix td{padding:10px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;background:#fff}
.employee-services-matrix tr:last-child>*{border-bottom:0}
.employee-services-matrix tr>*:last-child{border-right:0}
.employee-services-matrix thead th{position:sticky;top:0;z-index:2;background:#f8f6ff}
.employee-services-matrix .matrix-service-column{position:sticky;left:0;z-index:3;min-width:190px;max-width:240px;text-align:left;background:#fbfaff}
.employee-services-matrix thead .matrix-service-column{z-index:4}
.matrix-employee-head{display:flex;align-items:center;gap:8px;min-width:150px;text-align:left}
.matrix-employee-head>span:last-child{display:grid;gap:2px}
.matrix-employee-head b{font-size:12px;line-height:1.2}
.matrix-employee-head small{color:var(--muted);font-size:10px;font-weight:500}
.matrix-avatar{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--employee) 15%,#fff);color:var(--employee);font-weight:900;overflow:hidden}
.matrix-avatar img{width:100%;height:100%;object-fit:cover}
.matrix-check{display:grid;place-items:center;margin:auto;width:32px;height:32px;border-radius:9px;cursor:pointer}
.matrix-check input{position:absolute;opacity:0;pointer-events:none}
.matrix-check span{display:grid;place-items:center;width:27px;height:27px;border:1.5px solid #dcd8e8;border-radius:8px;color:transparent;background:#fff;font-weight:900;transition:.16s ease}
.matrix-check input:checked+span{color:#fff;border-color:var(--primary);background:var(--primary);box-shadow:0 5px 12px rgba(115,87,255,.20)}
.matrix-check input:focus-visible+span{outline:3px solid rgba(115,87,255,.20);outline-offset:2px}
.matrix-check input:disabled+span{cursor:not-allowed;opacity:.75}
.employee-services-matrix-legend{display:flex;gap:18px;flex-wrap:wrap;padding:10px 2px;color:var(--muted);font-size:11px}
.matrix-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding-top:4px}
.matrix-actions span{margin-right:auto;color:var(--muted);font-size:12px}

/* NexoCita 0.7.16 · portal cliente más legible */
.client-portal-page{font-size:16px}
.client-portal-head p{font-size:16px;line-height:1.5}
.client-appointment-date span{font-size:11px;font-weight:700}
.client-appointment-card h2{font-size:20px;line-height:1.25}
.client-appointment-card p{font-size:14px;line-height:1.45}
.client-appointment-card small{font-size:12px;line-height:1.45}
.client-appointment-actions{gap:8px;min-width:170px}
.client-appointment-actions .btn-small{min-height:38px;padding:9px 13px;font-size:12px}
.client-appointment-actions small{max-width:210px;font-size:11px;line-height:1.45}
.client-portal-page .status{font-size:12px;padding:7px 11px}
.client-home-address{font-size:14px!important}
.cancel-summary strong{font-size:16px}.cancel-summary span{font-size:13px}

@media (max-width:900px){
    .employee-services-matrix-intro{align-items:stretch;flex-direction:column}
    .matrix-service-search{width:100%}
    .matrix-actions{align-items:stretch;flex-direction:column}
    .matrix-actions .btn{width:100%}
    .employee-services-matrix-panel>summary{align-items:flex-start;flex-direction:column}
}
@media (max-width:720px){
    .client-appointment-card h2{font-size:18px}
    .client-appointment-card p{font-size:13px}
    .client-appointment-card small{font-size:11px}
    .client-appointment-actions .btn-small{font-size:12px}
}

/* NexoCita 0.8.0 · Productos, stock y ventas */
.product-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.product-summary-grid article{padding:18px 20px;display:grid;gap:6px}.product-summary-grid span{color:var(--muted);font-size:12px;font-weight:800}.product-summary-grid strong{font-size:24px}.product-summary-grid .is-alert{border-color:#ffd1d8;background:#fff8f9}.product-summary-grid .is-alert strong{color:#d92d4c}
.product-table-title img,.product-table-title .product-fallback{width:42px;height:42px;border-radius:12px;object-fit:cover;display:grid;place-items:center;flex:0 0 42px}.product-table-title .product-fallback{background:#f2efff;color:var(--primary);font-style:normal;font-size:20px}.stock-low{color:#cf2948}.usage-badges{display:flex;gap:5px;flex-wrap:wrap}.usage-badges span{padding:5px 7px;border-radius:7px;background:#f1eff7;color:#5e586d;font-size:10px;font-weight:800}.action-stock{color:#0c8b70!important;background:#e9fbf6!important}.action-history{color:#536dfe!important;background:#eef1ff!important}.product-image-preview{max-width:120px;max-height:100px;border-radius:12px;object-fit:cover;margin:8px 0}.product-switches .check-line{min-height:72px}
.stock-history-list{display:grid;gap:8px}.stock-history-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px}.stock-history-list article>div{display:grid;gap:2px}.stock-history-list article span,.stock-history-list article small{color:var(--muted);font-size:11px}.stock-history-list article b{font-size:14px}.stock-history-list .stock-in{color:#05866d}.stock-history-list .stock-out{color:#c93a52}.stock-history-list article p{grid-column:1/-1;margin:0;color:var(--muted);font-size:11px}
.sales-list{display:grid;gap:12px}.sale-card{padding:18px}.sale-voided{opacity:.72}.sale-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.sale-card-head h3{margin:4px 0 2px;font-size:18px}.sale-card-head p{margin:0;color:var(--muted);font-size:12px}.sale-total{display:grid;justify-items:end;gap:8px}.sale-total strong{font-size:20px}.sale-items{margin-top:14px;border-top:1px solid var(--line)}.sale-items>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center}.sale-items span{font-weight:750}.sale-items span small{color:var(--muted);font-weight:500}.sale-items b{font-size:12px;color:var(--muted)}.sale-items strong{text-align:right}.sale-notes{margin:12px 0 0;color:var(--muted);font-size:12px}.sale-card-actions{display:flex;justify-content:flex-end;padding-top:12px}.sale-form{padding:22px;display:grid;gap:22px}.sale-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sale-lines-section{display:grid;gap:12px}.sale-lines-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.sale-lines-head h2{margin:3px 0 0}.sale-line{display:grid;grid-template-columns:minmax(260px,1fr) 130px 130px 42px;gap:12px;align-items:end;padding:12px 0;border-top:1px solid var(--line)}.sale-line label{margin:0}.sale-qty{max-width:130px}.sale-line-price{display:grid;gap:8px;padding-bottom:10px}.sale-line-price span{color:var(--muted);font-size:11px;font-weight:750}.sale-line-price strong{font-size:15px}.sale-checkout{display:flex;align-items:center;justify-content:flex-end;gap:24px;padding-top:18px;border-top:1px solid var(--line)}.sale-checkout>div{display:grid;justify-items:end}.sale-checkout span{color:var(--muted);font-size:12px}.sale-checkout strong{font-size:26px}.sale-checkout small{color:var(--muted);font-size:10px}.btn-product-sale{background:#fff4db;color:#805900;border-color:#f5d179}.customer-sale-history{display:grid}.customer-sale-history article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.customer-sale-history article>div{display:grid;gap:3px}.customer-sale-history article span{font-size:11px;color:var(--muted)}
@media(max-width:1000px){.product-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sale-line{grid-template-columns:minmax(220px,1fr) 110px 120px 42px}}
@media(max-width:720px){.product-summary-grid{grid-template-columns:1fr 1fr}.sale-context-grid{grid-template-columns:1fr}.sale-line{grid-template-columns:1fr 100px 42px}.sale-line-price{grid-column:1/3}.sale-card-head{flex-direction:column}.sale-total{justify-items:start}.sale-items>div{grid-template-columns:1fr auto}.sale-items>div strong{grid-column:2}.sale-items>div b{grid-row:2}.sale-checkout{align-items:stretch;flex-direction:column}.sale-checkout>div{justify-items:start}.sale-checkout .btn{width:100%;justify-content:center}.stock-history-list article{grid-template-columns:1fr auto}.stock-history-list article small{grid-column:1/-1}.customer-sale-history article{grid-template-columns:1fr auto}.customer-sale-history article>b{grid-column:2}}

/* NexoCita 0.8.1 · POS táctil y corrección formulario de productos */
.pos-page-heading{align-items:center}.pos-form{display:grid;gap:18px}.pos-context{padding:16px 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pos-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(340px,.85fr);gap:18px;align-items:start}.pos-catalog{padding:18px;min-width:0}.pos-catalog-head{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(280px,1fr);gap:18px;align-items:end}.pos-catalog-head h2,.pos-cart-head h2{margin:3px 0 0;font-size:21px}.pos-search{margin:0}.pos-search>span{font-size:11px;color:var(--muted)}.pos-category-tabs{display:flex;gap:8px;overflow:auto;padding:14px 0 4px;scrollbar-width:thin}.pos-category-tabs button{flex:0 0 auto;min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:#f7f5fb;color:#514b60;font-size:12px;font-weight:800;cursor:pointer}.pos-category-tabs button.active,.pos-category-tabs button:hover{border-color:var(--primary);background:var(--primary);color:#fff}.pos-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px;max-height:650px;overflow:auto;padding:2px 4px 4px 2px;scrollbar-width:thin}.pos-product-card{position:relative;display:grid;grid-template-rows:118px minmax(0,1fr);gap:10px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;cursor:pointer;transition:.16s ease;box-shadow:0 4px 14px rgba(35,28,60,.035)}.pos-product-card:hover,.pos-product-card:focus-visible{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 10px 24px rgba(87,64,160,.12);outline:none}.pos-product-card:active{transform:scale(.985)}.pos-product-card.is-unavailable{opacity:.5;cursor:not-allowed;filter:grayscale(.35)}.pos-product-image{display:grid;place-items:center;overflow:hidden;border-radius:11px;background:#faf9fd}.pos-product-image img{width:100%;height:100%;object-fit:contain}.pos-product-image i{font-style:normal;font-size:30px;color:var(--primary)}.pos-product-copy{display:grid;align-content:start;gap:4px;min-width:0}.pos-product-copy strong{min-height:34px;font-size:13px;line-height:1.25}.pos-product-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.pos-product-copy b{font-size:15px;color:var(--ink)}.pos-product-copy em{font-style:normal;color:#148763;font-size:10px;font-weight:750}.pos-product-copy em.is-low{color:#cf2948}.pos-product-add{position:absolute;right:9px;top:9px;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;color:#fff;background:var(--primary);font-size:18px;font-weight:900;box-shadow:0 5px 12px rgba(115,87,255,.24)}.pos-no-results{padding:34px;text-align:center;color:var(--muted)}.pos-cart{position:sticky;top:104px;padding:0;overflow:hidden}.pos-cart-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;border-bottom:1px solid var(--line)}.pos-cart-lines{display:grid;max-height:480px;overflow:auto;scrollbar-width:thin}.pos-cart-line{display:grid;grid-template-columns:minmax(0,1fr) auto 38px;gap:10px;align-items:center;padding:13px 14px;border-bottom:1px solid var(--line)}.pos-cart-line-copy{display:grid;gap:3px;min-width:0}.pos-cart-line-copy strong{font-size:13px}.pos-cart-line-copy small{color:var(--muted);font-size:10px}.pos-cart-line-copy b{font-size:13px}.pos-qty{display:grid;grid-template-columns:34px 48px 34px;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden}.pos-qty button{height:38px;border:0;background:#f5f2fb;color:var(--ink);font-size:18px;font-weight:900;cursor:pointer}.pos-qty button:active{background:var(--primary-soft);color:var(--primary)}.pos-qty input{height:38px;padding:0 4px;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:0;text-align:center;font-weight:800;appearance:textfield}.pos-qty input::-webkit-inner-spin-button,.pos-qty input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pos-cart-empty{display:grid;place-items:center;gap:5px;padding:44px 20px;color:var(--muted);text-align:center}.pos-cart-empty>span{font-size:34px}.pos-cart-empty strong{color:var(--ink);font-size:14px}.pos-cart-empty small{font-size:11px}.pos-notes{margin:0 14px 12px;border:1px solid var(--line);border-radius:11px;background:#fbfafe}.pos-notes summary{padding:11px 13px;cursor:pointer;font-size:12px;font-weight:800}.pos-notes textarea{margin:0 12px 12px;width:calc(100% - 24px)}.pos-cart-footer{display:grid;gap:13px;padding:16px 18px;border-top:1px solid var(--line);background:#fcfbfe}.pos-cart-summary{display:grid;grid-template-columns:1fr auto;gap:3px;align-items:end}.pos-cart-summary>span{color:var(--muted);font-size:12px}.pos-cart-summary strong{grid-row:1/3;grid-column:2;font-size:25px}.pos-cart-summary small{font-size:10px;color:var(--muted)}.pos-complete{width:100%;min-height:50px;justify-content:center;font-size:14px}.pos-complete:disabled{opacity:.45;cursor:not-allowed}.pos-cart-line .icon-button{width:36px;height:36px}.admin-body .field-label-caption{font-size:14px}
@media(max-width:1240px){.pos-layout{grid-template-columns:minmax(0,1.35fr) minmax(330px,.8fr)}.pos-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.pos-context{grid-template-columns:1fr}.pos-layout{grid-template-columns:1fr}.pos-cart{position:static}.pos-product-grid{max-height:520px}.pos-cart-lines{max-height:360px}}
@media(max-width:720px){.pos-catalog-head{grid-template-columns:1fr}.pos-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pos-product-card{grid-template-rows:96px minmax(0,1fr);padding:9px}.pos-product-copy strong{font-size:12px}.pos-category-tabs{margin-inline:-2px}.pos-cart-line{grid-template-columns:minmax(0,1fr) auto 34px;padding:11px 10px}.pos-qty{grid-template-columns:32px 42px 32px}.pos-page-heading{align-items:flex-start}.pos-page-heading .btn{margin-top:8px}}
.pos-product-card[hidden]{display:none!important}

/* NexoCita 0.8.3 · POS compacto, favoritos y ventas en tabla */
.topbar-pos-action{background:#f2efff;color:var(--primary);font-weight:900}.topbar-pos-action:hover{background:var(--primary);color:#fff}
.inline-action-form{display:inline-flex;margin:0}.action-favorite{color:#8d859e}.action-favorite.is-favorite{color:#f2a900;background:#fff8d8;border-color:#f2d36c}
.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.pos-layout{grid-template-columns:minmax(0,1.9fr) minmax(315px,.72fr);gap:14px}.pos-catalog{padding:14px}.pos-context{padding:13px 16px}.pos-catalog-head{grid-template-columns:minmax(150px,.45fr) minmax(260px,1fr);gap:14px}.pos-category-tabs{padding:10px 0 2px;gap:6px}.pos-category-tabs button{min-height:34px;padding:0 11px;font-size:11px}.pos-product-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px;max-height:590px}.pos-product-card{grid-template-rows:82px minmax(0,1fr);gap:7px;padding:9px;border-radius:12px}.pos-product-image{border-radius:9px}.pos-product-copy{gap:3px}.pos-product-copy strong{min-height:30px;font-size:11.5px}.pos-product-copy small{font-size:9px}.pos-product-copy b{font-size:13px}.pos-product-copy em{font-size:9px}.pos-product-add{right:7px;top:7px;width:25px;height:25px;border-radius:8px;font-size:16px}.pos-cart-head{padding:14px}.pos-cart-head h2{font-size:19px}.pos-cart-line{padding:10px 11px}.pos-cart-lines{max-height:400px}.pos-cart-empty{padding:30px 16px}.pos-cart-empty[hidden],.pos-no-results[hidden]{display:none!important}.pos-cart-footer{padding:13px 15px}.pos-cart-summary strong{font-size:22px}.pos-complete{min-height:44px}.sales-data-table td>small,.sale-detail-table td>small{display:block;color:var(--muted);margin-top:3px}.sale-row-voided{opacity:.62}.sale-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.sale-detail-summary>div{padding:12px;border:1px solid var(--line);border-radius:11px;background:#faf9fd;display:grid;gap:4px}.sale-detail-summary span{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:800}.sale-detail-summary strong{font-size:14px}.sale-detail-notes{margin-top:14px;padding:13px;border-radius:10px;background:#faf9fd}.sale-detail-notes p{margin:5px 0 0;color:var(--muted)}
@media(max-width:1360px){.pos-product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.pos-layout{grid-template-columns:minmax(0,1.45fr) minmax(310px,.75fr)}.pos-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.pos-layout{grid-template-columns:1fr}.pos-cart{position:static}.pos-product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.sale-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.pos-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-product-card{grid-template-rows:76px minmax(0,1fr)}.sale-detail-summary{grid-template-columns:1fr}.form-grid.four{grid-template-columns:1fr}}

/* NexoCita 0.8.4 · contexto de cita vinculada en POS */
.pos-context select.is-linked{background:#f4f1ff;color:#4f4670;font-weight:800;cursor:not-allowed}.pos-context [data-sale-customer-linked]{display:block;margin-top:5px;color:var(--primary);font-size:10px;font-weight:800}.pos-linked-appointment{margin:0;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#faf8ff 0%,#fff 100%);padding:12px 14px;display:grid;gap:9px}.pos-linked-appointment[hidden]{display:none!important}.pos-linked-appointment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.pos-linked-appointment-head>div{display:grid;gap:2px}.pos-linked-appointment-head span,.pos-linked-customer span{font-size:9px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.06em}.pos-linked-appointment-head strong{font-size:12px;color:var(--primary)}.pos-linked-appointment-head>b{font-size:11px;text-align:right}.pos-linked-customer{display:grid;gap:2px}.pos-linked-customer strong{font-size:12px}.pos-linked-services{display:grid;gap:5px}.pos-linked-service{padding:7px 9px;border:1px solid #e6e0fb;border-radius:9px;background:#fff;display:grid;gap:1px}.pos-linked-service strong{font-size:11px}.pos-linked-service small{font-size:9px;color:var(--muted)}.pos-linked-note{display:block;padding:7px 9px;border-radius:8px;background:#f5f2ff;color:#655c7e;font-size:9.5px;line-height:1.35}.pos-cart-empty{border-top:0}
@media(max-width:720px){.pos-linked-appointment-head{flex-direction:column}.pos-linked-appointment-head>b{text-align:left}}

/* NexoCita 0.8.5 · facturación de citas, huecos libres y web pública */
.manual-free-gaps{display:grid;gap:8px;margin:12px 0 4px;padding:11px 12px;border:1px solid #e2ddf3;border-radius:11px;background:#faf9fe}.manual-free-gaps>span{font-size:10px;color:var(--muted);font-weight:800}.manual-free-gaps-list{display:flex;flex-wrap:wrap;gap:7px}.manual-free-gaps-list small{color:var(--muted);font-size:10px}.manual-free-gap{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 10px;border:1px solid #d9d2f3;border-radius:9px;background:#fff;color:#4b4460;font-size:10px;font-weight:850;cursor:pointer}.manual-free-gap:hover,.manual-free-gap:focus-visible{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);outline:0}.manual-free-gap:disabled,.manual-free-gap.is-past{opacity:.52;cursor:default;background:#f5f3f9;color:#8b8498;border-color:#e6e1ef}.manual-free-gap:disabled:hover{background:#f5f3f9;color:#8b8498;border-color:#e6e1ef}.manual-free-gap b{font-size:11px}.manual-free-gap span{color:var(--muted);font-size:9px;font-weight:700}

.pos-linked-service-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 9px;border-radius:8px;background:#eefbf7;color:#087e68}.pos-linked-service-total span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.pos-linked-service-total strong{font-size:13px}.sale-detail-section{margin-top:16px}.sale-detail-section>h3{margin:0 0 9px;font-size:14px}

.section-public-products{background:#fbfafe}.public-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.public-product-card{display:grid;grid-template-rows:190px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 9px 28px rgba(42,34,73,.05)}.public-product-media{display:grid;place-items:center;overflow:hidden;background:#faf9fd}.public-product-media img{width:100%;height:100%;object-fit:contain;padding:14px}.public-product-media>span{display:grid;place-items:center;width:62px;height:62px;border-radius:17px;background:var(--primary-soft);color:var(--primary);font-size:25px}.public-product-copy{display:grid;align-content:start;gap:8px;padding:18px}.public-product-copy small{color:var(--primary);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.public-product-copy h3{margin:0;font-size:16px}.public-product-copy p{margin:0;color:var(--muted);font-size:11px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.public-product-copy strong{margin-top:auto;font-size:17px}

/* Imagen de servicio estable: el contenedor define la escala y nunca la propia imagen. */
.service-option-media{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;overflow:hidden;border-radius:10px;background:#f8f6fc}.service-option-media img{width:100%;height:100%;object-fit:cover}.service-option-media i{grid-row:auto;width:100%;height:100%;border-radius:10px}.service-option-media [data-media-fallback][hidden]{display:none!important}.service-option-media img.media-load-failed{display:none}.service-option-media img.media-load-failed+[data-media-fallback]{display:grid!important}

/* Las ilustraciones públicas se muestran completas en lugar de recortarse de forma agresiva. */
.service-card-image{object-fit:contain;object-position:center;background:#faf9fd}.business-hero-image{object-position:center}.team-avatar img{width:100%;height:100%;object-fit:cover;object-position:center}

@media(max-width:1100px){.public-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:780px){
  .public-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.public-product-card{grid-template-rows:150px minmax(0,1fr)}
  .booking-customer-identification{gap:18px;margin-bottom:18px}.contact-step>.home-service-box{margin-top:20px}.booking-customer-details{gap:17px}.booking-email-field{margin-bottom:2px}.booking-phone-check{margin-top:2px}.contact-step>.home-service-box+label{margin-top:4px}
}
@media(max-width:560px){
  .public-product-grid{grid-template-columns:1fr}.public-product-card{grid-template-columns:120px minmax(0,1fr);grid-template-rows:auto;min-height:145px}.public-product-media{min-height:145px}.public-product-copy{padding:15px}
  .service-card-image{width:calc(100% + 36px);height:150px;margin:-18px -18px 18px;padding:5px}.service-option-media{width:48px;height:48px}.service-option>span{grid-template-columns:48px 1fr}.service-option b{font-size:13px}.service-option small{font-size:10px}
  .contact-step{padding-bottom:30px}.booking-customer-identification{margin-bottom:22px}.contact-step>.home-service-box{margin-top:22px;margin-bottom:16px}.booking-phone-first{gap:14px}.booking-phone-check{margin-top:2px}.booking-customer-details .booking-email-field{margin-bottom:3px}
  .manual-free-gaps-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.manual-free-gap{justify-content:center}
}
.manual-free-gaps [data-manual-free-gaps-list]{display:flex;flex-wrap:wrap;gap:7px}.manual-free-gaps [data-manual-free-gaps-list]>small{color:var(--muted);font-size:10px}
@media(max-width:560px){.manual-free-gaps [data-manual-free-gaps-list]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Hotfix 0.8.8: selección visible del hueco elegido para una urgencia. */
.manual-free-gap.selected,
.manual-free-gap.selected:hover,
.manual-free-gap.selected:focus-visible{
  border-color:var(--primary);
  background:var(--primary);
  color:#fff;
  outline:2px solid var(--primary);
  outline-offset:2px;
}
.manual-free-gap.selected small,
.manual-free-gap.selected b,
.manual-free-gap.selected span{color:inherit}


/* Hotfix 0.8.8 · selección persistente de hueco manual/urgencia. */
.manual-free-gap.is-selected,
.manual-free-gap.is-selected:hover,
.manual-free-gap.is-selected:focus-visible,
.manual-free-gap[aria-pressed="true"]{
  border-color:var(--primary)!important;
  background:var(--primary)!important;
  color:#fff!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent);
  outline:0;
}
.manual-free-gap.is-selected strong,
.manual-free-gap.is-selected small,
.manual-free-gap.is-selected b,
.manual-free-gap.is-selected span,
.manual-free-gap[aria-pressed="true"] strong,
.manual-free-gap[aria-pressed="true"] small,
.manual-free-gap[aria-pressed="true"] b,
.manual-free-gap[aria-pressed="true"] span{color:#fff!important}

/* Hotfix 0.8.8 · Prevent native multi-status list flashing before Select2 initializes. */
@keyframes nexo-agenda-status-native-fallback {
    to { visibility: visible; }
}
.agenda-filter-form select[name="status[]"][multiple]:not(.select2-hidden-accessible) {
    visibility: hidden;
    height: 44px;
    min-height: 44px;
    overflow: hidden;
    animation: nexo-agenda-status-native-fallback 0s linear 4s forwards;
}

/* 0.8.9 appointment post-save communications */
.appointment-share-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.appointment-share-choice-grid form{display:grid;gap:5px}.appointment-share-choice-grid .btn{width:100%;justify-content:center}.share-appointment-summary{display:grid;gap:4px;padding:14px 16px;border:1px solid #e8e4f2;border-radius:14px;background:#faf9fe}.share-appointment-summary strong{font-size:16px}.share-appointment-summary span{font-weight:700}.share-appointment-summary small{color:#6d687c}.communication-block{padding:14px 0;border-bottom:1px solid #ece9f3}.communication-block:last-of-type{border-bottom:0}.communication-block h3{margin:0 0 6px}.email-inline-result{display:block;min-height:16px;font-size:12px;line-height:1.35}.email-inline-result.is-success{color:#12845f}.email-inline-result.is-error{color:#c0394f}
@media(max-width:760px){.appointment-share-choice-grid{grid-template-columns:1fr}.appointment-share-choice-grid .btn{min-height:46px}}

/* NexoCita 0.8.10 · forced appointment fallback + multi-appointment POS */
.appointment-itinerary-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.appointment-itinerary-heading>strong{font-size:12px;color:var(--ink)}
.pos-context-multi{grid-template-columns:repeat(3,minmax(0,1fr))}.pos-context-multi label>span{display:block;margin-bottom:6px}.pos-context-multi label.is-empty select,.pos-context-multi [data-sale-customer-appointment-wrap].is-empty select{opacity:.6}.pos-linked-appointments{display:grid;border-bottom:0}.pos-linked-appointments:empty{display:none}.pos-linked-appointments .pos-linked-appointment{border-bottom:1px solid var(--line)}.pos-linked-appointment-actions{display:flex;align-items:flex-start;gap:8px}.pos-linked-appointment-actions>b{font-size:11px;text-align:right}.pos-linked-appointment-actions .icon-button{width:30px;height:30px;flex:0 0 30px}.pos-linked-service-total{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:3px}.pos-linked-service-total span{font-size:10px;color:var(--muted);font-weight:800}.pos-linked-service-total strong{font-size:13px}.pos-context-multi small{display:block;margin-top:5px;min-height:14px;color:var(--muted);font-size:10px}.pos-context-multi [data-sale-unbilled-count]{color:var(--primary);font-weight:800}
@media(max-width:1180px){.pos-context-multi{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-context-multi>label:last-child{grid-column:1/-1}}
@media(max-width:720px){.pos-context-multi{grid-template-columns:1fr}.pos-context-multi>label:last-child{grid-column:auto}.appointment-itinerary-heading{align-items:flex-start;flex-direction:column;gap:3px}.pos-linked-appointment-actions{width:100%;justify-content:space-between}.pos-linked-appointment-actions>b{text-align:left}}


/* NexoCita 0.8.11 · agenda/citas: tipografía legible en asistente, detalle y comunicaciones */
.modal-booking-wizard .modal-body{font-size:14px}
.admin-wizard-progress em{font-size:11px}
.wizard-section-head p{font-size:13px;line-height:1.55}
.service-card-copy strong{font-size:14px}.service-card-copy small{font-size:12px;line-height:1.45}
.booking-selection-summary strong{font-size:13px}.booking-selection-summary span{font-size:12px}
.professional-service-heading small{font-size:11px}
.professional-option-card strong{font-size:14px}.professional-option-card small{font-size:12px}.professional-option-card em{font-size:11px;line-height:1.45}
.availability-auto strong{font-size:12px}.availability-auto small{font-size:11px;line-height:1.45}
.booking-plan-card .booking-plan-itinerary b,.booking-plan-card .booking-plan-itinerary em{font-size:12px}.booking-plan-card .booking-plan-itinerary small{font-size:11px;line-height:1.4}
.admin-emergency-details summary{font-size:13px}.force-conflict-details{font-size:13px;line-height:1.55}
.admin-booking-review>div>strong{font-size:12px}.admin-booking-review b{font-size:14px}.admin-booking-review small{font-size:12px;line-height:1.45}
.appointment-summary span{font-size:12px}.appointment-summary strong{font-size:14px}
.appointment-itinerary-heading>strong{font-size:14px}
.appointment-itinerary-list>div{grid-template-columns:92px minmax(0,1fr);gap:13px;padding-top:10px}
.appointment-itinerary-list b{font-size:16px;line-height:1.35}.appointment-itinerary-list strong{font-size:14px;line-height:1.4}.appointment-itinerary-list small{font-size:12px;line-height:1.45}
.appointment-forced-notice strong{font-size:16px}.appointment-forced-notice small{font-size:13px;line-height:1.55}
.appointment-share-copy>small{font-size:13px;line-height:1.5}.appointment-edit-entry small{font-size:12px;line-height:1.55}
.appointment-status-title small,.appointment-danger-zone small{font-size:12px;line-height:1.5}
.communication-block>p{font-size:14px;line-height:1.55}.forced-impact-item span,.forced-impact-item b{font-size:12px;line-height:1.45}.email-inline-result{font-size:13px;line-height:1.45}
@media(max-width:760px){.admin-wizard-progress em{font-size:10.5px}.appointment-itinerary-list>div{grid-template-columns:78px minmax(0,1fr)}.appointment-itinerary-list b{font-size:15px}}

/* 0.8.14 — Agenda: relationship service ↔ professional in composite appointments */
.calendar-event-service-pairs {
    gap: 5px;
}
.calendar-event small.calendar-event-service-pair {
    align-items: flex-start;
}
.calendar-event-pair-text {
    min-width: 0;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.calendar-event-pair-service {
    color: #4f495c;
}
.calendar-event-pair-separator {
    color: #aaa3b5;
}
.calendar-event-pair-professional {
    color: #706a7c;
    font-weight: 800;
}

/* 0.8.15 — Appointment notes and clearer multi-service calendar hierarchy */
.appointment-notes-card{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin:0 0 14px;
}
.appointment-notes-card article{
    min-width:0;
    padding:14px 15px;
    border:1px solid #e7e2f0;
    border-radius:13px;
    background:#faf9fd;
}
.appointment-notes-card article.is-internal{
    border-color:#ddd5ff;
    background:#f5f2ff;
}
.appointment-notes-card span{
    display:block;
    margin-bottom:6px;
    color:#6c5cff;
    font-size:11px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.appointment-notes-card p{
    margin:0;
    color:var(--ink);
    font-size:14px;
    line-height:1.55;
    overflow-wrap:anywhere;
}
.calendar-event small.calendar-event-professional-line{
    display:flex;
    align-items:flex-start;
    gap:6px;
    color:#706a7c;
    font-size:12px;
    font-weight:800;
    line-height:1.3;
    white-space:normal;
}
.calendar-event-professional-line>i{
    flex:0 0 auto;
    width:8px;
    height:8px;
    margin-top:.35em;
    border-radius:50%;
}
.calendar-event-professional-line>span{
    min-width:0;
    overflow-wrap:anywhere;
}
@media(max-width:680px){
    .appointment-notes-card{grid-template-columns:1fr}
}

/* NexoCita 0.8.16 · agenda alerts, barcode receiving and physical inventory */
.calendar-event-public{display:inline-flex;align-items:center;gap:4px;margin-top:5px;padding:3px 7px;border-radius:999px;background:#eaf2ff;color:#245cab;font-size:10px;font-weight:850}
.calendar-event-unavailable{display:inline-flex;align-items:center;gap:4px;margin-top:5px;padding:3px 7px;border-radius:999px;background:#ffe5e9;color:#b52d44;font-size:10px;font-weight:850}
.appointment-source-notice,.appointment-unavailability-card{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;margin-bottom:14px;border-radius:13px}
.appointment-source-notice{border:1px solid #c9ddff;background:#f1f6ff;color:#234f8e}
.appointment-source-notice>span,.appointment-unavailability-card>div>span{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;font-size:18px}
.appointment-source-notice>span{background:#dceaff}.appointment-source-notice strong,.appointment-source-notice small{display:block}.appointment-source-notice small{margin-top:3px;line-height:1.45;color:#547197}
.appointment-unavailability-card{display:grid;border:1px solid #efb5c0;background:#fff1f4;color:#8d2438}.appointment-unavailability-card>div{display:flex;gap:11px;align-items:flex-start}.appointment-unavailability-card>div>span{background:#ffdce3}.appointment-unavailability-card strong,.appointment-unavailability-card small{display:block}.appointment-unavailability-card small{margin-top:3px;line-height:1.45;color:#93576a}.appointment-unavailability-card p{margin:0;padding:10px 12px;border-radius:10px;background:#fff;font-size:12px;line-height:1.5;color:#5f3340}
.professional-share-block{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.professional-share-block h3{margin:0 0 5px}.professional-share-block p{margin:0 0 10px;color:var(--muted)}
.quick-stock-panel,.inventory-count-panel,.inventory-start-panel,.inventory-actions-panel{display:grid;gap:18px}
.quick-stock-scanner-row,.inventory-count-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.quick-stock-code,.inventory-count-tools label{display:grid;gap:7px}.quick-stock-code span,.inventory-count-tools label span{font-size:12px;font-weight:800;color:var(--muted)}.quick-stock-code input,.inventory-count-tools input{min-height:50px;font-size:18px;font-weight:800;letter-spacing:.03em}
.quick-stock-feedback{margin:0;min-height:20px;color:var(--muted);font-weight:700}.quick-stock-not-found{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid #efd08a;border-radius:12px;background:#fff8e8}.quick-stock-not-found span{color:#765715}
.quick-stock-lines-wrap{min-height:170px}.quick-stock-table td{vertical-align:middle}.quick-stock-table td:first-child strong,.quick-stock-table td:first-child small{display:block}.quick-stock-table td:first-child small{margin-top:3px;color:var(--muted)}.quick-stock-table input{min-width:90px;max-width:125px}.quick-stock-summary{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:10px;justify-content:end}.quick-stock-summary>div{padding:12px 14px;border-radius:12px;background:var(--soft);text-align:right}.quick-stock-summary span,.quick-stock-summary strong{display:block}.quick-stock-summary span{font-size:11px;color:var(--muted);font-weight:800}.quick-stock-summary strong{margin-top:3px;font-size:20px}
.camera-scanner-dialog{max-width:680px}.camera-scanner-body{display:grid;gap:14px}.camera-scanner-frame{position:relative;overflow:hidden;border-radius:16px;background:#101218;aspect-ratio:4/3}.camera-scanner-frame video{width:100%;height:100%;display:block;object-fit:cover}.camera-scanner-frame>span{position:absolute;inset:24% 8%;border:3px solid rgba(255,255,255,.88);border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.22)}.camera-scanner-frame>span:after{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:#ff4d75;box-shadow:0 0 8px rgba(255,77,117,.7)}.camera-scanner-body>p{margin:0;text-align:center;color:var(--muted);font-weight:700}
.inventory-session-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.inventory-session-head h2{margin:5px 0}.inventory-session-head p{margin:0 0 5px;color:var(--muted)}.inventory-status-draft{background:#fff0c8;color:#795306}.inventory-status-applied{background:#dff8ef;color:#08745f}.inventory-status-cancelled{background:#ffe5e9;color:#a22c43}
.inventory-count-heading,.panel-heading-row,.inventory-actions-panel{display:flex;justify-content:space-between;align-items:center;gap:16px}.inventory-count-heading h2,.panel-heading-row h2,.inventory-actions-panel h2{margin:4px 0}.inventory-count-heading p,.panel-heading-row p,.inventory-actions-panel p{margin:0;color:var(--muted)}.inventory-count-tools{grid-template-columns:minmax(220px,.8fr) minmax(280px,1.2fr)}
.inventory-search-results{display:grid;gap:6px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;max-height:320px;overflow:auto}.inventory-search-results>button{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:11px 12px;border:0;border-radius:9px;background:transparent;text-align:left;cursor:pointer}.inventory-search-results>button:hover{background:var(--soft)}.inventory-search-results span strong,.inventory-search-results span small{display:block}.inventory-search-results span small{margin-top:2px;color:var(--muted)}.inventory-search-results b{white-space:nowrap}
.inventory-count-table td:first-child strong,.inventory-count-table td:first-child small{display:block}.inventory-count-table td:first-child small{margin-top:3px;color:var(--muted)}.inventory-inline-set{display:flex;gap:6px;align-items:center}.inventory-inline-set input{width:100px;min-height:36px;padding:6px 8px}.inventory-final-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.inventory-final-actions form{margin:0}.inventory-differences-panel{margin-top:16px}
@media(max-width:760px){.quick-stock-scanner-row,.inventory-count-tools{grid-template-columns:1fr}.quick-stock-scanner-row .btn{width:100%}.quick-stock-summary{grid-template-columns:1fr 1fr;justify-content:stretch}.inventory-session-head,.inventory-count-heading,.inventory-actions-panel{align-items:stretch;flex-direction:column}.inventory-final-actions{justify-content:stretch}.inventory-final-actions form,.inventory-final-actions button{width:100%}.quick-stock-table input{min-width:76px;max-width:100px}.camera-scanner-frame{aspect-ratio:3/4}.appointment-unavailability-card p{font-size:13px}}
.professional-share-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line)}.professional-share-row:first-of-type{border-top:0}.professional-share-row p{margin:0}.appointment-professional-share-inline{display:grid;gap:8px;width:100%;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.appointment-professional-share-inline>span{font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.appointment-professional-share-inline>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.appointment-professional-share-inline form{margin:0}
@media(max-width:760px){.professional-share-row,.appointment-professional-share-inline>div{align-items:stretch;flex-direction:column}.professional-share-row .appointment-delay-actions,.appointment-professional-share-inline .appointment-delay-actions{justify-content:flex-start}}

/* NexoCita 0.8.17 · interfaz responsive de entrada rápida e inventario */
.inventory-workspace{width:min(1180px,100%);max-width:100%;margin-inline:auto;min-width:0}
.inventory-workspace>*{min-width:0}
.inventory-page-heading{align-items:flex-start;margin-bottom:20px}
.inventory-page-heading>div:first-child{max-width:760px;min-width:0}
.inventory-page-heading .heading-actions{flex-wrap:wrap;justify-content:flex-end}
.inventory-workspace .panel{max-width:100%;min-width:0}
.quick-stock-panel,.inventory-start-panel,.inventory-count-panel,.inventory-session-head,.inventory-actions-panel{padding:22px 24px}
.quick-stock-panel form{display:grid;gap:14px;min-width:0}
.quick-stock-scanner-row,.inventory-count-tools{min-width:0}
.quick-stock-code,.inventory-count-tools label{min-width:0}
.quick-stock-code input,.inventory-count-tools input{min-width:0;max-width:100%}
.quick-stock-lines-wrap{min-width:0;max-width:100%;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}
.quick-stock-lines-wrap>.empty-state{min-height:190px}
.table-responsive{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.quick-stock-table{min-width:860px}
.inventory-count-table{min-width:690px}
.inventory-difference-table{min-width:570px}
.inventory-history-table{min-width:710px}
.quick-stock-summary>div{background:#faf9fd;border:1px solid var(--line)}
.inventory-start-panel{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:stretch;gap:22px}
.inventory-start-copy{display:flex;flex-direction:column;justify-content:center;min-width:0}
.inventory-start-copy h2{margin:6px 0 8px;font-size:24px;letter-spacing:-.025em}
.inventory-start-copy>p{max-width:650px;margin:0;color:var(--muted);line-height:1.6}
.inventory-start-form{align-content:center;padding:18px;border:1px solid var(--line);border-radius:15px;background:#faf9fd}
.inventory-start-form .btn{justify-self:end;min-width:190px}
.inventory-count-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:20px}
.inventory-count-methods>span{display:flex;align-items:center;gap:9px;min-width:0;padding:10px 11px;border:1px solid #e6e1fb;border-radius:12px;background:#faf9ff;color:#51496d}
.inventory-count-methods i{display:grid;place-items:center;flex:0 0 31px;width:31px;height:31px;border-radius:9px;background:var(--primary-soft);color:var(--primary);font-style:normal;font-size:15px}
.inventory-count-methods b{min-width:0;font-size:11px;line-height:1.3}
.inventory-session-head{margin-bottom:14px}
.inventory-summary-grid{margin-bottom:14px}
.inventory-count-panel{margin-bottom:14px}
.inventory-count-heading{min-width:0}
.inventory-count-heading>div{min-width:0;max-width:720px}
.inventory-count-heading .btn{flex:0 0 auto}
.inventory-counted-panel,.inventory-differences-panel,.inventory-history-panel{min-width:0}
.inventory-counted-panel{margin-bottom:14px}
.inventory-differences-panel{margin-top:0;margin-bottom:14px}
.inventory-actions-panel{margin-bottom:14px}
.inventory-history-panel{margin-top:14px}
.inventory-start-panel+.inventory-history-panel{margin-top:18px}
.inventory-workspace .panel-heading-row{padding:18px 20px;border-bottom:1px solid var(--line)}
.inventory-workspace .panel-heading-row>div{min-width:0}
.inventory-workspace .panel-heading-row h2{font-size:20px}
.inventory-workspace .panel-heading-row p{max-width:760px;font-size:13px;line-height:1.5}
.inventory-workspace .table-panel .empty-state{min-height:140px}
.inventory-search-results>button:hover{background:#f7f5ff}
.inventory-inline-set{min-width:170px}

@media(max-width:1100px){
    .inventory-workspace{width:100%}
    .inventory-start-panel{grid-template-columns:1fr}
    .inventory-start-form .btn{justify-self:stretch}
}
@media(max-width:760px){
    .inventory-workspace{width:100%}
    .inventory-page-heading{gap:16px;margin-bottom:16px}
    .quick-stock-panel,.inventory-start-panel,.inventory-count-panel,.inventory-session-head,.inventory-actions-panel{padding:16px}
    .inventory-start-panel{gap:16px}
    .inventory-count-methods{grid-template-columns:1fr;margin-top:15px}
    .inventory-start-form{padding:14px}
    .quick-stock-lines-wrap>.empty-state{min-height:150px;padding:18px}
    .quick-stock-summary{grid-template-columns:1fr 1fr}
    .quick-stock-summary>div{text-align:left}
    .inventory-workspace .panel-heading-row{padding:15px 16px}
    .inventory-count-heading .btn{width:100%}
    .inventory-search-results>button{align-items:flex-start;flex-direction:column}
    .inventory-search-results b{white-space:normal}
}
@media(max-width:430px){
    .quick-stock-summary{grid-template-columns:1fr}
    .inventory-inline-set{min-width:150px}
}
.calendar-event-delay-detailed{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;max-width:100%;white-space:normal;line-height:1.2}.calendar-event-delay-detailed>span{display:block}

/* NexoCita 0.8.19 · client-visible operational schedule */
.client-welcome{margin:8px 0 0!important;color:#655e77!important;font-size:15px!important;line-height:1.35!important}.client-welcome strong{color:var(--text);font-weight:850}.client-appointment-delay{display:grid;gap:9px;margin-top:11px;padding:12px;border:1px solid #efd08a;border-radius:13px;background:#fff8e8}.client-delay-heading{display:flex;align-items:center;gap:9px}.client-delay-heading>span{display:grid;place-items:center;flex:0 0 31px;width:31px;height:31px;border-radius:9px;background:#fff0c8;font-size:16px}.client-delay-heading>div{display:grid;gap:1px}.client-delay-heading strong{font-size:13px;line-height:1.3;color:#4e3c10}.client-delay-heading small{font-size:11px!important;line-height:1.35!important;color:#795306!important;font-weight:800}.client-delay-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.client-delay-times>div{display:grid;gap:2px;padding:9px 10px;border:1px solid #ead9ab;border-radius:10px;background:rgba(255,255,255,.72)}.client-delay-times>div.is-estimated{border-color:#d9cffd;background:#f5f1ff}.client-delay-times span{color:#81798f;font-size:9px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.client-delay-times strong{font-size:15px;line-height:1.15;color:var(--text)}.client-delay-times .is-estimated strong{color:var(--primary)}.client-delay-help{color:#776d84!important;font-size:10px!important;line-height:1.4!important}.appointment-delay-copy{display:flex;align-items:center;gap:10px}.appointment-delay-copy>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#fff0c8;font-size:20px}.appointment-delay-copy>div>strong,.appointment-delay-copy>div>small{display:block}.appointment-delay-times{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.appointment-delay-times>span{display:grid;gap:1px;min-width:112px;padding:7px 9px;border:1px solid #ead9ab;border-radius:9px;background:rgba(255,255,255,.72)}.appointment-delay-times>span.is-estimated{border-color:#d9cffd;background:#f5f1ff}.appointment-delay-times small{margin:0!important;color:#7c738a!important;font-size:9px!important;font-weight:850!important;letter-spacing:.05em;text-transform:uppercase}.appointment-delay-times b{color:#342d46;font-size:14px}.appointment-delay-times .is-estimated b{color:var(--primary)}
@media(max-width:760px){.client-delay-times{grid-template-columns:1fr 1fr}.appointment-delay-copy{align-items:flex-start}.appointment-delay-times{width:100%}.appointment-delay-times>span{flex:1 1 120px}}

/* NexoCita 0.8.20 · client welcome and restored appointment-delay layout */
.client-welcome{margin:9px 0 3px!important;color:var(--text)!important;font-size:18px!important;line-height:1.35!important}.client-welcome strong{color:var(--text)!important;font-weight:850!important}
.appointment-delay-card{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,auto);align-items:center;gap:20px;padding:17px 18px}
.appointment-delay-card>.appointment-delay-copy{display:flex;align-items:center;gap:12px;min-width:0}
.appointment-delay-card>.appointment-delay-copy>div{flex:1 1 auto;min-width:0}
.appointment-delay-card .appointment-delay-times{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px;width:min(100%,350px);margin-top:10px}
.appointment-delay-card .appointment-delay-times>span{min-width:0;padding:9px 10px}
.appointment-delay-card>.appointment-delay-actions{display:grid;grid-template-columns:repeat(2,minmax(170px,1fr));align-items:start;justify-content:stretch;gap:8px;width:min(100%,430px);max-width:430px;justify-self:end}
.appointment-delay-card>.appointment-delay-actions>a,.appointment-delay-card>.appointment-delay-actions>form{min-width:0;width:100%;margin:0}
.appointment-delay-card>.appointment-delay-actions .btn{width:100%;min-height:44px;justify-content:center;text-align:center}
.appointment-delay-card>.appointment-delay-actions form small{width:100%}
@media(max-width:880px){.appointment-delay-card{grid-template-columns:1fr}.appointment-delay-card>.appointment-delay-actions{justify-self:stretch;width:100%;max-width:none}}
@media(max-width:560px){.appointment-delay-card .appointment-delay-times{grid-template-columns:1fr 1fr;width:100%}.appointment-delay-card>.appointment-delay-actions{grid-template-columns:1fr}.client-welcome{font-size:17px!important}}


/* NexoCita 0.8.21 · comunicaciones de cita organizadas por destinatario */
.appointment-share-card-organized{
  display:grid;
  grid-template-columns:minmax(210px,.72fr) minmax(360px,1.28fr);
  align-items:start;
  gap:18px 24px;
}
.appointment-share-card-organized>.appointment-share-copy{padding-top:4px}
.appointment-recipient-list{display:grid;gap:10px;min-width:0}
.appointment-recipient-row{
  display:grid;
  grid-template-columns:minmax(150px,1fr) auto;
  align-items:center;
  gap:14px;
  min-width:0;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface);
}
.appointment-recipient-row.is-professional{background:#f8fbfd;border-color:#dceaf3}
.appointment-recipient-copy{display:grid;gap:2px;min-width:0}
.appointment-recipient-copy>span{font-size:10px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:var(--primary)}
.appointment-recipient-row.is-professional .appointment-recipient-copy>span{color:#315d85}
.appointment-recipient-copy>strong{font-size:14px;line-height:1.3;color:var(--ink);overflow-wrap:anywhere}
.appointment-recipient-copy>small{font-size:11px;line-height:1.4;color:var(--muted)}
.appointment-recipient-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.appointment-recipient-actions form{margin:0;display:grid;gap:4px}
.appointment-recipient-actions .btn{min-width:92px;min-height:40px;justify-content:center;text-align:center;white-space:nowrap}
.appointment-share-footer{
  grid-column:1/-1;
  display:flex;
  justify-content:flex-end;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.appointment-share-footer .btn{min-height:40px}
.appointment-delay-card-organized{
  display:grid;
  grid-template-columns:minmax(230px,.72fr) minmax(360px,1.28fr);
  align-items:start;
  gap:18px 24px;
}
.appointment-delay-card-organized>.appointment-delay-copy{min-width:0}
.appointment-delay-card-organized>.appointment-delay-recipient-list{width:100%;max-width:none;justify-self:stretch}
.appointment-delay-card-organized .appointment-recipient-row{background:rgba(255,255,255,.72);border-color:#ecd89f}
.appointment-delay-card-organized .appointment-recipient-row.is-professional{background:rgba(238,247,252,.78);border-color:#d2e3ed}
@media(max-width:880px){
  .appointment-share-card-organized,.appointment-delay-card-organized{grid-template-columns:1fr}
  .appointment-share-footer{grid-column:1}
}
@media(max-width:620px){
  .appointment-recipient-row{grid-template-columns:1fr;align-items:stretch}
  .appointment-recipient-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}
  .appointment-recipient-actions>a,.appointment-recipient-actions>form{width:100%;min-width:0}
  .appointment-recipient-actions .btn{width:100%;min-width:0}
  .appointment-share-footer{justify-content:stretch}
  .appointment-share-footer .btn{width:100%;justify-content:center}
}
@media(max-width:420px){
  .appointment-recipient-actions{grid-template-columns:1fr}
}

/* NexoCita 0.8.22 · identidad de sesión y ajuste fino de comunicaciones */
.sidebar-profile-chip .sidebar-user-photo{
  flex:0 0 auto;
  width:42px;
  height:42px;
  object-fit:cover;
  border-radius:11px;
  border:1px solid #3a3251;
  background:#fff;
}

/* Los botones de cada destinatario comienzan exactamente a la misma altura. */
.appointment-recipient-actions{
  align-items:flex-start;
}
.appointment-recipient-actions>a,
.appointment-recipient-actions>form{
  align-self:flex-start;
}
.appointment-recipient-actions form{
  margin:0;
  display:grid;
  gap:4px;
}
.appointment-recipient-actions .email-inline-result:empty{
  display:none;
  min-height:0;
}

/* En el aviso de retraso, horario reservado y aproximado quedan apilados. */
.appointment-delay-card-organized .appointment-delay-times{
  grid-template-columns:1fr;
  width:min(100%,220px);
  max-width:220px;
}
.appointment-delay-card-organized .appointment-delay-times>span{
  width:100%;
}

@media(max-width:880px){
  .appointment-delay-card-organized .appointment-delay-times{
    width:min(100%,300px);
    max-width:300px;
  }
}

/* 0.8.23 · Internal top-bar notifications */
.notification-menu{position:relative;display:flex;align-items:center}
.notification-button{position:relative;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#4a4659;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 18px rgba(49,37,100,.06)}
.notification-button:hover,.notification-button.open{border-color:#d8d0ff;background:#f7f5ff;color:var(--primary)}
.notification-button.has-unread{border-color:#ffd6dc;background:#fff3f5}
.notification-bell{font-size:18px;line-height:1;filter:saturate(.8)}
.notification-count{position:absolute;right:-7px;top:-7px;min-width:20px;height:20px;padding:0 5px;border:2px solid #fff;border-radius:999px;background:#e43f56;color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;line-height:1;box-shadow:0 5px 12px rgba(228,63,86,.25)}
.notification-dropdown{display:none;position:absolute;right:0;top:calc(100% + 12px);width:min(410px,calc(100vw - 28px));max-height:min(610px,calc(100vh - 105px));overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 24px 65px rgba(34,26,70,.2);z-index:80}
.notification-dropdown.open{display:flex;flex-direction:column}
.notification-dropdown-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--line)}
.notification-dropdown-head>div{display:grid;gap:3px}.notification-dropdown-head strong{font-size:17px;color:var(--ink)}
.notification-unread-summary{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#fff0f2;color:#c7364b;font-size:11px;font-weight:850}
.notification-list{overflow:auto;overscroll-behavior:contain}
.notification-item{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) 10px;gap:11px;align-items:start;padding:14px 16px;border-bottom:1px solid #f0edf6;color:inherit;text-decoration:none;background:#fff}
.notification-item:hover{background:#faf9ff}.notification-item.is-unread{background:#fffafb}
.notification-item-icon{width:36px;height:36px;border-radius:11px;background:#f2efff;display:grid;place-items:center;font-size:17px}.notification-item.is-unread .notification-item-icon{background:#fff0f2}
.notification-item-copy{min-width:0;display:grid;gap:4px}.notification-item-copy strong{font-size:13px;line-height:1.35;color:var(--ink)}.notification-item-copy small{font-size:12px;line-height:1.45;color:#625d73}.notification-item-copy time{font-size:10px;font-weight:700;color:#9a95a8;text-transform:none}
.notification-new-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:#e43f56;box-shadow:0 0 0 4px #fff1f3}
.notification-empty{padding:32px 20px;text-align:center;display:grid;justify-items:center;gap:5px;color:#777287}.notification-empty span{width:38px;height:38px;border-radius:12px;background:#effaf7;color:#16886f;display:grid;place-items:center;font-weight:900}.notification-empty strong{color:var(--ink);font-size:13px}.notification-empty small{font-size:12px}
.notification-read-all{padding:11px 14px;border-top:1px solid var(--line);background:#fbfaff;text-align:right}.notification-read-all button{border:0;background:transparent;color:var(--primary);font-size:12px;font-weight:850;cursor:pointer;padding:6px 7px}.notification-read-all button:hover{text-decoration:underline}
@media(max-width:760px){.admin-topbar{gap:9px}.notification-button{width:38px;height:38px;border-radius:10px}.notification-dropdown{position:fixed;left:14px;right:14px;top:74px;width:auto;max-height:calc(100vh - 90px)}.notification-item{padding:13px 14px}}

/* 0.8.24 · Notification types + lightweight live refresh */
.notification-item--public .notification-item-icon{background:#edf6ff;color:#2563a8}.notification-item--public{box-shadow:inset 3px 0 0 #7db9ef}
.notification-item--cancelled .notification-item-icon{background:#fff0f2;color:#c8374e}.notification-item--cancelled{box-shadow:inset 3px 0 0 #ef8796}
.notification-item--availability .notification-item-icon{background:#fff6df;color:#9b6a0b}.notification-item--availability{box-shadow:inset 3px 0 0 #e8b84f}
.notification-item--generic .notification-item-icon{background:#f2efff;color:var(--primary)}
.notification-read-all[hidden],.notification-count[hidden],.notification-unread-summary[hidden]{display:none!important}
.notification-item.notification-item--public .notification-item-icon{background:#edf6ff;color:#2563a8}
.notification-item.notification-item--cancelled .notification-item-icon{background:#fff0f2;color:#c8374e}
.notification-item.notification-item--availability .notification-item-icon{background:#fff6df;color:#9b6a0b}

/* NexoCita 0.8.26 · centro de avisos configurable y limpieza selectiva */
.notification-center{display:flex;align-items:center;gap:7px}
.notification-center--split{gap:6px}
.notification-center--split .notification-button{width:40px;height:40px}
.notification-button--public{background:#f2f8ff;border-color:#d8eaff;color:#2469a7}
.notification-button--cancelled{background:#fff4f5;border-color:#ffd9df;color:#c83b51}
.notification-button--availability{background:#fff8e8;border-color:#f6dfaa;color:#9a6a0c}
.notification-button--public:hover,.notification-button--public.open{background:#eaf5ff;border-color:#b9daf7;color:#1f5e94}
.notification-button--cancelled:hover,.notification-button--cancelled.open{background:#fff0f2;border-color:#f6b9c2;color:#b72f45}
.notification-button--availability:hover,.notification-button--availability.open{background:#fff3d9;border-color:#edcf87;color:#83590a}
.notification-item-row{position:relative}
.notification-item-row .notification-item{padding-right:54px}
.notification-delete-form{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:2;margin:0}
.notification-delete-form button{width:31px;height:31px;border:0;border-radius:9px;background:#f7f5fb;color:#8e889b;display:grid;place-items:center;cursor:pointer;font-size:14px;line-height:1;transition:.16s ease}
.notification-delete-form button:hover{background:#ffecef;color:#c7354b;transform:translateY(-1px)}
.notification-clear-group button{color:#b33c4e}
.notification-clear-group button:hover{color:#902a3a}
.professional-scope-permission{margin-top:12px;padding:13px 14px;border:1px solid #ded8ff;border-radius:14px;background:#faf9ff}
.professional-scope-permission[hidden]{display:none!important}
@media(max-width:760px){.notification-center--split{gap:4px}.notification-center--split .notification-button{width:35px;height:35px;border-radius:10px}.notification-center--split .notification-bell{font-size:16px}.notification-item-row .notification-item{padding-right:48px}.notification-delete-form{right:9px}}

/* NexoCita 0.8.26 · alcance personal del profesional */
.professional-scope-notice{display:inline-flex;margin-top:8px;padding:7px 10px;border:1px solid rgba(115,87,255,.18);border-radius:10px;background:rgba(115,87,255,.07);color:#6555a5;font-size:12px;font-weight:700;line-height:1.35}

/* NexoCita 0.8.28 - Dashboard coherente por alcance */
.dashboard-top-grid.dashboard-top-grid-professional{grid-template-columns:minmax(0,2.15fr) minmax(260px,.7fr)}
.dashboard-top-grid .occupancy-detail{display:block;margin:8px 18px 20px;text-align:center;color:var(--muted);font-size:10px;line-height:1.45;font-weight:700}
@media (max-width:1180px){.dashboard-top-grid.dashboard-top-grid-professional{grid-template-columns:minmax(0,1.55fr) minmax(220px,.65fr)}}
@media (max-width:760px){.dashboard-top-grid.dashboard-top-grid-professional{grid-template-columns:1fr}}


/* NexoCita 0.8.29 · Mi horario de solo lectura */
.readonly-badge{display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border:1px solid #d9d2ff;border-radius:12px;background:#f6f3ff;color:#6550c7;font-size:11px;font-weight:850}.my-schedule-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}.my-schedule-summary-card{display:flex;align-items:center;gap:13px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(31,25,66,.04)}.my-schedule-summary-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#f0edff;color:var(--primary);font-size:18px}.my-schedule-summary-card.break .my-schedule-summary-icon{background:#fff7e8;color:#9a6500}.my-schedule-summary-card.vacation .my-schedule-summary-icon{background:#e9faf5;color:#087e68}.my-schedule-summary-card.absence .my-schedule-summary-icon{background:#fff0f3;color:#b5384e}.my-schedule-summary-card div{display:grid;gap:2px}.my-schedule-summary-card small{color:var(--muted);font-size:11px;font-weight:750}.my-schedule-summary-card strong{font-size:24px;line-height:1;color:var(--ink)}.my-schedule-summary-caption{max-width:240px;color:var(--muted);font-size:9px;line-height:1.35}.my-schedule-panel{display:grid;gap:18px;margin-bottom:18px;padding:20px;overflow:hidden}.my-schedule-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.my-schedule-section-head h2{margin:4px 0 0;font-size:21px}.my-schedule-section-head p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.my-week-schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.my-week-day{min-width:0;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff}.my-week-day.is-today{border-color:#cfc4ff;box-shadow:0 0 0 2px #f0edff inset}.my-week-day.is-rest{background:#faf9fc}.my-week-day header{display:grid;gap:4px;margin-bottom:12px}.my-week-day header strong{font-size:12px}.my-week-day header span{color:var(--muted);font-size:10px;font-weight:750}.my-week-periods{display:grid;gap:7px}.my-week-period{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:5px;align-items:center;padding:9px;border-radius:10px;background:#f7f5ff;color:#5a47bd;font-size:11px}.my-week-period b{font-size:11px}.my-week-period i{color:#9b95aa;font-style:normal}.my-week-rest{display:flex;align-items:center;gap:7px;padding:10px;border-radius:10px;background:#f1eff5;color:#858091;font-size:10px;font-weight:750}.my-unavailability-list{display:grid;gap:9px}.my-unavailability-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}.my-unavailability-item.is-current{border-color:#efc66f;background:#fffaf0}.my-unavailability-copy{display:grid;gap:4px;min-width:0}.my-unavailability-copy strong{font-size:12px}.my-unavailability-copy small{color:var(--muted);font-size:10px}.my-schedule-no-blocks{font-size:11px}.my-schedule-empty p{max-width:620px;margin:6px auto 0;color:var(--muted)}
@media (max-width:1180px){.my-schedule-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.my-week-schedule-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){.my-schedule-panel{padding:14px}.my-schedule-heading .heading-actions{align-items:stretch}.readonly-badge{justify-content:center}.my-schedule-summary-grid{grid-template-columns:1fr 1fr;gap:9px}.my-schedule-summary-card{padding:13px}.my-schedule-summary-icon{width:38px;height:38px}.my-schedule-summary-card strong{font-size:20px}.my-week-schedule-grid{grid-template-columns:1fr}.my-unavailability-item{grid-template-columns:1fr}.my-unavailability-item>.block-type,.my-unavailability-item>.status{justify-self:start}.my-schedule-section-head{flex-direction:column}}
@media (max-width:480px){.my-schedule-summary-grid{grid-template-columns:1fr}.my-schedule-summary-card{min-height:68px}}

/* NexoCita 0.8.32 · origen de retrasos e impresión desde Dashboard */
.appointment-delay-origin{
  display:grid;
  gap:5px;
  margin-top:9px;
  padding:9px 10px;
  border:1px dashed #e2c36f;
  border-radius:10px;
  background:rgba(255,255,255,.58);
}
.appointment-delay-origin>small{
  margin:0!important;
  color:#795306!important;
  font-size:9px!important;
  font-weight:900!important;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.appointment-delay-origin p{
  display:grid;
  gap:2px;
  margin:0;
}
.appointment-delay-origin p b{
  color:#4f3b0f;
  font-size:10.5px;
  line-height:1.35;
}
.appointment-delay-origin p span{
  color:#765f25;
  font-size:10px;
  line-height:1.4;
}
.dashboard-panel-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  flex-wrap:wrap;
}
.mini-action.print-action{
  color:#57438f;
  background:#f3efff;
  border-color:#ddd2ff;
}
@media(max-width:700px){
  .dashboard-panel-links{justify-content:flex-start;gap:10px}
  .panel-head .dashboard-panel-links{width:100%}
}

/* NexoCita 0.8.36 · estado de pago y acceso al comprobante */
.status-paid{color:#17607a;background:#e7f7ff;border:1px solid #b8e1f2}.calendar-event-statuses,.agenda-row-statuses{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.calendar-event-statuses{justify-self:start;margin-top:4px}.calendar-event-statuses .status{margin-top:0}.appointment-paid-badge{width:max-content;margin-top:6px}.appointment-billed-link{cursor:pointer}.appointment-billed-link:hover{border-color:#a9cfe0;background:#edf9ff;color:#145e78}.agenda-results-table td>.status{margin:2px 4px 2px 0}.dashboard-appointments-table td>.status{margin:2px 4px 2px 0}.sale-appointment-datetime{font-weight:700;color:var(--muted)}
@media(max-width:720px){.agenda-row-statuses{grid-column:3;justify-self:start;margin-bottom:9px}.agenda-row>.agenda-row-statuses>.status{margin:0}}


/* NexoCita 0.8.38 - cobros POS */
.pos-payments{margin:0 14px 12px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fbfafe;display:grid;gap:10px}.pos-payments-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.pos-payments-head>div{display:grid;gap:2px}.pos-payments-head strong{font-size:12px}.pos-payments-head small{font-size:9.5px;color:var(--muted);line-height:1.35}.pos-payment-rows{display:grid;gap:8px}.pos-payment-row{display:grid;grid-template-columns:minmax(115px,1fr) 98px 110px minmax(90px,.75fr) 34px;gap:8px;align-items:end;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fff}.pos-payment-row label{margin:0}.pos-payment-row label>span,.pos-payment-change>span{display:block;margin-bottom:4px;font-size:9px;color:var(--muted);font-weight:800}.pos-payment-row select,.pos-payment-row input{min-height:38px;padding:8px 9px;font-size:12px}.pos-payment-change{display:grid;align-content:end;min-height:58px}.pos-payment-change strong{display:flex;align-items:center;min-height:38px;font-size:13px}.pos-payment-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pos-payment-summary>span{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:9px;background:#f2eff9;font-size:10px;color:var(--muted);font-weight:800}.pos-payment-summary strong{font-size:12px;color:var(--ink)}.pos-payment-summary strong.is-positive{color:#087e68}.pos-payment-summary strong.is-negative{color:#b4233c}.pos-payment-error{min-height:14px;color:#b4233c;font-size:10px;font-weight:750}.sale-payment-refund{opacity:.72}.sale-payment-refund td:first-child strong{color:#b4233c}.sale-detail-legacy-payment{margin-top:16px;padding:12px 13px;border:1px dashed var(--line);border-radius:10px;background:#faf9fd;display:grid;gap:3px}.sale-detail-legacy-payment strong{font-size:12px}.sale-detail-legacy-payment small{color:var(--muted);font-size:10px;line-height:1.4}
@media(max-width:1180px){.pos-payment-row{grid-template-columns:1fr 95px 105px 34px}.pos-payment-change{grid-column:1/4;min-height:auto;display:flex;align-items:center;justify-content:space-between}.pos-payment-change>span{margin:0}}
@media(max-width:720px){.pos-payments{margin-inline:10px}.pos-payments-head{flex-direction:column}.pos-payments-head .btn{width:100%;justify-content:center}.pos-payment-row{grid-template-columns:1fr 1fr}.pos-payment-row>[data-cash-received-wrap]{grid-column:1}.pos-payment-change{grid-column:2;display:grid;justify-content:stretch}.pos-payment-row>[data-payment-remove]{grid-column:2;justify-self:end}.pos-payment-summary{grid-template-columns:1fr}.sale-payment-table{min-width:680px}}

/* POS payments responsive refinements - 0.8.39 */
.pos-layout{align-items:start}
.pos-cart{min-width:0}
.pos-payments{overflow:hidden}
.pos-payment-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
.pos-payment-row>[data-payment-method-wrap],
.pos-payment-row>[data-payment-amount-wrap],
.pos-payment-row>[data-cash-received-wrap],
.pos-payment-row>[data-payment-change-wrap]{min-width:0}
.pos-payment-row>[data-payment-method-wrap]{grid-column:1}
.pos-payment-row>[data-payment-amount-wrap]{grid-column:2}
.pos-payment-row>[data-cash-received-wrap]{grid-column:1}
.pos-payment-row>[data-payment-change-wrap]{grid-column:2;min-height:auto;display:grid;align-content:end}
.pos-payment-row>[data-payment-remove]{grid-column:2;justify-self:end;align-self:start}
.pos-payment-change strong{min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#eefbf7;color:#087e68}
.pos-payment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
.pos-payment-summary .pos-payment-summary-change{grid-column:1/-1;background:#eefbf7;color:#087e68}
.pos-payment-summary .pos-payment-summary-change strong{color:#087e68}
.pos-payment-summary [hidden]{display:none!important}
@media (max-width:1360px){
  .pos-layout{grid-template-columns:minmax(0,1.45fr) minmax(360px,.8fr)}
}
@media (max-width:1120px){
  .pos-layout{grid-template-columns:1fr}
  .pos-cart{position:static}
}
@media (max-width:720px){
  .pos-payment-row{grid-template-columns:1fr}
  .pos-payment-row>[data-payment-method-wrap],
  .pos-payment-row>[data-payment-amount-wrap],
  .pos-payment-row>[data-cash-received-wrap],
  .pos-payment-row>[data-payment-change-wrap],
  .pos-payment-row>[data-payment-remove]{grid-column:1}
  .pos-payment-row>[data-payment-remove]{justify-self:end}
  .pos-payment-summary{grid-template-columns:1fr}
  .pos-payment-summary .pos-payment-summary-change{grid-column:auto}
}

/* POS split payments refinements - 0.8.40 */
.pos-payment-row>[data-cash-received-wrap][hidden],
.pos-payment-row>[data-payment-change-wrap][hidden]{display:none!important}

/* NexoCita 0.8.42 - desglose fiscal de ventas */
.sale-tax-line-table th,.sale-tax-line-table td{vertical-align:top}
.sale-tax-line-table td small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.sale-fiscal-breakdown{padding-top:2px}
.sale-fiscal-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.sale-fiscal-totals>div{display:grid;gap:4px;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:#faf9fd}
.sale-fiscal-totals span{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.sale-fiscal-totals strong{font-size:16px}
.sale-fiscal-totals .is-grand-total{background:#f2efff;border-color:#ddd4ff}
.sale-fiscal-totals .is-grand-total strong{font-size:20px;color:var(--primary)}
@media(max-width:720px){.sale-fiscal-totals{grid-template-columns:1fr}.sale-tax-line-table{min-width:760px}}

/* Sales output and invoice issue - 0.8.47 */
.sale-invoice-number{color:var(--primary);font-weight:800}.sale-output-total{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#faf9fd}.sale-output-total span{color:var(--muted);font-size:12px}.sale-output-total strong{font-size:22px}.sale-output-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.sale-output-actions .btn{justify-content:center;text-align:center;min-height:48px}.invoice-series-preview{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#faf9fd}.invoice-series-preview span{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:800}.invoice-series-preview strong{font-size:17px;color:var(--primary)}.invoice-series-preview small{font-size:10px;color:var(--muted)}.invoice-issue-form .span-two{grid-column:1/-1}@media(max-width:720px){.sale-output-actions{grid-template-columns:1fr}.invoice-issue-form .span-two{grid-column:auto}}

/* NexoCita 0.8.49 - Caja */
.cash-register-heading{align-items:center}.cash-register-status{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px}.cash-register-status>span{width:9px;height:9px;border-radius:50%;background:#9ca3af}.cash-register-status.is-open{border-color:#b7eadf;background:#effbf7;color:#087e68}.cash-register-status.is-open>span{background:#15a985}.cash-open-panel,.cash-movement-panel,.cash-close-panel,.cash-movements-panel,.cash-history-panel{padding:18px}.cash-last-close{display:flex;align-items:center;gap:12px;padding:11px 13px;margin-bottom:14px;border-radius:11px;background:#f7f5fb}.cash-last-close span{color:var(--muted);font-size:11px}.cash-last-close strong{font-size:15px}.cash-last-close small{margin-left:auto;color:var(--muted)}.cash-register-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.cash-kpi{padding:15px;display:grid;gap:5px}.cash-kpi>span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.cash-kpi>strong{font-size:21px}.cash-kpi>small{font-size:9.5px;color:var(--muted);line-height:1.35}.cash-kpi-primary{background:linear-gradient(180deg,#f4f1ff 0%,#fff 100%);border-color:#d9d0ff}.cash-kpi-primary>strong{color:var(--primary)}.cash-register-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.cash-close-expected,.cash-difference-preview{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border-radius:10px;background:#f7f5fb}.cash-close-expected span,.cash-difference-preview span{font-size:11px;color:var(--muted);font-weight:800}.cash-close-expected strong,.cash-difference-preview strong{font-size:17px}.cash-selected-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.cash-selected-summary>span{display:grid;gap:4px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#faf9fd;color:var(--muted);font-size:10px}.cash-selected-summary strong{color:var(--ink);font-size:14px}.cash-movement-type{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:850;background:#eefbf7;color:#087e68}.cash-movement-type.is-out{background:#fff1f3;color:#b4233c}.cash-movements-table td>small,.cash-history-panel td>small{display:block;margin-top:3px;color:var(--muted)}.is-negative{color:#b4233c!important}.is-positive{color:#087e68!important}.cash-register-form .settings-actions,.cash-movement-panel .settings-actions,.cash-close-panel .settings-actions{margin-top:2px}
@media(max-width:1260px){.cash-register-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.cash-register-columns{grid-template-columns:1fr}.cash-register-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-selected-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.cash-register-heading{align-items:flex-start}.cash-register-summary-grid,.cash-selected-summary{grid-template-columns:1fr}.cash-last-close{align-items:flex-start;flex-direction:column}.cash-last-close small{margin-left:0}}

/* NexoCita 0.8.49 - resumen completo de sesión POS */
.cash-register-summary-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.cash-payment-summary-panel{padding:18px;margin-bottom:16px}
.cash-payment-methods{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.cash-payment-methods article{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#faf9fd;min-width:0}
.cash-payment-methods span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.cash-payment-methods strong{font-size:17px;color:var(--ink)}
.cash-payment-methods small{font-size:9.5px;line-height:1.35;color:var(--muted)}
@media(max-width:1320px){.cash-register-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cash-payment-methods{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.cash-payment-methods{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.cash-payment-methods{grid-template-columns:1fr}}

/* NexoCita 0.8.50 · POS service-only mode + cash traceability invoice reference */
.pos-layout.pos-layout-services-only{grid-template-columns:minmax(0,760px);justify-content:center}
.pos-layout.pos-layout-services-only .pos-cart{position:static;width:100%}
.cash-movements-table .cash-invoice-reference{display:block;margin-top:4px;color:var(--primary);font-size:10px;font-weight:850}
@media(max-width:980px){.pos-layout.pos-layout-services-only{grid-template-columns:1fr}}

/* NexoCita 0.8.51 - stock bajo e histórico de facturas */
.metric-card-link{color:inherit;text-decoration:none}.metric-card-link:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(35,28,60,.08)}.metric-card-link.is-alert{border-color:#ffd0d8}.product-directory-toolbar{align-items:center;gap:14px;flex-wrap:wrap}.product-directory-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto;flex-wrap:wrap}.filter-switch{display:flex;align-items:center;gap:9px;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:#faf9fd;cursor:pointer}.filter-switch input{position:absolute;opacity:0;pointer-events:none}.filter-switch-track{position:relative;width:38px;height:22px;border-radius:999px;background:#dcd8e8;transition:.18s ease;flex:0 0 auto}.filter-switch-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(30,25,50,.22);transition:.18s ease}.filter-switch input:checked+.filter-switch-track{background:var(--primary)}.filter-switch input:checked+.filter-switch-track:after{transform:translateX(16px)}.filter-switch strong{font-size:11px;color:var(--ink);white-space:nowrap}.invoice-summary-grid{margin-bottom:18px}.invoice-management-panel{padding:0;overflow:hidden}.invoice-filter-bar{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(150px,.7fr) minmax(145px,.65fr) minmax(145px,.65fr) auto auto;gap:10px;align-items:end;padding:16px 18px;border-bottom:1px solid var(--line)}.invoice-filter-bar label{margin:0}.invoice-filter-bar label>span{display:block;margin-bottom:5px;color:var(--muted);font-size:10px;font-weight:800}.invoice-management-panel .directory-meta{padding:12px 18px}.invoice-management-table .text-link{font-weight:800}.invoice-management-table td{vertical-align:middle}
@media(max-width:1180px){.invoice-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-filter-bar .directory-search{grid-column:1/-1}.invoice-filter-bar .btn{justify-content:center}}
@media(max-width:720px){.product-directory-actions{width:100%;justify-content:space-between}.product-directory-actions .btn{flex:1;justify-content:center}.filter-switch{flex:1}.invoice-filter-bar{grid-template-columns:1fr}.invoice-filter-bar .directory-search{grid-column:auto}}

/* NexoCita 0.8.52 - facturas rectificativas / notas de crédito */
.invoice-credit-row{background:#fffafb}.invoice-rectify-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px;margin-bottom:16px}.invoice-rectify-summary>div{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#faf9fd}.invoice-rectify-summary span{font-size:10px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.04em}.invoice-rectify-summary strong{font-size:16px}.invoice-rectify-form{padding:18px;display:grid;gap:16px}.invoice-rectify-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.45fr);gap:16px;align-items:end}.invoice-rectify-head h2{margin:2px 0 0;color:var(--primary)}.invoice-rectify-head small{color:var(--muted);font-size:10px}.invoice-rectify-reason{margin:0}.invoice-rectify-table{min-width:900px}.invoice-rectify-table td>small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.invoice-rectify-table input[type=number]{min-width:105px}.invoice-rectify-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.45fr);gap:14px}.invoice-refund-box,.invoice-rectify-total{padding:14px;border:1px solid var(--line);border-radius:11px;background:#faf9fd}.invoice-refund-box{display:grid;gap:12px}.invoice-refund-box [hidden]{display:none!important}.invoice-refund-box label>span{display:block;margin-bottom:5px;color:var(--muted);font-size:10px;font-weight:800}.switch-line{display:flex;align-items:flex-start;gap:10px}.switch-line>span{display:grid!important;gap:2px;margin:0!important}.switch-line small{color:var(--muted);font-size:10px;line-height:1.35}.invoice-rectify-total{display:grid;align-content:center;gap:5px}.invoice-rectify-total>span{font-size:10px;color:var(--muted);font-weight:850;text-transform:uppercase}.invoice-rectify-total>strong{font-size:24px;color:#b4233c}.invoice-rectify-total>small{font-size:10px;color:var(--muted)}.warning-note{border-color:#f2d7a3;background:#fff9ed}.invoice-related-list{margin-top:16px;padding:0;overflow:hidden}.invoice-related-list .panel-head{padding:16px 18px}.invoice-related-list table{width:100%}.invoice-related-list th,.invoice-related-list td{padding:11px 14px;border-top:1px solid var(--line);text-align:left}
@media(max-width:980px){.invoice-rectify-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-rectify-head,.invoice-rectify-bottom{grid-template-columns:1fr}.invoice-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.invoice-rectify-summary{grid-template-columns:1fr}.invoice-rectify-form{padding:13px}}

/* NexoCita 0.8.53 - rectificación con devolución física por producto */
.invoice-rectify-table{min-width:1060px}
.invoice-rectify-table [data-stock-return]{min-width:105px}
.invoice-rectify-table td>small{max-width:220px;line-height:1.35}

/* NexoCita 0.8.56 - trazabilidad de rectificativas en Ventas */
.sale-credit-note-number{display:block;margin-top:3px;font-weight:800}.sale-credit-note-number a{color:#b54708;text-decoration:none}.sale-credit-note-number a:hover{text-decoration:underline}.sale-fiscal-status{display:block;margin-top:5px;color:var(--primary);font-size:10px;font-weight:800}.sale-fiscal-document-links{display:flex;flex-wrap:wrap;gap:8px}.sale-fiscal-documents{padding:12px 0 2px}.sale-fiscal-documents h3{margin-bottom:8px}

/* NexoCita 0.8.57 - Reports */
.reports-heading{align-items:center}.reports-filter-panel{padding:16px 18px;display:grid;gap:12px}.reports-filter-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.reports-filter-form label{min-width:180px;display:grid;gap:6px}.reports-filter-form label>span{font-size:10px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.05em}.reports-presets{display:flex;gap:8px;flex-wrap:wrap}.reports-range-note{font-size:11px;color:var(--muted)}.reports-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.report-kpi{padding:17px;display:grid;gap:5px;min-height:112px}.report-kpi>span{font-size:11px;color:var(--muted);font-weight:850}.report-kpi>strong{font-size:24px;line-height:1.1}.report-kpi>small{font-size:10px;color:var(--muted);line-height:1.35}.reports-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.report-panel{padding:0;overflow:hidden;min-width:0}.report-panel>.panel-head{padding:17px 18px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.report-panel>.panel-head h2{margin:3px 0 0;font-size:18px}.report-panel>.panel-head p{margin:5px 0 0;color:var(--muted);font-size:10px;max-width:620px}.report-panel .responsive-table{margin:0}.report-table{min-width:620px}.report-table th,.report-table td{padding:11px 13px}.report-table td>small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.report-daily-bars{display:grid;gap:9px;padding:16px 18px}.report-daily-row{display:grid;grid-template-columns:92px minmax(120px,1fr) 110px;gap:10px;align-items:center}.report-daily-row>span{font-size:10px;color:var(--muted)}.report-daily-row>strong{text-align:right;font-size:11px}.report-daily-track{height:10px;border-radius:999px;background:#f2eff8;overflow:hidden}.report-daily-track i{display:block;height:100%;border-radius:inherit;background:var(--accent);min-width:2px}.report-daily-track i.is-negative{background:#ef6a82}.report-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px 18px}.report-mini-grid>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#faf9fd}.report-mini-grid span{font-size:9px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.04em}.report-mini-grid strong{font-size:16px}.report-mini-grid small{font-size:9px;color:var(--muted)}.report-kpi .is-negative,.report-mini-grid .is-negative,.report-daily-row .is-negative{color:#c72f4d}.report-kpi .is-positive,.report-mini-grid .is-positive{color:#087e68}
@media(max-width:1180px){.reports-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reports-two-columns{grid-template-columns:1fr}}
@media(max-width:720px){.reports-kpi-grid{grid-template-columns:1fr}.reports-filter-form{display:grid;grid-template-columns:1fr}.reports-filter-form label{min-width:0}.reports-filter-form .btn{width:100%;justify-content:center}.report-panel>.panel-head{flex-direction:column}.report-panel>.panel-head .btn{width:100%;justify-content:center}.report-daily-row{grid-template-columns:72px minmax(80px,1fr) 92px}.report-mini-grid{grid-template-columns:1fr}}

/* Reports export actions - 0.8.58 */
.report-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:720px){.report-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.report-actions .btn{width:100%;justify-content:center}}

/* Cash register automatic close / pending reconciliation - 0.8.59 */
.cash-register-status.is-pending{border-color:#f2c46d;background:#fff8e8;color:#8a5a00}.cash-register-status.is-pending>span{background:#e3a21a}
.cash-pending-panel{padding:18px;border-color:#f0cf86;background:linear-gradient(180deg,#fffaf0 0%,#fff 100%)}
.cash-pending-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}
.cash-pending-meta>span{display:grid;gap:4px;padding:11px 12px;border:1px solid #eadfca;border-radius:10px;background:#fff;color:var(--muted);font-size:10px;font-weight:800}
.cash-pending-meta strong{font-size:14px;color:var(--ink)}
.cash-pending-panel .settings-actions{margin-top:2px}
@media(max-width:720px){.cash-pending-meta{grid-template-columns:1fr}}

/* NexoCita 0.8.60 - Caja: separación visual cierre automático / Cron */
.cash-auto-close-support{display:grid;gap:14px;margin-top:16px}
.cash-auto-close-support .access-notice{margin:0}
.cash-auto-close-support .cron-note{margin:0;padding:16px}
.cash-auto-close-cron strong{display:block;margin-bottom:4px}
.cash-auto-close-cron p{margin:0 0 10px;line-height:1.5}
.cash-auto-close-cron code{display:block;margin-top:0;white-space:normal;overflow-wrap:anywhere}
@media(max-width:720px){.cash-auto-close-support{gap:12px;margin-top:14px}}

/* Reports export actions - 0.8.61 */
.report-actions .report-export-csv,.report-actions .report-export-pdf{border:1px solid transparent;color:#fff;box-shadow:none}
.report-actions .report-export-csv{background:#198754;border-color:#198754}
.report-actions .report-export-csv:hover,.report-actions .report-export-csv:focus-visible{background:#157347;border-color:#146c43;color:#fff}
.report-actions .report-export-pdf{background:#dc3545;border-color:#dc3545}
.report-actions .report-export-pdf:hover,.report-actions .report-export-pdf:focus-visible{background:#bb2d3b;border-color:#b02a37;color:#fff}
.report-file-badge{display:inline-grid;place-items:center;min-width:24px;height:18px;padding:0 4px;border-radius:4px;background:#fff;font-size:7px;font-weight:950;letter-spacing:-.02em;line-height:1;margin-right:2px}
.report-export-csv .report-file-badge{color:#198754}
.report-export-pdf .report-file-badge{color:#dc3545}

/* NexoCita 0.8.62 - rectification effect */
.invoice-rectify-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.invoice-rectify-options label{margin:0}
.invoice-rectify-options label>span{display:block;margin-bottom:6px;font-size:11px;font-weight:800;color:var(--muted)}
.invoice-rectify-options label>small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.35}
.invoice-rectify-form [hidden]{display:none!important}
@media(max-width:720px){.invoice-rectify-options{grid-template-columns:1fr}}
.invoice-rectify-bottom.is-documentary{grid-template-columns:1fr}


/* NexoCita 0.8.64 - reloj superior permanente */
.topbar-clock{flex:0 0 auto;display:grid;grid-template-columns:auto auto;align-items:center;gap:7px;min-height:38px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:0 2px 8px rgba(42,34,73,.025)}
.topbar-clock span{color:var(--muted);font-size:10px;font-weight:750}
.topbar-clock strong{font-size:12px;letter-spacing:.015em}
@media(max-width:1180px){.admin-topbar{gap:10px}.topbar-clock{grid-template-columns:1fr;gap:0;min-width:84px;padding:4px 8px;text-align:center}.topbar-clock span{font-size:8px}.topbar-clock strong{font-size:11px}}
@media(max-width:760px){.topbar-clock{min-width:76px;padding:3px 6px}.topbar-clock span{font-size:7.5px}.topbar-clock strong{font-size:10px}.admin-topbar{gap:7px;padding-left:12px;padding-right:12px}}

/* NexoCita 0.8.65 - cierre UX/responsive */
.responsive-table,
.table-wrap{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scrollbar-width:thin;
    scrollbar-color:#cfc8e7 transparent;
}
.responsive-table::-webkit-scrollbar,
.table-wrap::-webkit-scrollbar{height:8px}
.responsive-table::-webkit-scrollbar-thumb,
.table-wrap::-webkit-scrollbar-thumb{border-radius:999px;background:#cfc8e7}
.responsive-table::-webkit-scrollbar-track,
.table-wrap::-webkit-scrollbar-track{background:transparent}
.page-heading,
.panel-head,
.heading-actions,
.dashboard-panel-links,
.product-directory-actions,
.report-actions{
    min-width:0;
}
.page-heading>div,
.panel-head>div{
    min-width:0;
}
.page-heading h1,
.panel-head h2,
.page-heading p,
.panel-head p{
    overflow-wrap:anywhere;
}
.heading-actions,
.dashboard-panel-links,
.product-directory-actions,
.report-actions{
    flex-wrap:wrap;
}
.modal-dialog{
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.modal-head{flex:0 0 auto}
.modal-body{
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
}
.data-table th,
.data-table td{
    vertical-align:middle;
}
.data-table td small{
    line-height:1.4;
}

@media(max-width:960px){
    .page-heading{align-items:flex-start;flex-wrap:wrap}
    .panel-head{align-items:flex-start;flex-wrap:wrap}
    .panel-head>.btn,
    .panel-head>a.btn{max-width:100%}
    .responsive-table{margin-bottom:2px}
}

@media(max-width:680px){
    .admin-content{padding:18px 12px}
    .page-heading{gap:14px;margin-bottom:20px}
    .page-heading h1{font-size:27px}
    .panel-head{gap:12px;padding:16px}
    .panel-head h2{font-size:17px}
    .panel-head p{line-height:1.5}
    .heading-actions,
    .dashboard-panel-links,
    .product-directory-actions,
    .report-actions{width:100%}
    .dashboard-panel-links{justify-content:flex-start}
    .modal{padding:6px}
    .modal-dialog{width:calc(100% - 4px);max-height:calc(100dvh - 12px);border-radius:14px}
    .modal-head{padding:16px}
    .modal-body{padding:16px}
    .modal-actions{gap:8px}
    .responsive-table{margin-inline:-1px;padding-bottom:4px}
    .admin-product-footer{width:calc(100% - 28px)}
}

@media(max-width:480px){
    .admin-topbar{gap:4px;padding-left:8px;padding-right:8px}
    .topbar-clock{min-width:70px;padding:3px 5px}
    .topbar-clock span{font-size:7px}
    .topbar-clock strong{font-size:9.5px}
    .topbar-action{padding:7px 8px;font-size:10px}
    .language-button{padding:6px 5px;font-size:10px}
    .notification-center{gap:3px}
    .notification-center--split{gap:3px}
    .metric-grid{grid-template-columns:1fr}
    .metric-card{min-height:112px;display:grid;grid-template-columns:auto 1fr;align-items:start}
    .modal-actions{display:grid;grid-template-columns:1fr}
    .modal-actions .btn{width:100%}
}

/* NexoCita 0.8.67 · corrección de scroll/pintado en modales estándar */
/*
 * 0.8.65 trasladó globalmente el scroll desde .modal-dialog a .modal-body.
 * En diálogos largos de detalle de cita, especialmente con varios profesionales,
 * algunos navegadores podían dejar una capa blanca sobre contenido todavía existente.
 * Los asistentes de alta/edición conservan su scroll interno dedicado; el resto de
 * modales vuelve al scroll estable del diálogo completo, con cabecera sticky.
 */
.modal-dialog:not(.modal-booking-wizard){
    display:block;
    overflow:auto;
}
.modal-dialog:not(.modal-booking-wizard) > .modal-body{
    min-height:auto;
    overflow-y:visible;
    overscroll-behavior:auto;
}

