:root {
    --product-blue: #1264ef;
    --owner-steel: #174a67;
    --corporate-orange: #ef8a22;
    --navy: var(--owner-steel);
    --navy-dark: #10384f;
    --teal: var(--product-blue);
    --teal-soft: #eaf1ff;
    --orange: var(--corporate-orange);
    --ink: #17313f;
    --muted: #627783;
    --line: #d7e5e8;
    --surface: #ffffff;
    --background: #edf4f6;
    --danger: #a82d3c;
    --warning: #9a6418;
    --success: #176d49;
    --radius: 14px;
    --shadow: 0 12px 34px rgba(23, 74, 103, .08);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--background); }
body { margin: 0; min-height: 100%; color: var(--ink); background: var(--background); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.5; }
a { color: var(--navy); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.skip-link { position: fixed; z-index: 9999; top: 8px; left: 8px; padding: 10px 14px; border-radius: 8px; color: #fff; background: var(--product-blue); font-weight: 850; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); outline: 3px solid #fff; }
:focus-visible { outline: 3px solid rgba(18,100,239,.42); outline-offset: 2px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 260px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; padding: 24px 18px; color: #fff; background: linear-gradient(180deg, var(--navy-dark), var(--navy)); }
.brand { display: flex; gap: 12px; align-items: center; margin-bottom: 28px; }
.brand-mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; color: #fff; background: var(--teal); font-size: 1.35rem; font-weight: 900; box-shadow: 0 8px 20px rgba(0,0,0,.18); }
.brand-mark.product-logo { flex: 0 0 auto; border: 1px solid rgba(255,255,255,.38); background-color: #fff; background-image: url("branding/clinicsuite-symbol-ui.png"); background-position: center; background-repeat: no-repeat; background-size: 132%; }
.brand-name { font-weight: 850; line-height: 1.16; }
.brand-name > strong { color: #79d0ff; }
.brand-version { display: block; margin-top: 4px; color: #bdd4df; font-size: .72rem; }
.nav-label { margin: 20px 10px 8px; color: #a9c6d4; font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.nav-link { display: flex; gap: 10px; align-items: center; min-height: 44px; margin: 4px 0; padding: 10px 12px; border-left: 3px solid transparent; border-radius: 10px; color: #eaf5f8; text-decoration: none; font-size: .93rem; font-weight: 700; }
.nav-link:hover, .nav-link:focus { background: rgba(255,255,255,.1); outline: none; }
.nav-link-active { border-left-color: var(--corporate-orange); color: #fff; background: rgba(255,255,255,.13); }
.nav-icon { display: inline-grid; place-items: center; width: 22px; flex: 0 0 22px; color: #8ed5ff; font-weight: 900; }
.sidebar-user { margin-top: 28px; padding: 14px; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; background: rgba(0,0,0,.1); }
.sidebar-user strong { display: block; font-size: .9rem; }
.sidebar-user small { display: block; margin: 3px 0 10px; color: #c5dbe5; overflow-wrap: anywhere; }
.logout-form button { width: 100%; padding: 8px 10px; border: 1px solid rgba(255,255,255,.25); border-radius: 8px; color: #fff; background: transparent; font-weight: 750; }
.owner-credit { display: flex; gap: 10px; align-items: center; margin-top: 14px; padding: 12px; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; color: #c5dbe5; background: rgba(0,0,0,.1); font-size: .69rem; line-height: 1.35; }
.owner-credit strong { color: #fff; }
.owner-logo { flex: 0 0 auto; width: 82px; height: 56px; border-radius: 8px; background-color: #fff; background-image: url("branding/24-7-ingenieria.jpg"); background-position: center 48%; background-repeat: no-repeat; background-size: 150%; box-shadow: 0 5px 15px rgba(0,0,0,.12); }

.main-area { min-width: 0; }
.topbar { display: flex; justify-content: space-between; align-items: center; min-height: 72px; padding: 14px clamp(18px, 4vw, 44px); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.9); }
.topbar-clinic { font-weight: 800; color: var(--navy); }
.privacy-badge { padding: 7px 10px; border-radius: 999px; color: var(--success); background: #e7f7ee; font-size: .76rem; font-weight: 800; }
.content { width: min(1320px, 100%); margin: 0 auto; padding: 30px clamp(18px, 4vw, 44px) 56px; }
.app-footer { padding: 18px clamp(18px, 4vw, 44px) 24px; color: var(--muted); font-size: .74rem; text-align: center; }
.page-heading { display: flex; justify-content: space-between; gap: 16px; align-items: end; margin-bottom: 22px; }
.page-heading h1 { margin: 0; color: var(--navy-dark); font-size: clamp(1.55rem, 3vw, 2.15rem); }
.page-heading p { margin: 6px 0 0; color: var(--muted); }

.flash { margin-bottom: 16px; padding: 13px 15px; border: 1px solid transparent; border-radius: 11px; font-weight: 700; }
.flash-success { color: var(--success); background: #e9f8f0; border-color: #bee6d0; }
.flash-error { color: var(--danger); background: #fff0f2; border-color: #efc4ca; }
.flash-warning { color: var(--warning); background: #fff6df; border-color: #eed79c; }

.card { padding: clamp(18px, 2.4vw, 24px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.narrow-card { max-width: 760px; }
.card + .card { margin-top: 18px; }
.card h2, .card h3 { margin-top: 0; color: var(--navy-dark); }
.card-header { display: flex; justify-content: space-between; gap: 14px; align-items: center; margin-bottom: 16px; }
.card-header h2, .card-header h3 { margin: 0; }
.muted { color: var(--muted); }
.small { font-size: .82rem; }
.subtle { color: var(--muted); font-size: .9rem; }

.metric-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 15px; margin-bottom: 20px; }
.asset-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.metric { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.metric span { display: block; margin-bottom: 10px; color: var(--muted); font-size: .77rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.metric strong { display: block; color: var(--navy); font-size: 1.75rem; }
.two-column { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, .8fr); gap: 18px; align-items: start; }
.three-column { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; }
table { width: 100%; border-collapse: collapse; background: #fff; font-size: .9rem; }
th { padding: 11px 12px; color: #526b78; background: #f4f8f9; font-size: .74rem; text-align: left; text-transform: uppercase; letter-spacing: .05em; }
td { padding: 12px; border-top: 1px solid #e5edef; vertical-align: top; }
tbody tr:hover { background: #f8fbfc; }
.table-link { font-weight: 800; text-decoration: none; }
.number { text-align: right; font-variant-numeric: tabular-nums; }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.field.full { grid-column: 1 / -1; }
.field label { display: block; margin-bottom: 6px; color: #2f4d5c; font-size: .84rem; font-weight: 800; }
.field input, .field select, .field textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #aebfc6; border-radius: 9px; color: var(--ink); background: #fff; }
.field textarea { min-height: 110px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 3px solid rgba(18,100,239,.18); border-color: var(--product-blue); }
.field input:disabled, .field select:disabled, .field textarea:disabled { color: #6e7e85; background: #edf1f3; cursor: not-allowed; }
.ownership-panel { margin-top: 16px; padding: 15px; border: 1px solid #cbdde2; border-radius: 11px; background: #f7fafb; }
.ownership-panel[hidden] { display: none; }
.ownership-panel h3 { margin-bottom: 4px; }
.checkbox-row { display: flex; flex-wrap: wrap; gap: 14px; margin: 12px 0; }
.checkbox-row label { display: inline-flex; gap: 7px; align-items: center; font-size: .85rem; font-weight: 700; }
.form-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 17px; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; gap: 7px; padding: 9px 16px; border: 0; border-radius: 9px; color: #fff; background: var(--product-blue); font-weight: 850; text-decoration: none; }
.button:hover, .button:focus { filter: brightness(.93); }
.button-secondary { color: var(--navy); border: 1px solid #bcd0d6; background: #fff; }
.button-danger { background: var(--danger); }
.button-small { padding: 7px 10px; font-size: .8rem; }
.inline-form { display: inline; }
.search-bar { display: flex; gap: 9px; }
.search-bar input { min-width: min(480px, 65vw); min-height: 44px; padding: 10px 12px; border: 1px solid #aebfc6; border-radius: 9px; }

.badge { display: inline-block; padding: 5px 8px; border-radius: 999px; background: #e9f0f3; color: #42606e; font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.badge-success, .badge-completed, .badge-verified, .badge-posted { color: var(--success); background: #e7f7ee; }
.badge-warning, .badge-waiting, .badge-draft, .badge-pending_signature { color: var(--warning); background: #fff4d8; }
.badge-danger, .badge-urgent, .badge-reversed, .badge-cancelled { color: var(--danger); background: #ffebee; }
.badge-in_care, .badge-priority { color: var(--navy); background: #e7f1f6; }
.badge-verified { color: var(--success); background: #e7f7ee; }
.badge-in_progress, .badge-pending { color: var(--warning); background: #fff4d8; }
.badge-not_applicable { color: #596b75; background: #edf1f3; }

.definition-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.definition { padding: 12px; border-radius: 10px; background: #f5f9fa; }
.definition dt { color: var(--muted); font-size: .73rem; font-weight: 850; text-transform: uppercase; }
.definition dd { margin: 5px 0 0; font-weight: 700; }
.timeline { display: grid; gap: 12px; }
.timeline-item { position: relative; padding: 15px 16px 15px 19px; border: 1px solid var(--line); border-left: 4px solid var(--teal); border-radius: 10px; background: #fff; }
.timeline-item h3 { margin: 0 0 6px; font-size: 1rem; }
.timeline-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 9px; color: var(--muted); font-size: .78rem; }
.timeline-text { white-space: pre-wrap; line-height: 1.5; }
.hash { color: #607984; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .69rem; overflow-wrap: anywhere; }
.legal-note { padding: 13px 15px; border-left: 4px solid var(--orange); border-radius: 8px; color: #60461f; background: #fff8e9; font-size: .88rem; }

.privacy-panel { margin-top: 24px; padding: 20px; border: 1px solid #c7dddf; border-radius: 13px; background: #f8fcfc; }
.policy-details { margin: 14px 0; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.policy-details summary, .action-panel summary, .evidence-history summary { padding: 12px 14px; color: var(--navy); cursor: pointer; font-weight: 800; }
.policy-text { max-height: 420px; overflow: auto; padding: 16px; border-top: 1px solid var(--line); color: #304d5b; font-size: .88rem; line-height: 1.55; }
.choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 12px 0 18px; }
.choice-grid.compact { margin-top: 8px; }
.choice-card { display: flex; gap: 9px; align-items: flex-start; padding: 12px; border: 1px solid #c9dadd; border-radius: 10px; background: #fff; cursor: pointer; }
.choice-card input { margin-top: 3px; }
.choice-card strong, .choice-card small { display: block; }
.choice-card small { margin-top: 4px; color: var(--muted); font-size: .76rem; line-height: 1.35; }
.consent-checklist { display: grid; gap: 9px; margin: 12px 0 18px; }
.consent-checklist label { display: flex; gap: 10px; align-items: flex-start; padding: 11px 12px; border: 1px solid #d5e4e7; border-radius: 9px; background: #fff; font-size: .88rem; }
.consent-checklist input { margin-top: 3px; }
.consent-checklist.compact label { padding: 8px 10px; }
.privacy-fields { margin-top: 14px; }
.optional-consent { margin-top: 18px; padding: 15px; border: 1px solid #d5e4e7; border-radius: 10px; background: #fff; }
.optional-consent h3 { margin-bottom: 5px; }
.privacy-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.privacy-actions-grid { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.action-panel { border: 1px solid var(--line); border-radius: 11px; background: #f8fbfc; }
.action-panel form { padding: 0 14px 14px; }
.evidence-history { margin-top: 18px; border-top: 1px solid var(--line); }

.compliance-disclaimer { margin-bottom: 18px; }
.compliance-reminder a { color: inherit; font-weight: 850; }
.compliance-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.license-evidence .hash { margin: 14px 0 0; }
.compliance-executive { margin-bottom: 16px; }
.compliance-executive-head { display: flex; justify-content: space-between; gap: 24px; align-items: center; }
.compliance-executive-head h2 { margin: 5px 0 6px; }
.compliance-executive-head p { margin: 0; color: var(--muted); }
.compliance-percent { flex: 0 0 auto; min-width: 112px; padding: 12px 16px; border: 1px solid #cfe0e7; border-radius: 14px; background: #f7fbfc; text-align: center; }
.compliance-percent strong, .compliance-percent span { display: block; }
.compliance-percent strong { color: var(--navy); font-size: 2rem; line-height: 1; }
.compliance-percent span { margin-top: 5px; color: var(--muted); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.compliance-progress { height: 10px; margin: 18px 0 12px; border-radius: 999px; background: #e7eef1; overflow: hidden; }
.compliance-progress > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--product-blue), var(--teal)); }
.compliance-status-strip { display: flex; flex-wrap: wrap; gap: 8px 18px; color: #4c6874; font-size: .82rem; }
.compliance-status-strip strong { color: var(--navy); }
.compliance-category-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0 0 16px; }
.compliance-category-card { display: grid; gap: 7px; min-height: 156px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; color: inherit; background: #fff; text-decoration: none; box-shadow: 0 7px 20px rgba(22, 55, 72, .04); transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.compliance-category-card:hover, .compliance-category-card:focus-visible { transform: translateY(-2px); border-color: #a9c5cf; box-shadow: 0 10px 24px rgba(22, 55, 72, .08); outline: none; }
.compliance-category-card strong { color: var(--navy); font-size: 1.25rem; }
.compliance-category-card small { color: var(--muted); line-height: 1.35; }
.compliance-category-name { color: var(--navy-dark); font-weight: 850; }
.compliance-category-meta { align-self: end; color: #58727d; font-size: .72rem; font-weight: 750; }
.compliance-filterbar { position: sticky; top: 8px; z-index: 4; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 16px; padding: 10px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.95); box-shadow: 0 8px 24px rgba(22,55,72,.06); backdrop-filter: blur(8px); }
.compliance-filter-label { margin: 0 4px 0 2px; color: var(--muted); font-size: .75rem; font-weight: 850; text-transform: uppercase; }
.compliance-filter { display: inline-flex; gap: 7px; align-items: center; padding: 7px 10px; border: 1px solid #cadbe0; border-radius: 999px; color: #45616d; background: #fff; cursor: pointer; font: inherit; font-size: .78rem; font-weight: 800; }
.compliance-filter span { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: #edf3f5; font-size: .68rem; }
.compliance-filter.is-active { color: #fff; border-color: var(--navy); background: var(--navy); }
.compliance-filter.is-active span { color: var(--navy); background: #fff; }
.compliance-empty-filter { margin: 0 0 16px; padding: 18px; border: 1px dashed #bfd1d6; border-radius: 12px; color: var(--muted); background: #f8fbfc; text-align: center; }
.compliance-supporting-evidence { margin-bottom: 16px; padding: 0; overflow: hidden; }
.compliance-supporting-evidence > summary { display: flex; justify-content: space-between; gap: 14px; align-items: center; padding: 16px 18px; cursor: pointer; list-style: none; }
.compliance-supporting-evidence > summary::-webkit-details-marker { display: none; }
.compliance-supporting-evidence > summary span:first-child { display: grid; gap: 3px; }
.compliance-supporting-evidence > summary small { color: var(--muted); font-weight: 500; }
.compliance-supporting-body { padding: 0 18px 18px; border-top: 1px solid var(--line); }
.compliance-category { margin-bottom: 14px; padding: 0; scroll-margin-top: 80px; overflow: hidden; }
.compliance-category > summary { list-style: none; }
.compliance-category > summary::-webkit-details-marker { display: none; }
.compliance-category-summary { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 17px 18px; cursor: pointer; background: #fff; }
.compliance-category-summary:hover { background: #f8fbfc; }
.compliance-category-summary > span:first-child { display: grid; gap: 4px; }
.compliance-category-summary strong { color: var(--navy-dark); font-size: 1.03rem; }
.compliance-category-summary small { color: var(--muted); font-weight: 500; }
.compliance-category-summary-right { display: flex; gap: 10px; align-items: center; color: #58727d; font-size: .8rem; font-weight: 800; white-space: nowrap; }
.compliance-category-body { padding: 14px; border-top: 1px solid var(--line); background: #fbfdfe; }
.compliance-control-list { display: grid; gap: 10px; }
.compliance-control { scroll-margin-top: 92px; border: 1px solid var(--line); border-radius: 11px; background: #fff; overflow: hidden; }
.compliance-control > summary { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 13px 15px; cursor: pointer; background: #fff; }
.compliance-control > summary:hover { background: #f7fafb; }
.control-title { display: flex; gap: 10px; align-items: center; color: var(--navy-dark); font-weight: 850; }
.control-state-group { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.control-code { padding: 4px 7px; border-radius: 6px; color: #56717d; background: #e9f0f2; font: 700 .65rem ui-monospace, SFMono-Regular, Menlo, monospace; }
.control-body { padding: 16px; border-top: 1px solid var(--line); }
.control-body > p { margin-top: 0; line-height: 1.5; }
.control-reference, .control-evidence { margin: 9px 0; color: #46616e; font-size: .87rem; line-height: 1.45; }
.latest-attestation { margin: 14px 0; padding: 12px 14px; border-left: 4px solid var(--teal); border-radius: 8px; background: var(--teal-soft); font-size: .86rem; line-height: 1.5; }
.copyright-warning { margin: 14px 0; padding: 14px; border: 1px solid #e8c77e; border-radius: 10px; color: #654816; background: #fff8e6; font-size: .88rem; line-height: 1.5; }
.compliance-form { margin-top: 16px; padding-top: 16px; border-top: 1px dashed #bfd1d6; }
.attestation-checks { display: grid; gap: 9px; margin-top: 14px; }
.attestation-checks label { display: flex; gap: 9px; align-items: flex-start; padding: 10px 12px; border: 1px solid #d5e4e7; border-radius: 9px; background: #f8fbfc; font-size: .85rem; line-height: 1.4; }
.attestation-checks input { margin-top: 3px; flex: 0 0 auto; }

.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 22px; background: radial-gradient(circle at 15% 15%, #d9f0ee, transparent 36%), linear-gradient(145deg, #edf5f6, #dce9ed); }
.login-wrap { width: min(440px, 100%); }
.login-card { width: min(440px, 100%); padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 24px 70px rgba(16,56,79,.15); }
.login-card .brand { color: var(--navy); }
.login-card .brand-name > strong { color: #1264ef; }
.login-card .login-version { color: var(--muted); }
.login-card h1 { margin: 24px 0 7px; color: var(--navy-dark); font-size: 1.65rem; }
.login-card .field { margin: 14px 0; }
.login-card .button { width: 100%; margin-top: 8px; padding: 12px; }
.login-footnote { margin-top: 18px; color: var(--muted); font-size: .78rem; text-align: center; }
.login-owner { display: flex; gap: 13px; align-items: center; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--navy); }
.login-owner .owner-logo { width: 94px; height: 62px; border: 1px solid var(--line); box-shadow: none; }
.login-owner p { margin: 0; font-size: .78rem; font-weight: 800; line-height: 1.4; }
.login-owner span { color: var(--muted); font-size: .7rem; font-weight: 650; }

.about-hero { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 26px; align-items: center; overflow: hidden; background: linear-gradient(135deg, #fff, #eef8ff); }
.about-product-logo { width: 180px; height: 180px; border: 1px solid #d7e5f0; border-radius: 28px; background-color: #fff; background-image: url("branding/clinicsuite-symbol-ui.png"); background-position: center; background-repeat: no-repeat; background-size: 132%; box-shadow: 0 18px 38px rgba(18,100,239,.12); }
.about-hero h2 { margin: 7px 0 8px; font-size: clamp(2rem, 5vw, 3.2rem); }
.about-hero p { max-width: 860px; line-height: 1.55; }
.eyebrow { color: #1264ef; font-size: .74rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.about-release { color: var(--muted); font-size: .86rem; }
.about-grid { margin-top: 18px; }
.about-owner-logo { width: min(330px, 100%); height: 190px; margin: 8px 0 14px; border: 1px solid var(--line); border-radius: 16px; background-color: #fff; background-image: url("branding/24-7-ingenieria.jpg"); background-position: center 48%; background-repeat: no-repeat; background-size: 148%; }
.copyright-statement { padding: 12px 14px; border-left: 4px solid var(--orange); border-radius: 8px; background: #fff8e9; }
.about-definitions { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.topbar-badges { display: flex; gap: 10px; align-items: center; }
.license-pill { padding: 6px 10px; border: 1px solid #b9d7c8; border-radius: 999px; color: #176b45; background: #edf9f2; font-size: .72rem; font-weight: 850; text-decoration: none; }
.license-pill.license-grace, .license-pill.license-not_yet_valid { color: #755211; border-color: #e7c779; background: #fff7df; }
.license-pill.license-missing, .license-pill.license-invalid, .license-pill.license-revoked, .license-pill.license-clock_tamper, .license-pill.license-restricted { color: #8d2933; border-color: #e0aeb3; background: #fff0f1; }
.license-banner { margin: 0 0 18px; padding: 13px 15px; border: 1px solid #e7c779; border-left: 5px solid var(--orange); border-radius: 10px; color: #634814; background: #fff8e6; line-height: 1.45; }
.license-banner a { color: inherit; font-weight: 850; }
.demo-banner { color: #842730; border-color: #dfa5ab; border-left-color: #bd3543; background: #fff0f1; }
.license-status-card { border-left: 6px solid var(--teal); }
.license-status-card.license-grace { border-left-color: var(--orange); }
.license-status-card.license-missing, .license-status-card.license-invalid, .license-status-card.license-revoked, .license-status-card.license-clock_tamper, .license-status-card.license-restricted { border-left-color: #bd3543; }
.break-anywhere, .break-anywhere code { overflow-wrap: anywhere; word-break: break-word; }
.error-card { max-width: 720px; margin: 8vh auto; }
.card hr { margin: 22px 0; border: 0; border-top: 1px solid var(--line); }
.workflow-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 18px; padding: 0; list-style: none; }
.workflow-steps li { display: flex; gap: 11px; align-items: center; min-height: 78px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.workflow-steps li > span { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%; color: #fff; background: var(--product-blue); font-weight: 900; }
.workflow-steps strong, .workflow-steps small { display: block; }
.workflow-steps small { margin-top: 3px; color: var(--muted); line-height: 1.3; }
.limit-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.limit-chips span { padding: 7px 10px; border: 1px solid #cbd8dd; border-radius: 999px; color: var(--navy); background: #f5f9fa; font-size: .8rem; font-weight: 800; }

/* Escritorios por función: Recepción, Administración y Gerencia */
.topbar-clinic strong, .topbar-clinic span { display: block; }
.topbar-clinic span { margin-top: 2px; color: var(--muted); font-size: .76rem; font-weight: 650; }
.workspace-chip { display: inline-flex; align-items: center; width: fit-content; min-height: 26px; margin: 7px 0 5px; padding: 4px 9px; border-radius: 999px; color: #dff3ff; background: rgba(126,205,255,.16); font-size: .69rem; font-weight: 900; letter-spacing: .03em; }
.workspace-chip-manager { color: #fff1d6; background: rgba(239,138,34,.22); }
.workspace-chip-administrator { color: #dff3ff; background: rgba(18,100,239,.24); }
.workspace-chip-reception { color: #d9fff0; background: rgba(31,164,108,.2); }
td .workspace-chip { color: var(--navy); background: #e8f1ff; }
td .workspace-chip-manager { color: #754812; background: #fff1d8; }
td .workspace-chip-reception { color: #176d49; background: #e7f7ee; }

.role-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .34fr); gap: 24px; align-items: center; margin-bottom: 18px; padding: clamp(22px, 3vw, 34px); overflow: hidden; border: 1px solid #cfdfe5; border-radius: 20px; background: linear-gradient(125deg, #fff 0%, #f3f8fa 68%, #e8f1ff 100%); box-shadow: var(--shadow); }
.role-hero::before { position: absolute; inset: 0 auto 0 0; width: 7px; content: ""; background: var(--product-blue); }
.role-hero-administrator::before { background: var(--owner-steel); }
.role-hero-manager::before { background: var(--corporate-orange); }
.role-hero h1 { margin: 3px 0 8px; color: var(--navy-dark); font-size: clamp(2rem, 5vw, 3.15rem); line-height: 1; }
.role-hero p { max-width: 820px; margin: 0; color: #4d6673; line-height: 1.55; }
.workspace-kicker, .section-kicker { color: var(--product-blue); font-size: .7rem; font-weight: 950; letter-spacing: .13em; text-transform: uppercase; }
.role-hero-manager .workspace-kicker { color: #9a5b13; }
.workspace-identity { min-height: 116px; padding: 18px; border: 1px solid rgba(18,100,239,.18); border-radius: 15px; background: rgba(255,255,255,.82); }
.workspace-identity span, .workspace-identity strong, .workspace-identity small { display: block; }
.workspace-identity span { color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.workspace-identity strong { margin: 7px 0; color: var(--navy); font-size: 1.08rem; }
.workspace-identity small { color: var(--muted); }
.manager-identity { border-color: #ead0aa; background: #fffaf2; }

.role-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-bottom: 18px; }
.admin-metrics { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.manager-metrics { grid-template-columns: 1.55fr repeat(5, minmax(0, 1fr)); }
.manager-metrics .role-metric-executive { grid-column: auto; }
.role-metric { min-height: 132px; padding: 18px; border: 1px solid var(--line); border-top: 4px solid #9fc1ff; border-radius: 14px; background: #fff; box-shadow: 0 9px 24px rgba(23,74,103,.06); }
.role-metric span, .role-metric strong, .role-metric small { display: block; }
.role-metric span { color: var(--muted); font-size: .72rem; font-weight: 900; letter-spacing: .045em; text-transform: uppercase; }
.role-metric strong { margin: 8px 0 5px; color: var(--navy-dark); font-size: clamp(1.55rem, 3vw, 2.05rem); line-height: 1; font-variant-numeric: tabular-nums; }
.role-metric small { color: #667c87; font-size: .78rem; }
.role-metric-priority { border-top-color: var(--product-blue); background: #f8fbff; }
.role-metric-warning { border-top-color: var(--corporate-orange); background: #fffaf2; }
.role-metric-executive { grid-column: span 2; border-top-color: var(--owner-steel); background: linear-gradient(140deg, #fff, #f3f8fa); }

.task-strip { display: grid; grid-template-columns: repeat(3, minmax(130px, .8fr)) minmax(320px, 1.4fr); gap: 12px; align-items: stretch; margin-bottom: 18px; padding: 14px; border: 1px solid #cbdde3; border-radius: 14px; background: #f8fbfc; }
.task-strip > div:not(.task-actions) { display: grid; grid-template-columns: 34px 1fr; column-gap: 9px; align-content: center; min-height: 68px; padding: 9px; }
.task-strip strong, .task-strip small { display: block; }
.task-strip small { grid-column: 2; color: var(--muted); font-size: .75rem; }
.step-number { display: grid; grid-row: span 2; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: #fff; background: var(--product-blue); font-size: .78rem; font-weight: 950; }
.task-actions { display: flex; flex-wrap: wrap; gap: 8px; align-content: center; justify-content: flex-end; padding-left: 10px; border-left: 1px solid var(--line); }

.dashboard-split { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr); gap: 18px; align-items: start; }
.role-card { box-shadow: 0 10px 28px rgba(23,74,103,.07); }
.schedule-list, .queue-cards { display: grid; gap: 9px; }
.schedule-row { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 66px; padding: 10px 12px; border: 1px solid #e0e9ec; border-radius: 10px; }
.schedule-row time { color: var(--product-blue); font-size: 1.08rem; font-weight: 950; font-variant-numeric: tabular-nums; }
.schedule-row strong, .schedule-row small { display: block; }
.schedule-row small { color: var(--muted); font-size: .76rem; }
.queue-card { display: grid; grid-template-columns: 78px minmax(0, 1fr) auto; gap: 11px; align-items: center; min-height: 68px; padding: 11px 12px; border: 1px solid #e0e9ec; border-left: 4px solid #8eb6c8; border-radius: 10px; }
.queue-card.queue-urgent { border-left-color: var(--danger); background: #fffafa; }
.queue-card.queue-priority { border-left-color: var(--corporate-orange); background: #fffdf8; }
.queue-card strong, .queue-card small { display: block; }
.queue-card small { color: var(--muted); font-size: .75rem; }
.queue-ticket strong { color: var(--product-blue); }
.access-boundary { margin-top: 18px; padding: 14px 16px; border: 1px solid #cddce1; border-left: 5px solid var(--owner-steel); border-radius: 10px; color: #405b68; background: #f6f9fa; font-size: .86rem; line-height: 1.5; }

.admin-dashboard-grid { grid-template-columns: minmax(0, 1fr) minmax(320px, .76fr); }
.operations-list { display: grid; gap: 9px; }
.operations-list a { display: grid; grid-template-columns: 40px minmax(0, 1fr) 20px; gap: 12px; align-items: center; min-height: 66px; padding: 10px 12px; border: 1px solid #dce7ea; border-radius: 10px; color: var(--ink); text-decoration: none; }
.operations-list a:hover { border-color: #9cb9c5; background: #f7fafb; }
.operations-list strong, .operations-list small { display: block; }
.operations-list small { color: var(--muted); font-size: .76rem; }
.operation-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 9px; color: #fff; background: var(--owner-steel); font-size: .72rem; font-weight: 950; }
.status-stack { display: grid; gap: 14px; }
.status-stack > div { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; align-items: center; }
.status-stack span { color: #486471; font-size: .84rem; font-weight: 750; }
.status-stack strong { color: var(--navy); font-size: 1.05rem; }
.progress-track { grid-column: 1 / -1; height: 8px; overflow: hidden; border-radius: 999px; background: #e8eff2; }
.progress-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--product-blue), #56a5ff); }
.decision-note { margin-top: 18px; padding: 12px; border-radius: 9px; color: #5a4a2a; background: #fff8e9; font-size: .82rem; }

.executive-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(290px, .55fr); gap: 18px; align-items: start; }
.executive-grid > * { min-width: 0; }
.executive-wide { grid-column: 1 / -1; grid-row: auto; }
.executive-table td:not(:first-child), .executive-table th:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
.compliance-gauge-card { text-align: center; }
.compliance-gauge { --gauge: 0; display: grid; place-items: center; width: 156px; height: 156px; margin: 12px auto 18px; border-radius: 50%; background: conic-gradient(var(--product-blue) calc(var(--gauge) * 1%), #e4ecef 0); }
.compliance-gauge::before { grid-area: 1 / 1; width: 118px; height: 118px; border-radius: 50%; background: #fff; content: ""; }
.compliance-gauge > div { z-index: 1; grid-area: 1 / 1; }
.compliance-gauge strong, .compliance-gauge span { display: block; }
.compliance-gauge strong { color: var(--navy); font-size: 2rem; }
.compliance-gauge span { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.executive-actions { display: grid; gap: 9px; }
.executive-actions .card-header { margin-bottom: 4px; }
.executive-actions > a { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 11px 12px; border: 1px solid #dce7ea; border-radius: 10px; color: var(--ink); text-decoration: none; }
.executive-actions > a small { color: var(--muted); font-size: .75rem; }
.executive-actions > a span { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--product-blue); font-size: 1.4rem; }

.access-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.access-principles > div { padding: 16px; border: 1px solid var(--line); border-top: 4px solid var(--product-blue); border-radius: 12px; background: #fff; }
.access-principles > div:nth-child(2) { border-top-color: var(--owner-steel); }
.access-principles > div:nth-child(3) { border-top-color: var(--corporate-orange); }
.access-principles strong, .access-principles span, .access-principles small { display: block; }
.access-principles strong { color: var(--navy); font-size: 1.5rem; }
.access-principles span { font-weight: 850; }
.access-principles small { margin-top: 3px; color: var(--muted); }
.form-steps { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.form-steps > li { padding: 18px; border: 1px solid #dce7ea; border-radius: 12px; background: #fbfdfd; }
.form-step-heading { display: flex; gap: 12px; align-items: center; margin-bottom: 15px; }
.form-step-heading > span { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 50%; color: #fff; background: var(--product-blue); font-weight: 950; }
.form-step-heading strong, .form-step-heading small { display: block; }
.form-step-heading small { color: var(--muted); }
.workspace-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.workspace-choice, .role-choice { position: relative; display: flex; gap: 10px; align-items: flex-start; min-height: 76px; padding: 12px; border: 1px solid #cadadd; border-radius: 10px; background: #fff; cursor: pointer; }
.workspace-choice:has(input:checked), .role-choice:has(input:checked) { border-color: var(--product-blue); background: #f1f6ff; box-shadow: 0 0 0 2px rgba(18,100,239,.12); }
.workspace-choice input, .role-choice input { width: 18px; height: 18px; margin-top: 2px; flex: 0 0 auto; accent-color: var(--product-blue); }
.workspace-choice strong, .workspace-choice small, .role-choice strong, .role-choice small { display: block; }
.workspace-choice small, .role-choice small { margin-top: 4px; color: var(--muted); font-size: .75rem; line-height: 1.35; }
.role-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.clinical-fields { margin-top: 14px; }
.field > small { display: block; margin-top: 5px; color: var(--muted); font-size: .72rem; }

.empty { padding: 28px; color: var(--muted); text-align: center; }
.error-page { max-width: 680px; margin: 9vh auto; text-align: center; }
.error-code { font-size: 4rem; font-weight: 900; color: var(--navy); }

@media (max-width: 1100px) {
    .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .compliance-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .definition-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .three-column { grid-template-columns: 1fr; }
    .task-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .task-actions { grid-column: 1 / -1; justify-content: flex-start; padding: 10px 0 0; border-top: 1px solid var(--line); border-left: 0; }
    .manager-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .manager-metrics .role-metric-executive { grid-column: span 2; }
    .executive-grid { grid-template-columns: 1fr; }
    .executive-wide { grid-column: auto; grid-row: auto; }
}
@media (max-width: 820px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar { position: static; height: auto; }
    .brand { margin-bottom: 16px; }
    .sidebar nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nav-label { grid-column: 1 / -1; }
    .sidebar-user { margin-top: 16px; }
    .topbar { display: none; }
    .two-column { grid-template-columns: 1fr; }
    .about-hero { grid-template-columns: 132px minmax(0, 1fr); }
    .about-product-logo { width: 132px; height: 132px; border-radius: 22px; }
    .workflow-steps { grid-template-columns: 1fr; }
    .role-hero { grid-template-columns: 1fr; }
    .dashboard-split, .admin-dashboard-grid { grid-template-columns: 1fr; }
    .workspace-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .content { padding-top: 20px; }
    .metric-grid, .asset-metrics, .compliance-metrics, .form-grid, .form-grid.three, .definition-grid, .choice-grid, .privacy-summary { grid-template-columns: 1fr; }
    .field.full { grid-column: auto; }
    .page-heading { align-items: stretch; flex-direction: column; }
    .search-bar { align-items: stretch; flex-direction: column; }
    .search-bar input { min-width: 0; width: 100%; }
    .sidebar nav { grid-template-columns: 1fr; }
    .nav-label { grid-column: auto; }
    .compliance-control > summary, .control-title { align-items: flex-start; flex-direction: column; }
    .about-hero { grid-template-columns: 1fr; text-align: center; }
    .about-product-logo { margin: 0 auto; }
    .about-definitions { grid-template-columns: 1fr; }
    .role-metrics, .admin-metrics, .manager-metrics, .access-principles, .workspace-choice-grid, .role-choice-grid { grid-template-columns: 1fr; }
    .role-metric-executive, .manager-metrics .role-metric-executive { grid-column: auto; }
    .task-strip { grid-template-columns: 1fr; }
    .task-actions { grid-column: auto; }
    .schedule-row, .queue-card { grid-template-columns: 56px minmax(0, 1fr); }
    .schedule-row .badge, .queue-card .badge { grid-column: 2; justify-self: start; }
}

/* Contabilidad integrada ClinicSuite 4.0 */
.module-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; padding: 6px; border: 1px solid var(--line); border-radius: 12px; background: #f7fafb; }
.module-tabs a { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 13px; border-radius: 9px; color: #365461; text-decoration: none; font-weight: 800; }
.module-tabs a:hover, .module-tabs a:focus-visible { background: #eaf2f7; color: var(--navy); }
.module-tabs a.active { color: #fff; background: var(--product-blue); }
.finance-operations-grid, .accounting-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.cash-register-list, .period-list { display: grid; gap: 10px; }
.cash-register-list > article, .period-list > article { display: flex; gap: 14px; align-items: center; justify-content: space-between; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #fbfdfd; }
.cash-register-list strong, .cash-register-list small, .period-list strong, .period-list small { display: block; }
.cash-register-list small, .period-list small { color: var(--muted); }
.accounting-document-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.accounting-document-meta > div { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fbfdfd; }
.accounting-document-meta span, .accounting-document-meta strong { display: block; }
.accounting-document-meta span { color: var(--muted); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.table-total td { border-top: 2px solid var(--navy); font-weight: 900; }
.number { text-align: right; font-variant-numeric: tabular-nums; }
.badge-posted, .badge-paid, .badge-settled, .badge-closed { color: #14532d; background: #dcfce7; }
.badge-open, .badge-partially_paid, .badge-partially_settled { color: #854d0e; background: #fef3c7; }
.badge-overdue, .badge-observed, .badge-reversed { color: #991b1b; background: #fee2e2; }
@media (max-width: 900px) {
    .finance-operations-grid, .accounting-overview-grid { grid-template-columns: 1fr; }
    .accounting-document-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .module-tabs { display: grid; grid-template-columns: 1fr 1fr; }
    .module-tabs a { justify-content: center; text-align: center; }
    .accounting-document-meta { grid-template-columns: 1fr; }
    .cash-register-list > article, .period-list > article { align-items: stretch; flex-direction: column; }
}

/* QA oficial RC1: reportes, documentos y salida impresa */
.page-heading-actions, .page-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.page-toolbar { margin:0 0 14px; justify-content:flex-end; }
.action-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.table-actions { display:flex; gap:8px; align-items:flex-start; flex-wrap:wrap; }
.table-subtext { display:block; margin-top:4px; color:var(--muted); font-size:.72rem; }
.inline-filter, .mini-form { display:flex; gap:12px; align-items:end; flex-wrap:wrap; margin:0 0 16px; }
.inline-filter label, .mini-form label { display:grid; gap:6px; min-width:180px; font-weight:800; color:var(--ink); }
.report-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-bottom:18px; }
.report-card { display:flex; flex-direction:column; gap:10px; }
.report-card .action-row { margin-top:auto; }
.inline-details { position:relative; }
.inline-details summary { cursor:pointer; color:var(--product-blue); font-weight:800; }
.inline-details form { display:grid; gap:8px; width:min(360px,80vw); margin-top:8px; padding:12px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 26px rgba(15,39,51,.12); }
.status-pill { display:inline-flex; padding:4px 8px; border-radius:999px; font-size:.72rem; font-weight:850; text-transform:uppercase; }
.status-internal { color:#1e3a5f; background:#e7f0f7; }
.status-confidential { color:#7c4a03; background:#fff1c7; }
.status-restricted { color:#8a1c1c; background:#ffe1e1; }
.check-list { display:grid; gap:8px; margin:0; padding-left:20px; }
@media (max-width:1000px){ .report-grid{grid-template-columns:1fr;} }
@media print {
    .sidebar,.topbar,.app-footer,.page-toolbar,.action-row,.module-tabs,.logout-form,.owner-credit,.button,button,form:not(.print-include){display:none!important;}
    .app-shell{display:block!important;}
    .main-area,.content{display:block!important;margin:0!important;padding:0!important;max-width:none!important;}
    body{background:#fff!important;color:#000!important;}
    .card,.role-hero,.role-metric{box-shadow:none!important;border:1px solid #bbb!important;break-inside:avoid;}
    a{color:#000!important;text-decoration:none!important;}
}


/* v1.3.0 RC1 - MFA, identidad y guías de seguridad */
.login-card-wide { width: min(760px, calc(100vw - 32px)); }
.numbered-guide { display: grid; gap: 10px; margin: 18px 0; padding-left: 25px; color: #405a67; }
.numbered-guide li { padding-left: 5px; line-height: 1.5; }
.security-secret { display: grid; gap: 8px; margin: 16px 0; padding: 16px; border: 1px solid #b9d7e6; border-radius: 14px; background: #f3f9fc; }
.security-secret code, .wrap-code, .recovery-grid code { overflow-wrap: anywhere; word-break: break-word; }
.wrap-code { display: block; margin-top: 10px; padding: 12px; border-radius: 10px; background: #f4f6f8; }
.recovery-box { margin: 16px 0; padding: 16px; border: 1px solid #ddd5b5; border-radius: 14px; background: #fffaf0; }
.recovery-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); gap: 8px; margin-top: 10px; }
.recovery-grid code { display: block; padding: 8px 10px; text-align: center; border-radius: 8px; background: #fff; border: 1px solid #e8dfbf; }
.heading-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.badge-neutral { background: #eef2f4; color: #52636d; }
.badge-warning { background: #fff2cf; color: #805313; }
@media (max-width: 760px) { .heading-actions { justify-content: flex-start; } .login-card-wide { width: min(100%, calc(100vw - 20px)); } }

/* ClinicSuite 4.0 v1.6.0 — Escritorio web inspirado en patrones de escritorio */
.desktop-ui { margin: 0; height: 100vh; height: 100dvh; min-height: 0; overflow: hidden; background: #dce8ed; }
.desktop-shell { height: 100vh; height: 100dvh; min-height: 0; display: grid; grid-template-rows: 58px minmax(0, 1fr) 48px; overflow: hidden; background: radial-gradient(circle at 18% 12%, rgba(255,255,255,.74), transparent 28%), linear-gradient(145deg, #dfecef 0%, #c7dce3 54%, #b7ced7 100%); }
.desktop-titlebar { z-index: 30; display: grid; grid-template-columns: minmax(230px, 310px) minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 8px 14px; border-bottom: 1px solid rgba(36,75,92,.16); background: rgba(250,253,254,.92); box-shadow: 0 5px 18px rgba(15,55,73,.08); backdrop-filter: blur(16px); }
.desktop-brand { display: flex; gap: 10px; align-items: center; min-width: 0; color: var(--navy-dark); text-decoration: none; }
.desktop-brand-symbol { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 10px; background-color: #fff; background-position: center; background-repeat: no-repeat; background-size: 145%; box-shadow: 0 4px 12px rgba(18,100,239,.12); }
.desktop-brand > span:last-child { display: grid; min-width: 0; }
.desktop-brand strong { font-size: .93rem; line-height: 1.15; }
.desktop-brand small { color: var(--muted); font-size: .66rem; }
.desktop-window-title { min-width: 0; display: grid; justify-items: center; line-height: 1.2; }
.desktop-window-title strong { max-width: 100%; overflow: hidden; color: var(--navy-dark); text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; }
.desktop-window-title span { max-width: 100%; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font-size: .7rem; }
.desktop-title-actions { display: flex; gap: 8px; align-items: center; }
.desktop-icon-button { display: inline-grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid #c6d8de; border-radius: 9px; color: var(--navy); background: #fff; cursor: pointer; font: 800 1rem/1 system-ui, sans-serif; }
.desktop-icon-button:hover, .desktop-icon-button:focus-visible { border-color: #87afbd; background: #eff7f9; outline: none; }
.desktop-workarea { min-width: 0; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; -webkit-overflow-scrolling: touch; padding: 18px; }
.desktop-window { width: min(1540px, 100%); min-height: calc(100vh - 142px); margin: 0 auto; border: 1px solid rgba(45,85,102,.22); border-radius: 15px; background: #f8fbfc; box-shadow: 0 18px 54px rgba(16,56,79,.16); overflow: hidden; }
.desktop-window-chrome { position: sticky; top: 0; z-index: 5; display: flex; justify-content: space-between; gap: 16px; align-items: center; min-height: 38px; padding: 6px 10px 6px 14px; border-bottom: 1px solid #d7e4e8; background: rgba(244,249,250,.96); backdrop-filter: blur(12px); }
.desktop-window-caption { display: flex; gap: 8px; align-items: center; min-width: 0; color: #385664; font-size: .76rem; }
.desktop-window-caption strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.desktop-window-dot { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: #2d9b78; box-shadow: 0 0 0 3px rgba(45,155,120,.12); }
.desktop-window-tools { display: flex; gap: 4px; }
.desktop-window-tools a { display: grid; place-items: center; width: 28px; height: 25px; border-radius: 6px; color: #476876; text-decoration: none; font-weight: 850; }
.desktop-window-tools a:hover { background: #dfecef; }
.desktop-window-content { padding: 18px 20px 26px; }
.desktop-taskbar { z-index: 40; display: flex; gap: 7px; align-items: center; padding: 5px 10px; border-top: 1px solid rgba(36,75,92,.18); background: rgba(246,251,252,.93); box-shadow: 0 -5px 18px rgba(16,56,79,.08); backdrop-filter: blur(16px); }
.desktop-start-button { display: inline-flex; gap: 7px; align-items: center; height: 36px; padding: 0 12px; border: 1px solid #bfd3da; border-radius: 9px; color: var(--navy); background: #fff; cursor: pointer; font: inherit; font-size: .78rem; }
.desktop-start-button span { font-size: 1.1rem; color: #1264ef; }
.desktop-task-home, .desktop-task-app, .desktop-task-status { display: grid; place-items: center; height: 34px; min-width: 34px; padding: 0 8px; border: 1px solid transparent; border-radius: 8px; color: #3c5f6c; background: transparent; text-decoration: none; font-size: .7rem; font-weight: 850; }
.desktop-task-home:hover, .desktop-task-app:hover, .desktop-task-status:hover { background: #e2edf0; }
.desktop-task-home.is-active, .desktop-task-app.is-active { color: #0b5dd8; border-color: #bed2da; background: #fff; box-shadow: inset 0 -2px 0 #1264ef; }
.desktop-task-areas { display: flex; gap: 4px; max-width: 38vw; overflow: auto; scrollbar-width: thin; }
.desktop-task-current { display: flex; gap: 7px; align-items: center; max-width: 280px; min-width: 0; height: 34px; padding: 0 10px; border-left: 1px solid #d0dfe4; color: #4b6874; font-size: .72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.desktop-task-spacer { flex: 1 1 auto; }
.desktop-clock { min-width: 46px; color: #385663; font-size: .72rem; font-weight: 800; text-align: center; }
.desktop-start-menu { position: fixed; z-index: 60; left: 10px; bottom: 58px; width: min(720px, calc(100vw - 20px)); max-height: min(760px, calc(100vh - 80px)); display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; border: 1px solid rgba(51,88,103,.22); border-radius: 18px; background: rgba(250,253,254,.985); box-shadow: 0 28px 80px rgba(15,55,73,.28); overflow: hidden; transform: translateY(18px) scale(.98); opacity: 0; visibility: hidden; pointer-events: none; transition: transform .16s ease, opacity .16s ease, visibility .16s ease; }
.desktop-start-menu[aria-hidden="false"] { transform: translateY(0) scale(1); opacity: 1; visibility: visible; pointer-events: auto; }
.desktop-start-backdrop { position: fixed; z-index: 55; inset: 0; border: 0; background: rgba(10,34,45,.18); backdrop-filter: blur(1px); cursor: default; }
.desktop-start-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 16px 18px 12px; border-bottom: 1px solid #dde8eb; }
.desktop-start-user { display: grid; min-width: 0; }
.desktop-start-user strong { color: var(--navy-dark); }
.desktop-start-user span { color: #1264ef; font-size: .75rem; font-weight: 850; }
.desktop-start-user small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.desktop-start-search { padding: 12px 18px; }
.desktop-start-search label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.desktop-start-search input { width: 100%; padding: 10px 12px; border: 1px solid #c8d9de; border-radius: 10px; background: #fff; }
.desktop-start-groups { overflow: auto; padding: 0 18px 14px; }
.desktop-start-group { margin: 8px 0 16px; }
.desktop-start-group h2 { margin: 0 0 8px; color: #58727c; font-size: .72rem; letter-spacing: .07em; text-transform: uppercase; }
.desktop-start-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.desktop-start-app { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 10px; align-items: center; min-height: 58px; padding: 9px 10px; border: 1px solid transparent; border-radius: 10px; color: inherit; text-decoration: none; }
.desktop-start-app:hover, .desktop-start-app:focus-visible { border-color: #c5d8de; background: #edf5f7; outline: none; }
.desktop-start-app[hidden] { display: none; }
.desktop-start-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 9px; color: #0d5e9c; background: #e3f0f5; font-weight: 900; }
.desktop-start-app > span:last-child { display: grid; min-width: 0; }
.desktop-start-app strong { color: var(--navy-dark); font-size: .8rem; }
.desktop-start-app small { overflow: hidden; color: var(--muted); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.desktop-start-foot { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 10px 16px; border-top: 1px solid #dde8eb; background: #f5f9fa; }
.desktop-owner-credit { margin: 0; padding: 0; border: 0; }
.desktop-owner-credit .owner-logo { width: 68px; height: 36px; }
.desktop-home-hero { display: flex; justify-content: space-between; gap: 24px; align-items: center; background: linear-gradient(135deg, #fff 0%, #eef7fa 68%, #e6f0ff 100%); }
.desktop-home-hero h1 { margin: 5px 0 7px; font-size: clamp(1.7rem, 3.5vw, 2.7rem); }
.desktop-home-hero p { max-width: 820px; margin-bottom: 0; line-height: 1.5; }
.desktop-home-status { display: grid; gap: 5px; justify-items: end; min-width: 180px; }
.desktop-home-status strong { color: #176b45; }
.desktop-home-status small { color: var(--muted); }
.desktop-home-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .75fr); gap: 16px; margin: 16px 0; }
.desktop-area-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.desktop-area-tile { display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fbfdfe; }
.desktop-area-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; color: #075b9a; background: #e3f1f6; font-size: 1.2rem; font-weight: 900; }
.desktop-area-tile > div:nth-child(2) { display: grid; }
.desktop-area-tile small { color: var(--muted); }
.desktop-area-actions { grid-column: 1 / -1; display: flex; gap: 7px; }
.desktop-area-actions .button:first-child { flex: 1 1 auto; }
.desktop-app-section { margin-top: 16px; }
.desktop-app-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.desktop-app-tile { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 11px; align-items: center; min-height: 78px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; color: inherit; background: #fff; text-decoration: none; transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease; }
.desktop-app-tile:hover, .desktop-app-tile:focus-visible { transform: translateY(-2px); border-color: #a9c6d1; box-shadow: 0 10px 22px rgba(16,56,79,.08); outline: none; }
.desktop-app-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; color: #0e659f; background: #e7f2f6; font-size: 1.25rem; font-weight: 900; }
.desktop-app-copy { display: grid; gap: 4px; }
.desktop-app-copy strong { color: var(--navy-dark); }
.desktop-app-copy small { color: var(--muted); line-height: 1.3; }

@media (max-height: 720px) and (min-width: 901px) {
    .desktop-shell { grid-template-rows: 52px minmax(0, 1fr) 44px; }
    .desktop-titlebar { padding-block: 5px; }
    .desktop-workarea { padding: 10px 14px; }
    .desktop-window { min-height: calc(100dvh - 118px); }
    .desktop-window-content { padding-top: 14px; }
    .desktop-taskbar { padding-block: 3px; }
}
@media (max-width: 900px) {
    .desktop-ui { height: 100vh; height: 100dvh; overflow: hidden; }
    .desktop-shell { height: 100vh; height: 100dvh; grid-template-rows: 54px minmax(0, 1fr) 48px; }
    .desktop-titlebar { grid-template-columns: minmax(180px,1fr) auto; padding-inline: 9px; }
    .desktop-window-title { display: none; }
    .desktop-title-actions .privacy-badge, .desktop-title-actions .license-pill { display: none; }
    .desktop-workarea { padding: 9px; }
    .desktop-window { min-height: calc(100vh - 120px); min-height: calc(100dvh - 120px); border-radius: 11px; }
    .desktop-window-content { padding: 12px; }
    .desktop-task-current { display: none; }
    .desktop-task-areas { max-width: 48vw; }
    .desktop-home-grid { grid-template-columns: 1fr; }
    .desktop-home-hero { align-items: flex-start; }
    .desktop-start-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .desktop-brand small, .desktop-start-button strong { display: none; }
    .desktop-titlebar { grid-template-columns: 1fr auto; }
    .desktop-home-hero { display: grid; }
    .desktop-home-status { justify-items: start; }
    .desktop-taskbar { gap: 4px; padding-inline: 6px; }
    .desktop-start-button { width: 38px; padding: 0; justify-content: center; }
    .desktop-task-areas { max-width: 55vw; }
    .desktop-start-menu { left: 5px; bottom: 54px; width: calc(100vw - 10px); max-height: calc(100vh - 64px); border-radius: 14px; }
}

/* v1.6.2 CSP-safe dynamic indicators */
.auth-card-wide{max-width:760px;margin-inline:auto}.status-progress,.compliance-progress-native,.compliance-gauge progress{display:block;width:100%;height:10px;border:0;border-radius:999px;overflow:hidden;background:#dce8ed}.status-progress::-webkit-progress-bar,.compliance-progress-native::-webkit-progress-bar,.compliance-gauge progress::-webkit-progress-bar{background:#dce8ed;border-radius:999px}.status-progress::-webkit-progress-value,.compliance-progress-native::-webkit-progress-value,.compliance-gauge progress::-webkit-progress-value{background:#1264ef;border-radius:999px}.status-progress::-moz-progress-bar,.compliance-progress-native::-moz-progress-bar,.compliance-gauge progress::-moz-progress-bar{background:#1264ef;border-radius:999px}.compliance-gauge progress{margin-top:12px}.compliance-progress-native{height:12px;margin:12px 0 16px}

/* v1.6.5 — Desktop ClinicSuite: ventanas, scroll, responsive y personalización */
.product-logo,
.brand-mark.product-logo,
.desktop-brand-symbol,
.desktop-background-preview-logo {
    background-image: url("branding/clinicsuite-symbol-ui.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}
.desktop-brand-symbol {
    border: 1px solid rgba(18,100,239,.10);
    image-rendering: auto;
}
.desktop-ui { overflow: hidden; }
.desktop-shell {
    position: relative;
    isolation: isolate;
    background-color: var(--clinicsuite-desktop-wallpaper-color, #dce8ed);
    background-image: radial-gradient(circle at 18% 12%, rgba(255,255,255,.74), transparent 28%), linear-gradient(145deg, #dfecef 0%, #c7dce3 54%, #b7ced7 100%);
}
.desktop-background-video,
.desktop-background-shade {
    position: absolute;
    z-index: 0;
    inset: 58px 0 48px;
    width: 100%;
    height: calc(100% - 106px);
    pointer-events: none;
}
.desktop-background-video { object-fit: cover; }
.desktop-background-shade { background: linear-gradient(rgba(9,38,55,.08), rgba(9,38,55,.16)); }
.desktop-titlebar,
.desktop-workarea,
.desktop-taskbar { position: relative; }
.desktop-titlebar { z-index: 30; }
.desktop-workarea {
    z-index: 2;
    position: relative;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    padding: 12px;
    scrollbar-gutter: auto;
    touch-action: manipulation;
}
.desktop-window {
    position: absolute;
    z-index: 5;
    top: 12px;
    right: 12px;
    bottom: 12px;
    left: 12px;
    width: auto;
    height: auto;
    min-width: 620px;
    min-height: 360px;
    max-width: 1540px;
    margin-inline: auto;
    display: grid;
    grid-template-rows: auto minmax(0,1fr);
    overflow: hidden;
    border: 1px solid rgba(45,85,102,.25);
    border-radius: 12px;
    background: rgba(248,251,252,.985);
    box-shadow: 0 20px 58px rgba(16,56,79,.22);
    transition: box-shadow .12s ease;
}
.desktop-window.is-focused { box-shadow: 0 24px 70px rgba(12,48,68,.30), 0 0 0 1px rgba(18,100,239,.16); }
.desktop-window-chrome {
    position: relative;
    top: auto;
    z-index: 8;
    cursor: default;
    user-select: none;
    touch-action: none;
}
.desktop-window-caption { flex: 1 1 auto; cursor: grab; }
.desktop-window.is-dragging .desktop-window-caption { cursor: grabbing; }
.desktop-window-tools { gap: 1px; align-self: stretch; align-items: stretch; }
.desktop-window-tools .desktop-window-utility,
.desktop-window-tools .desktop-window-control {
    display: grid;
    width: 40px;
    min-height: 32px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 4px;
    color: #476876;
    background: transparent;
    cursor: pointer;
    text-decoration: none;
    font: 650 1rem/1 system-ui, sans-serif;
}
.desktop-window-tools .desktop-window-utility:hover,
.desktop-window-tools .desktop-window-control:hover,
.desktop-window-tools .desktop-window-utility:focus-visible,
.desktop-window-tools .desktop-window-control:focus-visible { outline: none; background: #dfecef; }
.desktop-window-tools .desktop-window-close:hover,
.desktop-window-tools .desktop-window-close:focus-visible { color: #fff; background: #c42b1c; }
.desktop-window-control-separator { width: 1px; margin: 5px 3px; background: #d6e3e8; }
.desktop-window-content {
    min-width: 0;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
    padding: 18px 20px 30px;
}
.desktop-window-content:focus { outline: none; }
.desktop-window.is-maximized {
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    min-width: 0;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.desktop-window.is-minimized { display: none; }
.desktop-task-current {
    border: 0;
    border-left: 1px solid #d0dfe4;
    background: transparent;
    cursor: pointer;
    font-family: inherit;
}
.desktop-task-current:hover,
.desktop-task-current:focus-visible { outline: none; background: #e5eff3; }
.desktop-task-current.is-minimized { color: #0b5dd8; background: #fff; box-shadow: inset 0 -2px 0 #1264ef; }
.desktop-task-current > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.desktop-resize-handle { position: absolute; z-index: 12; display: block; }
.desktop-resize-n { top: -3px; left: 10px; right: 10px; height: 7px; cursor: n-resize; }
.desktop-resize-s { bottom: -3px; left: 10px; right: 10px; height: 7px; cursor: s-resize; }
.desktop-resize-e { top: 10px; right: -3px; bottom: 10px; width: 7px; cursor: e-resize; }
.desktop-resize-w { top: 10px; left: -3px; bottom: 10px; width: 7px; cursor: w-resize; }
.desktop-resize-ne,.desktop-resize-se,.desktop-resize-sw,.desktop-resize-nw { width: 12px; height: 12px; }
.desktop-resize-ne { top: -3px; right: -3px; cursor: ne-resize; }
.desktop-resize-se { right: -3px; bottom: -3px; cursor: se-resize; }
.desktop-resize-sw { bottom: -3px; left: -3px; cursor: sw-resize; }
.desktop-resize-nw { top: -3px; left: -3px; cursor: nw-resize; }
.desktop-window.is-maximized .desktop-resize-handle { display: none; }
.desktop-preferences-card { max-width: 980px; }
.desktop-preferences-form { display: grid; gap: 18px; }
.desktop-background-types { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; padding: 0; border: 0; }
.desktop-background-types legend { grid-column: 1/-1; margin-bottom: 4px; font-weight: 850; color: var(--ink); }
.desktop-background-choice { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 9px; align-items: start; min-height: 86px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fbfdfe; cursor: pointer; }
.desktop-background-choice:has(input:checked) { border-color: var(--product-blue); background: #f1f6ff; box-shadow: 0 0 0 2px rgba(18,100,239,.10); }
.desktop-background-choice input { width: auto; margin-top: 3px; }
.desktop-background-choice span { display: grid; gap: 3px; }
.desktop-background-choice small { color: var(--muted); line-height: 1.3; }
.desktop-background-options { align-items: start; }
.desktop-background-options input[type=color] { width: 92px; min-height: 44px; padding: 3px; }
.desktop-background-preview { display: flex; gap: 14px; align-items: center; min-height: 92px; padding: 15px; border: 1px solid #bfd5df; border-radius: 14px; background: linear-gradient(135deg,#edf7fb,#dfeef4); }
.desktop-background-preview-logo { width: 58px; height: 58px; flex: 0 0 58px; border-radius: 13px; background-color: #fff; box-shadow: 0 7px 18px rgba(18,100,239,.12); }
.desktop-background-preview > div { display: grid; gap: 4px; }
.desktop-background-preview small { color: var(--muted); }
.desktop-device-policy { max-width: 980px; }

/* Tablet: comportamiento táctil, ventana contenida y controles grandes. */
@media (max-width: 1024px), (pointer: coarse) {
    .desktop-workarea { padding: 8px; overflow: hidden; }
    .desktop-window { top: 8px !important; right: 8px !important; bottom: 8px !important; left: 8px !important; width: auto !important; height: auto !important; min-width: 0; min-height: 0; max-width: none; margin: 0; border-radius: 10px; }
    .desktop-window-chrome { touch-action: manipulation; }
    .desktop-window-caption { cursor: default; }
    .desktop-resize-handle { display: none; }
    .desktop-window-tools .desktop-window-utility,
    .desktop-window-tools .desktop-window-control { width: 44px; min-height: 36px; }
    .desktop-background-types { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
    .desktop-window-tools .desktop-window-utility { display: none; }
    .desktop-window-control-separator { display: none; }
    .desktop-window-content { padding: 12px 12px 22px; }
    .desktop-background-video { display: none; }
    .desktop-background-shade { background: rgba(9,38,55,.08); }
}
/* Móvil: una app a la vez, ventana a pantalla útil y scroll natural. */
@media (max-width: 600px) {
    .desktop-shell { grid-template-rows: 50px minmax(0,1fr) 52px; }
    .desktop-background-video { display: none !important; }
    .desktop-titlebar { padding-inline: 7px; }
    .desktop-brand-symbol { width: 34px; height: 34px; flex-basis: 34px; }
    .desktop-workarea { padding: 0; }
    .desktop-window { top: 0 !important; right: 0 !important; bottom: 0 !important; left: 0 !important; border: 0; border-radius: 0; box-shadow: none; }
    .desktop-window-chrome { min-height: 42px; padding-left: 9px; }
    .desktop-window-caption { font-size: .72rem; }
    .desktop-window-tools .desktop-window-control { width: 42px; min-height: 40px; }
    .desktop-window-content { padding: 10px 9px 22px; scrollbar-gutter: auto; }
    .desktop-task-current { display: none; }
    .desktop-background-types { grid-template-columns: 1fr; }
    .desktop-preferences-heading { display: grid; }
}
@media (prefers-reduced-motion: reduce) {
    .desktop-background-video { display: none !important; }
    .desktop-window { transition: none; }
}

/* v1.6.5 — Inicio y paneles auxiliares usan la misma arquitectura de ventana */
.desktop-start-menu.desktop-aux-window {
    position: absolute;
    z-index: 24;
    left: 18px;
    top: 18px;
    right: auto;
    bottom: auto;
    width: min(720px, calc(100% - 36px));
    height: min(720px, calc(100% - 36px));
    max-height: none;
    display: grid;
    grid-template-rows: auto auto minmax(0,1fr) auto;
    border-radius: 12px;
    transform: none;
    transition: box-shadow .12s ease, opacity .12s ease;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    box-shadow: 0 22px 70px rgba(12,48,68,.28);
}
.desktop-start-menu.desktop-aux-window[aria-hidden="true"],
.desktop-start-menu.desktop-aux-window.is-minimized { display: none; }
.desktop-start-menu.desktop-aux-window.is-focused { box-shadow: 0 28px 84px rgba(12,48,68,.34), 0 0 0 1px rgba(18,100,239,.18); }
.desktop-start-menu.desktop-aux-window.is-maximized {
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    border-radius: 0;
}
.desktop-start-menu.desktop-aux-window.is-maximized .desktop-resize-handle { display: none; }
.desktop-aux-titlebar { cursor: default; user-select: none; touch-action: none; }
.desktop-aux-titlebar .desktop-start-user { cursor: grab; flex: 1 1 auto; }
.desktop-start-menu.is-dragging .desktop-aux-titlebar .desktop-start-user { cursor: grabbing; }
.desktop-aux-window-tools { display: flex; align-self: stretch; align-items: stretch; margin: -8px -10px -8px 0; }
.desktop-aux-window-tools .desktop-window-control { display: grid; width: 42px; min-height: 38px; place-items: center; border: 0; border-radius: 4px; background: transparent; color: #476876; cursor: pointer; font: 650 1rem/1 system-ui,sans-serif; }
.desktop-aux-window-tools .desktop-window-control:hover,
.desktop-aux-window-tools .desktop-window-control:focus-visible { outline: none; background: #dfecef; }
.desktop-aux-window-tools .desktop-window-close:hover,
.desktop-aux-window-tools .desktop-window-close:focus-visible { color: #fff; background: #c42b1c; }
.desktop-start-button.is-window-open,
.desktop-start-button.is-window-minimized { color: #0b5dd8; background: #fff; box-shadow: inset 0 -2px 0 #1264ef; }
.desktop-start-button.is-window-minimized { opacity: .82; }

@media (max-width: 1024px), (pointer: coarse) {
    .desktop-start-menu.desktop-aux-window {
        top: 8px !important; right: 8px !important; bottom: 8px !important; left: 8px !important;
        width: auto !important; height: auto !important; max-width: none; max-height: none; border-radius: 10px;
    }
    .desktop-start-menu.desktop-aux-window .desktop-resize-handle { display: none; }
    .desktop-aux-titlebar { touch-action: manipulation; }
    .desktop-aux-titlebar .desktop-start-user { cursor: default; }
    .desktop-aux-window-tools .desktop-window-control { width: 44px; min-height: 40px; }
}
@media (max-width: 600px) {
    .desktop-start-menu.desktop-aux-window {
        inset: 0 !important; width: 100% !important; height: 100% !important; border: 0; border-radius: 0;
    }
    .desktop-start-foot { gap: 8px; align-items: stretch; flex-direction: column; }
    .desktop-start-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .desktop-start-actions .button { width: 100%; }
}

/* v1.6.6 — Aqua Desktop: estética premium inspirada en escritorios macOS, wallpaper global y bloqueo */
.desktop-ui {
    --aqua-surface: rgba(252,253,255,var(--clinicsuite-glass-alpha,.88));
    --aqua-surface-strong: rgba(255,255,255,.94);
    --aqua-line: rgba(72,91,115,.18);
    --aqua-shadow: 0 24px 70px rgba(19,38,67,.24), 0 3px 12px rgba(19,38,67,.10);
    background: var(--clinicsuite-desktop-wallpaper-color,#d7e7f3);
}
.desktop-theme-aqua { --ink:#223044; --muted:#6b7788; --line:rgba(75,96,120,.18); --product-blue:var(--clinicsuite-accent,#0a84ff); }
.desktop-theme-graphite { --ink:#20252d; --muted:#66717d; --line:rgba(56,67,78,.20); --product-blue:var(--clinicsuite-accent,#5271ff); }
.desktop-theme-night { --ink:#eef4fb; --muted:#b3c0cf; --line:rgba(222,234,247,.16); --product-blue:var(--clinicsuite-accent,#64a8ff); }
.desktop-shell {
    grid-template-rows: 56px minmax(0,1fr) 68px;
    background-position:center;
    background-repeat:no-repeat;
    background-size:cover;
}
.desktop-shell::before {
    content:"";
    position:absolute;
    z-index:0;
    inset:0;
    pointer-events:none;
    background:transparent;
}
.desktop-background-video,
.desktop-background-shade { inset:0; width:100%; height:100%; }
.desktop-background-shade { background:rgba(8,27,48,var(--clinicsuite-wallpaper-shade,.10)); }
.desktop-titlebar {
    border-bottom:1px solid rgba(255,255,255,.38);
    background:rgba(248,251,255,.70);
    box-shadow:0 1px 0 rgba(33,52,76,.08),0 8px 26px rgba(29,48,71,.08);
    backdrop-filter:blur(calc(var(--clinicsuite-glass-blur,18px) + 4px)) saturate(1.25);
}
.desktop-theme-night .desktop-titlebar { background:rgba(23,31,43,.76); }
.desktop-theme-night .desktop-brand strong,
.desktop-theme-night .desktop-window-title strong { color:#f4f8ff; }
.desktop-theme-night .desktop-brand small,
.desktop-theme-night .desktop-window-title span { color:#b4c0cf; }
.desktop-icon-button { border-color:rgba(87,104,126,.16); border-radius:11px; background:rgba(255,255,255,.68); box-shadow:inset 0 1px 0 rgba(255,255,255,.75); }
.desktop-workarea { background:transparent; }
.desktop-window {
    border:1px solid rgba(255,255,255,.62);
    border-radius:18px;
    background:var(--aqua-surface);
    box-shadow:var(--aqua-shadow);
    backdrop-filter:blur(var(--clinicsuite-effective-glass-blur,var(--clinicsuite-glass-blur,18px))) saturate(1.18);
}
.desktop-window.is-focused { box-shadow:0 30px 84px rgba(15,34,62,.30),0 0 0 1px rgba(255,255,255,.56); }
.desktop-window-chrome {
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    min-height:44px;
    padding:7px 10px;
    border-bottom:1px solid rgba(82,100,121,.13);
    background:rgba(247,250,253,.72);
    backdrop-filter:blur(calc(var(--clinicsuite-effective-glass-blur,var(--clinicsuite-glass-blur,18px)) + 6px)) saturate(1.25);
}
.desktop-theme-night .desktop-window { background:rgba(29,38,51,var(--clinicsuite-glass-alpha,.88)); border-color:rgba(255,255,255,.16); }
.desktop-theme-night .desktop-window-chrome { background:rgba(28,37,50,.82); border-bottom-color:rgba(255,255,255,.10); }
.desktop-theme-night .desktop-window-caption { color:#e8eef7; }
.desktop-window-caption { justify-content:center; cursor:grab; }
.desktop-window-dot { display:none; }
.desktop-window-traffic,
.desktop-traffic-controls { display:flex; gap:8px; align-items:center; }
.desktop-window-traffic { padding:0 5px 0 3px; }
.desktop-traffic-controls .desktop-window-control {
    position:relative;
    display:grid;
    width:13px;
    height:13px;
    min-width:13px;
    min-height:13px;
    padding:0;
    place-items:center;
    overflow:hidden;
    border:1px solid rgba(0,0,0,.10);
    border-radius:50%;
    box-shadow:inset 0 1px 1px rgba(255,255,255,.40);
    color:rgba(39,45,54,.74);
    font:800 10px/1 system-ui,sans-serif;
}
.desktop-traffic-controls .desktop-window-control > span { opacity:0; transform:scale(.82); transition:opacity .12s ease; }
.desktop-traffic-controls:hover .desktop-window-control > span,
.desktop-traffic-controls .desktop-window-control:focus-visible > span { opacity:.68; }
.desktop-traffic-controls .desktop-window-close { background:#ff5f57; }
.desktop-traffic-controls .desktop-window-minimize { background:#febc2e; }
.desktop-traffic-controls .desktop-window-maximize { background:#28c840; }
.desktop-traffic-controls .desktop-window-control:hover,
.desktop-traffic-controls .desktop-window-control:focus-visible { outline:2px solid rgba(255,255,255,.75); outline-offset:1px; }
.desktop-window-utilities { justify-self:end; }
.desktop-window-tools.desktop-window-utilities .desktop-window-utility {
    width:32px;
    min-height:30px;
    border-radius:9px;
    color:#5e6e80;
    background:rgba(255,255,255,.28);
}
.desktop-window-tools.desktop-window-utilities .desktop-window-utility:hover { background:rgba(255,255,255,.78); }
.desktop-window-content { background:transparent; }
.desktop-window-content > .card,
.desktop-window-content .desktop-app-section,
.desktop-window-content .desktop-areas-card,
.desktop-window-content .desktop-session-card {
    background:rgba(255,255,255,.82);
    border-color:rgba(81,101,125,.14);
    box-shadow:0 8px 26px rgba(21,44,72,.06);
    backdrop-filter:blur(8px);
}
.desktop-theme-night .desktop-window-content > .card,
.desktop-theme-night .desktop-window-content .desktop-app-section,
.desktop-theme-night .desktop-window-content .desktop-areas-card,
.desktop-theme-night .desktop-window-content .desktop-session-card { background:rgba(36,46,61,.86); color:#eaf0f8; }
.desktop-theme-night .desktop-window-content h1,
.desktop-theme-night .desktop-window-content h2,
.desktop-theme-night .desktop-window-content h3,
.desktop-theme-night .desktop-window-content strong { color:#f3f7fc; }
.desktop-theme-night .desktop-window-content p,
.desktop-theme-night .desktop-window-content small,
.desktop-theme-night .desktop-window-content span { color:#c0cad6; }

/* Iconos Aqua: assets vectoriales propios, con profundidad suave y color por módulo. */
.desktop-start-icon,
.desktop-app-icon,
.desktop-area-icon { border:0; background:transparent; box-shadow:none; overflow:visible; }
.desktop-start-icon img,
.desktop-app-icon img,
.desktop-area-icon img,
.desktop-task-app img { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 5px 8px rgba(29,48,78,.18)); }
.desktop-start-icon { width:42px; height:42px; border-radius:12px; }
.desktop-app-icon { width:50px; height:50px; border-radius:14px; }
.desktop-area-icon { width:48px; height:48px; border-radius:14px; }
.desktop-start-app { grid-template-columns:48px minmax(0,1fr); min-height:68px; border-radius:14px; }
.desktop-start-app:hover,
.desktop-start-app:focus-visible { transform:translateY(-1px); border-color:rgba(93,117,146,.18); background:rgba(255,255,255,.64); box-shadow:0 9px 22px rgba(28,48,74,.08); }
.desktop-app-tile { grid-template-columns:56px minmax(0,1fr); min-height:88px; border-radius:16px; background:rgba(255,255,255,.75); }
.desktop-app-tile:hover,
.desktop-app-tile:focus-visible { transform:translateY(-3px); box-shadow:0 15px 30px rgba(20,45,78,.13); }
.desktop-icons-classic .desktop-start-icon img,
.desktop-icons-classic .desktop-app-icon img,
.desktop-icons-classic .desktop-area-icon img,
.desktop-icons-classic .desktop-task-app img { filter:grayscale(.55) saturate(.58) drop-shadow(0 3px 5px rgba(29,48,78,.12)); }

/* Inicio como ventana de vidrio. */
.desktop-start-menu.desktop-aux-window {
    border:1px solid rgba(255,255,255,.60);
    border-radius:18px;
    background:rgba(248,251,254,var(--clinicsuite-glass-alpha,.88));
    box-shadow:0 30px 86px rgba(15,34,62,.32);
    backdrop-filter:blur(calc(var(--clinicsuite-effective-glass-blur,var(--clinicsuite-glass-blur,18px)) + 4px)) saturate(1.20);
}
.desktop-start-head { padding:14px 16px; background:rgba(255,255,255,.34); }
.desktop-aux-window-tools.desktop-traffic-controls { order:-1; margin:0 4px 0 0; align-self:center; }
.desktop-start-user { flex:1 1 auto; }
.desktop-start-search input { border-color:rgba(78,101,126,.18); border-radius:12px; background:rgba(255,255,255,.72); box-shadow:inset 0 1px 2px rgba(27,49,75,.05); }
.desktop-start-search-control { position:relative; display:flex; align-items:center; }
.desktop-start-search-control input { padding-left:38px; padding-right:38px; }
.desktop-start-search-icon { position:absolute; left:13px; z-index:1; color:#5c7189; font-size:1rem; pointer-events:none; }
.desktop-start-search-clear { position:absolute; right:7px; display:grid; place-items:center; width:29px; height:29px; padding:0; border:0; border-radius:8px; color:#53687f; background:transparent; cursor:pointer; font-size:1.15rem; line-height:1; }
.desktop-start-search-clear:hover,.desktop-start-search-clear:focus-visible { background:rgba(52,79,112,.10); outline:none; }
.desktop-start-search-clear[hidden] { display:none; }
.desktop-start-search-status { margin:6px 2px 0; color:#63768b; font-size:.70rem; line-height:1.35; }
.desktop-start-search-status.has-results { color:#176b45; }
.desktop-start-search-status.is-empty { color:#9b4e20; }
.desktop-theme-night .desktop-start-search-icon,.desktop-theme-night .desktop-start-search-status { color:#b6c1ce; }
.desktop-theme-night .desktop-start-search-status.has-results { color:#7dd7ae; }
.desktop-theme-night .desktop-start-search-status.is-empty { color:#f0b07d; }

.desktop-start-foot { background:rgba(255,255,255,.42); }
.desktop-theme-night .desktop-start-menu.desktop-aux-window { background:rgba(27,37,50,.92); color:#eaf0f7; }
.desktop-theme-night .desktop-start-user strong,
.desktop-theme-night .desktop-start-app strong { color:#f2f6fb; }
.desktop-theme-night .desktop-start-user small,
.desktop-theme-night .desktop-start-app small { color:#b6c1ce; }
.desktop-theme-night .desktop-start-search input { color:#f2f6fb; background:rgba(255,255,255,.08); }

/* Dock flotante. */
.desktop-taskbar {
    z-index:45;
    align-self:center;
    justify-self:center;
    width:max-content;
    max-width:calc(100vw - 24px);
    height:54px;
    margin:4px auto 10px;
    padding:6px 9px;
    border:1px solid rgba(255,255,255,.60);
    border-radius:18px;
    background:rgba(244,248,253,.66);
    box-shadow:0 14px 38px rgba(15,35,62,.22),inset 0 1px 0 rgba(255,255,255,.75);
    backdrop-filter:blur(calc(var(--clinicsuite-effective-glass-blur,var(--clinicsuite-glass-blur,18px)) + 5px)) saturate(1.35);
}
.desktop-dock-solid .desktop-taskbar { width:100%; max-width:none; height:58px; margin:0; border-width:1px 0 0; border-radius:0; background:rgba(246,249,252,.93); }
.desktop-theme-night .desktop-taskbar { background:rgba(25,34,47,.76); border-color:rgba(255,255,255,.15); }
.desktop-start-button,
.desktop-task-home,
.desktop-task-app,
.desktop-task-status { border:0; background:transparent; }
.desktop-dock-item { transition:transform .14s ease,background .14s ease,box-shadow .14s ease; }
.desktop-dock-item:hover,
.desktop-dock-item:focus-visible { transform:translateY(-4px) scale(1.06); background:rgba(255,255,255,.58); outline:none; }
.desktop-start-button { width:44px; height:44px; padding:4px; border-radius:13px; }
.desktop-start-button strong { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.desktop-dock-product { display:block; width:34px; height:34px; border-radius:10px; background-color:white; box-shadow:0 4px 10px rgba(24,46,76,.15); }
.desktop-task-home { min-width:42px; height:42px; border-radius:12px; font-size:1.15rem; }
.desktop-task-app { min-width:42px; width:42px; height:42px; padding:4px; border-radius:12px; }
.desktop-task-home.is-active,
.desktop-task-app.is-active,
.desktop-start-button.is-window-open,
.desktop-start-button.is-window-minimized { border:0; background:rgba(255,255,255,.68); box-shadow:0 6px 14px rgba(20,43,70,.11); }
.desktop-task-home.is-active::after,
.desktop-task-app.is-active::after,
.desktop-start-button.is-window-open::after { content:""; position:absolute; bottom:-4px; width:5px; height:5px; border-radius:50%; background:var(--clinicsuite-accent,#0a84ff); }
.desktop-task-home,
.desktop-task-app,
.desktop-start-button { position:relative; }
.desktop-task-areas { gap:5px; max-width:44vw; }
.desktop-task-current { max-width:210px; height:38px; border-left:1px solid rgba(82,100,122,.18); border-radius:10px; }
.desktop-task-status { height:38px; min-width:38px; border-radius:11px; }
.desktop-clock { min-width:52px; font-size:.72rem; }

/* Apariencia y personalización. */
.desktop-preferences-card { max-width:1120px; }
.appearance-section-heading { display:flex; justify-content:space-between; gap:24px; align-items:flex-end; padding-top:4px; border-top:1px solid rgba(88,106,128,.13); }
.appearance-section-heading:first-of-type { border-top:0; }
.appearance-section-heading > div { display:flex; gap:10px; align-items:center; }
.appearance-section-heading h2 { margin:0; }
.appearance-section-heading p { max-width:650px; margin:0; color:var(--muted); font-size:.84rem; line-height:1.45; }
.appearance-kicker { display:grid; width:27px; height:27px; place-items:center; border-radius:9px; color:white; background:var(--clinicsuite-accent,#0a84ff); font-weight:850; font-size:.76rem; box-shadow:0 5px 14px rgba(10,132,255,.22); }
.appearance-choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0; border:0; }
.appearance-choice { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; align-items:center; min-height:96px; padding:12px; border:1px solid var(--line); border-radius:16px; background:rgba(255,255,255,.72); cursor:pointer; }
.appearance-choice:has(input:checked) { border-color:var(--clinicsuite-accent,#0a84ff); box-shadow:0 0 0 2px rgba(10,132,255,.10),0 9px 22px rgba(20,45,78,.08); }
.appearance-choice input { width:auto; }
.appearance-choice > span:last-child { display:grid; gap:3px; }
.appearance-choice small { color:var(--muted); }
.appearance-theme-swatch { width:66px; height:56px; border-radius:14px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.48),0 7px 18px rgba(25,44,70,.14); }
.appearance-theme-aqua { background:radial-gradient(circle at 22% 15%,rgba(255,255,255,.88),transparent 28%),linear-gradient(145deg,#b8e4ff,#7679f6); }
.appearance-theme-graphite { background:radial-gradient(circle at 22% 15%,rgba(255,255,255,.70),transparent 28%),linear-gradient(145deg,#dfe5ea,#6d7b89); }
.appearance-theme-night { background:radial-gradient(circle at 22% 15%,rgba(87,137,200,.40),transparent 28%),linear-gradient(145deg,#26374d,#101824); }
.appearance-compact-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.appearance-range-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.appearance-lock-grid { grid-template-columns:minmax(240px,.55fr) minmax(0,1fr); align-items:stretch; }
.appearance-security-note { display:grid; gap:5px; padding:14px; border:1px solid rgba(38,166,91,.20); border-radius:14px; background:rgba(231,250,239,.72); }
.appearance-security-note strong { color:#176f43; }
.appearance-security-note span { color:#4f6d5d; font-size:.82rem; line-height:1.4; }
.appearance-actions { position:sticky; bottom:0; z-index:3; margin:0 -4px -4px; padding:12px; border:1px solid rgba(84,104,126,.12); border-radius:14px; background:rgba(249,252,254,.86); backdrop-filter:blur(14px); }
.desktop-background-preview { min-height:120px; background:linear-gradient(135deg,rgba(217,241,255,.74),rgba(224,225,255,.70)); backdrop-filter:blur(10px); }

/* Pantalla de bloqueo: protege visualmente el contenido y exige contraseña del usuario actual. */
.desktop-lock-screen {
    position:absolute;
    z-index:1000;
    inset:0;
    display:grid;
    place-items:center;
    padding:24px;
    background:rgba(20,34,53,.22);
    backdrop-filter:blur(22px) saturate(.82);
}
.desktop-lock-screen[aria-hidden="true"] { display:none; }
.desktop-shell.is-session-locked > :not(.desktop-lock-screen) { filter:blur(12px); pointer-events:none; user-select:none; }
.desktop-lock-panel {
    width:min(430px,calc(100vw - 32px));
    display:grid;
    justify-items:center;
    gap:8px;
    padding:28px;
    border:1px solid rgba(255,255,255,.52);
    border-radius:26px;
    color:#1f2d40;
    background:rgba(250,252,255,.78);
    box-shadow:0 32px 90px rgba(9,24,45,.30),inset 0 1px 0 rgba(255,255,255,.86);
    backdrop-filter:blur(26px) saturate(1.25);
    text-align:center;
}
.desktop-lock-logo { width:76px; height:76px; border-radius:20px; background-color:white; box-shadow:0 12px 30px rgba(19,48,82,.17); }
.desktop-lock-clock { margin-top:5px; color:#17263a; font-size:clamp(2.4rem,8vw,4.2rem); font-weight:300; line-height:1; letter-spacing:-.05em; }
.desktop-lock-date { margin:0 0 6px; color:#617084; font-size:.82rem; }
.desktop-lock-panel h2 { margin:5px 0 0; color:#18283d; }
.desktop-lock-panel > p { margin:0; color:#657488; }
.desktop-unlock-form { width:100%; display:grid; gap:10px; margin-top:10px; text-align:left; }
.desktop-unlock-form input { width:100%; margin-top:5px; border-radius:12px; background:rgba(255,255,255,.88); }
.desktop-unlock-form .button { width:100%; }
.desktop-lock-error { margin:0; padding:8px 10px; border-radius:10px; color:#8f2b27; background:#fff0ef; font-size:.78rem; }
.desktop-lock-panel > small { max-width:340px; color:#718096; line-height:1.4; }
.session-locked-card { max-width:620px; margin-inline:auto; text-align:center; }

@media (max-width:1024px), (pointer:coarse) {
    .desktop-shell { grid-template-rows:54px minmax(0,1fr) 60px; }
    .desktop-taskbar { height:50px; margin-bottom:6px; }
    .desktop-task-current { display:none; }
    .appearance-choice-grid,.appearance-compact-grid,.appearance-range-grid { grid-template-columns:1fr 1fr; }
    .appearance-lock-grid { grid-template-columns:1fr; }
    .appearance-section-heading { align-items:flex-start; flex-direction:column; gap:7px; }
}
@media (max-width:600px) {
    .desktop-shell { grid-template-rows:50px minmax(0,1fr) 56px; }
    .desktop-taskbar { max-width:calc(100vw - 10px); height:48px; padding:4px 6px; border-radius:15px; overflow-x:auto; }
    .desktop-start-button,.desktop-task-home,.desktop-task-app { width:38px; min-width:38px; height:38px; }
    .desktop-task-status,.desktop-clock { display:none; }
    .desktop-task-areas { max-width:none; overflow:visible; }
    .desktop-window-chrome { grid-template-columns:auto minmax(0,1fr); }
    .desktop-window-utilities { display:none; }
    .desktop-window-traffic { gap:7px; }
    .appearance-choice-grid,.appearance-compact-grid,.appearance-range-grid { grid-template-columns:1fr; }
    .desktop-lock-panel { padding:22px 18px; border-radius:22px; }
}
@media (prefers-reduced-transparency: reduce) {
    .desktop-window,.desktop-start-menu.desktop-aux-window,.desktop-taskbar,.desktop-titlebar { backdrop-filter:none; background:#f8fbfd; }
}


/* v1.6.7 — Hotfix video/input + transparencia global de contenido. */
/* El shell usa desktop-wallpaper-type-*; desktop-background-video queda reservado exclusivamente al elemento <video>. */
.desktop-background-video {
    z-index:0;
    pointer-events:none !important;
    user-select:none;
    -webkit-user-select:none;
    touch-action:none;
}
.desktop-wallpaper-type-video .desktop-background-video { display:block; }
.desktop-wallpaper-type-video .desktop-workarea,
.desktop-wallpaper-type-video .desktop-titlebar,
.desktop-wallpaper-type-video .desktop-taskbar { pointer-events:auto; }
.desktop-window-content { background:transparent; }
.desktop-window-content .card,
.desktop-window-content .metric,
.desktop-window-content .choice-card,
.desktop-window-content .timeline-item,
.desktop-window-content .policy-details,
.desktop-window-content .consent-checklist label,
.desktop-window-content .optional-consent,
.desktop-window-content .action-panel,
.desktop-window-content .compliance-category-card,
.desktop-window-content .compliance-percent,
.desktop-window-content .cash-register-list > article,
.desktop-window-content .period-list > article,
.desktop-window-content .desktop-app-tile,
.desktop-window-content .desktop-area-tile,
.desktop-window-content .access-boundary,
.desktop-window-content .ownership-panel {
    background-color:rgba(255,255,255,var(--clinicsuite-content-alpha,.82));
    backdrop-filter:blur(calc(var(--clinicsuite-effective-glass-blur,var(--clinicsuite-glass-blur,18px)) * .55)) saturate(1.08);
}
.desktop-window-content .table-wrap { background:rgba(255,255,255,var(--clinicsuite-content-alpha,.82)); backdrop-filter:blur(6px); }
.desktop-window-content table { background:transparent; }
.desktop-window-content th { background:rgba(244,248,249,.88); }
.desktop-window-content tbody tr:hover { background:rgba(248,251,252,.72); }
.desktop-theme-night .desktop-window-content .card,
.desktop-theme-night .desktop-window-content .metric,
.desktop-theme-night .desktop-window-content .choice-card,
.desktop-theme-night .desktop-window-content .timeline-item,
.desktop-theme-night .desktop-window-content .policy-details,
.desktop-theme-night .desktop-window-content .consent-checklist label,
.desktop-theme-night .desktop-window-content .optional-consent,
.desktop-theme-night .desktop-window-content .action-panel,
.desktop-theme-night .desktop-window-content .compliance-category-card,
.desktop-theme-night .desktop-window-content .compliance-percent,
.desktop-theme-night .desktop-window-content .cash-register-list > article,
.desktop-theme-night .desktop-window-content .period-list > article,
.desktop-theme-night .desktop-window-content .desktop-app-tile,
.desktop-theme-night .desktop-window-content .desktop-area-tile,
.desktop-theme-night .desktop-window-content .access-boundary,
.desktop-theme-night .desktop-window-content .ownership-panel,
.desktop-theme-night .desktop-window-content .table-wrap {
    background-color:rgba(29,38,51,var(--clinicsuite-content-alpha,.82));
}
.appearance-range-grid-four { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:1024px), (pointer:coarse) { .appearance-range-grid-four { grid-template-columns:1fr 1fr; } }
@media (max-width:600px) { .appearance-range-grid-four { grid-template-columns:1fr; } }


/* v1.6.8 — perfiles de teclado ClinicSuite */
.appearance-keyboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.keyboard-profile-badge{display:grid;place-items:center;min-width:58px;height:48px;padding:0 10px;border-radius:14px;background:rgba(255,255,255,.72);border:1px solid rgba(108,135,160,.28);box-shadow:0 5px 16px rgba(26,58,82,.08);font-size:1rem;font-weight:850;color:var(--navy-dark);}
.appearance-keyboard-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 2px;}
.appearance-keyboard-shortcuts>span{display:grid;gap:3px;padding:11px 12px;border:1px solid rgba(128,151,169,.28);border-radius:12px;background:rgba(255,255,255,.58);}
.appearance-keyboard-shortcuts small{color:var(--muted);}
@media(max-width:900px){.appearance-keyboard-grid,.appearance-keyboard-shortcuts{grid-template-columns:1fr;}}

/* v1.6.9 — dashboards y reportes profesionales */
.dashboard-heading-pro,
.report-heading-pro { margin-bottom:18px; }
.dashboard-report-toolbar {
    justify-content:flex-start;
    padding:10px 12px;
    border:1px solid rgba(92,116,139,.18);
    border-radius:14px;
    background:rgba(255,255,255,var(--clinicsuite-content-alpha,.84));
    box-shadow:0 8px 24px rgba(25,55,80,.06);
    backdrop-filter:blur(10px) saturate(1.08);
}
.dashboard-report-toolbar-label { display:grid; gap:1px; margin-right:auto; color:var(--navy-dark); }
.dashboard-report-toolbar-label small { color:var(--muted); font-size:.72rem; font-weight:700; }

.role-metric,
.metric {
    position:relative;
    overflow:hidden;
    transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.role-metric::after,
.metric::after {
    content:"";
    position:absolute;
    inset:auto -24px -34px auto;
    width:92px;
    height:92px;
    border-radius:50%;
    background:var(--metric-glow,rgba(18,100,239,.08));
    pointer-events:none;
}
.role-metric:hover,
.metric:hover { transform:translateY(-1px); box-shadow:0 14px 32px rgba(23,74,103,.10); }
.role-metric-blue,.metric-tone-blue { --metric-accent:#1264ef;--metric-glow:rgba(18,100,239,.10);border-top-color:#1264ef;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(238,245,255,.92)); }
.role-metric-green,.metric-tone-green { --metric-accent:#1e8e63;--metric-glow:rgba(30,142,99,.10);border-top-color:#1e8e63;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(235,249,242,.92)); }
.role-metric-amber,.metric-tone-amber { --metric-accent:#c77b16;--metric-glow:rgba(199,123,22,.11);border-top-color:#c77b16;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,247,232,.94)); }
.role-metric-red,.metric-tone-red { --metric-accent:#b74242;--metric-glow:rgba(183,66,66,.10);border-top-color:#b74242;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,239,239,.93)); }
.role-metric-teal,.metric-tone-teal { --metric-accent:#168a9c;--metric-glow:rgba(22,138,156,.10);border-top-color:#168a9c;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(235,248,250,.93)); }
.role-metric-purple,.metric-tone-purple { --metric-accent:#6d5bd0;--metric-glow:rgba(109,91,208,.10);border-top-color:#6d5bd0;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(243,240,255,.94)); }
.role-metric-navy,.metric-tone-navy { --metric-accent:#123c69;--metric-glow:rgba(18,60,105,.10);border-top-color:#123c69;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(237,243,248,.94)); }
.role-metric[class*="role-metric-"] strong { color:var(--metric-accent,var(--navy-dark)); }

.executive-table { overflow:hidden; border:1px solid rgba(93,116,137,.18); border-radius:14px; }
.executive-table table { margin:0; }
.executive-table th { padding:12px 13px; color:#fff; background:linear-gradient(135deg,#123c69,#1d568f)!important; font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; }
.executive-table td { padding:12px 13px; border-bottom:1px solid rgba(101,123,143,.12); }
.executive-table tbody tr:nth-child(even) { background:rgba(241,246,250,.64); }
.executive-actions > a { border-left:4px solid rgba(18,100,239,.62); background:rgba(255,255,255,.72); }
.executive-actions > a:nth-of-type(2) { border-left-color:#168a9c; }
.executive-actions > a:nth-of-type(3) { border-left-color:#c77b16; }
.executive-actions > a:nth-of-type(4) { border-left-color:#6d5bd0; }

.report-heading-pro { padding:18px 20px; border:1px solid rgba(91,117,140,.18); border-radius:18px; background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(236,245,255,.86)); box-shadow:0 12px 32px rgba(23,61,90,.07); }
.report-heading-pro h1 { margin-top:4px; }
.report-format-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
.report-format-strip>div { min-height:88px; padding:15px 16px; border:1px solid rgba(90,115,137,.18); border-radius:14px; background:rgba(255,255,255,var(--clinicsuite-content-alpha,.86)); box-shadow:0 8px 22px rgba(27,56,80,.05); backdrop-filter:blur(8px); }
.report-format-strip strong,.report-format-strip span { display:block; }
.report-format-strip strong { margin-bottom:5px; color:var(--navy-dark); font-size:1rem; }
.report-format-strip span { color:var(--muted); font-size:.76rem; line-height:1.4; }
.report-grid-pro { align-items:stretch; }
.report-card-pro { position:relative; min-height:310px; padding-top:22px; overflow:hidden; border-top:5px solid var(--report-tone,#1264ef); background:linear-gradient(145deg,rgba(255,255,255,var(--clinicsuite-content-alpha,.91)),rgba(244,249,253,var(--clinicsuite-content-alpha,.84))); }
.report-card-pro::after { content:""; position:absolute; width:170px; height:170px; right:-80px; top:-80px; border-radius:50%; background:color-mix(in srgb,var(--report-tone,#1264ef) 11%,transparent); pointer-events:none; }
.report-card-executive { --report-tone:#1264ef; }
.report-card-audit { --report-tone:#6d5bd0; }
.report-card-accounting { --report-tone:#1e8e63; }
.report-card-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; color:#fff; background:var(--report-tone,#1264ef); box-shadow:0 8px 18px color-mix(in srgb,var(--report-tone,#1264ef) 24%,transparent); font-size:1.15rem; font-weight:900; }
.report-card-pro h2 { margin:0; color:var(--navy-dark); font-size:1.28rem; }
.report-card-pro>p { min-height:58px; margin:0; color:#526a77; line-height:1.48; }
.report-card-formats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; width:100%; margin-top:auto; }
a.report-format,button.report-format { display:grid; gap:2px; min-height:57px; padding:9px 8px; place-items:center; border:1px solid rgba(98,121,141,.20); border-radius:11px; color:var(--ink); background:rgba(255,255,255,.80); text-decoration:none; cursor:pointer; font:inherit; box-shadow:0 4px 12px rgba(22,49,72,.04); }
a.report-format:hover,button.report-format:hover { border-color:var(--report-tone,#1264ef); transform:translateY(-1px); }
.report-format strong { font-size:.8rem; }
.report-format small { color:var(--muted); font-size:.65rem; }
.report-format-pdf { border-bottom:3px solid #b74242!important; }
.report-format-docx { border-bottom:3px solid #1264ef!important; }
.report-format-xlsx { border-bottom:3px solid #1e8e63!important; }
.report-filter-pro { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:auto; }
.report-filter-pro .report-card-formats { grid-column:1/-1; }
.report-filter-pro label { min-width:0; }
.report-governance-card { background:linear-gradient(135deg,rgba(250,253,255,.91),rgba(239,247,251,.86)); }
.report-governance-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.report-governance-grid>div { padding:14px; border:1px solid rgba(94,119,139,.16); border-radius:12px; background:rgba(255,255,255,.70); }
.report-governance-grid strong,.report-governance-grid span { display:block; }
.report-governance-grid strong { margin-bottom:4px; color:var(--navy-dark); }
.report-governance-grid span { color:var(--muted); font-size:.76rem; line-height:1.42; }

.desktop-window-content .role-metric,
.desktop-window-content .report-format-strip>div,
.desktop-window-content .report-card-pro,
.desktop-window-content .report-governance-card,
.desktop-window-content .dashboard-report-toolbar {
    background-color:rgba(255,255,255,var(--clinicsuite-content-alpha,.82));
    backdrop-filter:blur(calc(var(--clinicsuite-effective-glass-blur,var(--clinicsuite-glass-blur,18px)) * .55)) saturate(1.08);
}
.desktop-theme-night .role-metric,
.desktop-theme-night .report-format-strip>div,
.desktop-theme-night .report-card-pro,
.desktop-theme-night .report-governance-card,
.desktop-theme-night .dashboard-report-toolbar { background:rgba(29,38,51,var(--clinicsuite-content-alpha,.84)); }
.desktop-theme-night .report-card-pro h2,
.desktop-theme-night .report-heading-pro h1,
.desktop-theme-night .report-format-strip strong,
.desktop-theme-night .report-governance-grid strong,
.desktop-theme-night .dashboard-report-toolbar-label { color:#f2f6fb; }
.desktop-theme-night .report-card-pro>p,
.desktop-theme-night .report-format-strip span,
.desktop-theme-night .report-governance-grid span { color:#b9c5d2; }

@media(max-width:1050px){
    .report-format-strip,.report-governance-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    .report-card-formats{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:650px){
    .report-format-strip,.report-governance-grid,.report-filter-pro{grid-template-columns:1fr;}
    .dashboard-report-toolbar-label{width:100%;margin-right:0;}
}
@media print {
    .dashboard-report-toolbar,.report-format-strip,.report-card-formats,.report-card-icon{display:none!important;}
    .report-card-pro,.report-governance-card,.role-metric{background:#fff!important;color:#000!important;box-shadow:none!important;}
    .executive-table th{background:#e9eef2!important;color:#000!important;}
}


/* v1.6.10 — perfiles de escritorio y Dock reubicable/auto-ocultable. */
.desktop-shell {
    grid-template-rows:56px minmax(0,1fr);
    position:relative;
}
.desktop-taskbar {
    position:absolute;
    z-index:80;
    transition:transform .20s ease, opacity .18s ease, box-shadow .18s ease;
    will-change:transform,opacity;
}
.desktop-dock-position-bottom .desktop-taskbar { left:50%; bottom:8px; top:auto; right:auto; transform:translateX(-50%); }
.desktop-dock-position-top .desktop-taskbar { left:50%; top:64px; bottom:auto; right:auto; transform:translateX(-50%); }
.desktop-dock-position-left .desktop-taskbar,
.desktop-dock-position-right .desktop-taskbar {
    top:50%; bottom:auto; width:58px; max-width:58px; height:auto; max-height:calc(100dvh - 92px);
    margin:0; padding:7px 6px; flex-direction:column; overflow-y:auto; overflow-x:hidden;
}
.desktop-dock-position-left .desktop-taskbar { left:8px; right:auto; transform:translateY(-50%); }
.desktop-dock-position-right .desktop-taskbar { right:8px; left:auto; transform:translateY(-50%); }
.desktop-dock-position-left .desktop-task-areas,
.desktop-dock-position-right .desktop-task-areas { max-width:none; flex-direction:column; overflow:visible; }
.desktop-dock-position-left .desktop-task-current,
.desktop-dock-position-right .desktop-task-current,
.desktop-dock-position-left .desktop-clock,
.desktop-dock-position-right .desktop-clock,
.desktop-dock-position-left .desktop-task-spacer,
.desktop-dock-position-right .desktop-task-spacer { display:none; }
.desktop-dock-position-left .desktop-start-button strong,
.desktop-dock-position-right .desktop-start-button strong { display:none; }
.desktop-dock-position-left .desktop-start-button,
.desktop-dock-position-right .desktop-start-button { width:42px; min-width:42px; padding:0; justify-content:center; }

/* El Dock deja de reservar una fila: sólo 'siempre visible' agrega margen interior protector. */
.desktop-dock-visibility-always.desktop-dock-position-bottom .desktop-workarea { padding-bottom:76px; }
.desktop-dock-visibility-always.desktop-dock-position-top .desktop-workarea { padding-top:76px; }
.desktop-dock-visibility-always.desktop-dock-position-left .desktop-workarea { padding-left:76px; }
.desktop-dock-visibility-always.desktop-dock-position-right .desktop-workarea { padding-right:76px; }

.desktop-dock-reveal {
    position:absolute; z-index:79; padding:0; border:0; background:transparent; opacity:.01; cursor:default;
}
.desktop-dock-reveal span { display:block; background:rgba(75,96,120,.34); border-radius:999px; }
.desktop-dock-position-bottom .desktop-dock-reveal { left:15%; right:15%; bottom:0; height:8px; }
.desktop-dock-position-bottom .desktop-dock-reveal span { width:58px; height:3px; margin:4px auto 0; }
.desktop-dock-position-top .desktop-dock-reveal { left:15%; right:15%; top:56px; height:8px; }
.desktop-dock-position-top .desktop-dock-reveal span { width:58px; height:3px; margin:1px auto 0; }
.desktop-dock-position-left .desktop-dock-reveal { left:0; top:18%; bottom:18%; width:8px; }
.desktop-dock-position-left .desktop-dock-reveal span { width:3px; height:58px; margin:auto 0 auto 1px; }
.desktop-dock-position-right .desktop-dock-reveal { right:0; top:18%; bottom:18%; width:8px; }
.desktop-dock-position-right .desktop-dock-reveal span { width:3px; height:58px; margin:auto 1px auto auto; }
.desktop-dock-visibility-always .desktop-dock-reveal,
.desktop-dock-visibility-hidden .desktop-dock-reveal { display:none; }
.desktop-dock-visibility-hidden .desktop-taskbar { display:none !important; }

.desktop-dock-visibility-auto.desktop-dock-position-bottom:not(.is-dock-revealed) .desktop-taskbar { transform:translate(-50%,calc(100% + 18px)); opacity:0; pointer-events:none; }
.desktop-dock-visibility-auto.desktop-dock-position-top:not(.is-dock-revealed) .desktop-taskbar { transform:translate(-50%,calc(-100% - 18px)); opacity:0; pointer-events:none; }
.desktop-dock-visibility-auto.desktop-dock-position-left:not(.is-dock-revealed) .desktop-taskbar { transform:translate(calc(-100% - 18px),-50%); opacity:0; pointer-events:none; }
.desktop-dock-visibility-auto.desktop-dock-position-right:not(.is-dock-revealed) .desktop-taskbar { transform:translate(calc(100% + 18px),-50%); opacity:0; pointer-events:none; }
.desktop-dock-visibility-auto.is-dock-revealed .desktop-taskbar,
.desktop-dock-visibility-auto .desktop-taskbar:focus-within { opacity:1; pointer-events:auto; }
.desktop-dock-visibility-auto.desktop-dock-position-bottom.is-dock-revealed .desktop-taskbar { transform:translateX(-50%); }
.desktop-dock-visibility-auto.desktop-dock-position-top.is-dock-revealed .desktop-taskbar { transform:translateX(-50%); }
.desktop-dock-visibility-auto.desktop-dock-position-left.is-dock-revealed .desktop-taskbar { transform:translateY(-50%); }
.desktop-dock-visibility-auto.desktop-dock-position-right.is-dock-revealed .desktop-taskbar { transform:translateY(-50%); }
.desktop-dock-visibility-auto .desktop-dock-reveal:focus-visible { opacity:.8; outline:2px solid var(--clinicsuite-accent,#0a84ff); outline-offset:1px; }

/* Perfil Macintosh: tráfico de color a la izquierda. */
.desktop-profile-macintosh .desktop-window-traffic { grid-column:1; grid-row:1; justify-self:start; }
.desktop-profile-macintosh .desktop-window-caption { grid-column:2; grid-row:1; }
.desktop-profile-macintosh .desktop-window-utilities { grid-column:3; grid-row:1; }
.desktop-profile-macintosh .desktop-aux-window-tools.desktop-traffic-controls { order:-1; margin:0 4px 0 0; }

/* Perfil Windows: controles funcionales arriba a la derecha, con orden minimizar/maximizar/cerrar. */
.desktop-profile-windows .desktop-window-traffic,
.desktop-profile-traditional .desktop-window-traffic { grid-column:3; grid-row:1; justify-self:end; padding:0; }
.desktop-profile-windows .desktop-window-caption,
.desktop-profile-traditional .desktop-window-caption { grid-column:2; grid-row:1; }
.desktop-profile-windows .desktop-window-utilities,
.desktop-profile-traditional .desktop-window-utilities { grid-column:1; grid-row:1; justify-self:start; }
.desktop-profile-windows .desktop-aux-window-tools.desktop-traffic-controls,
.desktop-profile-traditional .desktop-aux-window-tools.desktop-traffic-controls { order:2; margin:0 0 0 auto; }
.desktop-profile-windows .desktop-traffic-controls .desktop-window-minimize,
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-minimize { order:1; }
.desktop-profile-windows .desktop-traffic-controls .desktop-window-maximize,
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-maximize { order:2; }
.desktop-profile-windows .desktop-traffic-controls .desktop-window-close,
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-close { order:3; }
.desktop-profile-windows .desktop-traffic-controls .desktop-window-control,
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-control {
    width:34px; min-width:34px; height:28px; min-height:28px; border:0; border-radius:5px; box-shadow:none;
    color:#314052; background:transparent; font:700 14px/1 system-ui,sans-serif;
}
.desktop-profile-windows .desktop-traffic-controls .desktop-window-control > span,
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-control > span { opacity:.82; transform:none; }
.desktop-profile-windows .desktop-traffic-controls .desktop-window-control:hover,
.desktop-profile-windows .desktop-traffic-controls .desktop-window-control:focus-visible,
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-control:hover,
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-control:focus-visible { outline:none; background:rgba(74,91,112,.12); }
.desktop-profile-windows .desktop-traffic-controls .desktop-window-close:hover,
.desktop-profile-windows .desktop-traffic-controls .desktop-window-close:focus-visible { color:white; background:#c42b1c; }
.desktop-profile-windows .desktop-traffic-controls .desktop-window-close,
.desktop-profile-windows .desktop-traffic-controls .desktop-window-minimize,
.desktop-profile-windows .desktop-traffic-controls .desktop-window-maximize,
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-close,
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-minimize,
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-maximize { background:transparent; }
.desktop-profile-traditional .desktop-traffic-controls .desktop-window-control { border:1px solid rgba(81,100,123,.16); background:rgba(255,255,255,.38); }

@media (max-width:1024px), (pointer:coarse) {
    .desktop-shell { grid-template-rows:54px minmax(0,1fr); }
    .desktop-dock-position-top .desktop-taskbar { top:60px; }
    .desktop-dock-position-top .desktop-dock-reveal { top:54px; }
    .desktop-dock-visibility-always.desktop-dock-position-bottom .desktop-workarea { padding-bottom:64px; }
}
@media (max-width:600px) {
    .desktop-shell { grid-template-rows:50px minmax(0,1fr); }
    .desktop-dock-position-top .desktop-taskbar { top:54px; }
    .desktop-dock-position-top .desktop-dock-reveal { top:50px; }
    .desktop-dock-position-left .desktop-taskbar,.desktop-dock-position-right .desktop-taskbar { max-height:calc(100dvh - 70px); }
}

/* v1.6.11 — buscador de Inicio observable, accesible y limitado a módulos autorizados. */

/* v1.6.12 roadmap, PWA y encuesta */
.roadmap-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:18px;align-items:start}.roadmap-search{margin-bottom:16px}.roadmap-stages{display:grid;gap:0;margin:10px 0 18px}.roadmap-stage{display:grid;grid-template-columns:28px 1fr;gap:10px;min-height:64px;position:relative}.roadmap-stage:not(:last-child)::after{content:"";position:absolute;left:10px;top:22px;bottom:-4px;width:2px;background:rgba(70,104,132,.24)}.roadmap-dot{width:20px;height:20px;border-radius:50%;border:3px solid #93a8b8;background:#fff;z-index:1}.roadmap-stage.is-done .roadmap-dot{background:#22a06b;border-color:#22a06b;box-shadow:0 0 0 4px rgba(34,160,107,.12)}.roadmap-stage strong,.roadmap-stage small,.roadmap-stage time{display:block}.roadmap-stage small{color:#617384;margin-top:3px}.roadmap-stage time{font-size:.76rem;color:#7f8e9a;margin-top:3px}.process-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.process-event-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.process-event-list li{padding:10px 12px;border:1px solid rgba(80,110,135,.16);border-radius:10px;background:rgba(255,255,255,.5)}.process-event-list strong,.process-event-list span{display:block}.process-event-list span{font-size:.76rem;color:#71808c;margin-top:3px}.pwa-install-button[hidden]{display:none!important}.survey-public{min-height:100vh;background:linear-gradient(145deg,#eaf5fb,#f7fbfd);display:grid;place-items:center;padding:24px}.survey-card{width:min(680px,100%);background:#fff;border-radius:22px;box-shadow:0 18px 60px rgba(28,64,90,.18);padding:30px}.survey-logo{width:54px;height:54px}.survey-card form{display:grid;gap:14px}.survey-card label,.survey-rating{display:grid;gap:6px;font-weight:600}.survey-card select,.survey-card textarea{width:100%}.survey-card textarea{min-height:110px}@media(max-width:900px){.roadmap-layout,.process-columns{grid-template-columns:1fr}}

.classic-background-video,.classic-background-shade{position:fixed;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none!important}.classic-background-video{object-fit:cover}.classic-background-shade{z-index:-1;background:rgba(8,27,48,var(--clinicsuite-wallpaper-shade,.10))}.classic-ui .app-shell{position:relative;z-index:1;background:transparent}.classic-ui .sidebar,.classic-ui .topbar,.classic-ui .content,.classic-ui .app-footer{backdrop-filter:blur(var(--clinicsuite-effective-glass-blur,12px))}.classic-ui .content{background:rgba(247,250,252,var(--clinicsuite-content-alpha,.82))}.classic-ui .sidebar{background:rgba(15,42,62,var(--clinicsuite-glass-alpha,.84))}.classic-ui .topbar{background:rgba(255,255,255,var(--clinicsuite-glass-alpha,.84))}

/* v1.6.12 — flujo operacional por ticket y roadmaps ejecutivos. */
.queue-actions{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:210px}.queue-actions form{margin:0}.queue-assign-form{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.queue-assign-form select{min-width:150px;max-width:220px}.process-columns-wide{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1100px){.process-columns-wide{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.process-columns-wide{grid-template-columns:1fr}.queue-actions{min-width:170px}}

/* v1.6.14 — calendario operacional, capacidad y feriados oficiales. */
.calendar-heading{align-items:flex-end}.calendar-country-badge{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px solid rgba(72,105,132,.18);border-radius:14px;background:rgba(255,255,255,.56);backdrop-filter:blur(12px)}.calendar-country-badge span{font-size:.78rem;color:#687b89}.calendar-filter-card{padding:14px 16px}.calendar-filter-grid{display:grid;grid-template-columns:1.25fr 1fr .85fr auto;gap:12px;align-items:end}.calendar-filter-action .button{width:100%}.calendar-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}.calendar-holiday-banner,.calendar-coverage-warning{display:flex;gap:12px;align-items:flex-start;margin:14px 0;padding:14px 16px;border-radius:14px;border:1px solid rgba(207,136,25,.24);background:rgba(255,246,221,.86);backdrop-filter:blur(10px)}.calendar-holiday-banner p{margin:3px 0 0;color:#6e5729}.calendar-holiday-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#f2b94b;color:#5d430f;font-size:1rem;flex:0 0 auto}.calendar-coverage-warning{display:block;border-color:rgba(186,71,56,.22);background:rgba(255,238,235,.88)}.calendar-main-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:16px;align-items:start}.calendar-month-card,.calendar-day-card{min-width:0}.calendar-month-header{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;text-align:center}.calendar-week-head,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-week-head{margin-top:12px;border-bottom:1px solid rgba(77,106,128,.15)}.calendar-week-head div{padding:8px 6px;text-align:center;font-size:.76rem;font-weight:700;color:#647786;text-transform:uppercase;letter-spacing:.04em}.calendar-month-grid{border-left:1px solid rgba(77,106,128,.13);border-top:1px solid rgba(77,106,128,.13)}.calendar-day{position:relative;display:flex;flex-direction:column;min-height:112px;padding:9px 8px;color:inherit;text-decoration:none;border-right:1px solid rgba(77,106,128,.13);border-bottom:1px solid rgba(77,106,128,.13);background:rgba(255,255,255,.42);transition:background .15s ease,box-shadow .15s ease}.calendar-day:hover,.calendar-day:focus-visible{background:rgba(255,255,255,.78);box-shadow:inset 0 0 0 2px rgba(33,125,197,.18);outline:none}.calendar-day.is-other-month{opacity:.48}.calendar-day.is-selected{background:rgba(223,241,255,.82);box-shadow:inset 0 0 0 2px rgba(31,126,201,.45)}.calendar-day.is-holiday{background:rgba(255,242,222,.7)}.calendar-day.is-selected.is-holiday{background:linear-gradient(135deg,rgba(223,241,255,.88),rgba(255,242,222,.88))}.calendar-day-top{display:flex;justify-content:space-between;gap:5px;align-items:center}.calendar-day-top strong{font-size:.9rem}.calendar-today-chip{font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:999px;background:#1679be;color:#fff}.calendar-holiday-name{margin-top:5px;font-size:.68rem;line-height:1.22;color:#8a5b10;font-weight:700;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.calendar-day-capacity{margin-top:auto;padding-top:8px;display:flex;flex-direction:column;gap:2px;font-size:.66rem;color:#667886}.calendar-day-capacity b{color:#1c6a51}.calendar-capacity-bar{height:5px;margin-top:5px;border-radius:999px;background:rgba(74,102,122,.12);overflow:hidden}.calendar-capacity-bar i{display:block;height:100%;background:#3197cf;border-radius:inherit}.calendar-legend{display:flex;gap:14px;flex-wrap:wrap;padding-top:12px;font-size:.75rem;color:#667785}.calendar-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:9px;height:9px;border-radius:50%;background:#9badb8}.legend-dot.holiday{background:#e1a63b}.legend-dot.selected{background:#2c8bc5}.legend-dot.capacity{background:#3da67b}.calendar-slots{display:grid;gap:8px;max-height:620px;overflow:auto;padding-right:3px}.calendar-slot{display:grid;grid-template-columns:72px 1fr;gap:10px;padding:9px 10px;border:1px solid rgba(69,101,126,.14);border-radius:12px;background:rgba(255,255,255,.46)}.calendar-slot.is-full{background:rgba(252,239,238,.55)}.calendar-slot-time{display:flex;flex-direction:column;gap:2px}.calendar-slot-time strong{font-size:.92rem}.calendar-slot-time span{font-size:.67rem;color:#768692}.calendar-slot-content{display:grid;gap:6px}.calendar-free-slot{font-size:.76rem;color:#23785c;font-weight:700}.calendar-appointment{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:7px 8px;border-radius:9px;background:rgba(227,241,250,.8)}.calendar-appointment strong,.calendar-appointment span{display:block}.calendar-appointment span:not(.badge){font-size:.7rem;color:#667a89;margin-top:2px}.calendar-booking-card{margin-top:16px}.calendar-admin-card{margin-top:16px}.calendar-admin-card>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;cursor:pointer;list-style:none}.calendar-admin-card>summary::-webkit-details-marker{display:none}.calendar-admin-card>summary span{font-size:.78rem;color:#6d7c87}.calendar-settings-form{margin-top:16px}.calendar-holiday-policy{align-self:end;margin-bottom:8px}.calendar-hours-table{display:grid;gap:6px;margin:16px 0}.calendar-hours-head,.calendar-hours-row{display:grid;grid-template-columns:1fr .7fr .9fr .9fr 1.25fr;gap:8px;align-items:center}.calendar-hours-head{padding:0 8px;font-size:.72rem;font-weight:700;color:#667884;text-transform:uppercase}.calendar-hours-row{padding:8px;border:1px solid rgba(73,104,127,.14);border-radius:10px;background:rgba(255,255,255,.45)}.calendar-hours-row input[type=time],.calendar-hours-row input[type=number]{width:100%;min-width:0}.calendar-access-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-source-card{margin-top:16px}.calendar-country-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media(max-width:1100px){.calendar-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-main-grid{grid-template-columns:1fr}.calendar-slots{max-height:none}}
@media(max-width:760px){.calendar-filter-grid,.calendar-metrics{grid-template-columns:1fr}.calendar-month-header{grid-template-columns:1fr 1fr}.calendar-month-header>div{grid-column:1/-1;grid-row:1}.calendar-day{min-height:86px;padding:6px 5px}.calendar-holiday-name{font-size:.6rem}.calendar-day-capacity{font-size:.6rem}.calendar-hours-head{display:none}.calendar-hours-row{grid-template-columns:1fr 1fr}.calendar-hours-row strong{grid-column:1/-1}.calendar-appointment{grid-template-columns:1fr}.calendar-week-head div{font-size:.66rem;padding:6px 2px}}
.calendar-capacity-bar progress{display:block;width:100%;height:6px;border:0;border-radius:999px;overflow:hidden;background:rgba(148,163,184,.22);appearance:none;-webkit-appearance:none}.calendar-capacity-bar progress::-webkit-progress-bar{background:rgba(148,163,184,.22);border-radius:999px}.calendar-capacity-bar progress::-webkit-progress-value{background:var(--accent,#2563eb);border-radius:999px}.calendar-capacity-bar progress::-moz-progress-bar{background:var(--accent,#2563eb);border-radius:999px}


/* v1.6.16 — guardia de viewport: el shell no puede desplazarse por anclas/hash del documento. */
body.desktop-ui {
  min-height: 0;
  overflow: hidden;
  overscroll-behavior: none;
}
body.desktop-ui .desktop-shell {
  position: fixed;
  inset: 0;
  width: auto;
  height: auto;
  min-height: 0;
}
body.desktop-ui .desktop-window-chrome {
  flex: 0 0 auto;
}
