html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #00aeb5;
}

.btn-primary {
    color: #fff;
    background-color: #00b9bf;
    border-color: #00a8af;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

:root { --ink: #062d3d; --muted: #627780; --teal: #00b9bf; --teal-deep: #078b98; --mint: #e5f8f8; --line: #dce9ec; --navy: #052f40; }
html, body { margin: 0; min-height: 100%; background: #f6fafb; color: var(--ink); font-family: Inter, "Segoe UI", Arial, sans-serif; }
a { color: inherit; }
.content { max-width: 1500px; margin: 0 auto; padding: 42px clamp(22px, 4vw, 64px) 64px; }
.brand-block { display:flex; align-items:center; gap:14px; padding:21px 18px 26px; border-bottom:1px solid var(--line); margin-bottom:24px; }
.brand-logo { width:78px; height:54px; object-fit:contain; flex:0 0 auto; }
.brand-name { color:var(--navy); font-weight:750; font-size:14px; letter-spacing:-.3px; }
.brand-name small { display:block; color:#6b818a; font-size:8px; letter-spacing:1.3px; margin-top:4px; }
.nav-caption { padding:0 24px 10px; color:#789099; font-size:9px; font-weight:750; letter-spacing:1.4px; }
.side-nav { display:grid; gap:5px; padding:0 12px; }
.side-link { min-height:42px; display:flex; align-items:center; gap:12px; padding:0 12px; border-radius:8px; color:#34515c; text-decoration:none; font-size:13px; }
.side-link.active, .side-link:hover { color:#007f88; background:#e6f8f8; text-decoration:none; }
.nav-symbol { width:18px; text-align:center; color:#00aeb5; font-size:17px; }
.disabled-link { opacity:.54; cursor:default; }
.disabled-link small { margin-left:auto; font-size:9px; color:#91a4aa; }
.settings-caption { margin-top:31px; }
.sidebar-footer { display:flex; align-items:center; gap:10px; padding:17px 24px; margin:36px 12px 12px; border-top:1px solid var(--line); color:#36545f; font-size:11px; }
.sidebar-footer small { display:block; color:#84989e; margin-top:3px; }
.footer-indicator, .status-dot { width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:#00b9bf; }
.page-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:27px; }
.eyebrow { margin:0 0 9px; color:#69827b; font-weight:750; font-size:9px; letter-spacing:1.45px; }
h1 { margin:0; font-size:clamp(26px,3vw,36px); line-height:1.15; letter-spacing:-1.2px; font-weight:720; }
.page-intro { max-width:660px; color:#71817e; font-size:14px; line-height:1.65; margin:12px 0 0; }
.prototype-badge { display:inline-flex; align-items:center; border:1px solid #bdebed; background:#effcfc; color:#087f88; border-radius:999px; padding:7px 11px; font-size:10px; white-space:nowrap; }
.schedule-layout { display:grid; grid-template-columns:minmax(290px,.82fr) minmax(400px,1.18fr); align-items:start; gap:18px; }
.panel { background:#fff; border:1px solid var(--line); border-radius:12px; padding:23px; box-shadow:0 3px 14px #133b3507; }
.panel-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; margin-bottom:23px; }
.panel-heading h2 { margin:0; font-size:16px; letter-spacing:-.3px; }
.panel-heading p { margin:5px 0 0; color:var(--muted); font-size:11px; line-height:1.5; }
.step-number { color:#93a6a0; font-size:10px; font-weight:750; letter-spacing:1px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px 12px; }
.field { display:grid; gap:7px; color:#526560; font-size:11px; font-weight:650; }
.field-wide { grid-column:1/-1; }
.field input, .field select { width:100%; min-height:40px; padding:8px 10px; border:1px solid #dce5e1; border-radius:7px; color:#243a35; background:#fff; font:inherit; font-weight:450; outline:none; }
.field input:focus, .field select:focus { border-color:#00b9bf; box-shadow:0 0 0 3px #e2f7f7; }
.field small { color:#899893; font-size:10px; font-weight:400; line-height:1.4; }
.input-suffix { position:relative; }
.input-suffix input { padding-right:67px; }
.input-suffix span { position:absolute; right:11px; top:50%; transform:translateY(-50%); color:#8a9994; font-size:10px; font-weight:450; }
.primary-button, .quiet-button, .danger-button, .primary-link, .availability-label {
    box-sizing:border-box;
    width:142px;
    min-width:142px;
    height:44px;
    min-height:44px;
    padding:0 12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border-radius:7px;
    font-size:12px;
    line-height:1.2;
    font-weight:700;
    text-align:center;
    cursor:pointer;
}
.primary-button, .primary-link { border:0; background:#00b9bf; color:#062d3d; text-decoration:none; }
.primary-button { margin-top:20px; }
.primary-button:hover, .primary-link:hover { background:#009ea6; color:white; }
.primary-button:disabled, .quiet-button:disabled, .danger-button:disabled { cursor:not-allowed; opacity:.58; }
.form-message { padding:10px 12px; margin-top:14px; border-radius:7px; font-size:11px; }
.mensaje-error { background:#fff0ee; color:#a43f34; }
.mensaje-exito { background:#eaf7f1; color:#27724f; }
.empty-state { min-height:260px; display:grid; align-content:center; justify-items:center; text-align:center; padding:20px; }
.empty-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:#e5f8f8; color:#078b98; font-size:23px; }
.empty-state h3 { margin:14px 0 5px; font-size:14px; }
.empty-state p { max-width:285px; color:#7a8985; font-size:11px; line-height:1.6; margin:0; }
.lista-intervalos { display:grid; gap:9px; }
.calendar-day-panel { padding:24px; }
.calendar-day-toolbar { display:grid; grid-template-columns:auto 1fr auto minmax(180px,220px); gap:16px; align-items:end; padding-bottom:20px; margin-bottom:8px; border-bottom:1px solid #dce8eb; }
.calendar-day-toolbar > .quiet-button { width:160px; min-width:160px; height:50px; min-height:50px; margin:0; }
.calendar-date { text-align:center; }
.calendar-date h2 { margin:0; text-transform:capitalize; font-size:24px; }
.text-button { border:0; background:transparent; color:#008f98; font-weight:700; padding:5px 10px; }
.calendar-date-input { margin:0; }
.calendar-date-input input { box-sizing:border-box; height:50px; min-height:50px; }
.calendar-slots { display:grid; }
.calendar-site-group { margin-top:20px; border:1px solid #dce8eb; border-radius:12px; overflow:hidden; background:#fff; }
.agenda-tabs { display:flex; gap:8px; overflow-x:auto; padding:4px 2px 10px; border-bottom:1px solid #dce8eb; }
.agenda-tab { appearance:none; box-sizing:border-box; flex:0 0 250px; min-width:0; min-height:72px; display:grid; align-content:center; gap:4px; padding:10px 14px; border:1px solid #dce8eb; border-radius:9px; background:#fff; color:#526d76; text-align:left; cursor:pointer; }
.agenda-tab strong { color:#294b57; font-size:13px; line-height:1.35; }
.agenda-tab small { color:#71868e; font-size:11px; }
.agenda-tab:hover { border-color:#9edbdd; background:#f8fdfd; }
.agenda-tab.active { border-color:#00b9bf; background:#eaf9f9; box-shadow:inset 0 -3px #00b9bf; }
.agenda-tab.active strong { color:#073346; }
.calendar-site-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 18px; background:#eef8f8; border-bottom:1px solid #dce8eb; }
.calendar-site-heading h3 { margin:0; color:#073346; font-size:18px; }
.calendar-site-heading span { color:#607b86; font-size:14px; }
.calendar-site-heading-actions { display:flex; flex:1; min-width:0; align-items:center; justify-content:flex-end; gap:14px; }
.calendar-site-heading-actions > span { text-align:right; line-height:1.35; }
.calendar-site-buttons { display:flex; flex:0 0 auto; align-items:center; gap:8px; }
.calendar-site-buttons > .quiet-button { width:174px; height:50px; min-height:50px; margin:0; }
.agenda-error-overlay { position:fixed; inset:0; z-index:1100; display:grid; place-items:center; padding:16px; background:#062d3d99; }
.agenda-error-dialog { width:min(440px,100%); padding:26px; border:1px solid #dce8eb; border-radius:12px; background:#fff; box-shadow:0 18px 55px #062d3d40; }
.agenda-error-dialog h2 { margin:0 0 12px; color:#073346; font-size:21px; }
.agenda-error-dialog p { margin:0 0 22px; color:#36545f; line-height:1.5; }
.agenda-error-dialog .quiet-button { width:160px; min-height:50px; margin:0; }
.agenda-confirm-dialog { width:min(520px,100%); }
.agenda-confirm-dialog p { margin-bottom:14px; }
.agenda-confirm-label { display:block; margin-bottom:6px; color:#526d76; font-size:13px; font-weight:700; }
.agenda-confirm-code { display:block; overflow-wrap:anywhere; margin-bottom:18px; padding:12px; border-radius:7px; background:#f0f7f8; color:#073346; font-size:15px; font-weight:700; user-select:all; }
.agenda-confirm-dialog .agenda-confirm-reference { font-size:12px; }
.calendar-extension-form { display:grid; grid-template-columns:minmax(220px,2fr) repeat(2,minmax(130px,1fr)); gap:14px; align-items:end; padding:18px; background:#f9fcfc; border-bottom:1px solid #dce8eb; }
.calendar-extension-description { align-self:center; }
.calendar-extension-description strong { color:#073346; }
.calendar-extension-description p { margin:4px 0 0; color:#607b86; font-size:13px; }
.calendar-extension-actions { display:flex; gap:8px; grid-column:1/-1; }
.calendar-extension-actions>button { margin:0; }
.calendar-booking-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:18px; border-bottom:1px solid #dce8eb; background:#f9fcfc; }
.calendar-booking-form .field-wide { grid-column:1/-1; }
.calendar-booking-form textarea { min-height:72px; resize:vertical; }
.calendar-patient-lookup-action { align-self:end; }
.calendar-patient-lookup-action > .quiet-button { width:160px; min-height:50px; margin:0; }
.calendar-booking-actions { display:flex; gap:8px; grid-column:1/-1; }
.calendar-booking-actions>button { width:160px; min-height:50px; margin:0; }
.calendar-bookings { display:grid; border-bottom:1px solid #dce8eb; }
.calendar-booked-slot { display:grid; grid-template-columns:75px minmax(0,1fr) auto; gap:16px; align-items:center; padding:13px 18px; background:#fff8e9; border-bottom:1px solid #f0e2c2; }
.calendar-booked-slot time { font-size:18px; font-weight:700; color:#073346; font-variant-numeric:tabular-nums; }
.calendar-booked-main { display:grid; gap:4px; }
.calendar-booked-main span,.calendar-booked-main small { color:#607b86; font-size:13px; }
.calendar-booked-main .calendar-patient-phone { color:#007e88; font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:2px; width:fit-content; }
.treatment-panel { max-width:1050px; }
.treatment-filter { max-width:420px; margin:18px 0; }
.treatment-list { display:grid; }
.treatment-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:18px; align-items:center; padding:16px 4px; border-top:1px solid #e2ecee; }
.treatment-row>div:first-child { display:grid; gap:5px; }
.treatment-row span,.treatment-row small { color:#68808b; }
.treatment-description { margin-top:16px; }
.treatment-description textarea { min-height:70px; resize:vertical; }
.treatment-actions>button { margin:0; }
.calendar-slot { display:grid; grid-template-columns:75px minmax(0,1fr) auto; align-items:center; gap:16px; padding:13px 10px; border-bottom:1px solid #edf2f3; }
.calendar-slot time { font-size:18px; font-weight:700; color:#073346; font-variant-numeric:tabular-nums; }
.calendar-slot-main { display:grid; gap:3px; }
.calendar-slot-main span { color:#607b86; font-size:14px; }
.availability-label { border:1px solid #cce9eb; color:#137568; background:#e6f6f2; }
.tarjeta-intervalo { display:grid; grid-template-columns:44px minmax(0,1fr) 48px 291px; align-items:center; gap:11px; min-width:0; min-height:66px; padding:10px 11px; border:1px solid #e6ece9; border-radius:9px; }
.datos-intervalo { min-width:0; }
.titulo-intervalo { overflow-wrap:anywhere; }
.intervalo-acciones { display:flex; align-items:center; justify-content:flex-end; gap:7px; min-width:0; }
.intervalo-acciones .quiet-button { margin:0; }
.dia-intervalo { width:38px; height:38px; display:grid; place-items:center; border-radius:9px; background:#e5f8f8; color:#078b98; font-size:10px; font-weight:750; }
.titulo-intervalo { color:#52635e; font-size:10px; margin-bottom:4px; }
.titulo-intervalo span, .horario-intervalo span { color:#a3afab; }
.horario-intervalo { color:#1d3933; font-size:14px; font-weight:700; }
.frecuencia-intervalo { display:flex; align-items:baseline; gap:3px; color:#078b98; }
.frecuencia-intervalo strong { font-size:17px; }
.frecuencia-intervalo span { color:#7f918b; font-size:9px; }
.icon-button { width:28px; height:28px; border:0; border-radius:6px; background:transparent; color:#879690; font-size:20px; cursor:pointer; }
.icon-button:hover { background:#fff0ee; color:#b34135; }
.list-footnote { margin:14px 2px 0; color:#87948f; font-size:10px; line-height:1.5; }
.prototype-note { display:flex; align-items:flex-start; gap:10px; margin-top:17px; padding:14px 16px; border:1px solid #cfebed; border-radius:9px; background:#f0fafa; color:#526d76; }
.note-icon { width:18px; height:18px; flex:0 0 18px; display:grid; place-items:center; border-radius:50%; background:#d8f4f4; color:#087f88; font-size:11px; font-weight:750; }
.prototype-note p { margin:0; font-size:10px; line-height:1.65; }
.welcome-panel { min-height:340px; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:flex-end; padding:42px 5%; border-radius:15px; background:linear-gradient(90deg,#062d3d1a 0%,#062d3d42 42%,#062d3ddd 100%),url('/images/pgg-cuidado-pies.jpg') center 48%/cover no-repeat; color:white; }
.welcome-panel::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 0%,#062d3d08 32%,#062d3d38 100%); pointer-events:none; }
.welcome-copy { position:relative; z-index:1; width:min(52%,620px); margin-left:auto; }
.welcome-panel .eyebrow { color:#7ce6e8; }
.welcome-panel h1 { max-width:620px; font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; text-transform:uppercase; letter-spacing:.15px; font-size:clamp(32px,3.5vw,46px); line-height:1.05; }
.welcome-panel .page-intro { color:#d6eff0; }
.welcome-panel .primary-link { margin-top:21px; background:#00c3c9; color:#052f40; }
.welcome-panel .primary-link:hover { background:#fff; }
.welcome-art { position:relative; width:260px; height:200px; margin-right:7%; }
.art-ring { position:absolute; border:1px solid #79bca987; border-radius:50%; transform:rotate(-23deg); }
.ring-one { width:220px; height:132px; top:36px; left:15px; }
.ring-two { width:185px; height:116px; top:43px; left:33px; transform:rotate(28deg); }
.art-card { position:absolute; top:63px; left:50px; display:grid; gap:5px; width:178px; padding:15px; border:1px solid #ffffff40; border-radius:10px; background:#ffffff16; backdrop-filter:blur(4px); transform:rotate(-4deg); }
.art-card span { color:#9bd5c1; font-size:8px; letter-spacing:1.4px; }
.art-card strong { font-size:13px; }
.art-card i { color:#c5ded5; font-size:9px; font-style:normal; }
.home-section { margin-top:35px; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:17px; }
.section-heading h2 { margin:0; font-size:20px; letter-spacing:-.55px; }
.muted-label { color:#87948f; font-size:10px; }
.module-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.module-card { min-height:175px; padding:18px; background:#fff; border:1px solid var(--line); border-radius:10px; text-decoration:none; }
.active-module { border-top:3px solid #00b9bf; }
.module-number { color:#078b98; font-size:9px; font-weight:750; letter-spacing:1px; }
.module-card h3 { margin:14px 0 7px; font-size:15px; }
.module-card p { min-height:39px; margin:0; color:#778680; font-size:10px; line-height:1.6; }
.module-link { display:inline-block; margin-top:14px; color:#078b98; font-size:10px; font-weight:650; }
.upcoming-module .module-number, .upcoming-module .module-link { color:#95a29e; }
.home-footnote { display:flex; align-items:center; gap:8px; margin-top:22px; color:#778680; font-size:10px; }
.setup-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:16px; }
.config-tabs { display:flex; gap:8px; margin:0 0 16px; border-bottom:1px solid var(--line); }
.config-tab { appearance:none; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--muted); padding:12px 20px; font:inherit; font-weight:700; cursor:pointer; }
.config-tabs, .tab-panel { font-size:1.04rem; }
.tab-panel .field > span, .tab-panel .register-row strong { font-size:1rem; }
.tab-panel input:not([type=checkbox]), .tab-panel select { font-size:1rem; }
.tab-panel .register-group h3 { font-size:1.08rem; }
.tab-panel .register-row small, .tab-panel .panel-heading p { font-size:.94rem; }
.config-tab:hover, .config-tab.active { color:var(--navy); }
.config-tab.active { border-bottom-color:var(--turquoise); }
.tab-panel { display:grid; gap:18px; }
.list-panel { gap:0; }
.list-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:14px; }
.list-heading h2 { margin:0; color:var(--navy); font-size:19px; }
.list-heading h2 span { margin-left:5px; color:#078b98; font-size:13px; }
.list-filter { width:min(350px,100%); margin:0 0 8px; }
.breadcrumbs { display:flex; align-items:center; gap:10px; margin:0 0 16px; color:var(--muted); font-size:14px; }
.breadcrumbs button { border:0; background:transparent; color:#078b98; font:inherit; cursor:pointer; padding:3px 0; }
.breadcrumbs button:hover { text-decoration:underline; }
.breadcrumbs strong { color:var(--navy); font-weight:700; }
.record-form { max-width:900px; }
.record-form .form-row { align-items:start; }
.tab-panel .panel-heading { margin:0; }
.form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:end; gap:16px; }
.form-row .primary-button { justify-self:start; }
.helper-text { margin:0; color:var(--muted); font-size:13px; }
.site-check-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.site-check { display:flex; align-items:flex-start; gap:10px; padding:12px; border:1px solid var(--line); border-radius:10px; cursor:pointer; }
.site-check input { margin-top:3px; accent-color:var(--turquoise); }
.field .site-check input[type=checkbox] { flex:0 0 18px; width:18px; min-height:18px; height:18px; margin:0 2px 0 0; padding:0; accent-color:var(--turquoise); }
.site-check span { display:grid; gap:4px; }
.site-check small { color:var(--muted); }
.row-actions, .form-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.row-actions { justify-content:flex-end; }
.form-actions > .primary-button, .form-actions > .quiet-button, .form-actions > .danger-button,
.row-actions > .primary-button, .row-actions > .quiet-button, .row-actions > .danger-button { width:142px; margin:0; }
.form-panel > .form-actions { margin-top:16px; }
.danger-button { border:1px solid #ead0d0; background:#fff; color:#a04a4a; }
.danger-button:hover { border-color:#d9b1b1; background:#fff7f7; }
.row-actions > .quiet-button, .row-actions > .danger-button { margin:0; }
.delete-overlay { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:20px; background:rgb(6 30 43 / 45%); }
.delete-dialog { width:min(100%,520px); padding:24px; }
.delete-dialog h2 { margin:0 0 10px; color:var(--navy); }
.delete-dialog p { color:var(--muted); }
.setup-card { display:grid; gap:15px; }
.setup-card .panel-heading { margin-bottom:0; }
.setup-card .panel-heading h2 { color:var(--navy); }
.setup-card .primary-button { justify-self:start; margin-top:0; }
.setup-empty { margin-bottom:18px; padding:28px; }
.setup-empty h2 { margin:0 0 8px; font-size:18px; }
.setup-empty p { max-width:700px; margin:0; color:var(--muted); font-size:13px; line-height:1.6; }
.setup-registers { margin-top:18px; }
.setup-registers > .panel-heading { align-items:flex-end; }
.clinic-filter { width:min(280px,38vw); }
.register-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 30px; }
.register-group h3 { display:flex; justify-content:space-between; align-items:center; margin:0 0 10px; padding-bottom:9px; border-bottom:1px solid var(--line); color:var(--navy); font-size:13px; }
.register-group h3 span { color:#078b98; font-size:10px; }
.register-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid #edf2f3; }
.register-row > div { display:grid; gap:4px; min-width:0; }
.register-row > .row-actions { display:flex; flex:0 0 auto; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.register-row strong { color:#294b57; font-size:11px; font-weight:700; }
.register-row small { color:#80939a; font-size:9px; }
.quiet-button { flex:0 0 auto; border:1px solid #cce9eb; background:#f4fbfb; color:#087f88; }
.quiet-button:hover { border-color:#00b9bf; background:#e5f8f8; }
.setup-list-empty { min-height:160px; }
@media(max-width:1000px) { .schedule-layout { grid-template-columns:1fr; } .module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:1000px) { .setup-grid, .register-grid { grid-template-columns:1fr; } }
@media(max-width:700px) { .form-row, .site-check-list { grid-template-columns:1fr; } .config-tab { padding:11px 14px; } }
@media(max-width:700px) { .register-row { align-items:flex-start; flex-direction:column; } .register-row > .row-actions { justify-content:flex-start; } .list-heading { align-items:flex-start; flex-direction:column; } }
@media(max-width:760px) { .calendar-day-toolbar { grid-template-columns:1fr 1fr; } .calendar-day-toolbar > .quiet-button { width:100%; min-width:0; } .calendar-date { grid-column:1/-1; grid-row:1; } .calendar-date-input { grid-column:1/-1; } .calendar-slot { grid-template-columns:58px minmax(0,1fr); gap:10px; } .availability-label { grid-column:2; justify-self:start; } }
@media(max-width:760px) { .calendar-site-heading { align-items:flex-start; flex-direction:column; } .calendar-site-heading-actions { width:100%; justify-content:space-between; } .calendar-extension-form { grid-template-columns:1fr; } .calendar-extension-actions { grid-column:auto; } }
@media(max-width:760px) { .calendar-site-heading-actions { width:100%; flex-direction:column; align-items:flex-start; } .calendar-site-heading-actions > span { text-align:left; } .calendar-site-buttons { width:100%; } .calendar-site-buttons > .quiet-button { flex:1 1 0; width:auto; } }
@media(max-width:760px) { .calendar-booking-form { grid-template-columns:1fr; } .calendar-booking-form .field-wide,.calendar-booking-actions { grid-column:auto; } .calendar-booked-slot { grid-template-columns:58px minmax(0,1fr); gap:10px; } .calendar-booking-cancel { grid-column:2; } .treatment-row { grid-template-columns:1fr auto; } .treatment-row .row-actions { grid-column:1/-1; justify-content:flex-start; } }
@media(max-width:650px) { .content { padding:25px 16px 40px; } .page-heading { display:block; } .prototype-badge { margin-top:15px; } .welcome-panel { min-height:370px; justify-content:flex-start; align-items:flex-end; padding:26px 22px; background-position:38% center; } .welcome-panel .welcome-copy { width:100%; margin:0; } .welcome-panel h1 { font-size:clamp(28px,8vw,38px); } .welcome-panel::after { background:linear-gradient(0deg,#062d3de8 0%,#062d3d9c 56%,#062d3d08 100%); } .module-grid { grid-template-columns:1fr; } .tarjeta-intervalo { grid-template-columns:38px minmax(0,1fr) 43px; gap:7px; padding:8px; } .intervalo-acciones { grid-column:2/4; justify-self:end; flex-wrap:wrap; gap:6px; } .horario-intervalo { font-size:12px; } .form-grid { gap:12px 8px; } .setup-registers > .panel-heading { display:block; } .clinic-filter { width:100%; margin-top:16px; } .register-row { align-items:flex-start; } }

/* Accesos de usuario y gestión de cuentas */
.auth-page{min-height:100vh;display:grid;place-items:center;background:#f4f9fa;padding:32px;color:#123548}
.auth-card{width:min(100%,460px);background:#fff;border:1px solid #d7e6e9;border-radius:18px;padding:38px;box-shadow:0 16px 44px rgba(12,55,70,.08)}
.auth-card-wide{width:min(100%,560px)}
.auth-logo{display:block;width:132px;height:auto;margin:0 auto 24px}
.auth-card h1{margin:0 0 14px;color:#0c3042}
.auth-card form{display:grid;gap:18px;margin-top:24px}
.auth-card .primary-button{width:100%;text-align:center}
.auth-button-link{display:inline-block;margin-top:16px;text-decoration:none}
.auth-remember{display:flex;gap:9px;align-items:center;color:#536f7b}
.auth-setup-link{display:block;margin-top:24px;text-align:center;color:#148a98}
.logout-form{margin-top:18px}
.logout-button{border:0;background:none;color:#54717c;padding:4px 0;cursor:pointer;font:inherit;font-size:.9rem}
.account-links{display:grid;gap:8px;margin-top:12px}.account-links>a{font-size:.9rem;color:#148a98}
.users-panel{margin-bottom:24px}
.field-help{font-size:.9rem;color:#627b86;margin:14px 0 0}
.user-list{display:grid}
.user-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:20px;align-items:center;padding:18px 4px;border-top:1px solid #e2ecee}
.user-row>div{display:grid;gap:4px}
.user-row span,.user-row small{color:#68808b}
.user-status{color:#168775!important;background:#e8f7f4;border-radius:99px;padding:6px 12px;font-size:.85rem}
@media(max-width:700px){.auth-card{padding:26px}.user-row{grid-template-columns:1fr auto}.user-row>div:nth-child(2){grid-column:1}.user-status{grid-column:2;grid-row:1}}
.patient-form-panel{max-width:900px}
.patient-save-actions>button{margin:0}
.patient-site-field{border:0;padding:0;margin:20px 0 10px;min-width:0}
.patient-site-field legend{font-size:1rem;font-weight:700;color:#36545f;margin-bottom:6px}
.patient-site-field>small{display:block;color:#68808b;margin-bottom:10px}
.patient-site-field .site-check{align-items:center;min-height:64px;padding:12px 14px}
.patient-site-field .site-check strong{font-size:14px;color:#173e4d}
.patient-site-field .site-check small{font-size:12px;line-height:1.35}
.patient-documents{border-top:1px solid #d8e7e8;margin-top:28px;padding-top:24px}
.patient-documents h2{font-size:1.2rem;margin:0 0 8px;color:#123b4a}
.patient-document-list{display:grid;gap:10px;margin-top:16px}
.patient-document-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #d8e7e8;border-radius:12px;padding:14px 16px}
.patient-document-row>div{display:grid;gap:4px;min-width:0}
.patient-document-row span{color:#68808b;font-size:.85rem;overflow-wrap:anywhere}
@media(max-width:640px){.patient-document-row{align-items:flex-start;flex-direction:column}}
.portal-intro{max-width:720px;margin:0 auto 28px}
.portal-intro h1{font-size:clamp(2rem,4vw,3.2rem);color:#063448;margin:8px 0 12px}
.portal-intro>p:last-child{color:#597582;font-size:1.08rem;line-height:1.65}
.portal-booking-panel{max-width:980px;margin:0 auto 22px;padding:clamp(20px,3vw,34px)}
.portal-step-heading{display:flex;align-items:center;gap:15px;margin-bottom:24px}
.portal-step-heading>span{width:40px;height:40px;border-radius:50%;background:#00b8ba;color:#073948;display:grid;place-items:center;font-weight:800;font-size:1.1rem;flex:none}
.portal-step-heading h2{margin:0;color:#123b4a;font-size:1.35rem}
.portal-step-heading p{margin:5px 0 0;color:#66808a}
.portal-search-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 18px}
.portal-search-grid .field{margin:0;display:flex;flex-direction:column;justify-content:flex-start;gap:7px}
.portal-search-grid .field-help{margin:0}
.portal-readonly-value{min-height:44px;display:flex;align-items:center;padding:10px 14px;border:1px solid #d6e4e5;border-radius:10px;background:#f7fafb;color:#284b57;font-size:.95rem}
.portal-search-action,.portal-confirm-actions{display:flex;gap:12px;align-items:center;margin-top:24px}
.portal-confirm-actions .primary-button,.portal-confirm-actions .quiet-button{width:160px;min-width:160px;height:50px;min-height:50px;margin:0}
.portal-confirm-actions a.quiet-button{text-decoration:none}
.portal-company-field{display:none!important}
.portal-patient-panel:has(option[value="compania"]:checked) .portal-company-field{display:flex!important}
.portal-patient-panel:has(option[value="compania"]:checked) p.portal-company-field{display:block!important}
.portal-search-status{margin:16px 0 0;color:#36545f;font-weight:600}
.portal-slots{border-top:1px solid #dce9ec;margin-top:26px;padding-top:20px}
.portal-slot-caption{font-weight:700;color:#36545f}
.portal-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:10px}
.portal-slot{min-height:66px;border:1px solid #b9dce1;background:#f7fcfc;border-radius:12px;color:#087e8b;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;text-decoration:none}
.portal-slot input{width:16px;height:16px;accent-color:#00b8ba}
.portal-slot:has(input:checked){border-color:#00b8ba;background:#e4f8f8;box-shadow:0 0 0 2px #c6eeee}
.portal-continue-button{width:240px;min-width:240px;margin:0}
.portal-slot strong{font-size:1.1rem}
.portal-slot span{font-size:.78rem;color:#6c8992}
.portal-slot:hover,.portal-slot.selected{border-color:#00b8ba;background:#e4f8f8;box-shadow:0 0 0 2px #c6eeee}
.portal-patient-panel{margin-top:20px}
.portal-patient-panel .validation-summary-errors{color:#b42318;margin-bottom:16px}
.portal-confirmation{max-width:720px;margin:0 auto;text-align:center;padding:42px 24px}
.portal-confirmation h2{font-size:2rem;color:#063448;margin:8px 0 18px}
.portal-confirmation>strong{display:block;font-size:1.3rem;color:#008b91;margin:8px}
.portal-confirmation-icon{width:64px;height:64px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:#dff7ef;color:#12805c;font-size:2rem;font-weight:800}
.portal-cancel-link{display:inline-block;margin-top:4px;color:#087e8b;font-weight:700;text-decoration:underline}
.portal-confirmed-list{display:grid;gap:12px;margin:22px auto;max-width:520px;text-align:left}
.portal-confirmed-list article,.portal-cancel-summary{display:grid;gap:8px;border:1px solid #d8e7e8;border-radius:14px;padding:18px;background:#fff}
.portal-confirmed-list article p,.portal-cancel-summary p{margin:0;color:#54717d}
.portal-confirmed-list article strong,.portal-cancel-summary strong{color:#008b91;font-size:1.08rem}
.portal-confirmed-list article span,.portal-cancel-summary span{color:#66808a;font-size:.9rem}
.portal-confirmed-list code{display:block;overflow-wrap:anywhere;color:#123b4a;background:#f2f7f8;padding:9px;border-radius:8px;font-weight:700;letter-spacing:.04em}
.portal-confirm-actions-centered{justify-content:center;flex-wrap:wrap}
.portal-patient-found{margin-top:14px;color:#12805c;font-weight:700}
.portal-patient-lookup-form{display:grid;grid-template-columns:minmax(0,330px) 180px;grid-template-areas:"field action" "help help";column-gap:14px;row-gap:7px;align-items:end;margin-bottom:20px}
.portal-patient-lookup-form .field{grid-area:field}
.portal-patient-lookup-form .field input{height:50px;min-height:50px}
.portal-patient-lookup-form .quiet-button{grid-area:action;width:180px;min-width:180px;height:50px;min-height:50px;margin:0}
.portal-lookup-help{grid-area:help;color:#899893;font-size:.78rem;line-height:1.4}
.portal-lookup-message{margin:0 0 14px;color:#54717d}
.portal-patient-panel .field small{font-size:.78rem}
.portal-cancel-panel{max-width:700px}
.portal-change-section{margin-top:24px;padding:22px;border:1px solid #d8e7e8;border-radius:12px;background:#f8fcfc}
.portal-change-section h3{margin:0 0 8px;color:#063448;font-size:1.15rem}
.portal-change-section p{margin:0 0 16px;color:#54717d}
.portal-change-section .field{max-width:300px}
.portal-cancel-action{margin-top:20px}
.portal-cancel-action .primary-button{margin:0;width:160px;min-width:160px;height:50px;min-height:50px}
.portal-cancel-summary{margin-top:24px}
.portal-cancelled-label{color:#12805c!important;font-weight:700}
@media(max-width:820px){.portal-search-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.portal-search-grid{grid-template-columns:1fr}.portal-confirm-actions{align-items:stretch;flex-direction:column}.portal-confirm-actions button{width:100%}.portal-patient-lookup-form{grid-template-columns:1fr;grid-template-areas:"field" "help" "action"}.portal-patient-lookup-form .quiet-button{width:100%;min-width:0}}
.patient-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,2fr) minmax(130px,.7fr) auto;gap:14px;align-items:end;padding:18px 0 22px}
.patient-search-button{min-height:44px}
.patient-list{display:grid}
.patient-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(190px,1fr) auto auto;gap:18px;align-items:center;padding:16px 4px;border-top:1px solid #e2ecee}
.patient-main,.patient-contact{display:grid;gap:5px;min-width:0}
.patient-main>span,.patient-contact>span,.patient-count{font-size:.9rem;color:#68808b;overflow-wrap:anywhere}
.status-pill{border-radius:99px;padding:6px 12px;font-size:.84rem;text-align:center;white-space:nowrap}
.status-pill.active{color:#168775;background:#e8f7f4}.status-pill.inactive{color:#687c84;background:#edf1f2}
.patient-row .row-actions{display:flex;gap:8px}
.patient-confirm{grid-column:1/-1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff8e9;border:1px solid #f0dcae;border-radius:9px;padding:12px;color:#604d21}
.duplicate-warning{margin-top:20px;padding:18px;background:#fff8e9;border:1px solid #f0dcae;border-radius:10px;color:#604d21}
.duplicate-warning h3{margin:0 0 8px;font-size:1.08rem}.duplicate-warning ul{margin-bottom:8px}
.patient-count{margin:14px 0 0}
.company-panel{margin-bottom:22px}
.company-filter{width:min(380px,100%);margin:0 0 18px}
.company-list,.private-price-list{display:grid}
.company-row,.private-price-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 4px;border-top:1px solid #e2ecee}
.company-row>div:first-child,.private-price-row>div:first-child{display:grid;gap:5px;min-width:0}
.company-row strong,.private-price-row strong{color:#294b57;font-size:14px}
.company-row span,.private-price-row span{color:#68808b;font-size:13px}
.company-row .row-actions,.private-price-row .row-actions{flex:0 0 auto}
.company-rates-panel form{margin-bottom:18px}
.private-prices-panel{margin-top:22px}
@media(max-width:900px){.company-row,.private-price-row{align-items:flex-start;flex-direction:column}.company-row .row-actions,.private-price-row .row-actions{justify-content:flex-start}}
@media(max-width:900px){.patient-filters{grid-template-columns:1fr 1fr}.patient-search{grid-column:1/-1}.patient-row{grid-template-columns:minmax(160px,1fr) auto}.patient-contact{grid-column:1}.patient-row .row-actions{grid-column:1/-1}.patient-confirm{grid-column:1/-1}}
@media(max-width:560px){.patient-filters{grid-template-columns:1fr}.patient-search{grid-column:auto}.patient-row{grid-template-columns:1fr auto;gap:10px}.patient-main{grid-column:1/-1}.patient-contact{grid-column:1/-1}.status-pill{grid-column:2;grid-row:1;justify-self:end}}
