:root{--primary:#086bf0;--primary-2:#0bbbc5;--navy:#092a5e;--navy-2:#123d76;--bg:#f3f8fe;--surface:#fff;--text:#263751;--muted:#6c7f9c;--line:#dbe7f5;--success:#16855b;--success-bg:#dcf8eb;--danger:#b4233f;--danger-bg:#ffe5eb;--warning:#a56700;--purple:#7657d8;--shadow:0 18px 50px rgba(20,65,120,.11);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:linear-gradient(180deg,#fff 0,var(--bg) 100%);line-height:1.55}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--primary)}.topbar{position:sticky;z-index:20;top:0;display:flex;align-items:center;justify-content:space-between;padding:17px clamp(20px,6vw,90px);background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px;color:var(--navy);text-decoration:none;min-width:0}.brand-mark{display:grid;place-items:center;flex:none;width:47px;height:47px;border-radius:16px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;font-weight:900;letter-spacing:-.04em;box-shadow:0 10px 28px rgba(8,107,240,.24)}.brand>span:last-child{display:flex;min-width:0;flex-direction:column}.brand strong{font-size:1.06rem}.brand small{overflow:hidden;color:var(--muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.topbar nav{display:flex;align-items:center;gap:8px}.topbar nav a{padding:10px 14px;border-radius:12px;color:var(--navy);font-weight:750;text-decoration:none}.topbar nav a:hover{background:#eef6ff}.topbar .nav-pill{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2))}.topbar .nav-pill:hover{background:linear-gradient(135deg,#075ecc,#09aab3)}.container{width:min(1180px,90vw);margin:0 auto;padding:72px 0}.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.75fr);gap:38px;align-items:center;min-height:520px}.eyebrow{display:inline-block;color:var(--primary);font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.eyebrow.light{color:#bceeff}.hero h1{max-width:800px;margin:16px 0 22px;color:var(--navy);font-size:clamp(2.4rem,5.6vw,5rem);line-height:1.02;letter-spacing:-.055em}.hero p{max-width:720px;margin:0;color:#526884;font-size:1.13rem;line-height:1.75}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;padding:12px 18px;border:0;border-radius:13px;cursor:pointer;font-weight:800;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.button:hover{transform:translateY(-1px)}.button.primary{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 12px 30px rgba(8,107,240,.2)}.button.secondary{color:var(--navy);background:#fff;border:1px solid var(--line)}.button.full{width:100%}.button:disabled{cursor:not-allowed;opacity:.52;transform:none}.status-card,.panel,.modules article,.empty-state,.metric-card,.welcome-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.status-card{position:relative;overflow:hidden;padding:36px}.status-card:before{position:absolute;right:-70px;top:-70px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(11,187,197,.18),transparent 68%);content:""}.access-card .brand-orbit{display:grid;width:74px;height:74px;place-items:center;margin-bottom:24px;border-radius:24px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-size:1.35rem;font-weight:900;box-shadow:0 15px 32px rgba(8,107,240,.22)}.access-card strong{display:block;color:var(--navy);font-size:1.55rem;line-height:1.25}.access-card p{margin-top:12px;font-size:.98rem;line-height:1.65}.mini-access{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.mini-access span{padding:11px;border-radius:12px;background:#edf7ff;color:var(--navy);font-size:.86rem;font-weight:800;text-align:center}.benefit-section{padding:45px 0 20px}.benefit-section h2{margin:9px 0 28px;color:var(--navy);font-size:clamp(1.8rem,4vw,3rem)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.benefit-grid article{padding:26px;background:#fff;border:1px solid var(--line);border-radius:18px}.benefit-grid strong{color:var(--navy);font-size:1.08rem}.benefit-grid p{margin-bottom:0;color:var(--muted)}.site-footer{display:flex;width:min(1180px,90vw);justify-content:space-between;gap:24px;margin:20px auto 0;padding:28px 0 40px;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem}.site-footer span:first-child{color:var(--navy);font-weight:850}.alert{padding:14px 16px;border-radius:13px;margin:0 0 18px;overflow-wrap:anywhere}.alert.danger{color:#8e1831;background:var(--danger-bg);border:1px solid #ffc6d3}.alert.success{color:#126b49;background:var(--success-bg);border:1px solid #b5ebd4}.alert.info{color:#0b4f9d;background:#e9f4ff;border:1px solid #c9e4ff}.alert a{overflow-wrap:anywhere}.auth-page{background:#edf5ff}.auth-shell{display:grid;min-height:100vh;grid-template-columns:minmax(360px,.95fr) minmax(440px,1.05fr)}.auth-brand-panel{position:relative;display:flex;overflow:hidden;min-height:100vh;flex-direction:column;justify-content:space-between;padding:clamp(34px,6vw,82px);color:#fff;background:linear-gradient(145deg,#072a64 0,#075ab8 55%,#09aeba 100%)}.auth-brand-panel:before,.auth-brand-panel:after{position:absolute;border:1px solid rgba(255,255,255,.14);border-radius:50%;content:""}.auth-brand-panel:before{right:-180px;bottom:-180px;width:520px;height:520px}.auth-brand-panel:after{right:-40px;bottom:-40px;width:230px;height:230px}.brand-light{color:#fff;position:relative;z-index:1}.brand-light small{color:#bee6ff}.auth-promise{position:relative;z-index:1;max-width:600px}.auth-promise h1{margin:14px 0 18px;font-size:clamp(2.2rem,4.8vw,4.5rem);line-height:1.04;letter-spacing:-.05em}.auth-promise p{max-width:540px;color:#d7eeff;font-size:1.05rem;line-height:1.75}.trust-row{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px}.trust-row span{padding:8px 11px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.08);font-size:.78rem}.auth-form-panel{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:clamp(28px,7vw,100px);background:#f9fcff}.auth-mobile-brand{display:none}.auth-form-panel>*{width:min(480px,100%);margin-left:auto;margin-right:auto}.auth-card-head{margin-bottom:26px}.auth-card-head h2{margin:8px 0;color:var(--navy);font-size:clamp(2rem,4vw,3.05rem);letter-spacing:-.035em}.auth-card-head p{margin:0;color:var(--muted)}.auth-form label,.installer-form label{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;color:var(--navy);font-size:.91rem;font-weight:800}.optional{color:var(--muted);font-size:.74rem;font-weight:600}.auth-form input,.installer-form input{width:100%;min-height:48px;padding:12px 14px;border:1px solid #ccdcef;border-radius:12px;outline:none;background:#fff;color:var(--text);font:inherit;transition:border-color .15s,box-shadow .15s}.auth-form input:focus,.installer-form input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(8,107,240,.11)}.password-field{position:relative;display:block}.password-field input{padding-right:84px}.password-field button{position:absolute;right:8px;top:50%;padding:7px 9px;border:0;border-radius:8px;transform:translateY(-50%);cursor:pointer;color:var(--primary);background:#edf6ff;font-size:.76rem;font-weight:850}.form-between{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin:-2px 0 19px;font-size:.85rem}.form-between a,.switch-access a{font-weight:800;text-decoration:none}.switch-access{margin-top:22px!important;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem;text-align:center}.auth-security-note{margin-top:28px!important;color:#8392a9;font-size:.75rem;text-align:center}.password-requirements{display:flex;flex-wrap:wrap;gap:7px;margin:-3px 0 18px}.password-requirements span{padding:6px 9px;border-radius:999px;color:#586e8d;background:#eaf3fd;font-size:.72rem}.installer-shell{max-width:1100px;margin:auto}.installer-heading{margin-bottom:28px}.installer-heading h1{margin:.45rem 0;color:var(--navy);font-size:clamp(2rem,5vw,3.6rem);letter-spacing:-.04em}.installer-heading p{color:var(--muted)}.installer-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:start}.panel{padding:26px}.panel h2{margin-top:0;color:var(--navy)}.requirements{position:sticky;top:105px}.check-row{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.check-row>span{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;font-weight:900}.check-row.ok>span{color:#15803d;background:#dcfce7}.check-row.fail>span{color:#b91c1c;background:#fee2e2}.check-row div{display:flex;min-width:0;flex-direction:column}.check-row small{margin-top:3px;overflow-wrap:anywhere;color:var(--muted)}.form-grid.two{display:grid;grid-template-columns:1fr 145px;gap:14px}.form-note{color:var(--muted);font-size:.82rem}.section-divider{display:flex;align-items:center;gap:12px;margin:28px 0 20px;color:var(--primary);font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.section-divider:before,.section-divider:after{height:1px;flex:1;background:var(--line);content:""}.success-state .success-icon{display:grid;width:78px;height:78px;place-items:center;margin:0 auto 18px;border-radius:50%;color:#15803d;background:#dcfce7;font-size:2.4rem;font-weight:900}.success-icon.small{width:62px!important;height:62px!important;font-size:1.8rem!important}.centered{justify-content:center}.empty-state{padding:48px;text-align:center}.empty-state h1{color:var(--navy)}.error-code{display:block;color:var(--primary);font-size:4rem;font-weight:950}.dashboard-page{overflow-x:hidden;background:#f1f6fc}.dashboard-shell{display:grid;min-height:100vh;grid-template-columns:280px minmax(0,1fr)}.sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;padding:24px 19px;background:#fff;border-right:1px solid var(--line);z-index:30}.sidebar .brand{padding:0 5px 22px}.sidebar-nav{display:flex;flex:1;flex-direction:column;gap:7px;padding-top:14px;border-top:1px solid var(--line)}.sidebar-nav a,.nav-disabled{display:flex;align-items:center;gap:11px;min-height:45px;padding:10px 12px;border-radius:11px;color:#566b88;text-decoration:none;font-size:.9rem;font-weight:750}.sidebar-nav a.active{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 9px 24px rgba(8,107,240,.2)}.sidebar-nav a>span,.nav-disabled>span{display:grid;width:23px;place-items:center;font-size:1.05rem}.nav-disabled{cursor:default;opacity:.55}.nav-disabled small{margin-left:auto;font-size:.62rem}.sidebar-user{display:flex;align-items:center;gap:10px;padding:15px 5px 12px;border-top:1px solid var(--line)}.avatar{display:grid;width:42px;height:42px;place-items:center;flex:none;border-radius:13px;color:#fff;background:linear-gradient(135deg,var(--navy-2),var(--primary-2));font-weight:900}.sidebar-user div{display:flex;min-width:0;flex-direction:column}.sidebar-user strong,.sidebar-user small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user small{color:var(--muted);font-size:.7rem}.logout-button{width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;cursor:pointer;color:#9b2742;background:#fff;font-weight:800}.logout-button:hover{background:#fff0f3}.dashboard-main{min-width:0}.dashboard-header{position:sticky;z-index:15;top:0;display:flex;height:76px;align-items:center;gap:14px;padding:0 clamp(20px,3vw,46px);background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.dashboard-header>div{display:flex;flex-direction:column}.dashboard-header small{color:var(--muted)}.menu-toggle{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--navy);font-size:1.2rem}.secure-badge{margin-left:auto;padding:7px 10px;border-radius:999px;color:var(--success);background:var(--success-bg);font-size:.72rem;font-weight:850}.dashboard-content{padding:clamp(24px,4vw,52px);max-width:1500px}.welcome-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:32px;margin-bottom:20px;background:linear-gradient(135deg,#fff,#f1f9ff)}.welcome-panel h1{margin:8px 0 6px;color:var(--navy);font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.04em}.welcome-panel p{margin:0;color:var(--muted)}.role-chip{flex:none;padding:9px 13px;border-radius:999px;color:#0759be;background:#dcebff;font-size:.78rem;font-weight:850}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.metric-card{display:flex;gap:15px;padding:22px}.metric-icon{display:grid;width:48px;height:48px;place-items:center;flex:none;border-radius:15px;color:#fff;background:linear-gradient(135deg,var(--primary),#5aa5ff);font-size:1.2rem;font-weight:900}.metric-icon.teal{background:linear-gradient(135deg,#02a8b2,#43d4c4)}.metric-icon.purple{background:linear-gradient(135deg,#7657d8,#a888ef)}.metric-card div{display:flex;min-width:0;flex-direction:column}.metric-card small{color:var(--muted)}.metric-card strong{overflow-wrap:anywhere;color:var(--navy);font-size:1.1rem}.metric-card p{margin:5px 0 0;color:var(--muted);font-size:.84rem}.next-steps{box-shadow:none}.step-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.step-list>div{display:flex;gap:12px;padding:15px;border-radius:14px;background:#f5f9fe}.step-list span{display:grid;width:30px;height:30px;place-items:center;flex:none;border-radius:10px;color:#fff;background:var(--primary);font-weight:850}.step-list p{margin:2px 0;color:var(--muted);font-size:.86rem}.step-list strong{color:var(--navy)}@media(max-width:980px){.hero{grid-template-columns:1fr;min-height:auto}.hero h1{max-width:850px}.status-card{max-width:650px}.grid,.dashboard-grid{grid-template-columns:1fr 1fr}.auth-shell{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-form-panel{min-height:100vh}.auth-mobile-brand{display:block!important;margin-bottom:52px!important}.installer-grid{grid-template-columns:1fr}.requirements{position:static}.dashboard-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-300px;box-shadow:25px 0 60px rgba(9,42,94,.18);transition:left .2s ease}.sidebar.open{left:0}.menu-toggle{display:block}.step-list{grid-template-columns:1fr}}@media(max-width:650px){.topbar{position:static;align-items:flex-start;gap:14px;padding:15px 18px}.topbar nav{flex-direction:column;align-items:stretch}.topbar nav a{padding:7px 9px;font-size:.8rem;text-align:right}.brand-mark{width:42px;height:42px;border-radius:14px}.container{width:min(92vw,1180px);padding:42px 0}.hero{gap:25px}.hero h1{font-size:clamp(2.15rem,12vw,3.6rem)}.grid,.dashboard-grid{grid-template-columns:1fr}.site-footer{flex-direction:column;padding-bottom:26px}.auth-form-panel{padding:26px 20px}.auth-mobile-brand{margin-bottom:42px!important}.auth-card-head h2{font-size:2.2rem}.form-grid.two{grid-template-columns:1fr}.panel,.empty-state{padding:22px}.installer-heading h1{font-size:2.3rem}.dashboard-header{padding:0 15px}.dashboard-content{padding:20px 14px}.welcome-panel{align-items:flex-start;flex-direction:column;padding:23px}.role-chip{align-self:flex-start}.metric-card{padding:18px}.secure-badge{font-size:0;width:12px;height:12px;padding:0;background:#20b979}.step-list{grid-template-columns:1fr}.auth-form input,.installer-form input{font-size:16px}}@media(max-width:380px){.topbar .brand small{display:none}.topbar nav a{font-size:.72rem}.mini-access{grid-template-columns:1fr}.auth-form-panel{padding:22px 15px}.password-field button{right:5px}.welcome-panel h1{font-size:2rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Pantalla sin conexión */
.offline-page{min-height:100vh;display:grid;place-items:center;margin:0;padding:22px;background:#f3f8fe;color:#263751}
.offline-card{width:min(100%,520px);padding:34px;border:1px solid #dbe7f5;border-radius:22px;background:#fff;text-align:center;box-shadow:0 18px 50px rgba(20,65,120,.11)}
.offline-card .brand-mark{margin:0 auto 18px}
.offline-card h1{margin:0 0 10px;color:#092a5e}
.offline-card p{margin:0 0 22px;line-height:1.65}

/* Actualización controlada */
.narrow-shell{max-width:860px;margin-inline:auto}.centered-panel{text-align:center;padding:clamp(28px,5vw,52px)}
.centered-panel code{display:inline-block;padding:3px 8px;border-radius:8px;background:#eef5fd;color:#163d73;overflow-wrap:anywhere}
.upgrade-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.upgrade-summary div{padding:16px;border-radius:15px;background:#f5f9fe;border:1px solid #deebf8}.upgrade-summary small{display:block;color:#667b95}.upgrade-summary strong{display:block;margin-top:5px;color:#0b315f;font-size:1.25rem}.migration-list{margin:0 0 22px;padding-left:22px;color:#405873}.migration-list li+li{margin-top:7px}
@media(max-width:700px){.upgrade-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Bloque 4: contexto SaaS y multiconsultorio */
.header-context{min-width:0}.branch-switcher{margin-left:auto}.branch-switcher label{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.72rem;font-weight:800}.branch-switcher label>span{white-space:nowrap}.branch-switcher select{min-width:170px;max-width:260px;height:40px;padding:0 34px 0 12px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--navy);font-weight:800}.branch-switcher+.secure-badge{margin-left:0}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.section-title-row h2{margin:5px 0 0}.compact-welcome{padding-block:27px}.saas-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.architecture-panel{margin-bottom:20px}.architecture-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:stretch;gap:12px}.architecture-flow article{position:relative;padding:20px;border:1px solid var(--line);border-radius:16px;background:#f7fbff}.architecture-flow article span{display:grid;width:31px;height:31px;place-items:center;margin-bottom:12px;border-radius:10px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-weight:900}.architecture-flow article strong{color:var(--navy)}.architecture-flow article p{margin:7px 0 0;color:var(--muted);font-size:.84rem}.architecture-flow>i{display:grid;place-items:center;color:var(--primary);font-size:1.25rem;font-style:normal}.two-column-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.feature-list{display:grid;gap:12px;margin:18px 0 0;padding:0;list-style:none}.feature-list li{position:relative;padding-left:27px;color:var(--muted)}.feature-list li:before{position:absolute;left:0;top:.13rem;display:grid;width:18px;height:18px;place-items:center;border-radius:50%;color:#fff;background:var(--success);content:"✓";font-size:.68rem;font-weight:900}.status-stack{display:grid;gap:12px;margin-top:17px}.status-stack>div{display:flex;align-items:center;gap:12px;padding:12px;border-radius:13px;background:#f7fbff}.status-stack p{display:flex;flex-direction:column;margin:0}.status-stack small{color:var(--muted)}.status-dot{width:12px;height:12px;flex:none;border-radius:50%}.status-dot.ok{background:var(--success);box-shadow:0 0 0 5px var(--success-bg)}.status-dot.pending{background:#d99000;box-shadow:0 0 0 5px #fff2cf}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr);gap:20px;margin-bottom:20px}.workspace-side{display:grid;gap:20px}.count-chip,.current-label{padding:7px 10px;border-radius:999px;color:#0759be;background:#e4f1ff;font-size:.72rem;font-weight:850}.branch-list{display:grid;gap:11px}.branch-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fbfdff}.branch-row.selected{border-color:#9ccaff;background:#f0f7ff}.branch-symbol{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-weight:900}.branch-row>div{display:flex;min-width:0;flex-direction:column}.branch-row small{color:var(--muted)}.status-pill{padding:6px 9px;border-radius:999px;font-size:.69rem;font-weight:850}.status-pill.active{color:var(--success);background:var(--success-bg)}.status-pill.inactive{color:#6b7280;background:#eef1f5}.small-button{min-height:36px;padding:8px 11px}.button.ghost{color:var(--primary);background:#eef6ff;border:1px solid #d4e8ff;box-shadow:none}.inline-empty{padding:28px;border:1px dashed #bfd5ed;border-radius:16px;text-align:center}.inline-empty p,.muted-copy{margin-bottom:0;color:var(--muted)}.detail-list{display:grid;gap:12px;margin:18px 0 0}.detail-list div{padding-bottom:10px;border-bottom:1px solid var(--line)}.detail-list dt{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.detail-list dd{margin:4px 0 0;overflow-wrap:anywhere;color:var(--navy);font-weight:800}.domain-list{display:grid;gap:9px;margin-top:15px}.domain-list div{display:flex;flex-direction:column;padding:11px;border-radius:12px;background:#f5f9fe}.domain-list small{color:var(--muted)}.isolation-note{display:flex;align-items:center;gap:16px}.isolation-note h2{margin:0 0 4px}.isolation-note p{margin:0;color:var(--muted)}
@media(max-width:1180px){.architecture-flow{grid-template-columns:1fr 1fr}.architecture-flow>i{display:none}.workspace-grid{grid-template-columns:1fr}.workspace-side{grid-template-columns:1fr 1fr}.branch-switcher label>span{display:none}}
@media(max-width:760px){.two-column-grid,.workspace-side,.saas-metrics{grid-template-columns:1fr}.architecture-flow{grid-template-columns:1fr}.section-title-row{align-items:flex-start;flex-direction:column}.branch-switcher{order:3;width:100%;margin:0}.branch-switcher label{width:100%}.branch-switcher select{width:100%;max-width:none}.dashboard-header{height:auto;min-height:76px;flex-wrap:wrap;padding-block:12px}.branch-row{grid-template-columns:auto minmax(0,1fr) auto}.branch-row form,.branch-row .current-label{grid-column:2/-1;justify-self:start}.isolation-note{align-items:flex-start}}
@media(max-width:430px){.branch-row{grid-template-columns:auto minmax(0,1fr)}.branch-row>.status-pill{grid-column:2}.branch-row form,.branch-row .current-label{grid-column:2}.architecture-panel{padding-inline:17px}}

/* Bloque 5: roles, permisos y control de acceso */
.access-welcome{margin-bottom:20px}.access-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.warning-icon{background:linear-gradient(135deg,#db8a00,#f1bd45)}.access-tabs{display:flex;gap:7px;margin:0 0 18px;padding:6px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}.access-tabs button{flex:1;min-height:42px;border:0;border-radius:10px;color:var(--muted);background:transparent;font-weight:850;cursor:pointer}.access-tabs button.active{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 8px 20px rgba(0,112,243,.18)}.access-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.55fr);gap:20px;margin-bottom:20px}.role-catalog{display:grid;gap:12px}.role-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fbfdff}.role-card>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:15px;cursor:pointer;list-style:none}.role-card>summary::-webkit-details-marker{display:none}.role-card>summary:after{content:"⌄";color:var(--primary);font-weight:900}.role-card[open]>summary:after{content:"⌃"}.role-card>summary>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.role-card>summary small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.role-symbol{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-weight:900}.role-count{color:var(--muted);font-size:.75rem;font-weight:800}.role-card-body{padding:0 16px 18px;border-top:1px solid var(--line)}.permission-summary{display:flex;flex-wrap:wrap;gap:7px;padding:14px 0}.permission-summary span{padding:6px 9px;border-radius:999px;color:#1460a7;background:#eaf4ff;font-size:.7rem;font-weight:800}.role-edit-form{display:grid;grid-template-columns:1fr 1.5fr .7fr auto;align-items:end;gap:10px;padding:13px;border-radius:13px;background:#f4f8fd}.role-edit-form label,.stack-form label{display:flex;min-width:0;flex-direction:column;gap:6px}.role-edit-form label>span,.stack-form label>span{color:#546b85;font-size:.74rem;font-weight:850}.role-edit-form input,.role-edit-form select,.stack-form input,.stack-form select,.stack-form textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);font:inherit}.stack-form textarea{resize:vertical}.stack-form label>small{color:var(--muted);font-size:.72rem;line-height:1.45}.permission-matrix{display:grid;gap:12px;margin-top:14px}.permission-matrix fieldset,.compact-permissions fieldset{margin:0;padding:13px;border:1px solid var(--line);border-radius:13px}.permission-matrix legend,.compact-permissions legend{padding:0 7px;color:var(--navy);font-size:.78rem;font-weight:900}.permission-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.permission-options label{display:flex;align-items:flex-start;gap:9px;padding:9px;border-radius:10px;background:#f8fbff}.permission-options input,.compact-check input{margin-top:3px;accent-color:var(--primary)}.permission-options span{display:flex;min-width:0;flex-direction:column}.permission-options small{color:var(--muted);font-size:.68rem}.system-role-note{margin:0;padding:12px;border-radius:12px;color:#526982;background:#f3f7fc;font-size:.82rem}.stack-form{display:grid;gap:13px;margin-top:16px}.compact-permissions{border:1px solid var(--line);border-radius:12px}.compact-permissions>summary{padding:12px;color:var(--primary);font-weight:850;cursor:pointer}.compact-permissions fieldset{margin:0 10px 10px}.compact-check{display:flex;gap:8px;padding:5px 0;color:var(--muted);font-size:.78rem}.access-priority{display:grid;gap:12px;margin:18px 0 0;padding:0;list-style:none;counter-reset:access}.access-priority li{display:grid;grid-template-columns:auto 1fr;column-gap:10px;padding:11px;border-radius:12px;background:#f7fbff;counter-increment:access}.access-priority li:before{display:grid;grid-row:1/3;width:27px;height:27px;place-items:center;border-radius:9px;color:#fff;background:var(--primary);content:counter(access);font-size:.72rem;font-weight:900}.access-priority span{color:var(--muted);font-size:.75rem}.table-panel{min-width:0}.responsive-table{width:100%;overflow-x:auto}.responsive-table table{width:100%;border-collapse:collapse;min-width:790px}.responsive-table th,.responsive-table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.responsive-table th{color:#60758d;background:#f7faff;font-size:.7rem;text-transform:uppercase}.responsive-table td{color:#334b66;font-size:.82rem}.responsive-table td>strong,.responsive-table td>small{display:block}.responsive-table td>small{color:var(--muted)}.empty-cell{padding:30px!important;text-align:center!important;color:var(--muted)!important}.text-action{padding:0;border:0;color:var(--primary);background:transparent;font:inherit;font-weight:850;cursor:pointer}.danger-text{color:#bd3352}.effect-pill{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:.7rem;font-weight:900}.effect-pill.allow{color:#08734d;background:#ddf8ed}.effect-pill.deny{color:#b42649;background:#ffe5eb}.audit-timeline{display:grid;gap:0}.audit-timeline article{position:relative;display:grid;grid-template-columns:auto 1fr;gap:13px;padding:0 0 19px}.audit-timeline article:not(:last-child):before{position:absolute;left:6px;top:14px;bottom:0;width:2px;background:#dce9f7;content:""}.audit-dot{position:relative;width:14px;height:14px;margin-top:4px;border:3px solid #dcecff;border-radius:50%;background:var(--primary);z-index:1}.audit-timeline p{margin:3px 0;color:var(--muted);font-size:.78rem}.audit-timeline small{display:block;max-width:100%;overflow-wrap:anywhere;color:#61758d}.role-chip{white-space:nowrap}
@media(max-width:1180px){.access-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.access-layout{grid-template-columns:1fr}.workspace-side{grid-template-columns:1fr 1fr}.role-edit-form{grid-template-columns:1fr 1fr}.role-edit-form button{justify-self:start}}
@media(max-width:760px){.access-tabs{overflow-x:auto}.access-tabs button{min-width:120px}.access-metrics,.workspace-side,.permission-options{grid-template-columns:1fr}.role-card>summary{grid-template-columns:auto minmax(0,1fr) auto}.role-count{grid-column:2}.role-card>summary:after{grid-column:3;grid-row:1/3}.role-edit-form{grid-template-columns:1fr}.access-welcome .role-chip{align-self:flex-start}}
@media(max-width:430px){.role-card>summary{padding:12px}.role-card-body{padding-inline:11px}.permission-matrix fieldset{padding:10px}.access-tabs{margin-inline:-2px}}

/* Bloque 6: Panel Maestro SaaS */
.platform-welcome{margin-bottom:20px}.platform-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.platform-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.62fr);gap:20px;align-items:start}.platform-side{display:grid;gap:20px}.platform-directory{min-width:0}.platform-filters{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,.35fr) auto;gap:12px;align-items:end;margin:18px 0}.platform-filters label,.form-split label{display:flex;min-width:0;flex-direction:column;gap:6px}.platform-filters label>span,.form-split label>span{color:#546b85;font-size:.74rem;font-weight:850}.platform-filters input,.platform-filters select,.form-split input{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);font:inherit}.filter-actions{display:flex;gap:8px}.tenant-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.tenant-card{display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:17px;background:#fbfdff}.tenant-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}.tenant-card-head>div{display:flex;min-width:0;flex-direction:column}.tenant-card-head strong,.tenant-card-head small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tenant-card-head strong{color:var(--navy);font-size:1rem}.tenant-card-head small{color:var(--muted)}.tenant-symbol{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-weight:900}.tenant-status{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border-radius:999px;font-size:.7rem;font-weight:900;white-space:nowrap}.tenant-status.trial{color:#8a5a00;background:#fff1c8}.tenant-status.active{color:#08734d;background:#ddf8ed}.tenant-status.suspended{color:#af3b00;background:#ffeadc}.tenant-status.cancelled{color:#a52645;background:#ffe4eb}.tenant-status.large{padding:9px 13px;font-size:.78rem}.tenant-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tenant-stat-grid div{display:flex;flex-direction:column;padding:10px;border-radius:12px;background:#f0f6fd;text-align:center}.tenant-stat-grid strong{color:var(--navy);font-size:1.05rem}.tenant-stat-grid span{color:var(--muted);font-size:.68rem}.tenant-domain{overflow:hidden;margin:0;color:var(--muted);font-size:.77rem;text-overflow:ellipsis;white-space:nowrap}.tenant-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.tenant-card-footer small{color:var(--muted)}.pagination{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-top:18px}.pagination a{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--line);border-radius:10px;color:var(--navy);background:#fff;text-decoration:none;font-weight:850}.pagination a.active{color:#fff;background:var(--primary);border-color:var(--primary)}.form-split{display:grid;grid-template-columns:1fr .55fr;gap:10px}.compact-timeline article{padding-bottom:14px}.compact-timeline strong{color:var(--navy);font-size:.84rem}.detail-action-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:0 0 18px}.tenant-detail-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.platform-detail-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.62fr);gap:20px;align-items:start}.platform-detail-main{display:grid;gap:20px}.danger-zone{border-color:#f5c8d2;background:linear-gradient(180deg,#fff,#fff9fa)}.support-panel{border-color:#bfe1ff;background:linear-gradient(180deg,#fff,#f7fbff)}.support-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:15px 18px;border:1px solid #9ed7c3;border-radius:17px;background:#e8fbf3;box-shadow:var(--shadow)}.support-banner>div{display:flex;align-items:center;gap:13px}.support-banner strong{color:#075e43}.support-banner p{margin:2px 0 0;color:#477566;font-size:.82rem}.support-lock{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;color:#fff;background:#13825a;font-weight:900}.read-only-welcome{border-color:#9ed7c3}.support-readonly-grid{margin-bottom:20px}.password-field{display:grid;grid-template-columns:1fr auto;gap:8px}.password-field input{min-width:0}.password-field button{min-height:42px;padding:8px 11px;border:1px solid var(--line);border-radius:10px;color:var(--primary);background:#eef6ff;font-weight:850;cursor:pointer}
@media(max-width:1180px){.platform-metrics,.tenant-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-layout,.platform-detail-layout{grid-template-columns:1fr}.platform-side{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-side>.panel:first-child{grid-row:span 2}}
@media(max-width:760px){.platform-metrics,.tenant-detail-metrics,.tenant-cards,.platform-side,.form-split{grid-template-columns:1fr}.platform-side>.panel:first-child{grid-row:auto}.platform-filters{grid-template-columns:1fr}.filter-actions{width:100%}.filter-actions>*{flex:1}.tenant-card-head{grid-template-columns:auto minmax(0,1fr)}.tenant-card-head .tenant-status{grid-column:2;justify-self:start}.support-banner{align-items:flex-start;flex-direction:column}.support-banner form,.support-banner button{width:100%}}
@media(max-width:430px){.tenant-stat-grid{grid-template-columns:1fr 1fr}.tenant-stat-grid div:last-child{grid-column:1/-1}.tenant-card-footer{align-items:flex-start;flex-direction:column}.tenant-card-footer .button{width:100%}}

/* Bloque 7: planes, límites y suscripciones */
.header-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.plan-catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.plan-card{display:flex;min-width:0;flex-direction:column;gap:16px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.plan-card.featured{border-color:#79c9f5;background:linear-gradient(180deg,#fff,#f2fbff)}.plan-card-head{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:10px}.plan-card-head h2{margin:10px 0 4px;color:var(--navy)}.plan-card-head p{margin:0;color:var(--muted);font-size:.85rem}.featured-chip{padding:6px 9px;border-radius:999px;color:#075d69;background:#dff9f8;font-size:.68rem;font-weight:900;white-space:nowrap}.plan-price{display:flex;align-items:baseline;gap:7px}.plan-price strong{color:var(--navy);font-size:1.75rem;letter-spacing:-.04em}.plan-price span{color:var(--muted);font-size:.74rem}.plan-meta{display:flex;flex-wrap:wrap;gap:7px}.plan-meta span{padding:6px 8px;border-radius:999px;color:#45637f;background:#eef6ff;font-size:.68rem;font-weight:800}.feature-summary{display:grid;gap:7px;margin:0;padding:0;list-style:none;color:#4e6682;font-size:.82rem}.plan-card .button{margin-top:auto}.plan-editor-layout{grid-template-columns:minmax(0,1.4fr) minmax(340px,.75fr)}.form-grid-4,.form-grid-3{display:grid;gap:12px}.form-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid-4 label,.form-grid-3 label,.entitlement-box label,.limit-editor label{display:flex;min-width:0;flex-direction:column;gap:6px}.form-grid-4 label>span,.form-grid-3 label>span,.entitlement-box label>span,.limit-editor label>span{color:#546b85;font-size:.74rem;font-weight:850}.form-grid-4 input,.form-grid-3 input,.form-grid-3 select,.limit-editor input,.limit-editor select{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);font:inherit}.checkbox-card{display:flex!important;min-height:52px;flex-direction:row!important;align-items:flex-start;gap:10px!important;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.checkbox-card input{width:18px!important;min-height:18px!important;margin-top:2px;flex:none}.checkbox-card>span{display:flex;flex-direction:column;color:var(--navy)!important}.checkbox-card small{color:var(--muted);font-weight:600}.entitlement-box{padding:16px;border:1px solid var(--line);border-radius:16px;background:#f8fbff}.entitlement-box h3{margin:0 0 13px;color:var(--navy)}.feature-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.compact-features{grid-template-columns:1fr}.limit-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.limit-editor-grid.single-column{grid-template-columns:1fr}.limit-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,.5fr);gap:8px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fbfdff}.inline-check{grid-column:1/-1;display:flex!important;flex-direction:row!important;align-items:center;gap:7px!important;color:var(--muted)!important;font-size:.76rem}.inline-check input{width:auto!important;min-height:auto!important}.subscription-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:20px}.subscription-filters{grid-template-columns:minmax(210px,1fr) minmax(150px,.4fr) minmax(150px,.4fr) auto auto}.subscription-status{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:.69rem;font-weight:900;white-space:nowrap}.subscription-status.trialing{color:#765000;background:#fff1c3}.subscription-status.active{color:#08734d;background:#ddf8ed}.subscription-status.past_due{color:#984a00;background:#ffead2}.subscription-status.suspended{color:#9a3214;background:#ffe5dc}.subscription-status.cancelled,.subscription-status.expired{color:#a52645;background:#ffe4eb}.table-subline{display:block;color:var(--muted);font-size:.72rem}.compact-button{min-height:36px;padding:8px 11px;font-size:.75rem}.subscription-tenant-panel{margin-bottom:20px}.subscription-overview-grid{display:grid;grid-template-columns:minmax(210px,.8fr) repeat(5,minmax(130px,1fr));gap:11px}.subscription-main-status,.usage-card{display:flex;min-width:0;flex-direction:column;gap:7px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.subscription-main-status strong{color:var(--navy)}.subscription-main-status small,.usage-card small{color:var(--muted);font-size:.7rem}.usage-card>div:first-child{display:flex;min-width:0;flex-direction:column}.usage-card strong{overflow:hidden;color:var(--navy);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.usage-card span{color:#536c88;font-size:.72rem}.usage-bar{height:7px;overflow:hidden;border-radius:999px;background:#e8f0fa}.usage-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--primary-2))}
@media(max-width:1380px){.plan-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.subscription-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.subscription-main-status{grid-column:1/-1}}
@media(max-width:1024px){.form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3,.feature-check-grid,.limit-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-filters .button{width:100%}}
@media(max-width:760px){.header-actions{width:100%;justify-content:stretch}.header-actions .button{flex:1}.plan-catalog-grid,.subscription-metrics,.form-grid-4,.form-grid-3,.feature-check-grid,.limit-editor-grid,.subscription-overview-grid,.subscription-filters{grid-template-columns:1fr}.limit-editor{grid-template-columns:1fr}.inline-check{grid-column:auto}.subscription-main-status{grid-column:auto}.plan-editor-layout{grid-template-columns:1fr}}
@media(max-width:430px){.header-actions{flex-direction:column}.header-actions .button{width:100%}.plan-card{padding:17px}.plan-card-head{flex-direction:column}.featured-chip{align-self:flex-start}}

/* Bloque 8: registro comercial y configuración inicial */
.registration-page{min-height:100vh;background:linear-gradient(180deg,#f4f9ff 0,#fff 38%,#f7fbff 100%);color:var(--navy)}
.registration-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1480px;margin:auto;padding:20px clamp(18px,4vw,56px)}
.registration-topbar nav{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:.84rem;font-weight:700}
.registration-shell{width:min(1380px,calc(100% - 32px));margin:0 auto;padding:20px 0 56px}
.registration-footer{display:flex;justify-content:space-between;gap:20px;max-width:1380px;margin:auto;padding:24px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:.78rem}
.registration-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.65fr);align-items:center;gap:30px;padding:40px clamp(22px,4vw,54px);border:1px solid #cfe6fa;border-radius:30px;background:radial-gradient(circle at 90% 10%,rgba(31,196,180,.16),transparent 32%),linear-gradient(135deg,#fff,#edf8ff);box-shadow:0 24px 70px rgba(14,59,103,.10)}
.registration-hero h1{max-width:790px;margin:10px 0 14px;font-size:clamp(2rem,4vw,3.55rem);line-height:1.04;letter-spacing:-.055em}
.registration-hero p{max-width:760px;margin:0;color:#55718e;font-size:clamp(.95rem,1.6vw,1.12rem);line-height:1.7}
.registration-trust{display:grid;gap:11px;padding:20px;border:1px solid rgba(95,170,225,.28);border-radius:22px;background:rgba(255,255,255,.78);backdrop-filter:blur(10px)}
.registration-trust span{display:flex;align-items:center;gap:12px;color:#3b5876;font-size:.84rem;font-weight:850}
.registration-trust strong{display:grid;width:34px;height:34px;place-items:center;border-radius:11px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 8px 20px rgba(11,110,253,.2)}
.registration-form{margin-top:22px;padding:clamp(18px,3vw,34px);border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:0 22px 65px rgba(14,59,103,.09)}
.registration-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.registration-progress{display:grid;grid-template-columns:auto minmax(30px,1fr) auto minmax(30px,1fr) auto;align-items:center;max-width:760px;margin:0 auto 32px}
.registration-progress button{display:flex;align-items:center;gap:8px;padding:0;border:0;color:#89a0b8;background:transparent;font:inherit;font-size:.76rem;font-weight:900;cursor:pointer}
.registration-progress button span{display:grid;width:36px;height:36px;place-items:center;border:2px solid #d7e5f2;border-radius:50%;background:#fff}
.registration-progress button.active,.registration-progress button.complete{color:var(--primary)}
.registration-progress button.active span,.registration-progress button.complete span{color:#fff;border-color:var(--primary);background:linear-gradient(135deg,var(--primary),var(--primary-2))}
.registration-progress i{height:2px;margin:0 10px;background:#dce8f3}
.registration-step{animation:registrationFade .22s ease}
@keyframes registrationFade{from{opacity:.25;transform:translateY(7px)}to{opacity:1;transform:none}}
.registration-step .section-title-row{margin-bottom:22px}
.registration-step .section-title-row h2{margin:5px 0;color:var(--navy);font-size:clamp(1.45rem,2vw,2rem)}
.registration-step .section-title-row p{margin:0;color:var(--muted)}
.billing-toggle{display:flex;padding:5px;border:1px solid var(--line);border-radius:13px;background:#f4f8fc}
.billing-toggle label{cursor:pointer}
.billing-toggle input{position:absolute;opacity:0;pointer-events:none}
.billing-toggle span{display:block;padding:9px 15px;border-radius:9px;color:#607891;font-size:.76rem;font-weight:900}
.billing-toggle input:checked+span{color:#fff;background:linear-gradient(135deg,var(--primary),#168dd8);box-shadow:0 6px 18px rgba(11,110,253,.18)}
.signup-plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.signup-plan-card{position:relative;display:flex;min-width:0;min-height:360px;flex-direction:column;gap:15px;padding:22px;border:1.5px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 10px 26px rgba(22,65,104,.06);cursor:pointer;transition:.18s ease}
.signup-plan-card:hover{transform:translateY(-3px);border-color:#91c9f2;box-shadow:0 17px 35px rgba(22,65,104,.10)}
.signup-plan-card.featured{background:linear-gradient(180deg,#fff,#f2fbff);border-color:#76c7ee}
.signup-plan-card.disabled{cursor:default;opacity:.72;background:#f8fafc}
.signup-plan-card.disabled:hover{transform:none;box-shadow:0 10px 26px rgba(22,65,104,.06)}
.signup-plan-card>input{position:absolute;opacity:0;pointer-events:none}
.plan-selection-mark{position:absolute;top:18px;right:18px;width:22px;height:22px;border:2px solid #c8d9e8;border-radius:50%;background:#fff}
.signup-plan-card>input:checked~.plan-selection-mark{border:6px solid var(--primary)}
.signup-plan-card:has(>input:checked){border-color:var(--primary);box-shadow:0 0 0 3px rgba(11,110,253,.1),0 18px 38px rgba(22,65,104,.10)}
.signup-plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-right:22px}
.signup-plan-head>div{display:flex;min-width:0;flex-direction:column;gap:5px}
.plan-name{color:var(--navy);font-size:1.15rem;font-weight:950}
.signup-plan-head small{color:var(--muted);line-height:1.45}
.signup-price{display:flex;align-items:baseline;gap:5px;padding:13px 0;border-top:1px solid #edf2f7;border-bottom:1px solid #edf2f7}
.signup-price strong{font-size:1.65rem;letter-spacing:-.04em}
.signup-price span{color:var(--muted);font-size:.74rem;font-weight:800}
.signup-plan-card ul{display:grid;gap:7px;margin:0;padding:0;list-style:none;color:#496580;font-size:.78rem}
.signup-plan-card li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trial-note{margin-top:auto;padding:9px 10px;border-radius:10px;color:#08734d;background:#e4f9f0;font-size:.72rem;font-weight:900;text-align:center}
.trial-note.muted{color:#6b7481;background:#edf1f5}
.registration-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:26px}
.registration-actions.end{justify-content:flex-end}.registration-actions.centered{justify-content:center;flex-wrap:wrap}
.registration-fields{display:grid;gap:16px}.registration-fields.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
.registration-fields label{display:flex;min-width:0;flex-direction:column;gap:7px;color:#405c77;font-size:.79rem;font-weight:900}
.registration-fields input{width:100%;min-height:48px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;color:var(--navy);background:#fff;font:inherit;outline:none}
.registration-fields input:focus{border-color:#73b8ef;box-shadow:0 0 0 3px rgba(11,110,253,.09)}
.slug-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.slug-field button{min-height:48px;padding:9px 13px;border:1px solid #b7d9f6;border-radius:12px;color:var(--primary);background:#eff8ff;font-weight:900;cursor:pointer}
.slug-field button:disabled{opacity:.6;cursor:wait}
[data-slug-result]{color:var(--muted);font-weight:650}[data-slug-result].success{color:#0b7b53}[data-slug-result].danger{color:#b5264d}
.password-guidance{display:grid;align-content:center;gap:4px;padding:13px 15px;border:1px solid #cce7dd;border-radius:14px;color:#527060;background:#f1fbf6;font-size:.73rem}
.password-guidance strong{color:#176246}.password-guidance span:before{content:'✓';margin-right:7px;color:#149268;font-weight:950}
.consent-box{display:grid;gap:10px;margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:15px;background:#f8fbff}
.consent-box label{display:flex;align-items:flex-start;gap:10px;color:#48617b;font-size:.79rem;line-height:1.5;cursor:pointer}
.consent-box input{width:18px;height:18px;margin-top:1px;flex:none;accent-color:var(--primary)}
.registration-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.registration-summary>div{display:flex;min-width:0;flex-direction:column;gap:5px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fbfdff}
.registration-summary small{color:var(--muted);font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.registration-summary strong{overflow:hidden;color:var(--navy);font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}
.registration-state-card{width:min(650px,100%);margin:48px auto;padding:clamp(24px,5vw,48px);border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:0 24px 70px rgba(14,59,103,.11);text-align:center}
.registration-state-card h1{margin:9px 0 12px;font-size:clamp(1.8rem,4vw,2.7rem);letter-spacing:-.045em}
.registration-state-card>p{max-width:520px;margin:0 auto 22px;color:var(--muted);line-height:1.65}
.state-icon{display:grid;width:68px;height:68px;margin:0 auto 20px;place-items:center;border-radius:21px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-size:1.8rem;font-weight:950;box-shadow:0 14px 30px rgba(11,110,253,.22)}
.state-icon.success{background:linear-gradient(135deg,#0b9a68,#35c493)}.state-icon.danger{background:linear-gradient(135deg,#c82d52,#ed6a80)}
.pending-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0}
.pending-details>div{display:flex;min-width:0;flex-direction:column;gap:5px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#f8fbff}
.pending-details small{color:var(--muted);font-size:.67rem;font-weight:850;text-transform:uppercase}.pending-details strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.state-note{margin:18px auto 10px!important;font-size:.77rem}.text-link{color:var(--primary);font-size:.8rem;font-weight:850}
.debug-link{display:grid;gap:6px;margin-top:14px;padding:12px;border:1px dashed #e4ac37;border-radius:12px;color:#765000;background:#fff9e7;font-size:.74rem}.debug-link a{color:#8d5a00;font-weight:900}
.onboarding-welcome{margin-bottom:12px}.onboarding-percent{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:120px;padding:14px;border:1px solid #a9dcce;border-radius:17px;background:#ebfaf5}.onboarding-percent strong{color:#08734d;font-size:1.7rem}.onboarding-percent span{color:#52806f;font-size:.7rem;font-weight:850}
.onboarding-progress-bar{height:10px;overflow:hidden;margin-bottom:20px;border-radius:999px;background:#e3edf6}.onboarding-progress-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--primary-2));transition:width .3s ease}
.onboarding-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.55fr);gap:20px;align-items:start}
.onboarding-checklist{display:grid;gap:12px}.onboarding-step-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:var(--shadow)}
.onboarding-step-card.completed{border-color:#a9ddcd;background:linear-gradient(180deg,#fff,#f4fcf8)}
.onboarding-step-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--primary),#168dd8);font-weight:950}.completed .onboarding-step-icon{background:linear-gradient(135deg,#0a9968,#33c493)}
.onboarding-step-card h2{margin:0 0 4px;color:var(--navy);font-size:1rem}.onboarding-step-card p{margin:0;color:var(--muted);font-size:.79rem;line-height:1.45}
.onboarding-side-panel{position:sticky;top:20px}.onboarding-side-panel h2{margin:5px 0 16px}.onboarding-side-panel>p{color:var(--muted);font-size:.82rem;line-height:1.6}
.onboarding-ring{--progress:0;display:grid;width:150px;height:150px;margin:12px auto 20px;place-content:center;border-radius:50%;background:radial-gradient(closest-side,#fff 76%,transparent 77% 99%),conic-gradient(var(--primary) calc(var(--progress)*1%),#e7eef6 0);text-align:center}.onboarding-ring strong{font-size:1.35rem}.onboarding-ring span{color:var(--muted);font-size:.72rem}
@media(max-width:1180px){.signup-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.registration-hero{grid-template-columns:1fr}.registration-trust{grid-template-columns:repeat(3,minmax(0,1fr))}.onboarding-layout{grid-template-columns:1fr}.onboarding-side-panel{position:static}}
@media(max-width:760px){.registration-topbar{align-items:flex-start}.registration-topbar nav span{display:none}.registration-shell{width:min(100% - 20px,1380px);padding-top:4px}.registration-hero{padding:26px 20px;border-radius:22px}.registration-trust{grid-template-columns:1fr}.registration-form{padding:18px;border-radius:20px}.registration-progress{grid-template-columns:auto 1fr auto 1fr auto}.registration-progress button{font-size:0}.registration-progress button span{font-size:.76rem}.signup-plan-grid,.registration-fields.two-columns,.registration-summary,.pending-details{grid-template-columns:1fr}.signup-plan-card{min-height:auto}.billing-toggle{width:100%}.billing-toggle label{flex:1;text-align:center}.registration-step .section-title-row{align-items:flex-start;flex-direction:column}.registration-actions{align-items:stretch;flex-direction:column-reverse}.registration-actions .button{width:100%}.registration-actions.end{align-items:stretch}.registration-state-card{margin:24px auto;border-radius:20px}.onboarding-step-card{grid-template-columns:auto minmax(0,1fr)}.onboarding-step-card form{grid-column:1/-1}.onboarding-step-card form .button{width:100%}.registration-footer{align-items:flex-start;flex-direction:column}}
@media(max-width:430px){.registration-topbar{padding:14px 12px}.registration-topbar .brand small{display:none}.registration-topbar nav .button{padding:8px 10px}.slug-field{grid-template-columns:1fr}.registration-hero h1{font-size:2rem}.signup-plan-card{padding:17px}.registration-state-card{padding:23px 17px}.onboarding-welcome{align-items:flex-start;flex-direction:column}.onboarding-percent{width:100%}}
.legal-document{width:min(900px,100%);margin:35px auto;padding:clamp(22px,5vw,52px);border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:var(--shadow)}
.legal-document header{padding-bottom:22px;border-bottom:1px solid var(--line)}.legal-document h1{margin:7px 0 10px;font-size:clamp(2rem,4vw,3rem);letter-spacing:-.05em}.legal-document header p,.legal-document article p{color:var(--muted);line-height:1.75}.legal-document article{padding:18px 0;border-bottom:1px solid #edf2f7}.legal-document article h2{margin:0 0 8px;color:var(--navy);font-size:1.05rem}.legal-document article p{margin:0}.legal-document a,.consent-box a{color:var(--primary);font-weight:850}.legal-notice{margin-top:22px;padding:14px 16px;border:1px solid #f0d59e;border-radius:13px;color:#765a21;background:#fff9e9;font-size:.78rem;line-height:1.5}

/* Bloque 9: configuración integral del consultorio */
.settings-hero{position:relative;display:flex;overflow:hidden;align-items:center;justify-content:space-between;gap:28px;margin-bottom:18px;padding:32px;border:1px solid color-mix(in srgb,var(--clinic-primary,#086bf0) 18%,#dbe7f5);border-radius:26px;background:linear-gradient(135deg,color-mix(in srgb,var(--clinic-primary,#086bf0) 8%,#fff),color-mix(in srgb,var(--clinic-secondary,#0bbbc5) 10%,#fff));box-shadow:var(--shadow)}.settings-hero:after{position:absolute;right:-60px;top:-80px;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--clinic-secondary,#0bbbc5) 20%,transparent),transparent 68%);content:""}.settings-hero>div{position:relative;z-index:1}.settings-hero h1{margin:7px 0 8px;color:var(--navy);font-size:clamp(2rem,4vw,3.2rem);line-height:1.05;letter-spacing:-.045em}.settings-hero p{max-width:720px;margin:0;color:var(--muted)}.settings-completion{display:flex;min-width:220px;flex-direction:column;gap:4px;padding:20px 22px;border:1px solid rgba(255,255,255,.75);border-radius:20px;background:rgba(255,255,255,.78);box-shadow:0 12px 30px rgba(9,42,94,.08);backdrop-filter:blur(12px)}.settings-completion strong{color:var(--clinic-primary,var(--primary));font-size:2.15rem;line-height:1}.settings-completion span{color:var(--muted);font-size:.82rem;font-weight:750}.progress-track{overflow:hidden;height:8px;margin-top:8px;border-radius:999px;background:#dceafa}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--clinic-primary,var(--primary)),var(--clinic-secondary,var(--primary-2)))}.settings-status-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.settings-status-item{display:flex;align-items:center;gap:9px;min-height:56px;padding:12px 14px;border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--muted)}.settings-status-item span{display:grid;width:26px;height:26px;place-items:center;border-radius:50%;background:#edf3fb;font-weight:900}.settings-status-item strong{font-size:.82rem}.settings-status-item.complete{color:var(--success);border-color:#bcebd7;background:#f2fcf7}.settings-status-item.complete span{background:var(--success-bg)}.settings-tabs{position:sticky;z-index:8;top:73px;display:flex;overflow-x:auto;gap:7px;margin:0 0 18px;padding:8px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.94);box-shadow:0 10px 24px rgba(22,58,105,.07);backdrop-filter:blur(12px);scrollbar-width:thin}.settings-tabs button{flex:none;min-height:42px;padding:10px 15px;border:0;border-radius:11px;cursor:pointer;color:var(--muted);background:transparent;font-weight:850}.settings-tabs button:hover{color:var(--navy);background:#edf6ff}.settings-tabs button.active{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 7px 18px rgba(8,107,240,.18)}.settings-panel{margin-bottom:24px;padding:28px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow)}.settings-panel[hidden]{display:none}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px;padding-bottom:20px;border-bottom:1px solid var(--line)}.section-heading h2{margin:5px 0 7px;color:var(--navy);font-size:clamp(1.55rem,3vw,2.2rem);letter-spacing:-.025em}.section-heading p{max-width:730px;margin:0;color:var(--muted)}.section-icon{display:grid;flex:none;width:54px;height:54px;place-items:center;border-radius:18px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-size:1.25rem;font-weight:900;box-shadow:0 12px 26px rgba(8,107,240,.18)}.settings-form label,.branch-selector-card label{display:flex;min-width:0;flex-direction:column;gap:7px;color:var(--navy);font-size:.86rem;font-weight:850}.settings-form input:not([type=checkbox]):not([type=color]),.settings-form select,.settings-form textarea,.branch-selector-card select{width:100%;min-height:47px;padding:11px 13px;border:1px solid #cddcf0;border-radius:12px;outline:none;color:var(--text);background:#fff;font:inherit}.settings-form input:focus,.settings-form select:focus,.settings-form textarea:focus,.branch-selector-card select:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(8,107,240,.1)}.form-grid{display:grid;gap:16px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.span-two{grid-column:span 2}.span-three{grid-column:span 3}.form-subtitle{margin:28px 0 15px;color:var(--navy);font-size:1.05rem}.form-actions{display:flex;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.form-actions .button{min-width:190px}.branding-preview{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:24px;padding:22px;border:1px solid color-mix(in srgb,var(--preview-primary) 20%,#dbe7f5);border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--preview-primary) 9%,#fff),color-mix(in srgb,var(--preview-secondary) 12%,#fff))}.branding-preview .branding-logo{display:grid;overflow:hidden;width:68px;height:68px;place-items:center;border-radius:20px;background:#fff;box-shadow:0 10px 24px rgba(9,42,94,.12)}.branding-preview .branding-logo img{display:block;width:100%;height:100%;object-fit:contain;padding:6px}.branding-preview .branding-logo span{color:var(--preview-primary);font-size:1.75rem;font-weight:950}.branding-preview strong{display:block;color:var(--navy);font-size:1.12rem}.branding-preview small{display:block;margin-top:2px;color:var(--muted)}.branding-preview button{min-height:40px;padding:9px 14px;border:0;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--preview-primary),var(--preview-secondary));font-weight:850;pointer-events:none}.color-field{display:flex;align-items:center;gap:12px;min-height:48px;padding:7px 11px;border:1px solid #cddcf0;border-radius:12px;background:#fff}.color-field input[type=color]{width:45px;height:34px;padding:0;border:0;border-radius:8px;cursor:pointer;background:transparent}.color-field output{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.file-field input{padding:9px!important}.option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.check-card{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:12px!important;padding:16px;border:1px solid var(--line);border-radius:15px;background:#f9fcff;cursor:pointer}.check-card:hover{border-color:#a9cbee;background:#f3f9ff}.check-card input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--primary)}.check-card strong{display:block;color:var(--navy);font-size:.9rem}.check-card small{display:block;margin-top:3px;color:var(--muted);font-size:.76rem;font-weight:600;line-height:1.5}.branch-selector-card{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px;padding:17px;border:1px solid #cbe0f6;border-radius:17px;background:#f3f9ff}.branch-selector-card label{width:min(520px,100%)}.status-pill{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:.76rem;font-weight:900}.status-pill.active{color:var(--success);background:var(--success-bg)}.status-pill.inactive{color:var(--danger);background:var(--danger-bg)}.hours-table{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:17px}.hours-row{display:grid;grid-template-columns:minmax(145px,1.1fr) repeat(4,minmax(120px,1fr));gap:10px;align-items:center;padding:12px 15px;border-top:1px solid var(--line);background:#fbfdff}.hours-row:first-child{border-top:0}.hours-head{color:#61748f;background:#edf5fd;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.hours-row.is-open{background:#fff}.hours-row:not(.is-open) input[type=time]{opacity:.5;background:#edf1f6;pointer-events:none}.hours-row label{margin:0}.day-toggle{display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important}.day-toggle input{width:20px;height:20px;accent-color:var(--primary)}.day-toggle span{font-size:.91rem}.mobile-field-label{display:none}.form-note{margin-top:13px;padding:12px 14px;border-radius:12px;color:#536c89;background:#eff7ff;font-size:.8rem}.settings-panel select{appearance:auto}
@media(max-width:1180px){.settings-status-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.span-three{grid-column:span 2}.option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hours-row{grid-template-columns:minmax(130px,1.1fr) repeat(4,minmax(105px,1fr))}}
@media(max-width:760px){.settings-hero{align-items:stretch;flex-direction:column;padding:24px}.settings-completion{min-width:0}.settings-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-tabs{top:61px}.settings-panel{padding:20px}.section-heading{align-items:center}.section-icon{width:46px;height:46px;border-radius:15px}.form-grid.two,.form-grid.three,.option-grid{grid-template-columns:1fr}.span-two,.span-three{grid-column:auto}.branding-preview{grid-template-columns:auto minmax(0,1fr)}.branding-preview button{grid-column:1/-1}.branch-selector-card{align-items:stretch;flex-direction:column}.status-pill{align-self:flex-start}.hours-table{overflow:visible;border:0;border-radius:0;gap:12px}.hours-head{display:none}.hours-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:15px;border:1px solid var(--line)!important;border-radius:15px}.hours-row .day-toggle{grid-column:1/-1;padding-bottom:8px;border-bottom:1px solid var(--line)}.mobile-field-label{display:block;color:var(--muted);font-size:.72rem}.form-actions .button{width:100%}}
@media(max-width:430px){.settings-status-grid{grid-template-columns:1fr}.settings-panel{margin-left:-4px;margin-right:-4px;padding:17px}.settings-tabs{margin-left:-4px;margin-right:-4px}.hours-row{grid-template-columns:1fr}.branding-preview{grid-template-columns:1fr;text-align:center}.branding-preview .branding-logo{margin:auto}.section-heading p{font-size:.85rem}.section-icon{display:none}}
.brand-mark.brand-logo{overflow:hidden;background:#fff}.brand-mark.brand-logo img{display:block;width:100%;height:100%;object-fit:contain;padding:4px}

/* Bloque 10: sucursales, áreas, consultorios y sillones */
.facilities-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:28px;overflow:hidden;margin-bottom:18px;padding:30px;border:1px solid #cfe1f6;border-radius:26px;background:linear-gradient(135deg,#f7fbff 0%,#effbfb 100%);box-shadow:var(--shadow)}
.facilities-hero:after{position:absolute;right:-75px;bottom:-100px;width:270px;height:270px;border-radius:50%;background:radial-gradient(circle,rgba(11,187,197,.18),transparent 67%);content:""}.facilities-hero>div{position:relative;z-index:1}.facilities-hero h1{margin:7px 0 8px;color:var(--navy);font-size:clamp(2rem,4vw,3.15rem);line-height:1.04;letter-spacing:-.045em}.facilities-hero p{max-width:780px;margin:0;color:var(--muted)}.facilities-usage{display:flex;min-width:225px;flex-direction:column;gap:4px;padding:20px 22px;border:1px solid rgba(255,255,255,.9);border-radius:20px;background:rgba(255,255,255,.84);box-shadow:0 14px 32px rgba(9,42,94,.09)}.facilities-usage span,.facilities-usage small{color:var(--muted);font-size:.78rem;font-weight:800}.facilities-usage strong{color:var(--primary);font-size:2rem;line-height:1.08}
.facility-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.facility-summary-grid article{display:flex;align-items:center;gap:12px;min-height:86px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 9px 24px rgba(22,58,105,.05)}.facility-summary-grid article.attention{border-color:#ffd59a;background:#fffaf1}.facility-summary-icon{display:grid;flex:none;width:42px;height:42px;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-weight:950}.facility-summary-grid article.attention .facility-summary-icon{background:linear-gradient(135deg,#ef8b1f,#f5b53d)}.facility-summary-grid strong{display:block;color:var(--navy);font-size:1.35rem}.facility-summary-grid small{display:block;color:var(--muted);font-size:.76rem;font-weight:750}
.facility-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;padding:14px;border:1px solid var(--line);border-radius:17px;background:#fff}.facility-branch-picker,.facility-filter-form{display:flex;align-items:flex-end;gap:10px}.facility-branch-picker label{display:flex;min-width:260px;flex-direction:column;gap:5px;color:var(--navy);font-size:.76rem;font-weight:850}.facility-toolbar select,.facility-toolbar input{min-height:42px;padding:9px 11px;border:1px solid #cddcf0;border-radius:11px;background:#fff;font:inherit}.facility-filter-form input{width:min(300px,28vw)}
.facility-tabs{position:sticky;z-index:7;top:73px;display:flex;overflow-x:auto;gap:7px;margin-bottom:18px;padding:8px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.95);box-shadow:0 10px 24px rgba(22,58,105,.07);backdrop-filter:blur(12px)}.facility-tabs button{display:flex;align-items:center;gap:8px;flex:none;min-height:42px;padding:10px 15px;border:0;border-radius:11px;cursor:pointer;color:var(--muted);background:transparent;font-weight:850}.facility-tabs button span{display:grid;min-width:22px;height:22px;padding:0 6px;place-items:center;border-radius:999px;background:#eaf2fb;font-size:.7rem}.facility-tabs button.active{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 7px 18px rgba(8,107,240,.18)}.facility-tabs button.active span{color:var(--primary);background:#fff}.facility-panel{margin-bottom:24px;padding:27px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow)}.facility-panel[hidden]{display:none}
.branch-management-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(280px,.75fr);gap:18px}.facility-list{display:flex;min-width:0;flex-direction:column;gap:12px}.facility-card{position:relative;min-width:0;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff}.facility-card.selected{border-color:#8cbff7;box-shadow:0 0 0 3px rgba(8,107,240,.08)}.facility-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.facility-card h3{margin:4px 0 3px;color:var(--navy);font-size:1.08rem}.facility-card header p,.facility-note{margin:0;color:var(--muted);font-size:.79rem;line-height:1.55}.facility-code{display:inline-flex;padding:4px 8px;border-radius:999px;color:#526a87;background:#eef5fc;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.67rem;font-weight:900;letter-spacing:.04em}.facility-status{display:inline-flex;flex:none;align-items:center;padding:6px 9px;border-radius:999px;font-size:.68rem;font-weight:900}.facility-status.active{color:var(--success);background:var(--success-bg)}.facility-status.maintenance{color:#a56300;background:#fff1d6}.facility-status.inactive{color:#7a8797;background:#eef1f5}.branch-counts{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0}.branch-counts span{padding:8px 10px;border-radius:10px;color:#61748f;background:#f5f8fc;font-size:.73rem}.branch-counts strong{color:var(--navy)}.card-actions,.facility-card footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px}.facility-card footer>span{margin-right:auto;color:var(--muted);font-size:.75rem}.button.small{min-height:35px;padding:8px 11px;font-size:.75rem}.button.danger-ghost{color:#b84444;border:1px solid #f1b9b9;background:#fff5f5}.button.success-ghost{color:#12805c;border:1px solid #aee2d0;background:#f2fbf7}
.facility-create-card{align-self:start;padding:22px;border:1px solid #cce3f7;border-radius:20px;background:linear-gradient(145deg,#f7fbff,#f0fbfa)}.facility-create-card h3{margin:5px 0 7px;color:var(--navy);font-size:1.3rem}.facility-create-card>p{margin:0 0 16px;color:var(--muted);font-size:.82rem}.facility-form{display:grid;gap:12px}.facility-form label,.inline-editor label{display:flex;min-width:0;flex-direction:column;gap:6px;color:var(--navy);font-size:.78rem;font-weight:850}.facility-form input:not([type=color]),.facility-form select,.facility-form textarea,.inline-editor input:not([type=color]),.inline-editor select,.inline-editor textarea,.facility-card footer select{width:100%;min-height:43px;padding:9px 11px;border:1px solid #cddcf0;border-radius:11px;color:var(--text);background:#fff;font:inherit}.facility-form input[type=color],.inline-editor input[type=color]{width:100%;height:43px;padding:4px;border:1px solid #cddcf0;border-radius:11px;background:#fff}.facility-form input:focus,.facility-form select:focus,.inline-editor input:focus,.inline-editor select:focus,.inline-editor textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 4px rgba(8,107,240,.09)}.create-strip{grid-template-columns:repeat(5,minmax(120px,1fr)) auto;align-items:end;margin-bottom:20px;padding:16px;border:1px solid #d5e5f4;border-radius:17px;background:#f8fbfe}.create-strip.room-create{grid-template-columns:repeat(6,minmax(115px,1fr)) auto}.create-strip.chair-create{grid-template-columns:repeat(7,minmax(110px,1fr)) auto}.create-strip .button{min-height:43px}
.facility-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.area-card{overflow:hidden}.area-accent{height:6px;margin:14px -18px;background:var(--area-color)}.area-card .facility-note{min-height:38px}.room-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:15px 0}.room-meta span{padding:9px;border-radius:11px;color:var(--muted);background:#f5f8fc;font-size:.67rem}.room-meta strong{display:block;margin-top:3px;color:var(--navy);font-size:.8rem}.chair-card{overflow:hidden}.chair-illustration{position:relative;display:grid;height:86px;margin:15px 0;place-items:center;border-radius:15px;background:linear-gradient(135deg,#eef7ff,#eafaf9)}.chair-illustration span{display:grid;width:47px;height:47px;place-items:center;border:5px solid #fff;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 9px 22px rgba(8,107,240,.2);font-size:.75rem;font-weight:950}.chair-illustration i{position:absolute;bottom:18px;width:82px;height:7px;border-radius:999px;background:#bad7ed}.chair-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0}.chair-details div{padding:9px;border-radius:10px;background:#f7f9fc}.chair-details dt{color:var(--muted);font-size:.65rem}.chair-details dd{overflow:hidden;margin:3px 0 0;color:var(--navy);font-size:.75rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.maintenance-alert{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:16px;margin-bottom:18px;padding:16px;border:1px solid #f4cc91;border-radius:17px;background:#fffaf1}.maintenance-alert strong{color:#7b4b00}.maintenance-alert p{margin:4px 0 0;color:#8b724d;font-size:.78rem}.maintenance-list{display:flex;flex-wrap:wrap;gap:7px}.maintenance-list span{padding:7px 9px;border-radius:9px;color:#765220;background:#fff1d6;font-size:.7rem}.empty-state{grid-column:1/-1;padding:42px 20px;border:1px dashed #bfcfe1;border-radius:18px;text-align:center;background:#fafcff}.empty-state>span{display:grid;width:54px;height:54px;margin:0 auto 12px;place-items:center;border-radius:18px;color:var(--primary);background:#eaf4ff;font-size:1.35rem;font-weight:900}.empty-state h3{margin:0 0 5px;color:var(--navy)}.empty-state p{margin:0;color:var(--muted)}
.inline-editor{position:relative}.inline-editor>summary{list-style:none;cursor:pointer}.inline-editor>summary::-webkit-details-marker{display:none}.inline-editor[open]>form{position:absolute;z-index:20;right:0;top:43px;width:min(430px,85vw);padding:16px;border:1px solid #bfd6ed;border-radius:15px;background:#fff;box-shadow:0 18px 45px rgba(20,48,90,.2)}.inline-editor.wide[open]>form{right:auto;left:0;width:min(650px,86vw)}.inline-editor form{display:grid;gap:12px}.mini-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.mini-form-grid .span-two{grid-column:span 2}.facility-card footer form:not(.inline-editor form){display:flex;align-items:center;gap:7px}.facility-card footer form select{min-width:120px;min-height:35px;padding:6px 8px;font-size:.75rem}
@media(max-width:1280px){.facility-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.create-strip,.create-strip.room-create,.create-strip.chair-create{grid-template-columns:repeat(3,minmax(0,1fr))}.create-strip .button{width:100%}.facility-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.facilities-hero{align-items:stretch;flex-direction:column}.facilities-usage{min-width:0}.facility-toolbar{align-items:stretch;flex-direction:column}.facility-branch-picker,.facility-filter-form{width:100%}.facility-branch-picker label{width:100%}.facility-filter-form{flex-wrap:wrap}.facility-filter-form input{flex:1;width:auto;min-width:180px}.branch-management-layout{grid-template-columns:1fr}.facility-create-card{order:-1}.maintenance-alert{grid-template-columns:1fr}}
@media(max-width:760px){.facilities-hero{padding:24px}.facility-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.facility-tabs{top:61px}.facility-panel{padding:20px}.create-strip,.create-strip.room-create,.create-strip.chair-create{grid-template-columns:repeat(2,minmax(0,1fr))}.facility-card-grid{grid-template-columns:1fr}.room-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-editor[open]>form,.inline-editor.wide[open]>form{position:fixed;z-index:100;inset:8vh 4vw auto;width:92vw;max-height:84vh;overflow:auto}.mini-form-grid{grid-template-columns:1fr}.mini-form-grid .span-two{grid-column:auto}}
@media(max-width:470px){.facilities-hero{margin-left:-4px;margin-right:-4px;padding:20px}.facility-summary-grid{grid-template-columns:1fr}.facility-toolbar{margin-left:-4px;margin-right:-4px}.facility-filter-form{display:grid;grid-template-columns:1fr}.facility-filter-form input,.facility-filter-form select,.facility-filter-form .button{width:100%}.facility-panel{margin-left:-4px;margin-right:-4px;padding:16px}.create-strip,.create-strip.room-create,.create-strip.chair-create{grid-template-columns:1fr}.facility-card header{align-items:flex-start;flex-direction:column}.facility-status{align-self:flex-start}.card-actions,.facility-card footer{align-items:stretch;flex-direction:column}.card-actions .button,.card-actions form,.facility-card footer .button,.facility-card footer form{width:100%}.facility-card footer form:not(.inline-editor form){display:grid;grid-template-columns:1fr}.facility-card footer form select{width:100%}.chair-details{grid-template-columns:1fr}.section-icon{display:none}}
@media(max-width:760px){.facility-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.facility-tabs button{justify-content:center;width:100%;white-space:normal;text-align:center}}
@media(max-width:350px){.facility-tabs{grid-template-columns:1fr}}

/* Bloque 11: personal, odontólogos, especialidades y horarios */
.staff-heading{align-items:flex-start}.usage-card{min-width:190px;padding:18px 20px;border-radius:22px;background:linear-gradient(135deg,var(--primary,#086bf0),var(--primary-2,#0bbbc5));color:#fff;box-shadow:0 16px 34px rgba(8,107,240,.18)}.usage-card span,.usage-card small{display:block;opacity:.86}.usage-card strong{display:block;font-size:1.8rem;margin:5px 0}.staff-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:0 0 22px}.staff-kpis article{display:flex;align-items:center;gap:13px;padding:16px;border:1px solid var(--line,#dbe7f3);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(20,53,91,.06)}.staff-kpis article>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#eaf4ff;color:var(--primary,#086bf0);font-weight:800}.staff-kpis small,.staff-kpis strong{display:block}.staff-kpis strong{font-size:1.4rem;color:#17324d}.module-tabs.staff-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px;padding:7px;border:1px solid #dbe7f3;border-radius:18px;background:#f6faff}.module-tabs.staff-tabs a{text-align:center;padding:11px 12px;border-radius:12px;color:#567089;font-weight:700;text-decoration:none}.module-tabs.staff-tabs a.active{background:#fff;color:var(--primary,#086bf0);box-shadow:0 5px 18px rgba(20,53,91,.09)}.staff-panel{padding:22px;border:1px solid #dbe7f3;border-radius:24px;background:#fff;box-shadow:0 12px 35px rgba(20,53,91,.06)}.staff-filter{display:grid;grid-template-columns:2fr repeat(3,1fr) auto auto;gap:10px;align-items:end}.staff-filter label span{display:block;font-size:.76rem;font-weight:800;color:#60788f;margin-bottom:5px}.staff-create{margin:18px 0}.staff-create>summary{display:inline-flex;list-style:none;cursor:pointer}.staff-create>summary::-webkit-details-marker{display:none}.staff-create[open]>summary{margin-bottom:14px}.staff-form{padding:20px;border:1px solid #dbe7f3;border-radius:20px;background:#f9fcff}.staff-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.staff-form-grid label,.staff-form-grid fieldset{min-width:0}.staff-form-grid label>input,.staff-form-grid label>select,.staff-form-grid label>textarea,.specialty-create input,.specialty-create select{width:100%}.staff-form-grid .span-two{grid-column:span 3}.staff-form-grid fieldset{border:1px solid #dbe7f3;border-radius:16px;padding:13px}.staff-form-grid legend{padding:0 7px;font-weight:800;color:#36536d}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.check-card{display:flex!important;align-items:center;gap:9px;padding:10px;border:1px solid #dbe7f3;border-radius:12px;background:#fff;cursor:pointer}.check-card input{width:auto!important}.check-card span,.check-card small{display:block}.check-card small{color:#7890a6}.staff-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.staff-card{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:17px;border:1px solid #dbe7f3;border-radius:20px;background:#fff;transition:.2s}.staff-card.selected{border-color:var(--primary,#086bf0);box-shadow:0 0 0 3px rgba(8,107,240,.08)}.staff-avatar{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:17px;background:linear-gradient(135deg,var(--staff-color,#086bf0),color-mix(in srgb,var(--staff-color,#086bf0) 62%,#0bbbc5));color:#fff;font-weight:900}.staff-avatar.large{width:72px;height:72px;border-radius:22px;font-size:1.35rem}.staff-card-body header{display:flex;justify-content:space-between;gap:10px}.staff-card h3{margin:0;color:#17324d}.staff-card p{margin:4px 0;color:#6e8499}.staff-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0}.staff-card dt{font-size:.7rem;text-transform:uppercase;color:#8195a8;font-weight:800}.staff-card dd{margin:2px 0 0;color:#36536d;overflow-wrap:anywhere}.staff-card footer{display:flex;gap:8px;flex-wrap:wrap}.staff-profile-header{display:flex;align-items:center;gap:15px;padding:18px;border-radius:20px;background:linear-gradient(135deg,#f2f8ff,#f1fffe);margin-bottom:17px}.staff-profile-header>span:last-child{margin-left:auto}.profile-layout{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,2fr);gap:16px}.profile-card{padding:18px;border:1px solid #dbe7f3;border-radius:19px;background:#fff}.profile-card h3{margin-top:0}.staff-detail-list{display:grid;gap:12px}.staff-detail-list div{padding-bottom:10px;border-bottom:1px solid #edf2f7}.staff-detail-list dt{font-size:.72rem;text-transform:uppercase;color:#8195a8;font-weight:800}.staff-detail-list dd{margin:4px 0;color:#254762}.staff-actions-row{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-top:16px}.staff-actions-row form{display:flex;align-items:end;gap:8px}.credential-reset[open]{padding:13px;border:1px solid #dbe7f3;border-radius:16px}.credential-reset>summary{cursor:pointer;list-style:none}.credential-reset>summary::-webkit-details-marker{display:none}.credential-reset form{margin-top:10px;flex-wrap:wrap}.schedule-form{display:grid;gap:16px}.schedule-branch{border:1px solid #dbe7f3;border-radius:20px;overflow:hidden}.schedule-branch>header{display:flex;justify-content:space-between;padding:14px 17px;background:#f4f9ff}.schedule-branch h3{margin:0}.schedule-grid{overflow-x:auto}.schedule-head,.schedule-row{display:grid;grid-template-columns:minmax(105px,1.3fr) 80px repeat(4,minmax(118px,1fr));gap:8px;align-items:center;min-width:760px;padding:10px 14px}.schedule-head{background:#edf5fc;color:#567089;font-size:.73rem;font-weight:900;text-transform:uppercase}.schedule-row{border-top:1px solid #eef3f7}.schedule-row input[type=time]{min-width:0;width:100%}.switch-check{display:flex;align-items:center;gap:5px}.specialty-create{display:grid;grid-template-columns:1fr .55fr 1.8fr auto;gap:10px;align-items:end;padding:15px;border-radius:17px;background:#f6faff;margin-bottom:16px}.specialty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.specialty-card{padding:16px;border:1px solid #dbe7f3;border-radius:18px;background:#fff}.specialty-card header{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start}.specialty-card header>span{padding:7px 9px;border-radius:10px;background:#eaf4ff;color:#086bf0;font-weight:900}.specialty-card h3{margin:0}.specialty-card p{margin:5px 0;color:#6e8499}.specialty-card header>b{font-size:.75rem;color:#5c758c}.specialty-card footer{display:flex;gap:8px;margin-top:13px}.specialty-card details form{display:grid;gap:8px;margin-top:9px;padding:12px;border-radius:13px;background:#f8fbfe}.specialty-card summary{list-style:none;cursor:pointer}.specialty-card summary::-webkit-details-marker{display:none}
@media(max-width:1100px){.staff-kpis{grid-template-columns:repeat(3,1fr)}.staff-filter{grid-template-columns:repeat(2,1fr)}.staff-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-form-grid .span-two{grid-column:span 2}.choice-grid{grid-template-columns:repeat(2,1fr)}.profile-layout{grid-template-columns:1fr}.specialty-create{grid-template-columns:repeat(2,1fr)}.specialty-create .wide{grid-column:span 2}}
@media(max-width:760px){.staff-heading{display:grid}.usage-card{width:100%}.staff-kpis{grid-template-columns:repeat(2,1fr)}.module-tabs.staff-tabs{grid-template-columns:repeat(2,1fr)}.staff-panel{padding:14px}.staff-filter,.staff-form-grid,.staff-list-grid,.specialty-grid,.specialty-create{grid-template-columns:1fr}.staff-form-grid .span-two,.specialty-create .wide{grid-column:auto}.choice-grid{grid-template-columns:1fr}.staff-card{grid-template-columns:auto 1fr}.staff-card dl{grid-template-columns:1fr}.staff-profile-header{align-items:flex-start;flex-wrap:wrap}.staff-profile-header>span:last-child{margin-left:0}.staff-actions-row form{width:100%;display:grid;grid-template-columns:1fr auto}.credential-reset{width:100%}.credential-reset form{display:grid}.specialty-card header{grid-template-columns:auto 1fr}.specialty-card header>b{grid-column:2}.specialty-card footer{flex-wrap:wrap}}
@media(max-width:390px){.staff-kpis{grid-template-columns:1fr}.staff-card{grid-template-columns:1fr}.staff-avatar{width:46px;height:46px}.module-tabs.staff-tabs{grid-template-columns:1fr 1fr}.staff-actions-row form{grid-template-columns:1fr}.specialty-card header{grid-template-columns:1fr}.specialty-card header>b{grid-column:auto}}
.schedule-time{display:block;min-width:0}.schedule-time>span{display:none}.schedule-time input{width:100%;min-width:0}.credential-reset input{width:100%;min-width:0}
@media(max-width:900px){.schedule-grid{overflow:visible}.schedule-head{display:none}.schedule-row{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;padding:14px}.schedule-row>strong{grid-column:1/-1;font-size:1rem;color:#17324d}.schedule-row .switch-check{grid-column:1/-1}.schedule-time>span{display:block;margin-bottom:5px;color:#6b8298;font-size:.72rem;font-weight:800}.schedule-time input{width:100%}}
@media(max-width:430px){.schedule-row{grid-template-columns:1fr}.schedule-row>strong,.schedule-row .switch-check{grid-column:auto}.credential-reset form{min-width:0}.credential-reset label,.credential-reset input{min-width:0;width:100%}}

/* Bloque 11: cambio obligatorio de contraseña */
.auth-secondary-action { margin-top: 12px; }
.auth-secondary-action .button { width: 100%; }
.account-security-link { display:block; margin:8px 10px 4px; padding:8px 10px; border-radius:10px; color:var(--muted,#667085); font-size:.86rem; text-align:center; text-decoration:none; }
.account-security-link:hover, .account-security-link:focus-visible { background:rgba(8,107,240,.08); color:var(--primary,#086bf0); }

/* Bloque 12: pacientes */
.patients-heading{align-items:flex-start}.patients-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:18px 0}.patients-kpis article{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--line,#dbe5ef);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(25,55,92,.05)}.patients-kpis article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#086bf0;background:#edf5ff;font-weight:800}.patients-kpis small{display:block;color:#6d7d8f}.patients-kpis strong{display:block;font-size:1.35rem;color:#16324f}.patients-panel{display:grid;gap:18px}.patients-filter{grid-template-columns:minmax(220px,2fr) repeat(2,minmax(140px,1fr)) auto auto}.patient-create>summary{width:max-content;list-style:none}.patient-create>summary::-webkit-details-marker{display:none}.patient-form,.contact-form,.portal-access-form,.document-upload{display:grid;gap:16px;padding:20px;border:1px solid #dce6f0;border-radius:20px;background:#fff}.patient-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.patient-form-grid label,.contact-form label,.portal-access-form label,.document-upload label{display:grid;gap:7px;color:#36516a;font-size:.84rem;font-weight:700}.patient-form-grid input,.patient-form-grid select,.patient-form-grid textarea,.contact-form input,.contact-form select,.contact-form textarea,.portal-access-form input,.document-upload input,.document-upload select{width:100%;min-width:0}.patient-form-grid .span-2{grid-column:span 2}.patient-branch-field{display:flex;flex-wrap:wrap;align-content:flex-start;gap:10px;padding:12px 14px;border:1px solid #dce6f0;border-radius:14px}.patient-branch-field legend{padding:0 5px;color:#36516a;font-size:.8rem;font-weight:800}.patient-branch-field .inline-check{display:flex}.patient-extra{border:1px dashed #b9cee2;border-radius:16px;padding:0 14px 14px}.patient-extra>summary{cursor:pointer;padding:14px 0;color:#086bf0;font-weight:800}.portal-create-box{display:grid;gap:13px;padding:16px;border:1px solid #cfe2fb;border-radius:16px;background:#f6faff}.patient-directory{display:grid;gap:10px}.patient-row{display:grid;grid-template-columns:auto minmax(180px,1.4fr) minmax(130px,.8fr) minmax(230px,1fr);align-items:center;gap:14px;padding:15px 16px;border:1px solid #dce6f0;border-radius:17px;background:#fff;color:inherit;text-decoration:none;transition:.18s ease}.patient-row:hover,.patient-row.selected{border-color:#79aef8;box-shadow:0 10px 26px rgba(8,107,240,.10);transform:translateY(-1px)}.patient-avatar{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--primary,#086bf0),var(--primary-2,#0bbbc5));font-weight:900}.patient-avatar.large{width:60px;height:60px;border-radius:20px;font-size:1.3rem}.patient-main,.patient-meta,.patient-counts{display:grid;gap:3px;min-width:0}.patient-main strong,.patient-main small,.patient-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patient-main small,.patient-meta small,.patient-counts{color:#728296;font-size:.76rem}.patient-counts{grid-template-columns:repeat(3,minmax(0,1fr));text-align:center}.patient-counts span{padding:6px;border-radius:9px;background:#f4f7fa}.patient-profile-head{display:flex;align-items:center;gap:15px;padding:18px;border:1px solid #dce6f0;border-radius:20px;background:linear-gradient(135deg,#fff,#f5faff)}.patient-profile-head>div{flex:1}.patient-profile-head h2{margin:2px 0}.patient-profile-head p{margin:0;color:#6c7d8f}.patient-profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:18px}.patient-profile-form{padding:20px}.patient-side-card{align-self:start;display:grid;gap:10px;padding:18px;border:1px solid #dce6f0;border-radius:18px;background:#fff}.patient-side-card form{display:inline}.patient-side-card button{width:100%}.contact-form{grid-template-columns:1fr}.contact-checks{display:flex;flex-wrap:wrap;gap:14px}.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.contact-card{display:grid;align-content:start;gap:12px;padding:17px;border:1px solid #dce6f0;border-radius:18px;background:#fff}.contact-card header{display:flex;align-items:center;gap:10px}.contact-card header>span{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;color:#086bf0;background:#edf5ff;font-weight:900}.contact-card header div{display:grid;min-width:0}.contact-card small,.contact-card p{color:#6f8193}.contact-card details form{display:grid;gap:9px;margin-top:10px;padding-top:10px;border-top:1px solid #e7edf3}.contact-card details summary{list-style:none;cursor:pointer}.contact-badges{display:flex;flex-wrap:wrap;gap:6px}.contact-badges span{padding:5px 8px;border-radius:999px;color:#086bf0;background:#edf5ff;font-size:.7rem;font-weight:800}.document-upload{grid-template-columns:minmax(130px,.7fr) minmax(220px,1.2fr) minmax(180px,1fr) auto;align-items:end}.document-list{display:grid;gap:10px}.document-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 16px;border:1px solid #dce6f0;border-radius:16px;background:#fff}.document-list article>div{min-width:0}.document-list strong,.document-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-list small{color:#728296}.document-list p{margin:5px 0 0;color:#53687d}.document-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;color:#086bf0;background:#eef5ff;font-size:.74rem;font-weight:900}.document-actions{display:flex;align-items:center;gap:7px}.portal-access-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);gap:18px}.portal-status-card{display:flex;align-items:flex-start;gap:15px;padding:24px;border:1px solid #cfe2fb;border-radius:20px;background:linear-gradient(135deg,#eff7ff,#f0fffc)}.portal-symbol{display:grid;place-items:center;width:52px;height:52px;border-radius:17px;color:#fff;background:linear-gradient(135deg,#086bf0,#0bbbc5);font-size:1.5rem}.portal-status-card h2{margin:3px 0}.portal-status-card p{color:#5c7184}.portal-access-form{padding:22px}.portal-enable{font-size:1rem!important}.patient-portal-grid{display:grid;grid-template-columns:1.5fr repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.portal-profile-card,.portal-summary-card{padding:18px;border:1px solid #dce6f0;border-radius:19px;background:#fff}.portal-profile-card{display:flex;align-items:center;gap:14px}.portal-avatar{width:58px;height:58px;border-radius:19px}.portal-profile-card h2{margin:2px 0}.portal-profile-card p,.portal-summary-card p{margin:4px 0 0;color:#6c7e91}.portal-summary-card{display:grid;align-content:center;gap:5px}.portal-summary-card small{color:#718196}.portal-summary-card strong{font-size:1.05rem;color:#17344f}.patient-portal-section{margin-top:16px}.patient-data-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.patient-data-grid>div{display:grid;gap:4px;padding:14px;border-radius:14px;background:#f5f8fb}.patient-data-grid small{color:#738396}.patient-data-grid .span-2{grid-column:span 2}.portal-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.portal-contact-grid article{display:flex;gap:11px;padding:14px;border:1px solid #dce6f0;border-radius:15px}.portal-contact-grid article>span{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:12px;color:#086bf0;background:#eef5ff;font-weight:900}.portal-contact-grid small,.portal-contact-grid p{color:#6e8092}.portal-documents article{grid-template-columns:auto minmax(0,1fr) auto}

@media(max-width:1180px){.patients-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.patient-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-row{grid-template-columns:auto minmax(170px,1fr) minmax(130px,.7fr)}.patient-counts{grid-column:2/-1}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.patients-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.patients-filter{grid-template-columns:1fr 1fr}.patients-filter label:first-of-type{grid-column:1/-1}.patient-profile-layout,.portal-access-layout{grid-template-columns:1fr}.document-upload{grid-template-columns:1fr 1fr}.document-upload button{width:100%}.contact-grid,.portal-contact-grid{grid-template-columns:1fr}.patient-row{grid-template-columns:auto minmax(0,1fr)}.patient-meta{grid-column:2}.patient-counts{grid-column:1/-1}.document-list article{grid-template-columns:auto minmax(0,1fr)}.document-actions,.document-list article>a{grid-column:2}.patient-portal-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.patients-kpis{grid-template-columns:1fr 1fr}.patients-tabs{grid-template-columns:1fr 1fr}.patients-filter,.patient-form-grid,.document-upload,.patient-portal-grid,.patient-data-grid{grid-template-columns:1fr}.patient-form-grid .span-2,.patient-data-grid .span-2{grid-column:auto}.patient-row{padding:13px}.patient-counts{grid-template-columns:1fr 1fr}.patient-counts span:last-child{grid-column:1/-1}.patient-profile-head{align-items:flex-start;flex-wrap:wrap}.patient-profile-head .status-pill{margin-left:75px}.document-list article{grid-template-columns:1fr}.document-list article .document-icon{width:40px}.document-actions,.document-list article>a{grid-column:1;display:flex;flex-wrap:wrap}.portal-profile-card{align-items:flex-start}.portal-contact-grid article{min-width:0}}

/* Bloque 13: agenda dental */
.agenda-heading{align-items:flex-start}.agenda-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:18px 0}.agenda-kpis article{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--line,#dbe5ef);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(25,55,92,.05)}.agenda-kpis article>span{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;color:#086bf0;background:#edf5ff;font-weight:900}.agenda-kpis small{display:block;color:#6d7d8f}.agenda-kpis strong{display:block;font-size:1.35rem;color:#16324f}.agenda-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.agenda-panel{display:grid;gap:18px}.agenda-filter{grid-template-columns:repeat(5,minmax(130px,1fr)) auto auto;align-items:end}.agenda-filter label{display:grid;gap:6px}.agenda-calendar{display:grid;gap:16px}.agenda-day{border:1px solid #dce6f0;border-radius:19px;overflow:hidden;background:#fff}.agenda-day>header{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;background:#f6f9fc}.agenda-day>header div{display:flex;align-items:baseline;gap:9px}.agenda-day>header small,.agenda-day>header span{color:#708195}.agenda-day-list{display:grid}.agenda-event{position:relative;display:grid;grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border-top:1px solid #edf1f5;color:inherit;text-decoration:none}.agenda-event:before{content:"";position:absolute;inset:10px auto 10px 0;width:4px;border-radius:4px;background:var(--event-color,#086bf0)}.agenda-event:hover{background:#f9fbfd}.agenda-event time{font-weight:900;color:#173550}.agenda-event>div{display:grid;gap:2px;min-width:0}.agenda-event>div strong,.agenda-event>div span,.agenda-event>div small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-event>div span{color:#36526c}.agenda-event>div small{color:#76879a}.appointment-form,.availability-form,.waitlist-form,.appointment-type-form{display:grid;gap:16px;padding:19px;border:1px solid #dce6f0;border-radius:19px;background:#fff}.appointment-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.appointment-form label,.availability-form label,.waitlist-form label,.appointment-type-form label{display:grid;gap:7px;color:#36516a;font-size:.84rem;font-weight:700}.appointment-form input,.appointment-form select,.appointment-form textarea,.availability-form input,.availability-form select,.waitlist-form input,.waitlist-form select,.appointment-type-form input{width:100%;min-width:0}.appointment-form-grid .span-2,.waitlist-form .span-2,.appointment-type-form .span-2{grid-column:span 2}.appointment-actions{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:16px;border-radius:16px;background:#f7f9fc}.appointment-actions form{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.appointment-actions label{display:grid;gap:5px}.appointment-history{display:grid;gap:9px}.appointment-history article{display:grid;grid-template-columns:130px minmax(160px,.7fr) minmax(0,1fr);gap:12px;padding:12px 14px;border:1px solid #e0e8f0;border-radius:14px;background:#fff}.appointment-history span,.appointment-history small{color:#728397}.availability-form{grid-template-columns:repeat(5,minmax(140px,1fr)) auto;align-items:end}.availability-list{display:grid;gap:10px}.availability-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 16px;border:1px solid #dce6f0;border-radius:16px;background:#fff}.availability-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;color:#086bf0;background:#edf5ff;font-weight:900}.availability-list article div{display:grid;gap:3px}.availability-list small,.availability-list p{color:#708195}.waitlist-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.waitlist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.waitlist-card{display:grid;gap:11px;padding:17px;border:1px solid #dce6f0;border-radius:18px;background:#fff}.waitlist-card.priority-urgent{border-color:#f2a6a6}.waitlist-card.priority-high{border-color:#efcc88}.waitlist-card header{display:flex;justify-content:space-between;gap:10px}.waitlist-card header span{display:inline-block;padding:4px 8px;border-radius:999px;color:#086bf0;background:#edf5ff;font-size:.7rem;font-weight:900}.waitlist-card h3{margin:6px 0 2px}.waitlist-card p,.waitlist-card small{color:#708195}.waitlist-card form{display:flex;gap:8px}.waitlist-card form select{min-width:0;flex:1}.appointment-type-form{grid-template-columns:repeat(5,minmax(0,1fr)) auto;align-items:end}.appointment-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.appointment-type-grid article{display:flex;gap:12px;padding:15px;border:1px solid #dce6f0;border-radius:16px;background:#fff}.appointment-type-grid article>span{width:8px;flex:0 0 8px;border-radius:8px;background:var(--type-color,#086bf0)}.appointment-type-grid article div{display:grid;gap:3px}.appointment-type-grid small,.appointment-type-grid p{color:#708195}.reminder-summary{display:grid;gap:10px;padding:16px;border-radius:16px;background:#f5f8fb}.reminder-summary>div{display:flex;flex-wrap:wrap;gap:8px}.reminder-summary span{padding:8px 10px;border-radius:10px;background:#fff;color:#536a80;font-size:.8rem}.patient-appointments{display:grid;gap:11px}.patient-appointment{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:15px;padding:15px;border:1px solid #dce6f0;border-radius:17px;background:#fff}.patient-appointment>time{display:grid;place-items:center;padding:8px;border-radius:14px;background:#edf5ff;color:#086bf0}.patient-appointment>time strong{font-size:1.5rem}.patient-appointment>time span,.patient-appointment>time small{font-size:.72rem;font-weight:800}.patient-appointment>div:nth-child(2){display:grid;gap:5px}.patient-appointment h3{margin:0}.patient-appointment p,.patient-appointment small{color:#708195}.patient-appointment-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.patient-appointment-actions details{position:relative}.patient-appointment-actions details>summary{list-style:none;cursor:pointer}.patient-appointment-actions details>form{position:absolute;right:0;top:calc(100% + 8px);z-index:10;display:grid;gap:9px;width:260px;padding:14px;border:1px solid #f1c3c3;border-radius:14px;background:#fff;box-shadow:0 16px 34px rgba(29,48,72,.16)}.patient-appointment-actions label{display:grid;gap:6px}
@media(max-width:1180px){.agenda-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.agenda-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.appointment-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-form{grid-template-columns:repeat(3,minmax(0,1fr))}.waitlist-form{grid-template-columns:repeat(3,minmax(0,1fr))}.waitlist-grid,.appointment-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-type-form{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.agenda-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-event{grid-template-columns:85px minmax(0,1fr)}.agenda-event>.status-pill{grid-column:2;justify-self:start}.appointment-history article{grid-template-columns:1fr}.availability-form,.waitlist-form,.appointment-type-form{grid-template-columns:1fr 1fr}.waitlist-grid,.appointment-type-grid{grid-template-columns:1fr}.patient-appointment{grid-template-columns:64px minmax(0,1fr)}.patient-appointment-actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:560px){.agenda-kpis{grid-template-columns:1fr 1fr}.agenda-tabs{grid-template-columns:1fr}.agenda-filter,.appointment-form-grid,.availability-form,.waitlist-form,.appointment-type-form{grid-template-columns:1fr}.appointment-form-grid .span-2,.waitlist-form .span-2,.appointment-type-form .span-2{grid-column:auto}.agenda-event{grid-template-columns:1fr;padding-left:18px}.agenda-event time{font-size:.85rem}.agenda-event>.status-pill{grid-column:1}.appointment-actions,.appointment-actions form{display:grid;grid-template-columns:1fr;width:100%}.availability-list article{grid-template-columns:auto minmax(0,1fr)}.availability-list article form{grid-column:2}.patient-appointment{grid-template-columns:58px minmax(0,1fr);align-items:start}.patient-appointment-actions{grid-column:1/-1;justify-content:stretch}.patient-appointment-actions form,.patient-appointment-actions details,.patient-appointment-actions summary{width:100%}.patient-appointment-actions button{width:100%}.patient-appointment-actions details>form{position:static;width:100%;margin-top:8px}}
@media(max-width:420px){
  .agenda-kpis{grid-template-columns:1fr}
  .patient-appointment-actions details>form{width:100%;max-width:100%;overflow:hidden;box-sizing:border-box}
  .patient-appointment-actions details>form input,
  .patient-appointment-actions details>form button{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
}
.agenda-panel,.agenda-panel>*{min-width:0;max-width:100%}
@media(max-width:420px){
  .agenda-panel .section-heading{flex-direction:column;align-items:flex-start;width:100%}
  .agenda-panel .section-heading .status-pill{align-self:flex-start}
  .appointment-form,.appointment-actions,.appointment-history{width:100%;min-width:0;max-width:100%}
}


/* Bloque 14: reservación pública */
.booking-page{min-height:100vh;color:#173550;background:linear-gradient(180deg,#f4faff 0,#fff 40%,#f7fbff 100%)}
.booking-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:1320px;margin:auto;padding:20px clamp(18px,4vw,52px)}
.booking-shell{width:min(1320px,calc(100% - 32px));margin:0 auto;padding:12px 0 46px}.booking-footer{display:flex;justify-content:space-between;gap:20px;max-width:1320px;margin:auto;padding:22px clamp(18px,4vw,52px);border-top:1px solid #dfe9f3;color:#6c7e91;font-size:.78rem}
.booking-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.8fr);gap:32px;align-items:center;margin:18px 0 24px;padding:clamp(24px,5vw,52px);border:1px solid #cfe4f5;border-radius:28px;background:radial-gradient(circle at 90% 20%,rgba(11,187,197,.16),transparent 34%),linear-gradient(135deg,#fff,#eef8ff);box-shadow:0 24px 70px rgba(14,59,103,.09)}
.booking-hero h1{max-width:760px;margin:7px 0 12px;color:#102d49;font-size:clamp(2rem,4.5vw,4rem);line-height:1.02;letter-spacing:-.055em}.booking-hero p{max-width:720px;margin:0;color:#5e7388;font-size:clamp(.94rem,1.5vw,1.08rem);line-height:1.7}
.booking-steps{display:grid;gap:11px}.booking-steps span{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #cfe4f5;border-radius:16px;background:rgba(255,255,255,.84);font-weight:800}.booking-steps strong{display:grid;width:32px;height:32px;place-items:center;border-radius:10px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2))}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.65fr);gap:20px;align-items:start}.booking-card{min-width:0;padding:22px;border:1px solid #d9e6f0;border-radius:22px;background:#fff;box-shadow:0 13px 38px rgba(27,62,96,.07)}
.booking-filter{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;gap:12px;align-items:end;margin-top:18px}.booking-filter label,.booking-request-form label,.public-booking-settings label,.booking-admin-filter label{display:grid;gap:7px;color:#3a566e;font-size:.81rem;font-weight:800}.booking-filter input,.booking-filter select,.booking-request-form input,.booking-request-form select,.booking-request-form textarea,.public-booking-settings input,.public-booking-settings select,.public-booking-settings textarea,.booking-admin-filter input,.booking-admin-filter select{width:100%;min-width:0}
.booking-slot-section{margin-top:24px}.booking-slot-section h3{margin:0 0 12px}.booking-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.booking-slots label{cursor:pointer}.booking-slots input{position:absolute;opacity:0;pointer-events:none}.booking-slots span{display:grid;gap:3px;padding:13px;border:1px solid #d2e2ee;border-radius:14px;background:#fbfdff;text-align:center;transition:.16s ease}.booking-slots strong{color:#123b60;font-size:1rem}.booking-slots small{overflow:hidden;color:#6e8295;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.booking-slots input:checked+span{border-color:var(--primary);background:#edf6ff;box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 15%,transparent)}.booking-slots input:focus-visible+span{outline:3px solid rgba(8,107,240,.24)}
.booking-placeholder{display:grid;place-items:center;gap:10px;min-height:210px;margin-top:22px;border:1px dashed #bdd6e9;border-radius:18px;color:#647d91;background:#f8fbfe;text-align:center}.booking-placeholder span{font-size:2rem;color:var(--primary)}
.booking-request-card{position:sticky;top:16px}.booking-request-form{display:grid;gap:16px;margin-top:18px}.booking-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-form-grid .span-2{grid-column:span 2}.booking-consent{display:flex!important;align-items:flex-start;grid-template-columns:auto 1fr!important;gap:9px!important;padding:12px;border-radius:13px;background:#f7fafe;font-size:.76rem!important}.booking-consent input{width:18px!important;height:18px;flex:none;accent-color:var(--primary)}.booking-security-note{color:#6e8295;text-align:center;line-height:1.5}.wide{width:100%}
.booking-state-card{width:min(720px,100%);margin:55px auto;padding:clamp(24px,5vw,52px);border:1px solid #d8e6f1;border-radius:28px;background:#fff;box-shadow:0 24px 70px rgba(14,59,103,.11);text-align:center}.booking-state-card h1{margin:10px 0 13px;font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.045em}.booking-state-card>p{max-width:580px;margin:0 auto 22px;color:#61768a;line-height:1.7}.booking-state-card .pending-details{grid-template-columns:1fr 1fr}.manage-card{width:min(880px,100%)}.booking-manage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:22px 0;text-align:left}.booking-manage-grid>div{display:grid;gap:5px;padding:14px;border:1px solid #dce7f0;border-radius:14px;background:#f9fbfd}.booking-manage-grid small{color:#718396;font-size:.68rem;font-weight:900;text-transform:uppercase}.booking-cancel{margin-top:18px}.booking-cancel>summary{display:inline-flex;list-style:none;cursor:pointer}.booking-cancel form{display:grid;gap:11px;max-width:430px;margin:13px auto 0;padding:16px;border:1px solid #f1c4ca;border-radius:16px;background:#fff8f9;text-align:left}.booking-cancel label{display:grid;gap:7px}.danger-outline{border:1px solid #e8a9b4!important;color:#aa2441!important;background:#fff!important}.button.danger{color:#fff;background:#bd2c4d}
.public-booking-admin-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.58fr);gap:20px;align-items:start}.booking-admin-filter{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,.45fr) auto;gap:11px;align-items:end;margin:16px 0}.public-request-list{display:grid;gap:12px}.public-request-card{display:grid;gap:12px;padding:17px;border:1px solid #dce7f0;border-radius:18px;background:#fff}.public-request-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.public-request-card h3{margin:7px 0 3px}.public-request-card header small,.public-request-card p{color:#708296}.public-request-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.public-request-meta span{display:grid;gap:3px;padding:10px;border-radius:12px;background:#f5f8fb;overflow-wrap:anywhere}.public-request-meta small{color:#78899a;font-size:.65rem;text-transform:uppercase;font-weight:900}.public-request-actions{display:flex;flex-wrap:wrap;gap:9px}.public-request-actions details{position:relative}.public-request-actions summary{list-style:none;cursor:pointer}.public-request-actions details form{position:absolute;right:0;z-index:5;display:grid;gap:10px;width:310px;margin-top:8px;padding:14px;border:1px solid #efc6cd;border-radius:15px;background:#fff;box-shadow:0 18px 40px rgba(27,48,76,.16)}.public-request-actions label{display:grid;gap:6px}.public-booking-settings{position:sticky;top:16px}.public-booking-settings form{display:grid;gap:14px}.toggle-row{display:flex!important;align-items:center;justify-content:space-between;gap:13px;padding:13px;border:1px solid #dce7f0;border-radius:14px;background:#f9fbfd}.toggle-row span{display:grid;gap:4px}.toggle-row small{color:#718396;font-weight:500}.toggle-row input{width:20px!important;height:20px;accent-color:var(--primary)}.two-column-form{display:grid;grid-template-columns:1fr 1fr;gap:11px}.two-column-form label{position:relative}.two-column-form label>small{color:#718396}
.status-pending_review{color:#8b5700;background:#fff3d3}.status-pending_verification{color:#49677e;background:#edf3f7}.status-approved{color:#08704b;background:#e5f8f0}.status-rejected,.status-cancelled{color:#a52745;background:#ffedf1}
@media(max-width:1100px){.booking-layout,.public-booking-admin-grid{grid-template-columns:1fr}.booking-request-card,.public-booking-settings{position:static}.booking-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-slots{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.booking-topbar{align-items:flex-start}.booking-hero{grid-template-columns:1fr;padding:24px}.booking-steps{grid-template-columns:1fr}.booking-filter{grid-template-columns:1fr 1fr}.booking-filter button{grid-column:1/-1}.booking-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-form-grid{grid-template-columns:1fr}.booking-form-grid .span-2{grid-column:auto}.booking-manage-grid,.public-request-meta{grid-template-columns:1fr 1fr}.booking-admin-filter{grid-template-columns:1fr}.booking-footer{flex-direction:column}.public-request-card header{flex-direction:column}.public-request-actions{display:grid}.public-request-actions form,.public-request-actions details,.public-request-actions summary,.public-request-actions button{width:100%}.public-request-actions details form{position:static;width:100%}}
@media(max-width:480px){.booking-shell{width:min(100% - 20px,1320px)}.booking-topbar{padding:15px 10px}.booking-topbar .brand small{display:none}.booking-hero,.booking-card,.booking-state-card{border-radius:20px}.booking-filter,.booking-slots,.booking-manage-grid,.public-request-meta,.two-column-form{grid-template-columns:1fr}.booking-state-card .pending-details{grid-template-columns:1fr}.booking-request-card{padding:18px}.booking-cancel form{width:100%;box-sizing:border-box}.booking-kpis{grid-template-columns:1fr 1fr}}


@media(max-width:340px){.booking-kpis{grid-template-columns:1fr}}

/* Bloque 15: expediente clínico */
.clinical-layout{display:grid;grid-template-columns:minmax(240px,.32fr) minmax(0,1fr);gap:18px;align-items:start}.clinical-patient-list{position:sticky;top:14px;padding:16px}.clinical-patient-list form{display:grid;gap:10px}.clinical-patient-list label{display:grid;gap:6px;font-size:.78rem;font-weight:800}.patient-list-scroll{display:grid;gap:8px;max-height:70vh;margin-top:14px;overflow:auto}.clinical-patient-item{position:relative;display:grid;gap:3px;padding:13px;border:1px solid #dce7f0;border-radius:14px;color:#173550;text-decoration:none;background:#fff}.clinical-patient-item.active{border-color:var(--primary);background:#edf6ff}.clinical-patient-item small{color:#718397}.clinical-alert{position:absolute;right:8px;top:8px;padding:3px 7px;border-radius:999px;color:#a52745;background:#ffedf1;font-size:.62rem;font-weight:900}.clinical-workspace{min-width:0;padding:20px}.clinical-patient-header{display:flex;justify-content:space-between;gap:16px;align-items:center}.clinical-patient-header>div:first-child{display:flex;align-items:center;gap:13px}.clinical-patient-header h2{margin:0}.avatar.large{width:52px;height:52px;font-size:1rem}.clinical-warning{display:grid;gap:3px;max-width:420px;padding:11px 14px;border:1px solid #f1b8c2;border-radius:14px;color:#95223d;background:#fff2f5}.clinical-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:20px 0}.clinical-tabs a{text-align:center}.clinical-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.clinical-summary-grid article,.clinical-card-list article{padding:17px;border:1px solid #dce7f0;border-radius:17px;background:#fff}.clinical-summary-grid h3{margin-top:0}.clinical-summary-grid dl{display:grid;grid-template-columns:150px 1fr;gap:9px}.clinical-summary-grid dt{font-weight:800;color:#49647b}.clinical-summary-grid dd{margin:0}.clinical-allergy{display:grid;gap:3px;margin:8px 0;padding:10px;border-left:4px solid #e49b35;border-radius:9px;background:#fff9ed}.severity-severe{border-left-color:#c72d50;background:#fff1f4}.vital-chips{display:flex;flex-wrap:wrap;gap:8px}.vital-chips span{padding:8px 10px;border-radius:10px;background:#eef7ff;font-weight:800}.clinical-two-col{display:grid;grid-template-columns:1.4fr .7fr;gap:15px}.clinical-form{display:grid;gap:14px;padding:18px;border:1px solid #dce7f0;border-radius:17px;background:#fff}.clinical-form h3{margin:0}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.clinical-card-list,.clinical-timeline{display:grid;gap:12px;margin-top:16px}.clinical-card-list article header,.clinical-timeline article header{display:flex;justify-content:space-between;gap:10px}.clinical-timeline{position:relative;padding-left:20px}.clinical-timeline:before{content:'';position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:#dbe7f0}.clinical-timeline article{position:relative;padding:17px;border:1px solid #dce7f0;border-radius:17px;background:#fff}.timeline-dot{position:absolute;left:-21px;top:20px;width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:var(--primary);box-shadow:0 0 0 2px var(--primary)}.status-signed,.status-active,.status-resolved{color:#08704b;background:#e5f8f0}.status-draft{color:#6a5a00;background:#fff6cf}.status-ruled_out{color:#667686;background:#eef2f5}.clinical-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.clinical-layout{grid-template-columns:1fr}.clinical-patient-list{position:static}.patient-list-scroll{grid-template-columns:repeat(3,minmax(0,1fr));max-height:none}.clinical-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.clinical-summary-grid,.clinical-two-col{grid-template-columns:1fr}.patient-list-scroll{grid-template-columns:1fr 1fr}.form-grid.four{grid-template-columns:1fr 1fr}.clinical-patient-header{align-items:flex-start;flex-direction:column}.clinical-warning{max-width:100%}.clinical-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.patient-list-scroll,.form-grid.four,.clinical-tabs,.clinical-kpis{grid-template-columns:1fr}.clinical-summary-grid dl{grid-template-columns:1fr}.clinical-workspace,.clinical-patient-list{padding:14px}}

/* Bloque 16: anamnesis avanzada */
.anamnesis-stats article{min-width:0}.anamnesis-layout{align-items:start}.risk-dot{width:.7rem;height:.7rem;border-radius:50%;margin-left:auto;flex:0 0 auto}.risk-none{background:#cbd5e1;color:#475569}.risk-low{background:#dbeafe;color:#1d4ed8}.risk-moderate{background:#fef3c7;color:#92400e}.risk-high{background:#fee2e2;color:#b91c1c}.risk-badge,.triage-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.35rem .7rem;font-size:.78rem;font-weight:800;white-space:nowrap}.clinical-patient-header .risk-badge{margin-left:auto}.anamnesis-tabs{grid-template-columns:repeat(6,minmax(0,1fr))}.anamnesis-overview{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem}.session-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--border,#e5e7eb);color:inherit;text-decoration:none}.session-row:last-child{border-bottom:0}.session-row span:first-child{display:grid;gap:.2rem}.session-row small{color:#64748b}.summary-list{display:grid;grid-template-columns:1fr auto;gap:.8rem;margin:0}.summary-list dt,.summary-list dd{margin:0}.summary-list dd{font-weight:800;color:var(--primary)}.anamnesis-questionnaire{display:grid;gap:1rem}.anamnesis-questionnaire>header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.question-section{border:1px solid #dbe5ef;border-radius:1rem;padding:1rem;margin:0;background:#fbfdff}.question-section legend{padding:0 .5rem;font-weight:900;color:#17324d}.question-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(14rem,.9fr);gap:1rem;align-items:start;padding:1rem 0;border-bottom:1px solid #e8eef5}.question-row:last-child{border-bottom:0}.question-row>label{display:grid;gap:.35rem}.question-row>label small{color:#64748b;line-height:1.45}.question-control{display:grid;gap:.35rem}.question-row.flagged{border-left:4px solid #ef4444;padding-left:.8rem;background:#fffafa}.risk-warning{color:#b91c1c;font-weight:700}.review-card{margin-top:1rem}.clinical-card-list article form{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.8rem}.clinical-card-list article form select{width:auto;min-width:9rem}.triage-normal{background:#dcfce7;color:#166534}.triage-watch{background:#fef3c7;color:#92400e}.triage-urgent{background:#fee2e2;color:#b91c1c}.patient-anamnesis-notice{display:flex;gap:.75rem;align-items:center;background:#eaf7ff;border:1px solid #b8e2fb;border-radius:1rem;padding:1rem;margin-bottom:1rem;color:#174b6b}.patient-anamnesis-notice span{color:#38657e}.patient-questionnaire{max-width:980px;margin-inline:auto}.sticky-actions{position:sticky;bottom:1rem;background:rgba(255,255,255,.96);padding:1rem;border:1px solid #dbe5ef;border-radius:1rem;box-shadow:0 12px 28px rgba(15,23,42,.12);z-index:5}.session-list{display:grid}.empty-copy{padding:1rem;color:#64748b}
@media(max-width:1024px){.anamnesis-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.anamnesis-overview{grid-template-columns:1fr}.question-row{grid-template-columns:1fr}.clinical-patient-header .risk-badge{margin-left:0}}
@media(max-width:640px){.anamnesis-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.anamnesis-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.anamnesis-tabs a{justify-content:center;text-align:center;min-width:0}.anamnesis-questionnaire>header{display:grid}.question-section{padding:.8rem}.question-row{padding:.85rem 0}.question-control select,.question-control input,.question-control textarea{width:100%;max-width:100%}.sticky-actions{position:static;display:grid;grid-template-columns:1fr}.patient-anamnesis-notice{align-items:flex-start;display:grid}.clinical-card-list article form{display:grid;grid-template-columns:1fr}.clinical-card-list article form select{width:100%}}
@media(max-width:360px){.anamnesis-stats{grid-template-columns:1fr 1fr}.anamnesis-tabs{grid-template-columns:1fr}.risk-badge{white-space:normal;text-align:center}}

/* Bloque 17: odontograma interactivo */
.odontogram-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.odontogram-layout{align-items:start}.odontogram-workspace{min-width:0}.odontogram-version{display:flex;min-width:92px;flex-direction:column;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:#f7fbff}.odontogram-version small{color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase}.odontogram-version strong{color:var(--primary);font-size:1.35rem}.odontogram-dentition-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.odontogram-dentition-switch a{padding:10px;border:1px solid var(--line);border-radius:11px;color:var(--muted);background:#fff;text-align:center;font-size:.78rem;font-weight:850}.odontogram-dentition-switch a.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 8px 18px rgba(8,107,240,.17)}.odontogram-grid-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,.55fr);gap:18px;align-items:start}.odontogram-board{overflow:hidden;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fbfdff,#f4f9ff)}.odontogram-arch+.odontogram-arch{margin-top:20px;padding-top:18px;border-top:1px dashed #c9daed}.odontogram-arch h3{margin:0 0 12px;color:var(--navy);font-size:.82rem;text-align:center}.tooth-row{display:grid;grid-template-columns:repeat(16,minmax(39px,1fr));gap:6px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin}.odontogram-arch:nth-child(2) .tooth-row,.odontogram-arch:nth-child(4) .tooth-row{grid-template-columns:repeat(16,minmax(39px,1fr))}.tooth-card{position:relative;display:flex;min-width:39px;min-height:76px;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;padding:4px 2px 7px;border:1px solid #d8e4f1;border-radius:11px;color:#3b536e;background:#fff;cursor:pointer;transition:.16s ease}.tooth-card:hover,.tooth-card.is-selected{border-color:var(--primary);box-shadow:0 0 0 3px rgba(8,107,240,.12);transform:translateY(-1px)}.tooth-card.readonly{cursor:default}.tooth-card.readonly:hover{transform:none;box-shadow:none}.tooth-number{font-size:.67rem;font-weight:900}.tooth-symbol{position:relative;display:block;width:31px;height:39px;border:2px solid currentColor;border-radius:48% 48% 37% 37%;background:#fff}.tooth-symbol:after{position:absolute;left:9px;bottom:-12px;width:9px;height:15px;border-right:2px solid currentColor;border-left:2px solid currentColor;border-radius:0 0 5px 5px;background:#fff;content:""}.tooth-symbol .surface{position:absolute;display:block;border-radius:4px;background:currentColor;opacity:.1}.tooth-symbol .top{left:8px;top:3px;width:11px;height:7px}.tooth-symbol .left{left:3px;top:12px;width:7px;height:12px}.tooth-symbol .center{left:11px;top:12px;width:7px;height:12px}.tooth-symbol .right{right:3px;top:12px;width:7px;height:12px}.tooth-symbol .bottom{left:8px;bottom:3px;width:11px;height:7px}.tooth-count{position:absolute;top:-5px;right:-4px;display:grid;width:20px;height:20px;place-items:center;border-radius:50%;color:#fff;background:var(--navy);font-size:.62rem;font-weight:900}.tooth-caries{color:#dc4063;background:#fff2f5}.tooth-restoration{color:#1676dc;background:#edf6ff}.tooth-crown{color:#8a5cc9;background:#f7f2ff}.tooth-bridge{color:#536e8d;background:#f1f5f9}.tooth-implant{color:#138a8f;background:#eafafb}.tooth-missing{color:#7b8796;background:#f1f3f5;text-decoration:line-through}.tooth-root-canal{color:#e68600;background:#fff7e5}.tooth-fracture{color:#c62828;background:#fff0f0}.tooth-sealant{color:#0097a7;background:#e8fbfd}.tooth-extraction-indicated{color:#c0392b;background:#fff0ee}.tooth-mobility{color:#9b6b00;background:#fff8df}.tooth-wear{color:#9a6e45;background:#f9f1e8}.tooth-sensitivity{color:#d8579f;background:#fff1f9}.tooth-observation{color:#506b8b;background:#f0f5fb}.tooth-healthy{color:#1eaa74;background:#edfbf5}.odontogram-legend{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.odontogram-legend span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.68rem;font-weight:750}.legend-dot{display:block;width:10px;height:10px;border-radius:50%;background:currentColor}.odontogram-editor{position:sticky;top:18px;margin:0}.selected-tooth-summary{display:flex;align-items:center;justify-content:space-between;margin:10px 0;padding:12px;border-radius:12px;color:#526982;background:#edf6ff}.selected-tooth-summary strong{color:var(--primary);font-size:1.45rem}.surface-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0 13px}.surface-selector button{min-height:34px;padding:6px;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:#fff;font-size:.68rem;font-weight:800;cursor:pointer}.surface-selector button.active{color:#fff;border-color:var(--primary);background:var(--primary)}.odontogram-current-findings{margin-top:18px}.finding-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.finding-card{display:flex;min-width:0;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.finding-card>div{display:flex;min-width:0;flex-direction:column}.finding-card strong{color:var(--navy)}.finding-card small,.finding-card p{color:var(--muted);font-size:.76rem}.finding-card p{margin:0;overflow-wrap:anywhere}.finding-tooth{width:max-content;margin-bottom:5px;padding:4px 7px;border-radius:999px;color:#0759be;background:#e5f2ff;font-size:.65rem;font-weight:850}.button.compact{min-height:34px;padding:7px 10px;font-size:.72rem}.button.danger-outline{color:#bd2941;border:1px solid #f1b3c0;background:#fff3f5;box-shadow:none}.cell-note{display:block;max-width:260px;margin-top:3px;color:var(--muted);white-space:normal}.proposal-list{display:grid;gap:12px}.proposal-card{padding:15px;border:1px solid var(--line);border-left:4px solid #6c8baa;border-radius:14px;background:#fbfdff}.proposal-card.priority-urgent{border-left-color:#d92e4e}.proposal-card.priority-high{border-left-color:#e57600}.proposal-card.priority-medium{border-left-color:#1976d2}.proposal-card.priority-low{border-left-color:#21a46b}.proposal-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.proposal-card header div{min-width:0}.proposal-card header span{color:var(--muted);font-size:.68rem;font-weight:800}.proposal-card h3{margin:4px 0 0;font-size:1rem}.proposal-card dl{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:13px 0}.proposal-card dt{color:var(--muted);font-size:.7rem}.proposal-card dd{margin:0;color:var(--navy);font-size:.74rem;font-weight:800}.proposal-card p{color:var(--muted);font-size:.76rem}.inline-form{display:flex;align-items:center;gap:8px}.inline-form select{min-height:36px;flex:1}.compact-form{margin-bottom:12px}.snapshot-list{display:grid;gap:9px}.snapshot-list article{display:flex;flex-direction:column;gap:3px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}.snapshot-list span{color:var(--muted);font-size:.72rem}.snapshot-list code{color:#50708f;font-size:.68rem;overflow-wrap:anywhere}.patient-odontogram{display:grid;gap:20px}.patient-board{max-width:1200px;margin-inline:auto}.patient-odontogram-details{display:grid;grid-template-columns:1fr 1fr;gap:18px}.patient-finding{display:flex;flex-direction:column;gap:4px;padding:11px 0;border-bottom:1px solid var(--line)}.patient-finding span{color:var(--muted);font-size:.78rem}.privacy-note{margin:0;padding:12px;border-radius:12px;color:#526982;background:#edf6ff;text-align:center;font-size:.78rem}
@media(max-width:1180px){.odontogram-grid-layout{grid-template-columns:1fr}.odontogram-editor{position:static}.finding-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.odontogram-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.odontogram-dentition-switch{grid-template-columns:1fr}.patient-odontogram-details{grid-template-columns:1fr}.finding-card-grid{grid-template-columns:1fr}.tooth-row{grid-template-columns:repeat(16,minmax(43px,1fr))}.odontogram-board{padding:14px}}
@media(max-width:430px){.odontogram-kpis{grid-template-columns:1fr 1fr}.odontogram-version{min-width:74px;padding:8px}.odontogram-dentition-switch a{font-size:.72rem}.odontogram-board{padding:11px}.surface-selector{grid-template-columns:1fr 1fr}.proposal-card header{flex-direction:column}.inline-form{align-items:stretch;flex-direction:column}.inline-form select,.inline-form .button{width:100%}}

/* Bloque 18: periodontograma */
.periodontogram-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.periodontogram-layout{align-items:start}.periodontogram-workspace{min-width:0}.periodontal-status{display:flex;min-width:118px;flex-direction:column;align-items:flex-end;gap:4px}.periodontal-status small,.periodontal-status span{color:var(--muted);font-size:.68rem}.status-pill.draft{color:#8a5a00;background:#fff4ce}.status-pill.finalized{color:#08734d;background:#dcf8ec}.status-pill.archived{color:#5c6878;background:#eef1f5}.periodontal-chart-selector{display:grid;grid-template-columns:minmax(180px,.45fr) minmax(0,1.55fr);gap:14px;align-items:center;margin:15px 0;padding:13px;border:1px solid var(--line);border-radius:14px;background:#f8fbff}.periodontal-chart-selector>div:first-child{display:flex;flex-direction:column;gap:3px}.periodontal-chart-selector small{color:var(--muted);font-size:.72rem}.chart-selector-list{display:flex;gap:8px;overflow-x:auto;padding:2px}.chart-selector-list a{display:flex;min-width:130px;flex-direction:column;gap:3px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;color:var(--navy);background:#fff}.chart-selector-list a span{color:var(--muted);font-size:.68rem}.chart-selector-list a.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--primary),var(--primary-2))}.chart-selector-list a.active span{color:#e7f4ff}.periodontogram-create{max-width:680px;margin:22px auto}.periodontal-metrics-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px}.periodontal-metrics-grid article{padding:13px;border:1px solid var(--line);border-radius:13px;background:#fbfdff}.periodontal-metrics-grid small{display:block;color:var(--muted);font-size:.68rem;font-weight:800}.periodontal-metrics-grid strong{display:block;margin-top:4px;color:var(--navy);font-size:1.18rem}.periodontal-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.clinical-summary-list{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0}.clinical-summary-list dt{color:var(--muted);font-size:.72rem}.clinical-summary-list dd{margin:0;color:var(--navy);font-size:.78rem;font-weight:800}.periodontal-alert-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}.periodontal-alert-list li{padding:10px 12px;border-radius:10px;color:#3f5871;background:#edf6ff;font-size:.76rem;font-weight:750}.periodontal-alert-list li.warning{color:#805400;background:#fff5d9}.periodontal-alert-list li.danger{color:#a11f38;background:#fff0f3}.periodontal-board{display:grid;gap:16px;margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#fbfdff,#f3f8fd)}.periodontal-board section+section{padding-top:15px;border-top:1px dashed #c9daed}.periodontal-board h3{margin:0 0 10px;text-align:center;font-size:.8rem}.periodontal-tooth-row{display:grid;grid-template-columns:repeat(16,minmax(43px,1fr));gap:6px;overflow-x:auto;padding-bottom:7px}.periodontal-tooth{display:flex;min-height:70px;min-width:43px;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 3px;border:1px solid #d6e3ef;border-radius:10px;color:#31516e;background:#fff;cursor:pointer}.periodontal-tooth span{font-size:.66rem;font-weight:900}.periodontal-tooth strong{font-size:.78rem}.periodontal-tooth small{color:var(--muted);font-size:.56rem}.periodontal-tooth.depth-warning{color:#915e00;border-color:#f2cf7f;background:#fff8e6}.periodontal-tooth.depth-severe{color:#a21e39;border-color:#efafbc;background:#fff0f3}.periodontal-tooth.missing{opacity:.55;text-decoration:line-through}.periodontal-entry-layout{display:grid;grid-template-columns:minmax(270px,.55fr) minmax(0,1.45fr);gap:16px;align-items:start}.periodontal-entry-layout>.form-card{position:sticky;top:18px}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 13px}.checkbox-grid label{display:flex;align-items:center;gap:7px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#f9fbfd;font-size:.74rem}.periodontal-table-card{min-width:0}.depth-value{display:inline-flex;padding:4px 7px;border-radius:999px;color:#08734d;background:#e5f8f0;font-size:.7rem;font-weight:850}.depth-value.warning{color:#845700;background:#fff2c8}.depth-value.danger{color:#ad2440;background:#ffe7ec}.indicator-dots{display:flex;gap:5px}.indicator-dots i{display:block;width:10px;height:10px;border-radius:50%}.indicator-dots .bleeding{background:#e63252}.indicator-dots .plaque{background:#3f647f}.indicator-dots .suppuration{background:#dfa000}.finding-card header{display:flex;align-items:center;justify-content:space-between;gap:8px}.finding-card dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:0}.finding-card dt{color:var(--muted);font-size:.68rem}.finding-card dd{margin:0;font-size:.72rem;font-weight:800}.status-action-list{display:grid;gap:9px;margin-top:16px}.status-action-list form,.status-action-list button{width:100%}.patient-periodontal-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.patient-periodontal-hero>div{display:flex;align-items:center;gap:12px}.patient-periodontal-hero h2,.patient-periodontal-hero p{margin:0}.patient-periodontal-hero p{color:var(--muted)}.patient-periodontal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.patient-note{margin-top:14px;padding:12px;border-radius:11px;background:#edf6ff}.patient-note p{margin:5px 0 0;color:var(--muted)}.info-callout{margin-top:15px;padding:12px;border-left:4px solid var(--primary);border-radius:8px;color:#48637c;background:#edf6ff;font-size:.76rem}.patient-periodontal-table{max-height:520px;overflow:auto}
@media(max-width:1180px){.periodontal-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.periodontal-entry-layout{grid-template-columns:1fr}.periodontal-entry-layout>.form-card{position:static}}
@media(max-width:820px){.periodontogram-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.periodontal-chart-selector{grid-template-columns:1fr}.periodontal-summary-grid,.patient-periodontal-grid{grid-template-columns:1fr}.periodontal-tooth-row{grid-template-columns:repeat(16,minmax(46px,1fr))}.checkbox-grid{grid-template-columns:1fr}.patient-periodontal-hero{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.periodontal-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.periodontogram-kpis{grid-template-columns:1fr 1fr}.periodontal-status{align-items:flex-start}.periodontal-chart-selector{padding:10px}.chart-selector-list a{min-width:118px}.periodontal-board{padding:10px}.clinical-summary-list{grid-template-columns:1fr}.clinical-summary-list dd{margin-bottom:6px}}

/* Bloque 19: diagnósticos odontológicos y evolución clínica */
.clinical-diagnostics-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.diagnostics-layout{align-items:start}.diagnostics-workspace{min-width:0}.diagnostic-status{display:flex;min-width:120px;flex-direction:column;align-items:flex-end;gap:4px}.diagnostic-status small,.diagnostic-status span{color:var(--muted);font-size:.68rem}.status-pill.signed{color:#08734d;background:#dcf8ec}.status-pill.amended{color:#805400;background:#fff2c8}.status-pill.active{color:#0759be;background:#e5f2ff}.status-pill.resolved{color:#08734d;background:#dcf8ec}.status-pill.ruled_out{color:#5c6878;background:#eef1f5}.status-pill.addendum{color:#6b3fb5;background:#f0e8ff}.consultation-selector{display:grid;grid-template-columns:minmax(190px,.45fr) minmax(0,1.55fr);gap:14px;align-items:center;margin:15px 0;padding:13px;border:1px solid var(--line);border-radius:14px;background:#f8fbff}.consultation-selector>div:first-child{display:flex;flex-direction:column;gap:3px}.consultation-selector small{color:var(--muted);font-size:.72rem}.diagnostic-consultation-form{max-width:980px}.diagnostic-indicators{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:15px}.diagnostic-indicators article{padding:13px;border:1px solid var(--line);border-radius:13px;background:#fbfdff}.diagnostic-indicators small{display:block;color:var(--muted);font-size:.68rem;font-weight:800}.diagnostic-indicators strong{display:block;margin-top:4px;color:var(--navy);font-size:1.15rem}.clinical-readonly h3{margin-top:0}.diagnostic-summary{display:grid;grid-template-columns:minmax(130px,.3fr) minmax(0,1.7fr);gap:9px 14px;margin:0}.diagnostic-summary dt{color:var(--muted);font-size:.72rem;font-weight:800}.diagnostic-summary dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.clinical-status-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.clinical-status-actions form{margin:0}.diagnostic-entry-layout{display:grid;grid-template-columns:minmax(300px,.58fr) minmax(0,1.42fr);gap:16px;align-items:start}.diagnostic-entry-layout>.form-card{position:sticky;top:18px}.diagnosis-list,.evolution-list{display:grid;gap:12px;min-width:0}.diagnosis-list>h3,.evolution-list>h3{margin:0}.diagnosis-card{padding:15px;border:1px solid var(--line);border-left:4px solid #6c8baa;border-radius:14px;background:#fbfdff}.diagnosis-card.severity-severe{border-left-color:#d92e4e}.diagnosis-card.severity-moderate{border-left-color:#e57600}.diagnosis-card.severity-mild{border-left-color:#1976d2}.diagnosis-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.diagnosis-card header div{min-width:0}.diagnosis-card header span{color:var(--muted);font-size:.68rem;font-weight:800}.diagnosis-card h3{margin:4px 0 0;font-size:1rem;overflow-wrap:anywhere}.diagnosis-card dl{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:13px 0}.diagnosis-card dt{color:var(--muted);font-size:.7rem}.diagnosis-card dd{margin:0;color:var(--navy);font-size:.74rem;font-weight:800}.diagnosis-card p{white-space:pre-wrap;color:var(--muted);font-size:.76rem}.diagnosis-card .form-actions{display:flex;flex-wrap:wrap;gap:7px}.diagnosis-card .form-actions form{margin:0}.evolution-card{padding:15px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.evolution-card.status-signed{border-left:4px solid #21a46b}.evolution-card.status-addendum{border-left:4px solid #8c61d8}.evolution-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.evolution-card header>div{display:flex;flex-direction:column;gap:3px}.evolution-card header small{color:var(--muted)}.soap-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.soap-grid section{padding:11px;border-radius:10px;background:#f1f7fd}.soap-grid strong{font-size:.72rem}.soap-grid p{margin:5px 0 0;white-space:pre-wrap;color:#526982;font-size:.76rem}.patient-clinical-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.patient-clinical-hero>div{display:flex;align-items:center;gap:12px}.patient-clinical-hero h2,.patient-clinical-hero p{margin:0}.patient-clinical-hero p{color:var(--muted)}.patient-consultation-list{display:grid;gap:16px}.patient-consultation-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.patient-consultation-card>header small,.patient-consultation-card>header span{color:var(--muted)}.patient-consultation-card>header h2{margin:4px 0}.patient-consultation-card>section{margin-top:16px}.patient-diagnosis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.patient-diagnosis-grid>article{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#f8fbff}.patient-diagnosis-grid span,.patient-diagnosis-grid small{color:var(--muted);font-size:.72rem}.patient-diagnosis-grid p{margin:5px 0 0;color:#526982;font-size:.76rem}.patient-evolution-list{display:grid;gap:10px}.patient-evolution-list>article{padding:13px;border-left:4px solid var(--primary);border-radius:10px;background:#f8fbff}.patient-evolution-list header{display:flex;justify-content:space-between;gap:10px}.patient-evolution-list header span{color:var(--muted);font-size:.72rem}.patient-evolution-list div{margin-top:10px}.patient-evolution-list div strong{font-size:.74rem}.patient-evolution-list p{margin:4px 0 0;white-space:pre-wrap;color:#526982;font-size:.76rem}.empty-state.compact{padding:12px}
@media(max-width:1180px){.diagnostic-entry-layout{grid-template-columns:1fr}.diagnostic-entry-layout>.form-card{position:static}.clinical-diagnostics-kpis,.diagnostic-indicators{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.consultation-selector{grid-template-columns:1fr}.soap-grid,.patient-diagnosis-grid{grid-template-columns:1fr}.patient-clinical-hero{align-items:flex-start;flex-direction:column}.diagnosis-card header,.evolution-card header,.patient-consultation-card>header{flex-direction:column}.diagnostic-summary{grid-template-columns:1fr}.diagnostic-summary dd{margin-bottom:7px}}
@media(max-width:520px){.clinical-diagnostics-kpis,.diagnostic-indicators{grid-template-columns:1fr 1fr}.diagnostic-status{align-items:flex-start}.consultation-selector{padding:10px}.clinical-status-actions,.clinical-status-actions form,.clinical-status-actions button{width:100%}.diagnosis-card .form-actions{align-items:stretch;flex-direction:column}.diagnosis-card .form-actions form,.diagnosis-card .form-actions button{width:100%}}

/* Bloque 20: planes de tratamiento */
.treatment-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.treatment-workspace{min-width:0}.treatment-progress{display:flex;flex-direction:column;align-items:flex-end}.treatment-progress strong{font-size:1.35rem;color:var(--primary)}.treatment-progress span{font-size:.72rem;color:var(--muted)}.treatment-tabs{margin:15px 0}.treatment-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:15px}.treatment-summary-grid article{padding:13px;border:1px solid var(--line);border-radius:13px;background:#f8fbff}.treatment-summary-grid span{display:block;color:var(--muted);font-size:.7rem}.treatment-summary-grid strong{display:block;margin-top:5px;color:var(--navy);font-size:1.05rem}.treatment-entry-layout{display:grid;grid-template-columns:minmax(300px,.58fr) minmax(0,1.42fr);gap:16px;align-items:start}.treatment-entry-layout>.form-card{position:sticky;top:18px}.treatment-item-list,.treatment-session-list,.patient-treatment-list,.patient-treatment-items{display:grid;gap:12px}.treatment-item-card{padding:15px;border:1px solid var(--line);border-left:4px solid #6d8ca9;border-radius:14px;background:#fbfdff}.treatment-item-card.priority-urgent{border-left-color:#d92e4e}.treatment-item-card.priority-high{border-left-color:#e57600}.treatment-item-card.priority-low{border-left-color:#22a66d}.treatment-item-card header,.treatment-session-list article header,.patient-treatment-card>header,.patient-treatment-items article{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.treatment-item-card h3{margin:4px 0}.treatment-item-card small,.treatment-session-list small,.patient-treatment-card small,.patient-treatment-items span,.patient-treatment-items small{color:var(--muted)}.treatment-item-card dl{display:grid;grid-template-columns:auto 1fr;gap:5px 12px}.treatment-item-card dd{margin:0;font-weight:800}.treatment-session-list article{padding:14px;border:1px solid var(--line);border-radius:13px;background:#f8fbff}.treatment-session-list p{white-space:pre-wrap}.snapshot-card{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:11px;margin-bottom:8px}.patient-treatment-card>header{padding-bottom:14px;border-bottom:1px solid var(--line)}.patient-treatment-card h2{margin:4px 0}.patient-treatment-items{margin-top:14px}.patient-treatment-items article{padding:12px;border:1px solid var(--line);border-radius:11px;background:#f8fbff}.patient-treatment-items article>div{display:flex;flex-direction:column;gap:4px}.status-pill.proposed,.status-pill.pending{color:#805400;background:#fff2c8}.status-pill.accepted,.status-pill.approved{color:#0759be;background:#e5f2ff}.status-pill.in_progress{color:#6b3fb5;background:#f0e8ff}.status-pill.completed{color:#08734d;background:#dcf8ec}.status-pill.cancelled,.status-pill.paused{color:#6d4a4a;background:#f5e8e8}
@media(max-width:1180px){.treatment-entry-layout{grid-template-columns:1fr}.treatment-entry-layout>.form-card{position:static}.treatment-kpis,.treatment-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.patient-treatment-card>header,.patient-treatment-items article,.treatment-item-card header{flex-direction:column}.treatment-progress{align-items:flex-start}}
@media(max-width:520px){.treatment-kpis,.treatment-summary-grid{grid-template-columns:1fr 1fr}.treatment-tabs{display:grid;grid-template-columns:1fr 1fr}.treatment-tabs a{text-align:center}.clinical-status-actions,.clinical-status-actions form,.clinical-status-actions button{width:100%}}

/* Bloque 21: presupuestos */
.quote-layout,.patient-quotes-layout{align-items:start}.quote-kpis article{min-width:0}.quote-summary-card,.quote-patient-header{display:flex;justify-content:space-between;gap:1.25rem;align-items:flex-start;background:var(--surface,#fff);border:1px solid var(--border,#dbe7ef);border-radius:20px;padding:1.25rem}.quote-summary-card dl,.quote-meta,.quote-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1rem}.quote-builder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.quote-alternatives{display:grid;gap:1rem}.quote-alternative-card{background:#fff;border:1px solid #dbe7ef;border-radius:20px;padding:1.1rem;box-shadow:0 10px 30px rgba(26,73,103,.06)}.quote-alternative-card.recommended{border-color:#2bb8aa;box-shadow:0 0 0 3px rgba(43,184,170,.1)}.quote-alternative-card header,.quote-grand-total{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.quote-totals{margin-left:auto;max-width:360px;padding-top:1rem}.quote-totals dt,.quote-totals dd{margin:0}.quote-totals dd{text-align:right}.quote-grand-total{padding-top:1rem;border-top:1px solid #dbe7ef;font-size:1.1rem}.decision-card{border-radius:20px;padding:1.25rem;border:1px solid #dbe7ef;background:#fff}.decision-card.accepted{border-color:#31b782;background:#f2fcf8}.decision-card.rejected{border-color:#df6673;background:#fff6f7}.patient-quotes-layout{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:1rem}.patient-quotes-layout .patient-selector a span{display:block;margin-top:.35rem;font-weight:700}.quote-meta{grid-template-columns:repeat(3,minmax(0,1fr));margin:1rem 0}.quote-meta article{background:#fff;border:1px solid #dbe7ef;border-radius:16px;padding:1rem}.quote-meta span{display:block;color:#617789;font-size:.85rem}.quote-decision-form{margin-top:1rem}
@media(max-width:820px){.quote-builder-grid,.patient-quotes-layout{grid-template-columns:1fr}.quote-summary-card,.quote-patient-header{flex-direction:column}.quote-meta{grid-template-columns:1fr}.quote-summary-card dl{width:100%}}
@media(max-width:420px){.quote-totals{grid-template-columns:1fr 1fr}.quote-alternative-card{padding:.85rem}.quote-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-patient-header h2{font-size:1.35rem}}

/* Bloque 22: consentimientos informados y firma digital */
.consent-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.consent-main-tabs{margin-bottom:1rem}.consent-template-layout{display:grid;grid-template-columns:minmax(240px,310px) minmax(0,1fr);gap:1rem;align-items:start}.consent-template-list{position:sticky;top:1rem}.consent-template-list .full{width:100%;margin-bottom:.8rem}.consent-template-list nav{display:grid;gap:.55rem}.consent-template-list nav a{display:grid;gap:.3rem;padding:.85rem;border:1px solid #dbe7ef;border-radius:14px;background:#fff;color:inherit}.consent-template-list nav a.active{border-color:var(--primary);background:#eff7ff;box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 12%,transparent)}.consent-template-list nav small{color:var(--muted)}.consent-template-list nav .status-pill{justify-self:start}.consent-template-form header,.consent-publish-card{display:flex;align-items:center;justify-content:space-between;gap:1rem}.consent-template-form header h2{margin:.2rem 0}.consent-template-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.template-placeholder-note{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;padding:1rem;border:1px dashed #b9d8eb;border-radius:14px;background:#f5fbff}.template-placeholder-note strong{width:100%;color:var(--navy)}.template-placeholder-note code{padding:.25rem .45rem;border-radius:8px;background:#e8f4ff;color:#1b5f91;font-size:.76rem}.consent-publish-card p{margin:.25rem 0 0;color:var(--muted)}.consent-version-list{display:grid;gap:.65rem}.consent-version-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:.8rem;padding:.8rem;border:1px solid #dbe7ef;border-radius:13px}.consent-version-list small{color:var(--muted)}.consent-layout{grid-template-columns:minmax(230px,300px) minmax(0,1fr)}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.consent-card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.consent-card{display:flex;min-width:0;flex-direction:column;gap:.8rem;padding:1rem;border:1px solid #dbe7ef;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(18,63,101,.06)}.consent-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.consent-card h3{margin:.18rem 0;font-size:1rem}.consent-card p{margin:0;color:var(--muted)}.consent-card dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem .7rem;margin:0}.consent-card dt{color:var(--muted)}.consent-card dd{margin:0}.consent-card .button{margin-top:auto}.consent-document-shell{display:grid;gap:1rem}.consent-document-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.2rem;padding:1.2rem;border:1px solid #cfe0eb;border-radius:20px;background:linear-gradient(135deg,#fff,#f2f9ff)}.consent-document-header h2{margin:.2rem 0 .6rem}.consent-document-header p{margin:0}.consent-document-header dl{display:grid;grid-template-columns:auto auto;gap:.35rem .8rem;margin:0}.consent-document-header dt{color:var(--muted)}.consent-document-header dd{margin:0;text-align:right;font-weight:750}.consent-paper{padding:clamp(1.25rem,3vw,2.4rem);border:1px solid #cad9e3;border-radius:12px;background:#fff;box-shadow:0 18px 50px rgba(14,49,78,.08)}.consent-paper section{padding:0 0 1.2rem;margin:0 0 1.2rem;border-bottom:1px solid #e5edf3}.consent-paper section:last-of-type{border-bottom:0}.consent-paper h3{margin:0 0 .65rem;color:var(--navy);font-size:1rem}.consent-paper p{margin:0;color:#314b61;line-height:1.75;white-space:normal}.consent-paper footer{display:flex;flex-wrap:wrap;gap:.7rem 1.2rem;padding-top:1rem;border-top:2px solid #dbe7ef;color:var(--muted);font-size:.78rem}.consent-paper footer code{margin-left:auto}.inline-revoke-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:.7rem;min-width:min(100%,520px)}.inline-revoke-form label{display:grid;gap:.3rem}.consent-signature-evidence dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem}.consent-signature-evidence dt{color:var(--muted)}.consent-signature-evidence dd{margin:0;overflow-wrap:anywhere}.patient-consents-layout{display:grid;grid-template-columns:minmax(240px,310px) minmax(0,1fr);gap:1rem}.patient-consents-layout .patient-selector a span{display:block;margin-top:.35rem;color:var(--muted);font-size:.75rem}.patient-consent-header{margin-bottom:1rem}.patient-consent-paper{margin-bottom:1rem}.review-confirmation{display:flex;justify-content:flex-end;margin-bottom:1rem}.consent-decision-form{margin-top:1rem}.signature-method{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;border:1px solid #dbe7ef;border-radius:14px}.signature-method legend{padding:0 .4rem;color:var(--navy);font-weight:850}.signature-method label{display:flex;align-items:center;gap:.45rem}.signature-pad{display:grid;gap:.7rem}.signature-pad canvas{display:block;width:100%;height:190px;border:2px dashed #9fc1d7;border-radius:14px;background:#fff;touch-action:none}.signature-pad>div{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.signature-pad small{color:var(--muted)}.consent-acceptance{padding:1rem;border:1px solid #a9d8c7;border-radius:14px;background:#effaf6}.consent-timeline{max-width:900px}.status-pill.published,.status-pill.signed{color:#08734d;background:#def6ec}.status-pill.draft,.status-pill.issued,.status-pill.viewed{color:#135f9a;background:#e6f3ff}.status-pill.retired,.status-pill.expired,.status-pill.cancelled{color:#667482;background:#edf1f4}.status-pill.rejected,.status-pill.revoked{color:#a32849;background:#ffe8ed}
@media(max-width:1100px){.consent-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.consent-template-layout,.patient-consents-layout{grid-template-columns:1fr}.consent-template-list{position:static}.consent-template-list nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.consent-template-sections,.consent-card-list{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:1fr}.consent-document-header{flex-direction:column}.consent-document-header dl{width:100%}.consent-version-list article{grid-template-columns:1fr auto}.consent-version-list article small,.consent-version-list article code{grid-column:1/-1}.consent-paper footer code{width:100%;margin-left:0}.inline-revoke-form{grid-template-columns:1fr}.signature-pad>div{align-items:stretch;flex-direction:column}}
@media(max-width:520px){.consent-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.consent-template-list nav{grid-template-columns:1fr}.consent-template-form header,.consent-publish-card{align-items:flex-start;flex-direction:column}.consent-document-header{padding:1rem}.consent-paper{padding:1rem}.consent-main-tabs{display:grid;grid-template-columns:1fr 1fr}.consent-main-tabs a{text-align:center}.patient-consent-header dl{grid-template-columns:1fr 1fr}.signature-pad canvas{height:160px}}
@media print{.sidebar,.dashboard-header,.page-heading .button,.module-tabs,.patient-selector,.clinical-tabs,.form-card,.clinical-status-actions,.review-confirmation,.consent-decision-form,.consent-kpis,.alert{display:none!important}.dashboard-main,.dashboard-content,.clinical-module-layout,.patient-consents-layout,.clinical-workspace{display:block!important;width:100%!important;margin:0!important;padding:0!important}.consent-document-shell,.consent-paper{box-shadow:none!important;border:0!important}.consent-document-header{border:0!important;background:#fff!important;padding:0 0 1rem!important}.consent-paper{padding:0!important}.dashboard-page{background:#fff!important}}


/* Bloque 23: recetas, medicamentos, indicaciones y documentos clínicos */
.prescriptions-shell{align-items:start}.prescription-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.prescription-kpis article{min-width:0}.document-layout{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:1rem;align-items:start}.document-list nav{display:grid;gap:.5rem}.document-list nav a,.patient-document-selector nav a{display:grid;gap:.2rem;padding:.8rem;border:1px solid var(--line);border-radius:14px;color:inherit;text-decoration:none}.document-list nav a.active,.patient-document-selector nav a.active{border-color:var(--primary);background:var(--primary-soft)}.clinical-document{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(1rem,2vw,2rem);box-shadow:var(--shadow-sm);margin:1rem 0}.clinical-document>header{display:flex;justify-content:space-between;gap:1rem;align-items:start;border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1rem}.clinical-document footer{border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem;overflow-wrap:anywhere}.document-meta{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem}.document-meta dt{font-weight:700;color:var(--muted)}.prescription-items{display:grid;gap:.8rem;padding-left:1.3rem}.prescription-items li{padding:.8rem;border:1px solid var(--line);border-radius:14px}.prescription-items p{margin:.25rem 0}.catalog-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:1rem;align-items:start}.patient-documents-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:1rem;align-items:start}.patient-document-selector h3{margin:1rem 0 .5rem}.patient-document-selector h3:first-child{margin-top:0}.patient-document-selector nav{display:grid;gap:.45rem}.button.compact{padding:.4rem .65rem;font-size:.85rem}.medication-item-form{margin-top:1rem}
@media(max-width:900px){.document-layout,.catalog-layout,.patient-documents-layout{grid-template-columns:1fr}.prescription-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.document-list nav,.patient-document-selector nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.prescription-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.document-list nav,.patient-document-selector nav{grid-template-columns:1fr}.clinical-document>header{flex-direction:column}.document-meta{grid-template-columns:1fr}.prescription-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Bloque 24: caja, cobros y pagos */
.finance-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.finance-metrics .metric-card strong{font-size:clamp(1.25rem,2.4vw,2rem)}.finance-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:18px;padding:7px;border:1px solid var(--line);border-radius:18px;background:#f6faff}.finance-tabs a{padding:11px 10px;border-radius:12px;color:#567089;font-weight:800;text-align:center;text-decoration:none}.finance-tabs a.active{color:var(--primary);background:#fff;box-shadow:0 5px 18px rgba(20,53,91,.09)}.finance-layout{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:18px;align-items:start}.finance-patient-list{position:sticky;top:96px;padding:18px}.compact-search{display:grid;gap:9px;margin-bottom:14px}.compact-search label{display:grid;gap:6px;color:var(--navy);font-size:.82rem;font-weight:800}.compact-search input,.finance-workspace input,.finance-workspace select,.finance-workspace textarea,.finance-form-panel input,.finance-form-panel select,.finance-form-panel textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cadbed;border-radius:11px;background:#fff;color:var(--text);font:inherit}.finance-workspace textarea,.finance-form-panel textarea{min-height:90px;resize:vertical}.patient-list-scroll{display:grid;gap:8px;max-height:68vh;overflow:auto;padding-right:3px}.patient-finance-card{display:grid;gap:2px;padding:12px;border:1px solid var(--line);border-radius:14px;color:var(--text);text-decoration:none}.patient-finance-card:hover,.patient-finance-card.active{border-color:#9bc8ff;background:#eef7ff}.patient-finance-card strong{color:var(--navy)}.patient-finance-card small{color:var(--muted)}.patient-finance-card span{margin-top:4px;color:var(--danger);font-size:.82rem;font-weight:850}.patient-finance-card em{color:var(--success);font-size:.78rem;font-style:normal;font-weight:850}.finance-workspace{min-width:0}.finance-patient-header,.cash-session-card{display:flex;justify-content:space-between;gap:20px;align-items:center}.finance-patient-header h2,.cash-session-card h2{margin:.25rem 0}.patient-finance-summary,.cash-live-total{display:grid;min-width:190px;padding:16px;border-radius:16px;background:linear-gradient(135deg,#eaf4ff,#e9fffb);text-align:right}.patient-finance-summary strong,.cash-live-total strong{color:var(--navy);font-size:1.6rem}.patient-finance-summary span,.cash-live-total span{color:var(--muted);font-size:.8rem;font-weight:800}.finance-overview-grid,.finance-two-column{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:18px;margin-top:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.finance-list{display:grid;gap:8px}.finance-list>a,.finance-list>.static-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);border-radius:13px;color:var(--text);text-decoration:none}.finance-list>a:hover,.finance-list>a.active{border-color:#9bc8ff;background:#f0f8ff}.finance-list div{min-width:0}.finance-list strong,.finance-list small{display:block}.finance-list strong{color:var(--navy)}.finance-list small{color:var(--muted);font-size:.78rem}.finance-list span{flex:none;color:var(--navy);font-weight:850;text-align:right}.payment-list>a>span small{margin-top:4px}.finance-table-wrap{overflow:auto}.finance-table{min-width:760px}.data-table td small{display:block;color:var(--muted);font-size:.76rem}.selected-row{background:#eef7ff}.finance-form-panel{display:grid;gap:20px}.stacked-form{display:grid;gap:13px}.stacked-form label{display:grid;gap:6px;color:var(--navy);font-size:.84rem;font-weight:800}.form-grid.two-equal{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stacked-form .form-grid.four{gap:10px}.stacked-form hr{width:100%;border:0;border-top:1px solid var(--line)}.subsection{padding-top:18px;border-top:1px solid var(--line)}.subsection h4{margin:0}.finance-detail-card{padding-top:18px;border-top:1px solid var(--line)}.receipt-paper{position:relative;overflow:hidden}.receipt-paper:before{position:absolute;top:0;left:0;width:100%;height:6px;background:linear-gradient(90deg,var(--primary),var(--primary-2));content:""}.cash-opening-card{max-width:620px;margin:auto}.cash-opening-card form{display:grid;gap:14px}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.choice-grid label{display:flex!important;align-items:center;gap:7px;padding:10px;border:1px solid var(--line);border-radius:11px}.choice-grid input{width:auto!important;min-height:auto!important}.patient-payments-layout{display:grid;grid-template-columns:minmax(250px,340px) minmax(0,1fr);gap:18px}.patient-payment-selector nav{display:grid;gap:8px}.patient-payment-selector nav a{display:grid;gap:2px;padding:12px;border:1px solid var(--line);border-radius:13px;color:var(--text);text-decoration:none}.patient-payment-selector nav a.active,.patient-payment-selector nav a:hover{border-color:#9bc8ff;background:#eef7ff}.patient-payment-selector nav strong{color:var(--navy)}.patient-payment-selector nav small{color:var(--muted)}.patient-payment-selector nav span{color:var(--primary);font-weight:850}.patient-charge-list{display:grid;gap:8px}.patient-charge-list article{display:flex;justify-content:space-between;gap:10px;padding:10px;border-radius:11px;background:#f6faff}.patient-charge-list strong,.patient-charge-list small{display:block}.patient-charge-list small{color:var(--muted);font-size:.76rem}.patient-charge-list span{color:var(--danger);font-weight:850}.empty-state.compact{padding:18px;box-shadow:none}.status-pill.pending,.status-pill.partial{color:#8d5c00;background:#fff2c7}.status-pill.paid,.status-pill.posted,.status-pill.active{color:#126b49;background:#dcf8eb}.status-pill.refunded,.status-pill.partially_refunded{color:#6c45b7;background:#eee7ff}.status-pill.cancelled,.status-pill.voided,.status-pill.inactive{color:#8e1831;background:#ffe5eb}
@media(max-width:1100px){.finance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-layout{grid-template-columns:1fr}.finance-patient-list{position:static}.patient-list-scroll{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.finance-two-column,.finance-overview-grid{grid-template-columns:1fr}.patient-payments-layout{grid-template-columns:1fr}.patient-payment-selector nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.finance-metrics{grid-template-columns:1fr 1fr}.finance-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-list-scroll{grid-template-columns:1fr}.finance-patient-header,.cash-session-card{align-items:stretch;flex-direction:column}.patient-finance-summary,.cash-live-total{min-width:0;text-align:left}.form-grid.two-equal,.stacked-form .form-grid.four,.choice-grid{grid-template-columns:1fr}.patient-payment-selector nav{grid-template-columns:1fr}.finance-layout{gap:12px}.finance-patient-list,.finance-workspace .panel{padding:16px}}
@media(max-width:390px){.finance-metrics{grid-template-columns:1fr}.finance-tabs{grid-template-columns:1fr 1fr}.finance-tabs a{padding:10px 6px;font-size:.82rem}.finance-list>a,.finance-list>.static-row{align-items:flex-start;flex-direction:column}.finance-list span{text-align:left}.page-heading .button{width:100%}}
@media print{.finance-patient-list,.finance-tabs,.finance-metrics,.sidebar,.dashboard-header,.page-heading .button,.alert.info{display:none!important}.dashboard-main,.dashboard-content,.patient-payments-layout,.clinical-workspace{display:block!important;width:100%!important;margin:0!important;padding:0!important}.clinical-document{box-shadow:none!important;border:0!important}}
.finance-two-column>*{min-width:0}.finance-table-wrap{width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain}.finance-table-wrap .data-table{width:max-content;min-width:100%}


/* Bloque 25: cuentas por cobrar y financiamiento */
.receivable-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.receivable-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px;padding:7px;border:1px solid var(--line);border-radius:18px;background:#f6faff}.receivable-tabs a{padding:11px 10px;border-radius:12px;color:#567089;font-weight:800;text-align:center;text-decoration:none}.receivable-tabs a.active{color:var(--primary);background:#fff;box-shadow:0 5px 18px rgba(20,53,91,.09)}.receivable-layout{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:18px;align-items:start}.receivable-patients{position:sticky;top:96px}.receivable-workspace{min-width:0}.receivable-patient-header{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.receivable-patient-header h2{margin:.2rem 0}.receivable-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px}.receivable-list{display:grid;gap:9px}.receivable-list>a{display:flex;justify-content:space-between;gap:14px;padding:13px;border:1px solid var(--line);border-radius:14px;color:var(--text);text-decoration:none}.receivable-list>a:hover{border-color:#9bc8ff;background:#eef7ff}.receivable-list strong,.receivable-list small{display:block}.receivable-list small{color:var(--muted)}.receivable-list>a>span{display:grid;gap:6px;justify-items:end}.receivable-table-wrap{width:100%;max-width:100%;min-width:0;overflow-x:auto}.receivable-table{width:max-content;min-width:100%;min-inline-size:920px}.overdue-row{background:#fff4f5}.collection-timeline{display:grid;gap:14px}.collection-timeline article{display:grid;grid-template-columns:100px 1fr;gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px}.collection-timeline article>span{align-self:start;padding:6px 8px;border-radius:999px;background:#eef7ff;color:var(--primary);font-size:.76rem;font-weight:850;text-align:center}.collection-timeline p{margin:.35rem 0}.collection-timeline small{color:var(--muted)}.check-row{display:flex!important;align-items:center;gap:8px}.check-row input{width:auto!important;min-height:auto!important}.patient-financing-layout{display:grid;grid-template-columns:minmax(250px,340px) minmax(0,1fr);gap:18px}.patient-financing-selector nav{display:grid;gap:8px}.patient-financing-selector nav a{display:grid;gap:3px;padding:13px;border:1px solid var(--line);border-radius:14px;color:var(--text);text-decoration:none}.patient-financing-selector nav a.active,.patient-financing-selector nav a:hover{border-color:#9bc8ff;background:#eef7ff}.patient-financing-selector nav strong{color:var(--navy)}.patient-financing-selector nav small{color:var(--muted)}.patient-financing-selector nav span{color:var(--primary);font-weight:850}.financing-document{overflow:hidden}.status-pill.draft{color:#56677a;background:#edf1f5}.status-pill.defaulted,.status-pill.overdue{color:#9a2c16;background:#ffe7df}.status-pill.completed,.status-pill.paid{color:#126b49;background:#dcf8eb}
@media(max-width:1100px){.receivable-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.receivable-layout{grid-template-columns:1fr}.receivable-patients{position:static}.receivable-grid{grid-template-columns:1fr}.patient-financing-layout{grid-template-columns:1fr}.patient-financing-selector nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.receivable-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.receivable-patient-header{align-items:stretch;flex-direction:column}.patient-financing-selector nav{grid-template-columns:1fr}.collection-timeline article{grid-template-columns:1fr}.collection-timeline article>span{justify-self:start}.receivable-layout{gap:12px}.receivable-patients,.receivable-workspace .panel{padding:16px}}
@media(max-width:390px){.receivable-metrics{grid-template-columns:1fr}.receivable-tabs a{padding:10px 6px;font-size:.82rem}.receivable-list>a{align-items:flex-start;flex-direction:column}.receivable-list>a>span{justify-items:start}}

/* Bloque 26: facturación electrónica */
.fiscal-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.fiscal-tabs{margin:18px 0}.fiscal-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:18px;align-items:start}.fiscal-patient-list{position:sticky;top:88px}.fiscal-patient-nav{display:grid;gap:8px;max-height:62vh;overflow:auto}.fiscal-patient-nav a,.patient-invoice-list nav a{display:grid;gap:3px;padding:12px;border:1px solid var(--line);border-radius:14px;color:var(--text);text-decoration:none;background:#fff}.fiscal-patient-nav a:hover,.fiscal-patient-nav a.active,.patient-invoice-list nav a:hover,.patient-invoice-list nav a.active{border-color:color-mix(in srgb,var(--primary) 42%,var(--line));background:color-mix(in srgb,var(--primary) 6%,#fff)}.fiscal-patient-nav small,.patient-invoice-list small{color:var(--muted)}.fiscal-workspace{min-width:0;display:grid;gap:18px}.fiscal-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:14px}.fiscal-table{min-width:780px;margin:0}.fiscal-two-column{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);gap:18px}.fiscal-totals{max-width:520px;margin:18px 0 0 auto}.fiscal-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px}.fiscal-actions>h2{flex-basis:100%}.fiscal-actions form{min-width:min(100%,320px)}.patient-invoice-layout{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:18px;align-items:start}.patient-invoice-list{position:sticky;top:88px}.patient-invoice-list nav{display:grid;gap:8px}.patient-invoice-list nav a span{font-weight:800;color:var(--primary)}.invoice-document{max-width:1000px}.document-actions{display:flex;flex-wrap:wrap;gap:10px}.status-pill.queued,.status-pill.cancellation_pending{background:#fff3cd;color:#7a5700}.status-pill.stamped{background:#dff7e8;color:#116638}.status-pill.cancelled,.status-pill.stamp_failed,.status-pill.cancellation_rejected{background:#fde7e7;color:#9d2424}.status-pill.ready,.status-pill.active{background:#dff7e8;color:#116638}.status-pill.draft,.status-pill.inactive{background:#eef2f7;color:#455568}
@media(max-width:1100px){.fiscal-layout,.patient-invoice-layout{grid-template-columns:1fr}.fiscal-patient-list,.patient-invoice-list{position:static}.fiscal-patient-nav,.patient-invoice-list nav{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.fiscal-two-column{grid-template-columns:1fr}}
@media(max-width:760px){.fiscal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.fiscal-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.fiscal-tabs a{text-align:center;white-space:normal}.fiscal-patient-nav,.patient-invoice-list nav{grid-template-columns:1fr}.fiscal-actions{display:grid}.fiscal-actions form{min-width:0}.fiscal-table{min-width:720px}}
@media(max-width:390px){.fiscal-metrics{grid-template-columns:1fr}.fiscal-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.fiscal-layout{gap:12px}.fiscal-patient-list,.fiscal-workspace .panel{padding:16px}.document-actions .button{width:100%;justify-content:center}}
@media print{.sidebar,.dashboard-header,.page-heading .page-actions,.patient-invoice-list,.document-actions,.module-tabs{display:none!important}.dashboard-main,.dashboard-content,.patient-invoice-layout{display:block!important;margin:0!important;padding:0!important}.clinical-document{box-shadow:none!important;border:0!important}}

/* Bloque 27: inventario dental */
.inventory-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.inventory-tabs{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:18px}.inventory-overview-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:18px;align-items:start}.inventory-side-stack{display:grid;gap:18px}.inventory-two-column{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;align-items:start}.inventory-stock-layout{display:grid;grid-template-columns:minmax(220px,290px) minmax(0,1fr);gap:18px;align-items:start}.inventory-product-sidebar{position:sticky;top:88px}.inventory-stock-workspace{display:grid;gap:18px;min-width:0}.inventory-product-header{display:flex;justify-content:space-between;align-items:center;gap:18px}.inventory-product-header h2{margin:.25rem 0}.inventory-filter{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,220px) auto;gap:10px;align-items:end;margin:14px 0}.inventory-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px}.inventory-table{width:max-content;min-width:100%;min-inline-size:760px;margin:0}.inventory-table td small,.inventory-table td strong{display:block}.inventory-alert-row{background:#fff8df}.inventory-alert-list,.inventory-catalog-list,.inventory-transfer-list,.inventory-product-list{display:grid;gap:8px}.inventory-alert-list a,.inventory-transfer-list a,.inventory-product-list a{display:flex;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);border-radius:14px;color:var(--text);text-decoration:none;background:#fff}.inventory-alert-list a:hover,.inventory-transfer-list a:hover,.inventory-transfer-list a.active,.inventory-product-list a:hover,.inventory-product-list a.active{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));background:color-mix(in srgb,var(--primary) 6%,#fff)}.inventory-alert-list strong,.inventory-alert-list span,.inventory-alert-list small,.inventory-transfer-list strong,.inventory-transfer-list small,.inventory-product-list strong,.inventory-product-list small{display:block}.inventory-alert-list span,.inventory-alert-list small,.inventory-transfer-list small,.inventory-product-list small{color:var(--muted)}.inventory-product-list>a>span{align-self:center;color:var(--primary);font-weight:850}.inventory-product-list.compact{max-height:68vh;overflow:auto}.inventory-movement-list{display:grid;gap:10px}.inventory-movement-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-bottom:1px solid var(--line)}.inventory-movement-list small{display:block;color:var(--muted)}.movement-direction{display:inline-grid;place-items:center;min-width:34px;padding:5px 8px;border-radius:999px;font-weight:900}.movement-direction.in{background:#dcf8eb;color:#126b49}.movement-direction.out{background:#ffe5eb;color:#8e1831}.inventory-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f7fbff}.inventory-inline-form{display:grid;grid-template-columns:minmax(150px,1fr) minmax(160px,1fr) minmax(110px,.55fr) minmax(180px,1.2fr) auto;gap:10px;align-items:end}.inventory-catalog-list article{display:flex;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid var(--line)}.inventory-catalog-list strong,.inventory-catalog-list small{display:block}.inventory-catalog-list small{color:var(--muted)}.catalog-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.inventory-transfer-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.status-pill.quarantined,.status-pill.dispatched,.status-pill.partially_received{background:#fff3cd;color:#7a5700}.status-pill.depleted,.status-pill.expired,.status-pill.recalled{background:#fde7e7;color:#9d2424}.status-pill.received,.status-pill.posted{background:#dff7e8;color:#116638}.status-pill.draft,.status-pill.inactive{background:#eef2f7;color:#455568}.kardex-table{min-inline-size:980px}
@media(max-width:1180px){.inventory-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.inventory-overview-grid,.inventory-two-column{grid-template-columns:1fr}.inventory-stock-layout{grid-template-columns:1fr}.inventory-product-sidebar{position:static}.inventory-product-list.compact{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.inventory-inline-form{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-inline-form .button{align-self:end}}
@media(max-width:760px){.inventory-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-filter{grid-template-columns:1fr}.inventory-product-list.compact{grid-template-columns:1fr}.inventory-product-header{align-items:stretch;flex-direction:column}.inventory-inline-form{grid-template-columns:1fr}.inventory-check-grid{grid-template-columns:1fr}.inventory-table{min-inline-size:680px}.inventory-stock-layout{gap:12px}.inventory-stock-workspace .panel,.inventory-product-sidebar{padding:16px}}
@media(max-width:390px){.inventory-metrics{grid-template-columns:1fr}.inventory-tabs a{font-size:.82rem;padding:10px 6px}.inventory-alert-list a,.inventory-transfer-list a,.inventory-product-list a,.inventory-catalog-list article{align-items:flex-start;flex-direction:column}.page-heading .page-actions{width:100%}.page-heading .page-actions .button{width:100%;justify-content:center}}
@media print{.inventory-tabs,.inventory-product-sidebar,.page-heading .page-actions,.sidebar,.dashboard-header,.inventory-inline-form{display:none!important}.dashboard-main,.dashboard-content,.inventory-stock-layout{display:block!important;width:100%!important;margin:0!important;padding:0!important}.panel{box-shadow:none!important}}

/* Bloque 28: compras, recepción y proveedores */
.purchase-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.purchase-tabs{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.purchase-overview-grid,.purchase-two-column{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.85fr);gap:18px;align-items:start}.purchase-list-panel{min-width:0}.purchase-editor{position:sticky;top:88px;max-height:calc(100vh - 110px);overflow:auto}.purchase-filter{display:grid;grid-template-columns:minmax(180px,1fr) minmax(170px,230px) auto;gap:10px;align-items:end;margin:14px 0}.purchase-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px}.purchase-table{width:max-content;min-width:100%;min-inline-size:720px;margin:0}.purchase-table td strong,.purchase-table td small{display:block}.purchase-table td small{color:var(--muted)}.selected-row{background:color-mix(in srgb,var(--primary) 6%,#fff)}.purchase-card-list,.supplier-contact-list,.receipt-order-items{display:grid;gap:10px}.purchase-card-list article,.supplier-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fff}.purchase-card-list article strong,.purchase-card-list article small,.supplier-card strong,.supplier-card small{display:block}.purchase-card-list article small,.supplier-card small{color:var(--muted)}.supplier-card{color:var(--text);text-decoration:none}.supplier-card:hover,.supplier-card.active{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));background:color-mix(in srgb,var(--primary) 6%,#fff)}.purchase-document-summary{display:grid;gap:12px;margin:16px 0}.purchase-document-summary>.status-pill{justify-self:start}.purchase-item-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.purchase-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.danger-zone{margin-top:16px;padding:12px;border:1px solid #f0c2cc;border-radius:14px;background:#fff8fa}.danger-zone summary{cursor:pointer;color:#a12642;font-weight:900}.receipt-order-items{margin:18px 0}.receipt-item-card,.supplier-contact-list details{padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.receipt-item-card summary,.supplier-contact-list summary{cursor:pointer;color:var(--navy);font-weight:900}.receipt-item-card form,.supplier-contact-list form{margin-top:14px}.status-pill.pending_approval,.status-pill.sent,.status-pill.partially_received{background:#fff3cd;color:#7a5700}.status-pill.approved,.status-pill.received,.status-pill.closed,.status-pill.posted{background:#dff7e8;color:#116638}.status-pill.cancelled,.status-pill.on_hold{background:#fde7e7;color:#9d2424}.status-pill.draft,.status-pill.inactive{background:#eef2f7;color:#455568}
@media(max-width:1120px){.purchase-overview-grid,.purchase-two-column{grid-template-columns:1fr}.purchase-editor{position:static;max-height:none}.purchase-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-filter .button{align-self:end}}
@media(max-width:760px){.purchase-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-filter{grid-template-columns:1fr}.purchase-table{min-inline-size:680px}.purchase-two-column{gap:12px}.purchase-two-column>.panel{padding:16px}.purchase-actions{display:grid}.purchase-actions form,.purchase-actions .button{width:100%}}
@media(max-width:390px){.purchase-metrics{grid-template-columns:1fr}.purchase-tabs a{padding:10px 6px;font-size:.82rem}.supplier-card,.purchase-card-list article{align-items:flex-start;flex-direction:column}.receipt-item-card{padding:10px}}
.purchase-overview-grid>*,.purchase-two-column>*{min-width:0}.purchase-overview-grid .panel-heading>div,.purchase-two-column .panel-heading>div{min-width:0}.purchase-overview-grid .panel-heading h2,.purchase-overview-grid .panel-heading p{overflow-wrap:anywhere}
.purchase-two-column input,.purchase-two-column select,.purchase-two-column textarea,.purchase-overview-grid input,.purchase-overview-grid select,.purchase-overview-grid textarea{min-width:0;width:100%;max-width:100%}
.purchase-two-column .form-grid.three,.purchase-overview-grid .form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:520px){.purchase-two-column .form-grid.three,.purchase-overview-grid .form-grid.three{grid-template-columns:1fr}}

/* Bloque 29: laboratorios dentales, entregas y garantías */
.laboratory-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}.laboratory-tabs{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}.laboratory-overview-grid,.laboratory-two-column{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.85fr);gap:18px;align-items:start}.laboratory-list-panel{min-width:0}.laboratory-editor{position:sticky;top:88px;max-height:calc(100vh - 110px);overflow:auto}.laboratory-filter{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,210px) minmax(160px,230px) auto;gap:10px;align-items:end;margin:14px 0}.laboratory-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px}.laboratory-table{width:max-content;min-width:100%;min-inline-size:780px;margin:0}.laboratory-table td strong,.laboratory-table td small{display:block}.laboratory-table td small{color:var(--muted)}.laboratory-overdue{background:#fff8e3}.laboratory-card-list{display:grid;gap:10px}.laboratory-card-list>a,.laboratory-card-list>article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);text-decoration:none}.laboratory-card-list>a:hover,.laboratory-card-list>a.active{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));background:color-mix(in srgb,var(--primary) 6%,#fff)}.laboratory-card-list strong,.laboratory-card-list small{display:block}.laboratory-card-list small{color:var(--muted)}.laboratory-document-summary{display:grid;gap:12px;margin:16px 0}.laboratory-document-summary>.status-pill{justify-self:start}.laboratory-item-form{margin-top:12px}.laboratory-form-details{margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.laboratory-form-details>summary{cursor:pointer;color:var(--navy);font-weight:900}.laboratory-form-details>form{margin-top:14px}.timeline-list article{align-items:flex-start}.timeline-list article p{margin:.35rem 0 0;color:var(--muted)}.patient-laboratory-list{display:grid;gap:18px}.patient-laboratory-card{display:grid;gap:16px}.patient-laboratory-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.patient-laboratory-meta>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:#f8fbff}.patient-laboratory-meta small,.patient-laboratory-meta strong{display:block}.patient-laboratory-meta small{color:var(--muted)}.patient-laboratory-deliveries,.patient-warranty-grid{display:grid;gap:10px}.patient-laboratory-deliveries article,.patient-warranty-grid article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px}.patient-warranty-grid h3,.patient-laboratory-deliveries h3{margin-bottom:0}.status-pill.in_production,.status-pill.quality_control,.status-pill.sent,.status-pill.accepted,.status-pill.returned,.status-pill.claimed{background:#fff3cd;color:#7a5700}.status-pill.ready,.status-pill.delivered,.status-pill.active,.status-pill.replaced{background:#dff7e8;color:#116638}.status-pill.cancelled,.status-pill.void,.status-pill.expired,.status-pill.on_hold{background:#fde7e7;color:#9d2424}.status-pill.draft,.status-pill.pending,.status-pill.inactive,.status-pill.repeated{background:#eef2f7;color:#455568}.status-pill.rework{background:#efe8ff;color:#6842a6}
@media(max-width:1180px){.laboratory-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.laboratory-overview-grid,.laboratory-two-column{grid-template-columns:1fr}.laboratory-editor{position:static;max-height:none}.laboratory-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.laboratory-filter .button{align-self:end}}
@media(max-width:760px){.laboratory-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.laboratory-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.laboratory-tabs a:last-child{grid-column:1/-1}.laboratory-filter{grid-template-columns:1fr}.laboratory-two-column{gap:12px}.laboratory-two-column>.panel{padding:16px}.laboratory-table{min-inline-size:700px}.patient-laboratory-meta{grid-template-columns:1fr}.patient-laboratory-deliveries article,.patient-warranty-grid article{align-items:flex-start;flex-direction:column}}
@media(max-width:390px){.laboratory-metrics{grid-template-columns:1fr}.laboratory-tabs a{padding:10px 6px;font-size:.82rem}.laboratory-card-list>a,.laboratory-card-list>article{align-items:flex-start;flex-direction:column}.laboratory-form-details{padding:10px}}
@media print{.laboratory-tabs,.page-heading .page-actions,.sidebar,.dashboard-header,.laboratory-filter,.laboratory-form-details,.danger-zone{display:none!important}.dashboard-main,.dashboard-content{display:block!important;width:100%!important;margin:0!important;padding:0!important}.panel{box-shadow:none!important}}

/* Bloque 30: portal avanzado del paciente */
.patient-hero-v2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:22px;align-items:center;margin-bottom:18px;padding:clamp(24px,4vw,46px);border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));border-radius:28px;background:radial-gradient(circle at 86% 10%,color-mix(in srgb,var(--primary-2) 18%,transparent),transparent 34%),linear-gradient(135deg,#fff,#f1f8ff);box-shadow:0 22px 55px rgba(18,52,84,.08)}
.patient-hero-v2 h1{margin:.3rem 0 .6rem;color:var(--navy);font-size:clamp(2rem,4vw,3.45rem);letter-spacing:-.055em}.patient-hero-v2 p{max-width:720px;margin:0;color:var(--muted);line-height:1.65}.patient-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.patient-identity-v2{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:center;padding:18px;border:1px solid rgba(255,255,255,.9);border-radius:20px;background:rgba(255,255,255,.78);box-shadow:0 13px 32px rgba(30,70,105,.08);backdrop-filter:blur(10px)}.patient-identity-v2 .role-chip{grid-column:1/-1;justify-self:start}.patient-identity-v2 small,.patient-identity-v2 strong,.patient-identity-v2 span{display:block}.patient-identity-v2 small,.patient-identity-v2 span{color:var(--muted)}.patient-identity-v2 strong{margin:.1rem 0;color:var(--navy);font-size:1.08rem}
.patient-kpis-v2{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.patient-kpis-v2>a{position:relative;display:grid;gap:5px;min-width:0;padding:18px 18px 17px 58px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--text);text-decoration:none;box-shadow:0 10px 28px rgba(25,57,90,.055);transition:.17s ease}.patient-kpis-v2>a:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 38%,var(--line));box-shadow:0 16px 35px rgba(25,57,90,.1)}.patient-kpis-v2 small{color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.patient-kpis-v2 strong{overflow-wrap:anywhere;color:var(--navy);font-size:1.05rem}.patient-kpis-v2 p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.35}.patient-kpis-v2 .kpi-icon{position:absolute;left:16px;top:17px;display:grid;width:32px;height:32px;place-items:center;border-radius:11px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-weight:900}
.patient-dashboard-grid-v2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px}.patient-dashboard-grid-v2>.panel{min-width:0}.patient-focus-card,.patient-request-preview{grid-column:1}.patient-notification-preview,.patient-documents-preview{grid-column:2}.patient-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.patient-action-grid>a{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:15px;background:#fbfdff;color:var(--text);text-decoration:none}.patient-action-grid>a:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));background:#f1f8ff}.patient-action-grid>a>span{display:grid;width:34px;height:34px;place-items:center;flex:none;border-radius:11px;color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,#fff);font-weight:900}.patient-action-grid strong,.patient-action-grid small{display:block}.patient-action-grid small{margin-top:2px;color:var(--muted)}
.patient-mini-list{display:grid;gap:10px}.patient-mini-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:14px;color:var(--text);text-decoration:none;background:#fff}.patient-mini-item:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));background:#fbfdff}.patient-mini-item.unread{border-color:color-mix(in srgb,var(--primary) 32%,var(--line));background:color-mix(in srgb,var(--primary) 4%,#fff)}.patient-mini-item strong,.patient-mini-item small{display:block}.patient-mini-item small{margin-top:2px;color:var(--muted)}.patient-mini-item p{display:-webkit-box;overflow:hidden;margin:.32rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}.notification-dot{width:10px;height:10px;margin-top:6px;border-radius:999px;background:#91a2b4;box-shadow:0 0 0 5px #edf1f5}.notification-dot.high,.notification-dot.urgent{background:#df4764;box-shadow:0 0 0 5px #ffe9ee}.notification-dot.normal{background:var(--primary);box-shadow:0 0 0 5px #e7f1ff}.notification-dot.low{background:#1ca87a;box-shadow:0 0 0 5px #e2f7ef}.request-code-chip{align-self:start;padding:6px 8px;border-radius:9px;color:var(--primary);background:#edf6ff;font-size:.65rem;font-weight:900;letter-spacing:.03em}.patient-document-grid-v2{display:grid;gap:10px}.patient-document-grid-v2>a{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:14px;color:var(--text);text-decoration:none}.patient-document-grid-v2>a:hover{border-color:color-mix(in srgb,var(--primary) 38%,var(--line));background:#fbfdff}.patient-document-grid-v2>a>span{display:grid;width:34px;height:34px;place-items:center;flex:none;border-radius:11px;color:var(--primary);background:#edf6ff}.patient-document-grid-v2 strong,.patient-document-grid-v2 small{display:block}.patient-document-grid-v2 small{color:var(--muted)}
.patient-modules-v2{margin-top:18px}.patient-module-grid-v2{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.patient-module-grid-v2>a{display:grid;gap:6px;padding:16px;border:1px solid var(--line);border-radius:16px;color:var(--text);text-decoration:none;background:linear-gradient(180deg,#fff,#fbfdff)}.patient-module-grid-v2>a:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));transform:translateY(-1px)}.patient-module-grid-v2>a>span{display:grid;width:34px;height:34px;place-items:center;border-radius:11px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));font-weight:900}.patient-module-grid-v2 strong{color:var(--navy)}.patient-module-grid-v2 small{color:var(--muted);line-height:1.35}.text-link{color:var(--primary);font-weight:850;text-decoration:none}.empty-state.compact{min-height:0;padding:18px}
.patient-profile-layout-v2{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);gap:18px;margin-bottom:18px}.patient-profile-layout-v2>.panel{min-width:0}.patient-profile-identity{display:flex;align-items:center;gap:13px;margin-bottom:16px}.patient-profile-identity strong,.patient-profile-identity small{display:block}.patient-profile-identity small{color:var(--muted)}.privacy-note{padding:12px;border-left:4px solid var(--primary);border-radius:0 12px 12px 0;color:var(--muted);background:#f2f8ff;font-size:.82rem;line-height:1.5}.compact-grid{margin:14px 0}.patient-profile-form input,.patient-profile-form select{width:100%;min-width:0}.patient-preferences-form{display:grid;grid-template-columns:minmax(200px,280px) repeat(2,minmax(220px,1fr));gap:12px;align-items:start}.patient-preferences-form>label:first-of-type{grid-row:span 2}.preference-toggle{display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.preference-toggle strong,.preference-toggle small{display:block}.preference-toggle small{margin-top:2px;color:var(--muted);font-weight:500}.preference-toggle input{width:20px!important;height:20px!important;min-height:20px!important;flex:none;accent-color:var(--primary)}.patient-preferences-form>button{align-self:end;justify-self:start}.portal-event-list{display:grid;gap:8px}.portal-event-list article{display:flex;align-items:center;gap:11px;padding:11px;border:1px solid var(--line);border-radius:13px}.portal-event-list article>span{display:grid;width:28px;height:28px;place-items:center;border-radius:9px;color:#126b49;background:#dcf8eb}.portal-event-list strong,.portal-event-list small{display:block}.portal-event-list small{color:var(--muted)}
.patient-notification-list-v2{display:grid;gap:12px}.patient-notification-v2{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff}.patient-notification-v2.unread{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));background:#f7fbff}.patient-notification-v2.priority-urgent{border-left:5px solid #c92f51}.patient-notification-v2.priority-high{border-left:5px solid #e98332}.notification-category-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;color:var(--primary);background:#edf6ff;font-weight:900}.notification-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.patient-notification-v2 small{color:var(--muted)}.patient-notification-v2 p{margin:.45rem 0;color:var(--text);line-height:1.55}.notification-actions{align-self:center}.status-pill.unread{color:#0d5ca7;background:#e4f1ff}.status-pill.read{color:#456174;background:#edf2f5}.status-pill.archived{color:#696b79;background:#eeeef2}
.patient-requests-layout-v2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:18px;margin-bottom:18px}.patient-requests-layout-v2>.panel{min-width:0}.patient-request-nav{display:grid;gap:8px;max-height:520px;overflow:auto}.patient-request-nav>a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:14px;color:var(--text);text-decoration:none}.patient-request-nav>a.active,.patient-request-nav>a:hover{border-color:color-mix(in srgb,var(--primary) 42%,var(--line));background:#f4f9ff}.patient-request-nav strong,.patient-request-nav small{display:block}.patient-request-nav small{color:var(--muted)}.request-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.request-detail-header h2{margin:.25rem 0}.request-detail-header p{margin:0;color:var(--muted)}.request-detail-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:18px;margin:18px 0}.request-detail-grid>div{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fbfdff}.request-detail-grid small{color:var(--muted);font-weight:800}.request-detail-grid p{margin:0;line-height:1.55}.request-timeline-v2{display:grid;gap:10px}.request-timeline-v2 h3{margin-bottom:0}.request-timeline-v2 article{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;padding-bottom:12px}.request-timeline-v2 article>span{width:11px;height:11px;margin-top:5px;border:3px solid #d9e9fb;border-radius:999px;background:var(--primary)}.request-timeline-v2 article:not(:last-child)::after{content:"";position:absolute;left:5px;top:19px;bottom:0;width:1px;background:#d9e3ec}.request-timeline-v2 strong,.request-timeline-v2 small{display:block}.request-timeline-v2 small{color:var(--muted)}.request-timeline-v2 p{margin:.35rem 0 0;color:var(--text)}.patient-request-cancel{margin-top:15px}.patient-request-cancel>summary{display:inline-flex;list-style:none;cursor:pointer}.patient-request-cancel form{display:grid;gap:10px;max-width:520px;margin-top:10px;padding:14px;border:1px solid #efc8cf;border-radius:15px;background:#fff8f9}.patient-request-cancel label{display:grid;gap:6px}
.patient-portal-admin-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}.portal-admin-layout-v2{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr);gap:18px;align-items:start}.portal-admin-layout-v2>.panel,.portal-admin-side-v2{min-width:0}.portal-admin-side-v2{position:sticky;top:88px}.portal-admin-filter-v2{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.45fr) minmax(180px,.55fr) auto;gap:10px;align-items:end;margin:15px 0}.portal-admin-filter-v2 label{display:grid;gap:6px}.portal-request-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px}.portal-request-table{width:max-content;min-width:100%;min-inline-size:850px;margin:0}.portal-request-table td small,.portal-request-table td strong{display:block}.portal-request-table td small{max-width:250px;color:var(--muted)}.selected-row{background:#f3f8ff}.table-primary-link{color:var(--primary);font-weight:900;text-decoration:none}.priority-chip{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.68rem;font-weight:900}.priority-chip.low{color:#157150;background:#e3f8ef}.priority-chip.normal{color:#245f94;background:#e6f2ff}.priority-chip.high{color:#9c4b09;background:#fff0df}.priority-chip.urgent{color:#a72743;background:#ffe7ed}.portal-notification-form textarea{resize:vertical}.portal-notification-form label>small{color:var(--muted)}.portal-request-admin-detail{margin-top:18px}.portal-admin-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:18px;margin:18px 0}.portal-admin-detail-grid>div{padding:15px;border:1px solid var(--line);border-radius:15px;background:#fbfdff}.portal-admin-detail-grid>form{display:grid;grid-template-columns:1fr 1fr;gap:11px}.portal-admin-detail-grid>form label{display:grid;gap:6px}.request-contact-line{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.request-contact-line span{padding:6px 9px;border-radius:10px;background:#edf4fa;color:var(--muted);font-size:.78rem}.status-pill.open{color:#0d5ca7;background:#e4f1ff}.status-pill.in_review{color:#805c00;background:#fff2c9}.status-pill.waiting_patient{color:#7a4900;background:#ffe9ca}.status-pill.resolved{color:#126b49;background:#dcf8eb}.status-pill.cancelled{color:#9d2a40;background:#fde8ed}
@media(max-width:1200px){.patient-kpis-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-module-grid-v2{grid-template-columns:repeat(3,minmax(0,1fr))}.patient-preferences-form{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-preferences-form>label:first-of-type{grid-row:auto}.portal-admin-layout-v2{grid-template-columns:1fr}.portal-admin-side-v2{position:static}.patient-portal-admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.patient-hero-v2,.patient-dashboard-grid-v2,.patient-profile-layout-v2,.patient-requests-layout-v2,.portal-admin-detail-grid{grid-template-columns:1fr}.patient-focus-card,.patient-notification-preview,.patient-request-preview,.patient-documents-preview{grid-column:auto}.patient-module-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.request-detail-grid{grid-template-columns:1fr}.portal-admin-detail-grid>form{grid-template-columns:1fr}.portal-admin-detail-grid>form .span-2{grid-column:auto}.portal-admin-filter-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-admin-filter-v2 button{grid-column:1/-1}}
@media(max-width:680px){.patient-hero-v2{padding:22px;border-radius:22px}.patient-hero-actions,.patient-hero-actions .button{width:100%}.patient-kpis-v2,.patient-action-grid,.patient-module-grid-v2,.patient-preferences-form,.patient-portal-admin-metrics,.portal-admin-filter-v2{grid-template-columns:1fr}.patient-notification-v2{grid-template-columns:auto minmax(0,1fr)}.notification-actions{grid-column:1/-1}.notification-actions form,.notification-actions button{width:100%}.notification-heading{align-items:flex-start;flex-direction:column}.patient-request-nav{max-height:none}.request-detail-header{flex-direction:column}.portal-admin-side-v2 .panel,.patient-requests-layout-v2>.panel,.patient-profile-layout-v2>.panel{padding:16px}.portal-request-table{min-inline-size:760px}.patient-profile-form{grid-template-columns:1fr}.patient-profile-form .span-2{grid-column:auto}.patient-preferences-form>button{width:100%}.patient-notification-v2{padding:14px}.patient-identity-v2{grid-template-columns:auto minmax(0,1fr)}}
@media(max-width:390px){.patient-kpis-v2>a{padding-left:54px}.patient-action-grid>a{align-items:flex-start}.patient-mini-item{grid-template-columns:1fr}.patient-mini-item>.notification-dot{margin-left:4px}.patient-document-grid-v2>a{align-items:flex-start}.patient-hero-v2 h1{font-size:2rem}.request-code-chip{justify-self:start}}


/* Bloque 31: centro de comunicaciones */
.communication-metrics{margin-bottom:1rem}.communication-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;margin:0 0 1rem}.communication-tabs a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);font-weight:700;text-decoration:none}.communication-tabs a.active{background:var(--primary);border-color:var(--primary);color:#fff}.communication-channel-cards{display:grid;gap:.75rem}.communication-channel-cards article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:14px}.communication-channel-cards article div{display:grid;gap:.2rem}.communication-channel-cards small{color:var(--muted)}.stack-list{display:grid;gap:.75rem}.stack-list article{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:14px}.stack-list article>div{min-width:0}.stack-list p{margin:.35rem 0 0;color:var(--muted)}.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll .data-table{min-width:780px}.button-row{display:flex;flex-wrap:wrap;gap:.5rem}.button.danger{background:#fff0f1;border-color:#ffcbd0;color:#b42332}.status-pill.opted_in,.status-pill.sent,.status-pill.delivered,.status-pill.read{background:#e9f9f1;color:#176b45}.status-pill.opted_out,.status-pill.failed{background:#fff0f1;color:#a61d2d}.status-pill.pending,.status-pill.queued,.status-pill.processing{background:#fff8e5;color:#8a5b00}@media(max-width:900px){.communication-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:520px){.communication-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.communication-tabs a{font-size:.88rem}.communication-channel-cards article{grid-template-columns:auto 1fr}.communication-channel-cards .status-pill{grid-column:1/-1;justify-self:start}.stack-list article{align-items:flex-start;flex-direction:column}}


/* Bloque 32: seguimiento, campañas y reactivación */
.crm-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.crm-tabs{margin-bottom:18px}.campaign-list article{align-items:flex-start}.campaign-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.campaign-actions form{margin:0}.status-pill.draft,.status-pill.new,.status-pill.open{color:#315b8a;background:#eaf3ff}.status-pill.scheduled,.status-pill.appointment_scheduled{color:#765a21;background:#fff3d5}.status-pill.processing,.status-pill.in_progress,.status-pill.contacted{color:#7447a8;background:#f2eaff}.status-pill.paused,.status-pill.treatment_proposed{color:#9a5b00;background:#fff4df}.status-pill.completed,.status-pill.won{color:var(--success);background:var(--success-bg)}.status-pill.cancelled,.status-pill.lost{color:var(--danger);background:var(--danger-bg)}
@media(max-width:1050px){.crm-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.crm-metrics{grid-template-columns:1fr}.campaign-actions{width:100%;justify-content:flex-start}.campaign-actions form,.campaign-actions .button{width:100%}}

/* Bloque 33: reportes e indicadores */
.reports-heading{align-items:flex-end}.report-filter-bar{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto minmax(190px,auto);gap:12px;align-items:end;margin-bottom:18px}.report-filter-bar label{margin:0}.report-filter-bar .button{min-height:44px}.report-period-summary{display:flex;align-items:center;justify-content:flex-end;gap:7px;color:var(--muted);font-size:.86rem;padding-bottom:12px}.reports-tabs{margin-bottom:18px}.report-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.report-kpis article strong{font-size:1.65rem}.report-kpis.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.reports-overview-grid{grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr)}.report-chart-panel{min-height:360px}.report-trend{height:245px;display:flex;align-items:stretch;gap:8px;padding:16px 4px 0;border-bottom:1px solid var(--border);overflow-x:auto}.report-trend article{flex:1;min-width:34px;display:grid;grid-template-rows:1fr auto;gap:8px;text-align:center}.trend-bars{display:flex;align-items:flex-end;justify-content:center;gap:4px;height:100%}.trend-bars i{display:block;width:11px;min-height:4px;border-radius:7px 7px 2px 2px}.trend-bars .appointments,.chart-legend .appointments{background:#1675ef}.trend-bars .collections,.chart-legend .collections{background:#18b8ae}.report-trend small{font-size:.68rem;color:var(--muted);white-space:nowrap}.chart-legend{display:flex;gap:18px;margin-top:16px;color:var(--muted);font-size:.82rem}.chart-legend span{display:flex;align-items:center;gap:7px}.chart-legend i{width:10px;height:10px;border-radius:50%}.report-alerts{display:grid;gap:10px}.report-alerts article{border:1px solid var(--border);border-left:4px solid #6794c9;border-radius:14px;padding:12px 14px;background:#fff}.report-alerts article.warning{border-left-color:#e5a322;background:#fffaf0}.report-alerts article.danger{border-left-color:#df5365;background:#fff7f8}.report-alerts article.info{border-left-color:#2389eb;background:#f5faff}.report-alerts strong{display:block;margin-bottom:4px}.report-alerts p{margin:0;color:var(--muted);font-size:.86rem}.goal-progress-list{display:grid;gap:15px}.goal-progress-list article{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,1.2fr) 58px;gap:12px;align-items:center}.goal-progress-list article div:first-child{display:grid;gap:3px}.goal-progress-list span{font-size:.8rem;color:var(--muted)}.progress-track{height:9px;background:#e9f0f7;border-radius:999px;overflow:hidden}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1371ef,#18c3bd)}.goal-progress-list b{text-align:right}.report-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-status-grid article{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:14px;padding:12px}.report-status-grid article strong{font-size:1.25rem}.report-summary-list dl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 18px;margin:0}.report-summary-list dt{color:var(--muted)}.report-summary-list dd{margin:0;font-weight:800;text-align:right}.danger-text{color:var(--danger)}.rate-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eaf7f3;color:#11765b;font-weight:800}.payment-method-report article,.branch-performance-list article,.recent-export-list article{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-method-report article b,.branch-performance-list article b{font-size:1.05rem}.branch-performance-list{display:grid;gap:10px}.branch-performance-list article{padding:12px 0;border-bottom:1px solid var(--border)}.professional-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.professional-cards article{display:grid;gap:8px;border:1px solid var(--border);border-radius:15px;padding:14px}.professional-cards span{font-size:.82rem;color:var(--muted)}.professional-cards b{text-align:right}.reports-management-grid,.reports-schedule-grid{align-items:start}.reports-plan-notice{margin-bottom:18px}.saved-report-list,.recent-export-list,.report-schedule-list{display:grid;gap:9px;margin-top:18px}.saved-report-list>a{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:14px;padding:12px;text-decoration:none;color:inherit}.saved-report-list>a:hover{border-color:#2a79e8;background:#f7fbff}.saved-report-list small,.recent-export-list small,.report-schedule-list small{display:block;color:var(--muted);margin-top:3px}.recent-export-list h3{margin:0 0 3px}.recent-export-list article{padding:10px 0;border-bottom:1px solid var(--border)}.report-schedule-list article{display:flex;justify-content:space-between;gap:16px;border:1px solid var(--border);border-radius:15px;padding:14px}.report-schedule-list article>div:last-child{display:grid;justify-items:end;align-content:start;gap:9px}.report-schedule-list form{margin:0}.report-schedule-list p{margin:5px 0 0;color:var(--muted);font-size:.82rem;word-break:break-word}.report-schedule-list em{display:block;margin-top:6px;color:var(--danger);font-size:.8rem}.checkbox-line{display:flex!important;align-items:center;gap:9px}.checkbox-line input{width:auto}.form-grid label small{display:block;margin-top:5px;color:var(--muted);font-size:.76rem}.status-pill.generated,.status-pill.delivered,.status-pill.active{color:var(--success);background:var(--success-bg)}.status-pill.queued,.status-pill.paused{color:#8a6500;background:#fff4d9}.status-pill.failed,.status-pill.cancelled{color:var(--danger);background:var(--danger-bg)}
@media(max-width:1180px){.report-filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.report-period-summary{justify-content:flex-start}.report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.professional-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.report-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.reports-overview-grid{grid-template-columns:1fr}.report-schedule-list article{flex-direction:column}.report-schedule-list article>div:last-child{justify-items:start}.goal-progress-list article{grid-template-columns:1fr 70px}.goal-progress-list article .progress-track{grid-column:1/-1;grid-row:2}.professional-cards{grid-template-columns:1fr}}
@media(max-width:620px){.report-filter-bar{grid-template-columns:1fr}.report-filter-bar .button{width:100%}.report-period-summary{padding:0}.report-kpis,.report-kpis.compact{grid-template-columns:1fr}.report-status-grid{grid-template-columns:1fr}.report-trend{height:210px}.goal-progress-list article{grid-template-columns:1fr auto}.reports-heading{align-items:flex-start}.reports-heading form,.reports-heading .button{width:100%}}
.security-heading{align-items:flex-end}.security-tabs{margin-bottom:18px}.security-filter-bar{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr)) auto;gap:12px;align-items:end;margin-bottom:18px}.security-filter-bar label{margin:0}.security-filter-bar .security-search-field{grid-column:span 2}.security-filter-bar .button{min-height:44px}.security-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.security-kpis article strong{font-size:1.65rem}.security-overview-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.integrity-progress{display:grid;gap:12px;margin:8px 0 20px}.integrity-progress>div:first-child{display:flex;align-items:flex-end;justify-content:space-between}.integrity-progress strong{font-size:2rem;color:var(--navy)}.integrity-progress span{color:var(--muted)}.security-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.security-detail-grid>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.security-detail-grid small{display:block;color:var(--muted)}.security-detail-grid strong{display:block;margin-top:4px;color:var(--navy);font-size:1.1rem}.security-alert-list{display:grid;gap:10px}.security-alert-list article{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-left:4px solid #5a8bc4;border-radius:15px;background:#fff}.security-alert-list article.notice{border-left-color:#4b86d4;background:#f7fbff}.security-alert-list article.warning{border-left-color:#e5a322;background:#fffaf0}.security-alert-list article.critical{border-left-color:#d84f65;background:#fff7f8}.security-alert-list p{margin:4px 0 0;color:var(--muted);font-size:.86rem}.security-alert-list.detailed article{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,330px);padding:18px}.security-alert-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.security-alert-body small{display:block;margin-top:8px;color:var(--muted)}.security-alert-body blockquote{margin:12px 0 0;padding:10px 12px;border-left:3px solid var(--primary);background:#f5f9fe;color:var(--text)}.security-alert-actions{display:grid;gap:12px;align-content:start;justify-items:end}.security-alert-actions form{display:grid;width:100%;gap:9px}.security-alert-actions label{display:grid;gap:5px}.security-activity-table small{display:block;margin-top:3px;color:var(--muted)}.security-activity-table code{font-size:.75rem;color:var(--navy);background:#edf4fb;padding:4px 7px;border-radius:8px}.severity-pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.76rem;font-weight:850;white-space:nowrap}.severity-pill.info{color:#315f8d;background:#eaf3fb}.severity-pill.notice{color:#1e64a6;background:#e7f2ff}.severity-pill.warning{color:#8b5c00;background:#fff2d4}.severity-pill.critical{color:#a3203a;background:#ffe7ed}.status-pill.valid,.status-pill.reviewed,.status-pill.completed,.status-pill.resolved{color:var(--success);background:var(--success-bg)}.status-pill.invalid,.status-pill.critical,.status-pill.dismissed{color:var(--danger);background:var(--danger-bg)}.status-pill.unavailable,.status-pill.acknowledged,.status-pill.in_progress{color:#8a6500;background:#fff4d9}.status-pill.open{color:#a3203a;background:#ffe7ed}.access-review-grid,.security-settings-grid{align-items:start}.access-campaign-list{display:grid;gap:10px}.access-campaign-list>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:15px;color:inherit;text-decoration:none}.access-campaign-list>a:hover,.access-campaign-list>a.active{border-color:var(--primary);background:#f6faff}.access-campaign-list>a>div{display:grid;gap:4px}.access-campaign-list small{color:var(--muted)}.access-campaign-list a>div:last-child{justify-items:end}.access-review-items{margin-top:18px}.access-review-list{display:grid;gap:10px}.access-review-list article{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:18px;padding:15px;border:1px solid var(--line);border-radius:15px}.access-review-list article>div:first-child{display:grid;gap:4px}.access-review-list span,.access-review-list p,.access-review-list small{color:var(--muted)}.access-review-list p{margin:8px 0 0}.access-review-list form{display:grid;grid-template-columns:1fr 1.2fr auto;gap:9px;align-items:end}.access-review-list form label{display:grid;gap:5px}.review-decision{display:grid;gap:5px;justify-items:end;align-content:start}.integrity-status-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fbfdff;margin-bottom:16px}.integrity-status-card.valid{border-color:#a9e4cb;background:#f2fbf7}.integrity-status-card.invalid{border-color:#f0b6c1;background:#fff7f8}.integrity-status-card strong{display:block;color:var(--navy);font-size:1.15rem}.integrity-status-card p{margin:6px 0;color:var(--muted)}.integrity-status-card span{font-size:.82rem;color:var(--muted)}.security-export-list article>div:last-child{text-align:right}.security-export-list h3{overflow-wrap:anywhere}@media(max-width:1250px){.security-filter-bar{grid-template-columns:repeat(4,minmax(130px,1fr))}.security-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.security-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.security-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.security-filter-bar .security-search-field{grid-column:auto}.security-overview-grid{grid-template-columns:1fr}.security-alert-list.detailed article,.access-review-list article{grid-template-columns:1fr}.security-alert-actions,.review-decision{justify-items:start}.access-review-list form{grid-template-columns:1fr}.security-heading{align-items:flex-start}}@media(max-width:620px){.security-filter-bar,.security-kpis,.security-detail-grid{grid-template-columns:1fr}.security-filter-bar .button,.security-heading form,.security-heading .button{width:100%}.security-alert-list article{flex-direction:column}.access-campaign-list>a{align-items:flex-start;flex-direction:column}.access-campaign-list a>div:last-child{justify-items:start}.security-export-list article{align-items:flex-start;flex-direction:column}.security-export-list article>div:last-child{text-align:left}}

/* Bloque 35: respaldos, exportación y continuidad */
.backup-heading{align-items:flex-end}.backup-tabs{margin-bottom:18px}.backup-readiness-alert{margin-bottom:18px}.backup-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.backup-kpis .metric-date{font-size:1.03rem;line-height:1.35}.backup-overview-grid{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start}.backup-quick-form{align-items:center}.backup-note{margin:14px 0 0;line-height:1.55}.continuity-check-list{display:grid;gap:12px}.continuity-check-list article{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:15px;padding:14px;background:#fff}.continuity-check-list article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-weight:900}.continuity-check-list article.ready>span{background:var(--success-bg);color:var(--success)}.continuity-check-list article.blocked>span{background:var(--danger-bg);color:var(--danger)}.continuity-check-list strong,.continuity-check-list small{display:block}.continuity-check-list small{margin-top:3px;color:var(--muted)}.backup-cron-box{display:grid;gap:7px;margin-top:16px;border-radius:15px;padding:14px;background:#f5f9ff;border:1px solid #dce9fa}.backup-cron-box code{display:block;overflow-wrap:anywhere;color:#0a4fa9;font-size:.78rem}.backup-cron-box span,.backup-cron-box small{color:var(--muted)}.backup-archive-table td strong,.backup-job-table td strong{display:block}.backup-archive-table td small,.backup-job-table td small{display:block;margin-top:4px;color:var(--muted)}.backup-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.backup-actions form{margin:0}.backup-policy-grid,.backup-drill-grid,.backup-export-grid{align-items:start}.backup-policy-list,.restore-drill-list,.data-export-list{display:grid;gap:11px}.backup-policy-list article,.restore-drill-list article,.data-export-list article{display:flex;justify-content:space-between;gap:18px;border:1px solid var(--border);border-radius:16px;padding:15px;background:#fff}.backup-policy-list article>div,.restore-drill-list article>div,.data-export-list article>div{display:grid;gap:5px}.backup-policy-list article>div:last-child,.restore-drill-list article>div:last-child,.data-export-list article>div:last-child{justify-items:end;align-content:start}.backup-policy-list span,.backup-policy-list small,.restore-drill-list span,.restore-drill-list small,.data-export-list span,.data-export-list small{color:var(--muted)}.backup-policy-list form,.data-export-list form{margin:4px 0 0}.backup-filter-bar{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr)) auto;gap:12px;align-items:end;margin-bottom:18px}.backup-filter-bar label{margin:0}.backup-archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.backup-archive-card{display:grid;gap:12px;border:1px solid var(--border);border-radius:17px;padding:16px;background:#fff}.backup-archive-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.backup-archive-card header span:first-child{display:block;color:var(--muted);font-size:.78rem}.backup-archive-card h3{margin:4px 0 0;font-size:.96rem;overflow-wrap:anywhere}.backup-archive-card>small{color:var(--muted);overflow-wrap:anywhere}.backup-archive-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.backup-archive-details span{border-radius:10px;padding:8px 10px;background:#f6f9fd;color:#3d5776;font-size:.8rem}.backup-category-fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;border:1px solid var(--border);border-radius:14px;padding:14px}.backup-category-fieldset legend{padding:0 7px;font-weight:800;color:var(--text)}.status-pill.available,.status-pill.valid,.status-pill.passed,.status-pill.ready,.status-pill.completed,.status-pill.active{color:var(--success);background:var(--success-bg)}.status-pill.queued,.status-pill.running,.status-pill.processing,.status-pill.planned,.status-pill.paused{color:#8a6500;background:#fff4d9}.status-pill.corrupt,.status-pill.invalid,.status-pill.failed,.status-pill.expired,.status-pill.cancelled,.status-pill.deleted{color:var(--danger);background:var(--danger-bg)}
@media(max-width:1000px){.backup-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.backup-overview-grid,.backup-policy-grid,.backup-drill-grid,.backup-export-grid{grid-template-columns:1fr}.backup-archive-grid{grid-template-columns:1fr}}
@media(max-width:760px){.backup-filter-bar{grid-template-columns:1fr 1fr}.backup-filter-bar .button{width:100%}.backup-policy-list article,.restore-drill-list article,.data-export-list article{flex-direction:column}.backup-policy-list article>div:last-child,.restore-drill-list article>div:last-child,.data-export-list article>div:last-child{justify-items:start}.backup-category-fieldset{grid-template-columns:1fr}.backup-heading{align-items:flex-start}.backup-heading form,.backup-heading .button{width:100%}}
@media(max-width:560px){.backup-kpis{grid-template-columns:1fr}.backup-filter-bar{grid-template-columns:1fr}.backup-archive-details{grid-template-columns:1fr}.backup-actions,.backup-actions .button,.backup-actions form{width:100%}}

/* Bloque 36: preparación, aprobación y puesta en marcha */
.launch-heading{align-items:flex-end}.launch-tabs{margin-bottom:18px}.launch-filter-bar{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(260px,1.5fr) auto;gap:12px;align-items:end;margin-bottom:18px}.launch-filter-bar label{margin:0}.launch-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.launch-overview-grid{grid-template-columns:minmax(0,1fr) minmax(340px,.85fr);align-items:start}.launch-create-form{grid-template-columns:repeat(2,minmax(0,1fr))}.launch-create-form .full{grid-column:1/-1}.launch-current-card{display:grid;gap:16px}.launch-score{display:grid;gap:8px;padding:18px;border-radius:17px;background:#f5f9ff;border:1px solid #dce8f8}.launch-score>strong{font-size:2.2rem;color:var(--primary);line-height:1}.launch-score>span{color:var(--muted)}.launch-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.launch-actions{display:flex;gap:10px;flex-wrap:wrap}.launch-actions form{margin:0}.launch-signal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.launch-signal-grid article{display:grid;grid-template-columns:36px 1fr;gap:3px 11px;align-items:center;border:1px solid var(--border);border-radius:15px;padding:14px;background:#fff}.launch-signal-grid article>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-weight:900}.launch-signal-grid article.ready>span{background:var(--success-bg);color:var(--success)}.launch-signal-grid article.blocked>span{background:var(--danger-bg);color:var(--danger)}.launch-signal-grid small{color:var(--muted)}.launch-review-banner{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center}.launch-review-banner h2{margin:4px 0}.launch-review-banner p{margin:0;color:var(--muted)}.launch-banner-score{display:grid;justify-items:end}.launch-banner-score strong{font-size:1.8rem;color:var(--primary)}.launch-banner-score span{color:var(--muted)}.launch-category-panel{margin-top:16px}.launch-check-list{display:grid;gap:12px}.launch-check-list article{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;border:1px solid var(--border);border-radius:16px;padding:15px;background:#fff}.launch-check-list article.passed,.launch-check-list article.not_applicable{border-left:4px solid var(--success)}.launch-check-list article.failed{border-left:4px solid var(--danger)}.launch-check-list article.warning{border-left:4px solid #e2a324}.launch-check-list article.pending{border-left:4px solid #97a7ba}.launch-check-status>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#eef4fb;color:var(--navy);font-weight:900}.launch-check-list article.passed .launch-check-status>span,.launch-check-list article.not_applicable .launch-check-status>span{background:var(--success-bg);color:var(--success)}.launch-check-list article.failed .launch-check-status>span{background:var(--danger-bg);color:var(--danger)}.launch-check-list article.warning .launch-check-status>span{background:#fff4d9;color:#8a6500}.launch-check-body{display:grid;gap:7px}.launch-check-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.launch-check-body p{margin:0;color:var(--muted)}.launch-check-body blockquote{margin:2px 0;padding:10px 12px;border-left:3px solid var(--primary);background:#f6faff;color:var(--text)}.launch-check-body small{color:var(--muted)}.launch-manual-form{grid-column:2;display:grid;grid-template-columns:minmax(150px,.45fr) minmax(260px,1fr) auto;gap:10px;align-items:end;padding-top:12px;border-top:1px solid var(--border)}.launch-manual-form label{margin:0}.launch-evidence-grid,.launch-approval-grid,.launch-release-grid{align-items:start}.launch-evidence-list,.launch-approval-list,.launch-release-list{display:grid;gap:11px}.launch-evidence-list article,.launch-approval-list article,.launch-release-list article{display:flex;justify-content:space-between;gap:18px;border:1px solid var(--border);border-radius:16px;padding:15px;background:#fff}.launch-evidence-list article>div,.launch-approval-list article>div,.launch-release-list article>div{display:grid;gap:5px}.launch-evidence-list article>div:last-child,.launch-release-list article>div:last-child{justify-items:end;align-content:start}.launch-evidence-list span,.launch-evidence-list small,.launch-approval-list p,.launch-approval-list small,.launch-release-list span,.launch-release-list small{color:var(--muted)}.launch-evidence-list p,.launch-approval-list p,.launch-release-list p{margin:4px 0}.launch-evidence-list small,.launch-release-list small{overflow-wrap:anywhere}.launch-gate-box{border-radius:16px;padding:16px;margin-bottom:16px;border:1px solid var(--border)}.launch-gate-box.ready{background:var(--success-bg);border-color:#a8e2c8}.launch-gate-box.blocked{background:var(--danger-bg);border-color:#efb7c2}.launch-gate-box strong{display:block}.launch-gate-box p{margin:6px 0 0;color:var(--muted)}.status-pill.draft,.status-pill.in_review,.status-pill.pending{color:#8a6500;background:#fff4d9}.status-pill.approved,.status-pill.released,.status-pill.passed,.status-pill.not_applicable{color:var(--success);background:var(--success-bg)}.status-pill.cancelled,.status-pill.rejected,.status-pill.failed{color:var(--danger);background:var(--danger-bg)}.status-pill.warning{color:#8a6500;background:#fff4d9}
@media(max-width:1100px){.launch-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.launch-overview-grid,.launch-evidence-grid,.launch-approval-grid,.launch-release-grid{grid-template-columns:1fr}.launch-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.launch-review-banner{grid-template-columns:1fr auto}.launch-review-banner form{grid-column:1/-1}.launch-manual-form{grid-template-columns:1fr 1fr}.launch-manual-form .button{grid-column:1/-1}}
@media(max-width:760px){.launch-filter-bar,.launch-create-form,.launch-signal-grid,.launch-detail-grid{grid-template-columns:1fr}.launch-create-form .full{grid-column:auto}.launch-review-banner{grid-template-columns:1fr}.launch-banner-score{justify-items:start}.launch-check-list article{grid-template-columns:38px minmax(0,1fr)}.launch-manual-form{grid-template-columns:1fr}.launch-evidence-list article,.launch-approval-list article,.launch-release-list article{flex-direction:column}.launch-evidence-list article>div:last-child,.launch-release-list article>div:last-child{justify-items:start}.launch-heading{align-items:flex-start}.launch-heading form,.launch-heading .button,.launch-filter-bar .button{width:100%}}
@media(max-width:540px){.launch-kpis{grid-template-columns:1fr}.launch-actions,.launch-actions form,.launch-actions .button{width:100%}.launch-check-list article{grid-template-columns:1fr}.launch-manual-form{grid-column:1}.launch-check-status>span{width:34px;height:34px}}
