:root{--gold:#a79d3c;--dark:#080808;--ink:#1f2937;--soft:#f6f4ed;--line:#e8e2d0}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#f8f7f3;color:var(--ink)}a{text-decoration:none;color:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:255px;background:#070707;color:#fff;padding:22px 16px;z-index:5}.brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.brand img{width:58px;height:34px;object-fit:contain}.sidebar nav{display:grid;gap:8px}.sidebar a{padding:12px 14px;border-radius:14px;color:#ddd;display:flex;gap:10px;align-items:center}.sidebar a:hover,.sidebar a.active{background:rgba(167,157,60,.22);color:#fff}.main{margin-left:255px;min-height:100vh}.top{height:68px;background:white;border-bottom:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center;padding:0 28px}.top span{display:block;color:#777;font-size:13px;text-transform:capitalize}.content{padding:28px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card{background:white;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 12px 34px rgba(0,0,0,.05)}.card h3{margin:0 0 6px}.metric{font-size:34px;font-weight:800;color:var(--gold)}.btn{border:0;border-radius:12px;padding:11px 16px;background:var(--dark);color:white;cursor:pointer;display:inline-flex;gap:8px;align-items:center}.btn.gold{background:var(--gold);color:#111}.btn.light{background:#eee;color:#111}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:white}label{font-weight:700;font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.table{width:100%;border-collapse:collapse;background:white;border-radius:18px;overflow:hidden}.table th,.table td{padding:12px;border-bottom:1px solid var(--line);text-align:left}.badge{padding:5px 10px;border-radius:999px;font-size:12px;background:#eee}.pendiente{background:#fff3cd}.confirmada{background:#d1fae5}.cancelada{background:#e5e7eb}.no_asistio{background:#fee2e2}.actions{display:flex;gap:8px;flex-wrap:wrap}.calendar-wrap{background:white;border-radius:22px;padding:18px;border:1px solid var(--line)}@media(max-width:900px){.sidebar{position:static;width:100%;}.main{margin-left:0}.grid,.form-grid{grid-template-columns:1fr}.content{padding:16px}}

/* ===== SLV Admin modernizacion 2026 ===== */
:root{--admin-navy:#0f2038;--admin-navy2:#172c4a;--admin-gold:#c69a44;--admin-bg:#f6f4ed;--admin-line:#e8e2d0;--admin-danger:#b91c1c;--admin-ok:#166534}.sidebar{background:linear-gradient(180deg,#070707,#111827);box-shadow:12px 0 35px rgba(0,0,0,.16)}.brand img{width:56px;height:48px;border-radius:12px;background:#000;padding:5px;border:1px solid rgba(198,154,68,.35)}.brand strong{font-size:1.05rem}.sidebar a{font-weight:800}.sidebar a:hover,.sidebar a.active{background:rgba(198,154,68,.22);color:#fff}.top{justify-content:space-between;box-shadow:0 8px 24px rgba(15,32,56,.05)}.top:before{content:'Panel administrativo integral';font-weight:900;color:var(--admin-navy)}.content h1{font-size:clamp(1.8rem,3vw,2.6rem);color:var(--admin-navy);margin-top:0}.content h2{color:var(--admin-navy)}.card{border-radius:24px}.metric{color:var(--admin-gold)}.btn{font-weight:900}.btn.gold{background:var(--admin-gold)}.btn.danger{background:var(--admin-danger)}.btn.ok{background:var(--admin-ok)}.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.admin-tabs a,.admin-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;font-weight:900;color:var(--ink)}.help{color:#64748b;font-size:.92rem}.notice-ok{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;padding:12px 14px;border-radius:14px;font-weight:800}.notice-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;padding:12px 14px;border-radius:14px;font-weight:800}.preview-img{width:130px;height:84px;object-fit:contain;background:#111;border-radius:14px;padding:7px;border:1px solid var(--line)}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mini-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.table-wrap{overflow:auto}.table .actions form{margin:0}.copy-box{font-family:monospace;background:#111827;color:#fff;border-radius:12px;padding:12px;display:inline-block}@media(max-width:1100px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid,.form-grid-3{grid-template-columns:1fr}}@media(max-width:900px){.top:before{content:''}.sidebar{position:static;width:100%;}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.main{margin-left:0}.grid,.form-grid,.form-grid-3,.chart-grid{grid-template-columns:1fr}.content{padding:16px}.table{min-width:800px}.table-wrap{margin:0 -10px;padding:0 10px}.top{justify-content:flex-end}}


/* Perfil publico por usuario */
.form-full{grid-column:1/-1}
.user-photo-preview{width:160px;height:160px;object-fit:cover;border-radius:18px;display:block;margin:8px 0 12px;background:#eee;border:1px solid var(--line)}
.table-avatar{width:58px;height:58px;object-fit:cover;border-radius:14px;background:#eee;border:1px solid var(--line)}

/* Perfil publico de abogados */
.form-full{grid-column:1/-1}.avatar-preview{width:150px;height:150px;object-fit:cover;object-position:center top;border-radius:18px;border:1px solid var(--admin-line);display:block;margin:8px 0;background:#f6f4ed}.avatar-thumb{width:54px;height:54px;object-fit:cover;object-position:center top;border-radius:14px;border:1px solid var(--admin-line);background:#f6f4ed}.table td{vertical-align:top}.table textarea{min-height:120px}


/* Equipo legal admin */
.form-full{grid-column:1/-1}
.user-photo-preview{width:170px;height:170px;object-fit:cover;border-radius:20px;display:block;margin:8px 0 12px;background:#eee;border:1px solid var(--line)}
.table-avatar{width:62px;height:62px;object-fit:cover;border-radius:16px;background:#eee;border:1px solid var(--line)}

/* Módulo Biografías abogados */
.lawyer-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.lawyer-admin-card{display:block}
.lawyer-admin-head{display:flex;gap:16px;align-items:center;margin-bottom:18px}
.lawyer-admin-photo{width:118px;height:138px;object-fit:cover;object-position:center top;border-radius:18px;border:1px solid var(--admin-line);background:#f6f4ed;flex:0 0 118px}
.lawyer-admin-head h2{margin:0 0 8px!important}
.lawyer-admin-card textarea{min-height:160px}
@media(max-width:1200px){.lawyer-admin-grid{grid-template-columns:1fr}}
@media(max-width:620px){.lawyer-admin-head{align-items:flex-start}.lawyer-admin-photo{width:96px;height:118px;flex-basis:96px}}


/* API movil administrador */
.api-hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px;margin-bottom:18px}.api-phone-card{position:relative;overflow:hidden}.api-phone-icon{width:72px;height:72px;border-radius:24px;background:rgba(198,154,68,.16);color:var(--admin-gold);display:flex;align-items:center;justify-content:center;font-size:34px;margin-bottom:12px}.api-steps{padding-left:20px;line-height:1.8}.api-qr-card{text-align:center}.api-qr{width:220px;max-width:100%;height:auto;border:1px solid var(--admin-line);border-radius:22px;padding:10px;background:#fff}.api-links-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.api-link-card{border:1px solid var(--admin-line);border-radius:20px;padding:16px;background:#fbfaf7}.api-link-head{display:flex;gap:13px;align-items:flex-start;margin-bottom:12px}.api-link-icon{width:44px;height:44px;min-width:44px;border-radius:14px;background:#0f2038;color:#fff;display:flex;align-items:center;justify-content:center}.api-link-card h3{margin:0 0 5px;color:var(--admin-navy)}.api-link-card p{margin:0;color:#64748b}.api-link-card input{font-family:monospace;font-size:.86rem;margin:8px 0 12px}.api-output{margin-top:14px;background:#111827;color:#e5e7eb;border-radius:16px;padding:16px;min-height:110px;white-space:pre-wrap;overflow:auto}.api-security-list{line-height:1.8;padding-left:20px}.api-security-list li{margin-bottom:4px}
@media(max-width:1000px){.api-hero-grid,.api-links-grid{grid-template-columns:1fr}}

/* ===== API como aplicación móvil + carga de fotos visible ===== */
.api-title-row{justify-content:space-between;align-items:center;margin-bottom:18px}.api-admin-page .card{overflow:hidden}.api-app-layout{display:grid;grid-template-columns:360px 1fr;gap:22px;align-items:start;margin-bottom:20px}.phone-mockup{width:100%;max-width:360px;margin:auto;background:#0d1728;border:10px solid #111827;border-radius:42px;box-shadow:0 24px 60px rgba(15,32,56,.28);padding:16px;color:#fff;position:relative;overflow:hidden}.phone-app-hero{display:flex;gap:12px;align-items:center;margin-bottom:16px}.phone-app-hero img{width:52px;height:52px;object-fit:contain;background:#000;border-radius:16px;padding:5px;border:1px solid rgba(198,154,68,.38)}.phone-app-hero small{display:block;color:#cbd5e1;font-size:.76rem}.phone-app-hero strong{display:block;font-size:1.25rem}.phone-card{border-radius:24px;padding:18px;margin-bottom:16px}.dark-card{background:linear-gradient(135deg,#c69a44,#8b6b28);color:#111827}.dark-card small{display:block;font-weight:800;opacity:.78}.dark-card strong{display:block;font-size:1.35rem;margin:4px 0 14px}.phone-mini-btn{border:0;border-radius:999px;background:#111827;color:#fff;padding:10px 13px;font-weight:900}.phone-grid-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:68px}.phone-grid-actions a{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:16px 12px;color:#fff;text-align:center;font-weight:900}.phone-grid-actions a i{display:block;font-size:1.35rem;color:#f4d27c;margin-bottom:7px}.phone-bottom-nav{position:absolute;left:16px;right:16px;bottom:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:rgba(255,255,255,.1);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.13);border-radius:22px;padding:8px}.phone-bottom-nav span{display:flex;flex-direction:column;align-items:center;gap:2px;color:#cbd5e1;font-size:.76rem}.phone-bottom-nav .active{color:#f4d27c}.api-main-card{min-height:360px;display:flex;flex-direction:column;justify-content:center}.api-check-list{line-height:1.8}.api-check-list li{margin-bottom:6px}.api-qr-row{display:grid;grid-template-columns:1fr 140px;gap:16px;align-items:center;border-top:1px solid var(--admin-line);margin-top:20px;padding-top:18px}.api-qr.compact{width:140px}.api-link-primary{border-color:#c69a44;background:linear-gradient(135deg,#fffaf0,#ffffff)}
.photo-upload-box{display:grid;grid-template-columns:190px 1fr;gap:20px;align-items:center;background:linear-gradient(135deg,#fffaf0,#fff);border:1px solid rgba(198,154,68,.35);border-radius:24px;padding:18px;margin-bottom:18px}.photo-upload-preview{width:170px;height:170px;border-radius:28px;background:#f1efe7;border:1px solid var(--admin-line);display:flex;align-items:center;justify-content:center;overflow:hidden}.photo-upload-preview img{width:100%;height:100%;object-fit:cover;object-position:center top}.photo-upload-fields h3{margin:0 0 8px;color:var(--admin-navy)}.photo-upload-fields input[type=file]{border:2px dashed rgba(198,154,68,.65);background:#fffdf7;margin:7px 0 12px;padding:18px}.user-editor-card{border-color:rgba(198,154,68,.35)}.form-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.mobile-app-body{margin:0;background:linear-gradient(180deg,#0f2038,#172c4a 42%,#f5f1e8 42%);font-family:Inter,Arial,sans-serif;color:#0f2038;min-height:100vh;padding:env(safe-area-inset-top) 0 90px}.mobile-app-screen{max-width:520px;margin:0 auto;padding:18px}.app-topbar{display:flex;justify-content:space-between;align-items:center;color:#fff;margin-bottom:18px}.app-topbar small{opacity:.78;font-weight:800}.app-topbar h1{margin:3px 0 0;font-size:1.55rem}.app-topbar img{width:58px;height:58px;object-fit:contain;background:#000;border:1px solid rgba(198,154,68,.45);border-radius:18px;padding:6px}.app-welcome-card{background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.55);border-radius:30px;padding:22px;box-shadow:0 18px 45px rgba(0,0,0,.16);margin-bottom:16px}.app-welcome-card span{display:inline-block;background:#f4ecd8;color:#755418;border-radius:999px;padding:7px 11px;font-size:.8rem;font-weight:900}.app-welcome-card h2{font-size:1.7rem;margin:13px 0 6px}.app-welcome-card p{color:#64748b;line-height:1.55}.app-main-button{width:100%;border:0;border-radius:18px;background:#c69a44;color:#111827;padding:15px;font-weight:900;font-size:1rem;margin-top:8px}.app-welcome-card pre{white-space:pre-wrap;background:#111827;color:#e5e7eb;border-radius:18px;padding:14px;max-height:180px;overflow:auto;font-size:.82rem}.app-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.app-stat-grid article{background:#fff;border:1px solid #e8e2d0;border-radius:20px;padding:14px 8px;text-align:center}.app-stat-grid strong{display:block;font-size:1.55rem;color:#c69a44}.app-stat-grid span{font-size:.76rem;color:#64748b;font-weight:900}.app-actions-list{display:grid;gap:10px}.app-actions-list a{display:grid;grid-template-columns:42px 1fr 18px;gap:12px;align-items:center;background:#fff;border:1px solid #e8e2d0;border-radius:20px;padding:14px;color:#0f2038;box-shadow:0 10px 24px rgba(15,32,56,.06)}.app-actions-list a>i{width:42px;height:42px;border-radius:16px;background:#f4ecd8;color:#a77b2f;display:flex;align-items:center;justify-content:center;font-size:1.1rem}.app-actions-list strong{display:block}.app-actions-list span{display:block;color:#64748b;font-size:.85rem;margin-top:3px}.app-actions-list em{color:#94a3b8}.app-bottom-nav{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);width:min(520px,calc(100% - 24px));display:grid;grid-template-columns:repeat(5,1fr);gap:4px;background:rgba(15,32,56,.95);backdrop-filter:blur(10px);padding:8px;border-radius:24px;border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 40px rgba(0,0,0,.22);z-index:20}.app-bottom-nav a{color:#cbd5e1;text-align:center;font-size:.72rem;font-weight:800;display:flex;flex-direction:column;gap:3px;align-items:center}.app-bottom-nav a i{font-size:1rem}.app-bottom-nav a.active{color:#f4d27c}
@media(max-width:1050px){.api-app-layout{grid-template-columns:1fr}.phone-mockup{max-width:390px}.api-main-card{min-height:auto}.api-qr-row{grid-template-columns:1fr;text-align:center}.api-qr.compact{margin:auto}}@media(max-width:700px){.api-title-row{align-items:flex-start}.photo-upload-box{grid-template-columns:1fr}.photo-upload-preview{width:150px;height:150px}.app-stat-grid{grid-template-columns:repeat(2,1fr)}.mobile-app-screen{padding:14px}.app-actions-list a{grid-template-columns:38px 1fr 14px}.app-actions-list a>i{width:38px;height:38px}.form-title-row{display:block}.phone-mockup{border-width:7px;border-radius:34px}}@media(max-width:430px){.app-bottom-nav span{display:none}.app-topbar h1{font-size:1.35rem}.app-welcome-card{border-radius:24px;padding:18px}.api-links-grid{grid-template-columns:1fr}.sidebar nav{grid-template-columns:1fr}.phone-grid-actions{grid-template-columns:1fr 1fr}}

/* ===== Agente virtual ChatGPT ===== */
.agent-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:start}.agent-toggle{display:flex;gap:10px;align-items:center;background:#fbfaf7;border:1px solid var(--admin-line);border-radius:16px;padding:14px}.agent-toggle input{width:auto}.agent-preview-card h3{margin-top:18px}.agent-phone-preview{background:#0f172a;border:9px solid #111827;border-radius:34px;padding:15px;color:#fff;box-shadow:0 20px 50px rgba(0,0,0,.22)}.agent-preview-head{display:flex;gap:12px;align-items:center;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:12px}.agent-preview-head img{width:44px;height:44px;object-fit:contain;background:#000;border-radius:14px;padding:4px}.agent-preview-head span{display:block;color:#94a3b8;font-size:.8rem}.agent-preview-body{display:flex;flex-direction:column;gap:10px;padding:14px 0}.agent-bubble{max-width:86%;padding:10px 12px;border-radius:16px;font-size:.9rem;line-height:1.4}.agent-bubble.bot{background:#fff;color:#0f172a;border-bottom-left-radius:5px}.agent-bubble.user{background:#c69a44;color:#111827;align-self:flex-end;border-bottom-right-radius:5px}
@media(max-width:1050px){.agent-grid{grid-template-columns:1fr}}

.section-divider{border:0;border-top:1px solid var(--admin-line);margin:28px 0}.config-agent-grid{margin-top:14px}.configuration-page .agent-preview-card{background:#fbfaf7;border:1px solid var(--admin-line);border-radius:20px;padding:16px}.sticky-save-actions{position:sticky;bottom:12px;background:rgba(255,255,255,.92);border:1px solid var(--admin-line);border-radius:18px;padding:10px;box-shadow:0 12px 28px rgba(15,32,56,.12);z-index:5}
@media(max-width:760px){.sticky-save-actions{position:static}.configuration-page .actions{display:block}.configuration-page .mini-actions{margin-top:10px}.config-agent-grid{grid-template-columns:1fr}}

/* Menú administrativo agrupado */
.sidebar nav .nav-group{margin:4px 0;border-radius:18px;background:rgba(255,255,255,.03);}
.sidebar nav .nav-group summary{list-style:none;display:flex;align-items:center;gap:12px;padding:12px 18px;border-radius:18px;color:#fff;font-weight:800;cursor:pointer;}
.sidebar nav .nav-group summary::-webkit-details-marker{display:none;}
.sidebar nav .nav-group[open] summary{background:rgba(198,154,68,.18);color:#f7df9e;}
.sidebar nav .nav-group a{margin-left:14px;padding-left:20px;font-size:.94rem;}

/* Submenú de Configuración dentro de Administración */
.sidebar nav .nav-subgroup{margin:6px 0 6px 14px;border-left:1px solid rgba(198,154,68,.28);padding-left:6px;border-radius:14px;background:rgba(255,255,255,.02)}
.sidebar nav .nav-subgroup summary{list-style:none;display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;color:#f4e6bd;font-weight:900;cursor:pointer;font-size:.95rem}
.sidebar nav .nav-subgroup summary::-webkit-details-marker{display:none}
.sidebar nav .nav-subgroup[open] summary{background:rgba(198,154,68,.16);color:#fff}
.sidebar nav .nav-subgroup a{margin-left:8px;padding:10px 12px 10px 18px;font-size:.9rem;border-radius:12px}
.sidebar nav .nav-subgroup a.active{background:rgba(198,154,68,.26);color:#fff}
@media(max-width:900px){.sidebar nav .nav-subgroup{margin-left:0}.sidebar nav .nav-subgroup a{margin-left:0}.sidebar nav .nav-group,.sidebar nav .nav-subgroup{grid-column:1/-1}}

/* Correccion visual: submenus de Administración y Configuracion no deben verse blancos */
.sidebar nav .nav-group > a,
.sidebar nav .nav-subgroup > a{
  color:#cbd5e1 !important;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.065);
  border-left:3px solid rgba(198,154,68,.42);
  font-weight:700;
}
.sidebar nav .nav-group > a i,
.sidebar nav .nav-subgroup > a i{
  color:#c69a44;
  width:18px;
  text-align:center;
}
.sidebar nav .nav-group > a:hover,
.sidebar nav .nav-subgroup > a:hover{
  color:#ffffff !important;
  background:rgba(198,154,68,.20);
  border-color:rgba(198,154,68,.40);
}
.sidebar nav .nav-group > a.active,
.sidebar nav .nav-subgroup > a.active{
  background:linear-gradient(135deg,#c69a44,#a77b2f) !important;
  color:#111827 !important;
  border-color:rgba(244,210,124,.72);
  box-shadow:0 8px 20px rgba(0,0,0,.20);
}
.sidebar nav .nav-group > a.active i,
.sidebar nav .nav-subgroup > a.active i{
  color:#111827 !important;
}
.sidebar nav .nav-group > summary,
.sidebar nav .nav-subgroup > summary{
  color:#f4d27c !important;
}
@media(max-width:900px){
  .sidebar nav .nav-group > a,
  .sidebar nav .nav-subgroup > a{margin-left:0;}
}

/* ===== BSV colaboración: menú con scroll, documentos y chat ===== */
@media(min-width:901px){
  .sidebar{height:100vh;overflow:hidden;display:flex;flex-direction:column;}
  .sidebar .brand{flex:0 0 auto;margin-bottom:16px;}
  .sidebar nav{display:grid;gap:8px;overflow-y:auto;overflow-x:hidden;max-height:calc(100vh - 92px);padding-right:6px;scrollbar-width:thin;scrollbar-color:rgba(198,154,68,.65) rgba(255,255,255,.05);}
  .sidebar nav::-webkit-scrollbar{width:7px;}
  .sidebar nav::-webkit-scrollbar-track{background:rgba(255,255,255,.05);border-radius:999px;}
  .sidebar nav::-webkit-scrollbar-thumb{background:rgba(198,154,68,.72);border-radius:999px;}
}
.doc-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.chat-layout{display:grid;grid-template-columns:320px 1fr;gap:18px;align-items:start}.chat-contacts{position:sticky;top:86px;max-height:calc(100vh - 120px);overflow:auto}.chat-contact{display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:center;border:1px solid var(--admin-line);border-radius:16px;padding:12px;margin-bottom:9px;background:#fff}.chat-contact.active{border-color:#c69a44;background:#fffaf0}.chat-contact small{display:block;color:#64748b;margin-top:3px}.chat-contact em{background:#c69a44;color:#111827;border-radius:999px;min-width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:900}.presence{width:12px;height:12px;border-radius:50%;display:inline-block;background:#94a3b8;box-shadow:0 0 0 3px rgba(148,163,184,.14)}.presence.online{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18)}.presence.offline{background:#94a3b8}.chat-panel{min-height:640px;display:flex;flex-direction:column}.chat-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--admin-line);padding-bottom:12px;margin-bottom:12px}.chat-head h2{margin:0}.chat-messages{height:440px;overflow:auto;background:#fbfaf7;border:1px solid var(--admin-line);border-radius:22px;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-bubble{max-width:76%;position:relative;border:1px solid var(--admin-line);border-radius:20px;padding:12px 42px 12px 14px;background:#fff;box-shadow:0 8px 22px rgba(15,32,56,.05)}.chat-bubble.mine{align-self:flex-end;background:#0f2038;color:#fff;border-color:#0f2038}.chat-bubble.theirs{align-self:flex-start}.chat-bubble small{display:block;font-size:.76rem;opacity:.72;margin-bottom:5px}.chat-bubble p{margin:0 0 8px;white-space:pre-wrap;line-height:1.45}.chat-attachment{display:inline-flex;gap:8px;align-items:center;background:rgba(198,154,68,.15);border:1px solid rgba(198,154,68,.32);border-radius:999px;padding:8px 10px;font-weight:800;color:inherit}.chat-meta{font-size:.72rem;opacity:.7;margin-top:6px}.chat-delete{position:absolute;top:8px;right:8px;margin:0}.chat-delete button{border:0;background:rgba(0,0,0,.08);color:inherit;width:26px;height:26px;border-radius:50%;cursor:pointer}.chat-compose{margin-top:14px;display:grid;grid-template-columns:1fr 220px auto;gap:10px;align-items:end}.chat-compose textarea{resize:vertical;min-height:58px}.chat-compose input[type=file]{padding:9px}.document-card-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:1000px){.chat-layout{grid-template-columns:1fr}.chat-contacts{position:static;max-height:none}.chat-compose{grid-template-columns:1fr}.chat-bubble{max-width:92%}.grid[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}}
.app-bottom-nav{grid-template-columns:repeat(auto-fit,minmax(58px,1fr))!important;}

/* ===== FIX 2026-05-22: scroll visible para menu de administrador ===== */
@media (min-width: 901px){
  html, body{min-height:100%;}
  .sidebar{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    bottom:0 !important;
    height:100vh !important;
    max-height:100vh !important;
    overflow-y:scroll !important;
    overflow-x:hidden !important;
    display:block !important;
    padding-bottom:90px !important;
    scrollbar-width:auto !important;
    scrollbar-color:#c69a44 rgba(255,255,255,.10) !important;
  }
  .sidebar::-webkit-scrollbar{width:10px !important;}
  .sidebar::-webkit-scrollbar-track{background:rgba(255,255,255,.10) !important;border-radius:999px !important;}
  .sidebar::-webkit-scrollbar-thumb{background:#c69a44 !important;border-radius:999px !important;border:2px solid rgba(7,7,7,.9) !important;}
  .sidebar .brand{position:sticky;top:0;z-index:2;background:linear-gradient(180deg,#070707,#111827);padding-bottom:12px;margin-bottom:12px !important;}
  .sidebar nav{
    max-height:none !important;
    overflow:visible !important;
    padding-right:8px !important;
    padding-bottom:45px !important;
  }
}

/* ===== 2026-05-23: login web con recuperar contraseña ===== */
.admin-login-body{min-height:100vh;margin:0;background:#0f172a;display:grid;place-items:center;padding:24px;font-family:Inter,Arial,sans-serif;color:#0f2038;}
.admin-login-shell{width:100%;display:grid;place-items:center;}
.admin-login-card{width:min(100%,500px);background:#fff;border:1px solid var(--admin-line);border-radius:28px;padding:28px;box-shadow:0 28px 70px rgba(0,0,0,.32);}
.admin-login-logo{width:124px;height:124px;object-fit:contain;background:#000;border-radius:4px;display:block;margin:0 auto 18px;padding:8px;}
.admin-login-card h1{margin:0 0 8px;color:#0f2038;font-size:clamp(1.55rem,5vw,2rem);line-height:1.1;text-align:left;}
.admin-login-help{margin:0 0 18px;color:#64748b;line-height:1.45;}
.login-input-icon{position:relative;margin:6px 0 12px;}
.login-input-icon input{height:50px;padding-right:48px;font-size:16px;}
.login-input-icon i{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:10px;background:#e5e7eb;color:#111827;display:flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;}
.login-submit{width:100%;justify-content:center;margin-top:10px;font-size:1rem;min-height:50px;}
.login-links-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;}
.login-links-row a{color:#8b6b28;font-weight:900;display:inline-flex;align-items:center;gap:7px;}
@media(max-width:560px){.admin-login-body{padding:14px;background:#f6f4ed;place-items:stretch}.admin-login-shell{place-items:center}.admin-login-card{border-radius:24px;padding:22px;box-shadow:0 16px 38px rgba(15,32,56,.14)}.admin-login-logo{width:96px;height:96px}.login-links-row{display:grid;grid-template-columns:1fr}.login-links-row a{justify-content:center;padding:11px;border:1px solid var(--admin-line);border-radius:14px;background:#fbfaf7}}

/* ===== 2026-05-23: admin responsive real para Citas y Clientes ===== */
@media(max-width:720px){
  body{overflow-x:hidden;background:#f6f4ed;}
  .main{width:100%;margin-left:0!important;overflow-x:hidden;}
  .top{height:auto;min-height:74px;padding:16px;justify-content:flex-start!important;}
  .top-title b{font-size:1.05rem}.top-title span{font-size:.9rem}
  .content{padding:22px 14px 90px!important;max-width:100vw;overflow:hidden;}
  .content>.actions{display:grid!important;grid-template-columns:1fr!important;align-items:start!important;gap:12px!important;}
  .content h1{font-size:2.25rem!important;line-height:1.05!important;margin-bottom:4px!important;}
  .content>.actions .btn,.content>.actions a.btn{width:100%;justify-content:center;min-height:54px;border-radius:18px;font-size:1rem;}
  .card{padding:18px!important;border-radius:24px!important;box-shadow:0 12px 28px rgba(15,32,56,.07)!important;}
  .form-grid,.form-grid-3{grid-template-columns:1fr!important;gap:14px!important;}
  input,select,textarea{font-size:16px!important;min-height:48px;border-radius:16px!important;}
  .btn{min-height:46px;border-radius:16px;justify-content:center;}
  .mini-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;align-items:stretch!important;}
  .mini-actions .btn,.mini-actions button,.mini-actions select{width:100%;justify-content:center;}
  .sidebar{position:static!important;width:100%!important;max-height:240px!important;overflow:auto!important;padding:16px!important;border-bottom:1px solid rgba(198,154,68,.25);}
  .sidebar .brand{margin-bottom:12px!important;position:static!important;background:transparent!important;}
  .sidebar nav{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;overflow:visible!important;max-height:none!important;padding:0!important;}
  .sidebar nav a,.sidebar nav summary{font-size:.9rem!important;padding:11px!important;border-radius:14px!important;}
  .sidebar nav .nav-group,.sidebar nav .nav-subgroup{grid-column:1/-1!important;margin-left:0!important;}
  .table-wrap{overflow:visible!important;margin:0!important;padding:0!important;}
  .table{min-width:0!important;width:100%!important;background:transparent!important;border-radius:0!important;overflow:visible!important;}
  .table thead,.table tbody,.table tr,.table th,.table td{display:block!important;width:100%!important;}
  .table tr:first-child{display:none!important;}
  .table tr{background:#fff;border:1px solid var(--admin-line);border-radius:24px;margin:0 0 14px;padding:14px;box-shadow:0 10px 24px rgba(15,32,56,.06);}
  .table td{border:0!important;padding:10px 0!important;word-break:break-word;}
  .table td:before{content:attr(data-label);display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:900;margin-bottom:4px;}
  .table td:empty{display:none!important;}
}


/* ===== 2026-05-24: módulos admin/API en móvil con menú lateral cerrado ===== */
.admin-mobile-topbar,.admin-sidebar-backdrop,.admin-sidebar-close{display:none;}
.top-title{display:flex;align-items:center;gap:12px;min-width:0;}
.top-title .top-avatar{width:44px;height:44px;border-radius:14px;object-fit:cover;background:#eef2f7;border:1px solid var(--admin-line);flex:0 0 44px;}
.top-title b{display:block;color:var(--admin-navy);line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw;}
.top-title span{text-transform:capitalize;}

@media(max-width:900px){
  html,body{min-height:100%;overflow-x:hidden!important;background:#f6f4ed!important;}
  body{padding-top:72px!important;}
  .admin-mobile-topbar{position:fixed!important;top:0!important;left:0!important;right:0!important;height:72px!important;z-index:1200!important;display:flex!important;align-items:center!important;gap:12px!important;padding:12px 16px!important;background:linear-gradient(135deg,#071321,#10233c)!important;color:#fff!important;box-shadow:0 12px 28px rgba(15,32,56,.22)!important;}
  .admin-mobile-topbar img{width:44px!important;height:44px!important;object-fit:contain!important;background:#000!important;border-radius:13px!important;padding:4px!important;border:1px solid rgba(198,154,68,.45)!important;}
  .admin-mobile-topbar strong{display:block!important;font-size:1rem!important;line-height:1.1!important;color:#fff!important;}
  .admin-mobile-topbar span{display:block!important;margin-top:2px!important;font-size:.78rem!important;color:#f4d27c!important;font-weight:800!important;text-transform:capitalize!important;}
  .admin-mobile-menu-btn{width:46px!important;height:46px!important;min-width:46px!important;border:0!important;border-radius:16px!important;background:rgba(255,255,255,.10)!important;color:#fff!important;font-size:1.25rem!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;}
  .admin-sidebar-backdrop{position:fixed!important;inset:0!important;background:rgba(2,8,23,.58)!important;backdrop-filter:blur(2px)!important;-webkit-backdrop-filter:blur(2px)!important;z-index:1201!important;opacity:0!important;pointer-events:none!important;display:block!important;transition:opacity .22s ease!important;}
  body.admin-menu-open .admin-sidebar-backdrop{opacity:1!important;pointer-events:auto!important;}
  .admin-sidebar-close{display:flex!important;position:absolute!important;right:12px!important;top:12px!important;width:42px!important;height:42px!important;border:0!important;border-radius:14px!important;background:rgba(255,255,255,.10)!important;color:#fff!important;align-items:center!important;justify-content:center!important;font-size:1.1rem!important;}
  .sidebar{position:fixed!important;top:0!important;bottom:0!important;left:0!important;right:auto!important;width:min(86vw,330px)!important;height:100dvh!important;max-height:100dvh!important;min-height:100dvh!important;z-index:1202!important;display:block!important;overflow-y:auto!important;overflow-x:hidden!important;padding:18px 16px 110px!important;border:0!important;transform:translateX(-106%)!important;transition:transform .24s ease!important;box-shadow:18px 0 45px rgba(0,0,0,.30)!important;scrollbar-width:thin!important;}
  body.admin-menu-open .sidebar{transform:translateX(0)!important;}
  .sidebar .brand{position:relative!important;top:auto!important;margin:46px 0 18px!important;padding-bottom:14px!important;background:transparent!important;border-bottom:1px solid rgba(255,255,255,.10)!important;}
  .sidebar .brand img{width:50px!important;height:50px!important;}
  .sidebar nav{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;max-height:none!important;overflow:visible!important;padding:0!important;}
  .sidebar nav a,.sidebar nav summary{width:100%!important;min-height:46px!important;font-size:.95rem!important;padding:12px 14px!important;border-radius:16px!important;display:flex!important;align-items:center!important;gap:10px!important;}
  .sidebar nav .nav-group,.sidebar nav .nav-subgroup{grid-column:1/-1!important;margin:0!important;}
  .sidebar nav .nav-group > a,.sidebar nav .nav-subgroup > a{margin-left:0!important;}
  .main{margin-left:0!important;width:100%!important;min-height:calc(100vh - 72px)!important;overflow-x:hidden!important;}
  .top{height:auto!important;min-height:78px!important;margin:0!important;padding:14px 16px!important;justify-content:flex-start!important;background:#fff!important;border-bottom:1px solid var(--admin-line)!important;box-shadow:0 8px 22px rgba(15,32,56,.06)!important;}
  .top:before{content:''!important;display:none!important;}
  .top-title{width:100%!important;display:flex!important;align-items:center!important;gap:12px!important;}
  .top-title .top-avatar{width:48px!important;height:48px!important;border-radius:16px!important;}
  .top-title b{max-width:calc(100vw - 110px)!important;font-size:1.05rem!important;color:#0f2038!important;}
  .top-title span{font-size:.86rem!important;color:#64748b!important;}
  .content{padding:22px 14px 96px!important;max-width:100vw!important;overflow:hidden!important;}
  .content h1{font-size:2rem!important;line-height:1.05!important;margin:0!important;color:#0f2038!important;}
  .content>.actions{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;gap:12px!important;margin-bottom:16px!important;}
  .content>.actions .btn,.content>.actions a.btn{width:100%!important;justify-content:center!important;min-height:52px!important;border-radius:18px!important;font-size:1rem!important;}
  .grid,.form-grid,.form-grid-3,.chart-grid,.api-hero-grid,.api-links-grid,.api-app-layout,.lawyer-admin-grid,.doc-mini-grid{grid-template-columns:1fr!important;}
  .card{padding:18px!important;border-radius:24px!important;box-shadow:0 12px 30px rgba(15,32,56,.08)!important;}
  input,select,textarea{font-size:16px!important;min-height:48px!important;border-radius:16px!important;}
  .btn{min-height:46px!important;border-radius:16px!important;justify-content:center!important;}
  .table-wrap{overflow:visible!important;margin:0!important;padding:0!important;}
  .table{min-width:0!important;width:100%!important;background:transparent!important;border-radius:0!important;overflow:visible!important;}
  .table thead,.table tbody,.table tr,.table th,.table td{display:block!important;width:100%!important;}
  .table tr:first-child{display:none!important;}
  .table tr{background:#fff!important;border:1px solid var(--admin-line)!important;border-radius:24px!important;margin:0 0 14px!important;padding:14px!important;box-shadow:0 10px 24px rgba(15,32,56,.06)!important;}
  .table td{border:0!important;padding:10px 0!important;word-break:break-word!important;}
  .table td:before{content:attr(data-label);display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:900;margin-bottom:4px;}
  .table td:empty{display:none!important;}
  .mini-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;align-items:stretch!important;}
  .mini-actions .btn,.mini-actions button,.mini-actions select,.mini-actions form{width:100%!important;justify-content:center!important;}
  .chat-layout{grid-template-columns:1fr!important;}
  .chat-panel{min-height:auto!important;}
  .chat-messages{height:52vh!important;}
  .chat-compose{grid-template-columns:1fr!important;}
  .chat-bubble{max-width:94%!important;}
}

/* ===== 2026-05-24: panel principal y filtros corregidos ===== */
.dashboard-content{display:grid;gap:18px}
.dashboard-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;align-items:center;background:linear-gradient(135deg,#0a1526,#112b4c);color:#fff;border:0;overflow:hidden;position:relative}
.dashboard-hero:after{content:'';position:absolute;right:-80px;top:-90px;width:230px;height:230px;border-radius:999px;background:rgba(198,154,68,.16)}
.dashboard-hero-main,.dashboard-quick-actions{position:relative;z-index:1}
.dashboard-kicker{display:inline-flex;align-items:center;gap:8px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:#c69a44;margin-bottom:6px}
.dashboard-hero h1{color:#fff!important;margin:0 0 8px!important;font-size:clamp(2rem,4vw,3rem)!important;line-height:1.04!important}
.dashboard-hero p{margin:0;color:#e5edf7;max-width:720px}
.dashboard-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dashboard-quick-actions .btn{width:100%;justify-content:center;min-height:48px}
.stat-card{position:relative;overflow:hidden}
.stat-card span{display:block;font-weight:900;color:#0f2038;margin-bottom:4px}
.stat-card small{display:block;color:#64748b;font-weight:700}.stat-card .metric{line-height:1}
.next-appointment{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fffdf7}.next-appointment h2{margin:2px 0 4px!important}.next-appointment p{margin:0;color:#64748b;font-weight:700}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.section-head h2{margin:0!important}.section-head .btn{white-space:nowrap}
.calendar-section{padding:18px!important}.calendar-section .calendar-wrap{padding:0;border:0;background:transparent;border-radius:0}.calendar-wrap{max-width:100%;overflow:hidden}.calendar-wrap *{box-sizing:border-box}.fc{max-width:100%;font-family:Inter,Arial,sans-serif}.fc .fc-toolbar-title{text-transform:capitalize;color:#0f2038;font-weight:950}.fc .fc-button{background:#16263c!important;border:0!important;border-radius:12px!important;font-weight:900!important;text-transform:none!important;box-shadow:none!important}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background:#c69a44!important;color:#111!important}.fc .fc-daygrid-day-number{color:#0f2038;font-weight:800}.fc .fc-col-header-cell-cushion{text-transform:capitalize;color:#0f2038;font-weight:950}.fc .fc-event{border:0!important;border-radius:999px!important;padding:2px 5px!important;font-weight:800!important}.appointments-card .table-wrap{margin-top:4px}
.filter-card{width:100%;max-width:100%;overflow:hidden}.filter-card .form-grid{width:100%;max-width:100%;min-width:0}.filter-card .form-grid>div,.form-grid>div,.form-grid-3>div{min-width:0;max-width:100%}.filter-card input,.filter-card select,.filter-card textarea,.card input,.card select,.card textarea{width:100%;max-width:100%;box-sizing:border-box;display:block}.content form.card{max-width:100%}

@media(max-width:900px){
  .dashboard-content{gap:16px!important}.dashboard-hero{grid-template-columns:1fr!important;padding:20px!important;border-radius:26px!important}.dashboard-hero h1{font-size:2.05rem!important}.dashboard-quick-actions{grid-template-columns:1fr!important}.dashboard-stats{gap:12px!important}.stat-card{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.stat-card small{grid-column:1/-1}.stat-card .metric{font-size:2.1rem!important}.next-appointment{display:grid;grid-template-columns:1fr!important}.section-head{display:grid;grid-template-columns:1fr!important;align-items:start}.section-head .btn{width:100%;justify-content:center}.calendar-section{padding:14px!important;border-radius:26px!important}.calendar-wrap{overflow:hidden!important;width:100%!important;max-width:100%!important}.fc{font-size:.88rem!important;width:100%!important;max-width:100%!important}.fc .fc-toolbar.fc-header-toolbar{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important;margin-bottom:12px!important}.fc .fc-toolbar-chunk{display:flex!important;justify-content:center!important;flex-wrap:wrap!important;gap:8px!important;max-width:100%!important}.fc .fc-toolbar-chunk:nth-child(2){order:1!important}.fc .fc-toolbar-chunk:nth-child(1){order:2!important}.fc .fc-toolbar-chunk:nth-child(3){order:3!important}.fc .fc-toolbar-title{font-size:1.55rem!important;line-height:1.12!important;text-align:center!important;white-space:normal!important;margin:0!important;display:block!important;width:100%!important}.fc .fc-button{min-height:38px!important;padding:8px 10px!important;font-size:.82rem!important;border-radius:12px!important}.fc .fc-button-group{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;gap:6px!important}.fc .fc-button-group>.fc-button{border-radius:12px!important;margin:0!important}.fc .fc-daygrid-day-frame{min-height:58px!important}.fc .fc-daygrid-day-number{font-size:.82rem!important;padding:4px!important}.fc .fc-col-header-cell-cushion{font-size:.82rem!important;padding:6px 2px!important}.fc-theme-standard td,.fc-theme-standard th{border-color:#e8e2d0!important}.filter-card{padding:16px!important;margin:0!important;width:100%!important;max-width:100%!important;overflow:hidden!important}.filter-card .form-grid{display:grid!important;grid-template-columns:1fr!important;gap:13px!important;width:100%!important;max-width:100%!important}.filter-card label{display:block;margin-bottom:6px}.filter-card input,.filter-card select{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;box-sizing:border-box!important}.content form.card{width:100%!important;max-width:100%!important;overflow:hidden!important}.content>.actions{grid-template-columns:1fr auto!important;align-items:center!important}.content>.actions h1{margin:0!important}.content>.actions>a.btn{width:auto!important;min-width:118px!important;padding-left:14px!important;padding-right:14px!important}
}

@media(max-width:420px){
  .fc .fc-toolbar-title{font-size:1.38rem!important}.fc .fc-button{font-size:.78rem!important;padding:7px 8px!important}.fc .fc-daygrid-day-frame{min-height:52px!important}.content>.actions{grid-template-columns:1fr!important}.content>.actions>a.btn{width:100%!important}
}

/* ===== 2026-05-24: fix definitivo filtros Citas date inputs ===== */
.citas-filter-card{
  width:100%!important;
  max-width:100%!important;
  padding:18px!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
.citas-filter-grid{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:end!important;
  box-sizing:border-box!important;
}
.citas-filter-grid .form-field{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.citas-filter-grid label{
  display:block!important;
  margin:0 0 7px!important;
  color:#0f2038!important;
  font-size:13px!important;
  font-weight:900!important;
}
.citas-filter-grid input,
.citas-filter-grid select{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:54px!important;
  min-height:54px!important;
  line-height:normal!important;
  margin:0!important;
  padding:0 14px!important;
  border:1px solid #e8e2d0!important;
  border-radius:16px!important;
  background:#fff!important;
  color:#0f2038!important;
  font-size:16px!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  box-shadow:none!important;
}
.citas-filter-grid input[type="date"]{
  -webkit-appearance:none!important;
  appearance:none!important;
  text-align:left!important;
  font-family:Inter,Arial,sans-serif!important;
}
.citas-filter-grid input[type="date"]::-webkit-date-and-time-value{
  min-height:54px!important;
  line-height:54px!important;
  padding:0!important;
  margin:0!important;
  text-align:left!important;
}
.citas-filter-grid input[type="date"]::-webkit-calendar-picker-indicator{
  padding:0!important;
  margin:0!important;
  opacity:.75!important;
}
.citas-filter-submit{
  display:flex!important;
  align-items:end!important;
}
.citas-filter-submit .btn{
  height:54px!important;
  min-height:54px!important;
  border-radius:16px!important;
  padding:0 20px!important;
  justify-content:center!important;
  white-space:nowrap!important;
}
@media(max-width:900px){
  .citas-filter-card{
    padding:18px!important;
    margin:0 0 10px!important;
    border-radius:24px!important;
  }
  .citas-filter-grid{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  .citas-filter-submit .btn{
    width:auto!important;
    min-width:108px!important;
  }
}
@media(max-width:420px){
  .citas-filter-card{padding:16px!important;}
  .citas-filter-grid input,
  .citas-filter-grid select,
  .citas-filter-submit .btn{
    height:52px!important;
    min-height:52px!important;
  }
  .citas-filter-grid input[type="date"]::-webkit-date-and-time-value{
    min-height:52px!important;
    line-height:52px!important;
  }
}


/* ===== 2026-05-24: reparación final Citas Desde/Hasta sin recorte en móvil ===== */
.citas-filter-card,
form.citas-filter-card{
  padding:20px!important;
  overflow:visible!important;
}
.citas-filter-card .citas-filter-grid{
  overflow:visible!important;
}
.citas-filter-card .form-field{
  display:block!important;
  position:relative!important;
  overflow:visible!important;
  padding:0!important;
  margin:0!important;
}
.citas-filter-card .form-field label{
  display:block!important;
  margin:0 0 8px!important;
  line-height:1.2!important;
}
.citas-filter-card input.bsv-date-filter,
.citas-filter-card input[type="text"].bsv-date-filter{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:54px!important;
  padding:15px 16px!important;
  margin:0!important;
  line-height:22px!important;
  border:1px solid #e8e2d0!important;
  border-radius:16px!important;
  background:#ffffff!important;
  color:#0f2038!important;
  font-size:16px!important;
  font-family:Inter,Arial,sans-serif!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  clip-path:none!important;
  box-shadow:none!important;
  -webkit-appearance:none!important;
  appearance:none!important;
}
.citas-filter-card input.bsv-date-filter::placeholder{
  color:#94a3b8!important;
  opacity:1!important;
}
.citas-filter-card select{
  min-height:54px!important;
  padding:0 14px!important;
  box-sizing:border-box!important;
}
@media(max-width:900px){
  .citas-filter-card,
  form.citas-filter-card{
    padding:18px!important;
    border-radius:24px!important;
  }
  .citas-filter-card .citas-filter-grid{
    grid-template-columns:1fr!important;
    gap:16px!important;
  }
  .citas-filter-card input.bsv-date-filter,
  .citas-filter-card input[type="text"].bsv-date-filter,
  .citas-filter-card select{
    width:100%!important;
    max-width:100%!important;
    min-height:56px!important;
    border-radius:17px!important;
  }
}
@media(max-width:420px){
  .citas-filter-card,
  form.citas-filter-card{
    padding:18px 14px!important;
  }
  .citas-filter-card input.bsv-date-filter,
  .citas-filter-card input[type="text"].bsv-date-filter,
  .citas-filter-card select{
    min-height:56px!important;
    padding-left:14px!important;
    padding-right:14px!important;
  }
}


/* Vista previa del ajuste de recorte para fotos de Nosotros */
.user-photo-preview,
.table-avatar {
  object-position: var(--lawyer-preview-position, center top) !important;
}
.image-position-control {
  background: #fffdf7;
  border: 1px dashed rgba(198,154,68,.45);
  border-radius: 18px;
  padding: 14px;
}


/* ===== Módulo Diseño del sitio ===== */
.design-admin-page .help{color:#667085;line-height:1.5;margin:.35rem 0 0;display:block}.design-form{padding:0!important;overflow:hidden}.design-savebar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid #eef2f7;padding:16px 20px;display:flex;justify-content:flex-end}.design-section{border-top:1px solid #eef2f7;padding:0}.design-section summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:20px 24px;font-weight:950;color:#0f2038;font-size:1.08rem}.design-section summary::-webkit-details-marker{display:none}.design-section summary i{color:#c69a44}.design-section h2{margin:0;padding:12px 24px 4px;color:#0f2038;font-size:1.05rem}.design-section .form-grid,.design-section .form-grid-3,.image-admin-grid{padding:14px 24px 24px}.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.design-color-grid input[type=color]{height:48px;padding:4px;border-radius:14px;cursor:pointer}.image-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.image-admin-card{border:1px solid #e8e2d0;background:#fffdf7;border-radius:22px;padding:16px;display:grid;gap:10px;align-content:start}.image-admin-card label{margin:0!important}.preview-img{width:100%;height:150px;object-fit:cover;border-radius:16px;background:#f4f1e8;border:1px solid #e8e2d0}.preview-img-adjustable{object-position:var(--preview-image-position,center center)}.preview-img-adjustable.portrait{height:240px}.design-admin-page input,.design-admin-page select,.design-admin-page textarea{width:100%;box-sizing:border-box}.design-admin-page textarea{min-height:96px}.notice-ok{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0;border-radius:16px;padding:12px 14px}.notice-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:16px;padding:12px 14px}@media(max-width:1000px){.form-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.form-grid-3,.design-section .form-grid{grid-template-columns:1fr!important}.design-savebar{justify-content:stretch}.design-savebar .btn{width:100%;justify-content:center}.design-section summary{padding:18px}.design-section .form-grid,.design-section .form-grid-3,.image-admin-grid{padding:12px 18px 20px}}

/* BSV ayuda, permisos y validacion final */
.admin-help-box{margin:18px 24px 0;background:#fffdf7;border:1px solid #e8e2d0;border-radius:18px;padding:0;box-shadow:0 8px 24px rgba(15,32,56,.05)}
.admin-help-box summary{cursor:pointer;padding:14px 18px;font-weight:900;color:#0f2038;display:flex;align-items:center;gap:10px;list-style:none}.admin-help-box summary::-webkit-details-marker{display:none}.admin-help-box summary i{color:#c69a44}.admin-help-box p{margin:0;padding:0 18px 16px;color:#64748b;line-height:1.55}.form-error-box{margin:0 0 16px}.permission-grid{display:grid;grid-template-columns:1.2fr repeat(8,minmax(90px,1fr));gap:0;border:1px solid #e8e2d0;border-radius:18px;overflow:auto;background:#fff}.permission-grid>div{padding:11px 12px;border-bottom:1px solid #e8e2d0;border-right:1px solid #e8e2d0;min-width:110px}.permission-grid .head{background:#0f2038;color:#fff;font-weight:900}.permission-grid .module-cell{font-weight:900;color:#0f2038;min-width:230px}.permission-grid label{display:flex;align-items:center;justify-content:center;gap:6px;margin:0!important}.permission-grid input[type=checkbox]{width:20px;height:20px}.mail-layout{display:grid;grid-template-columns:360px 1fr;gap:18px}.mail-card{background:#fff;border:1px solid #e8e2d0;border-radius:22px;padding:18px}.mail-list{display:grid;gap:10px}.mail-item{border:1px solid #e8e2d0;border-radius:16px;padding:12px;background:#fffdf7}.mail-item strong{display:block;color:#0f2038}.mail-item small{color:#64748b}.badge-soft{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#f4f0df;color:#735719;padding:5px 10px;font-weight:900;font-size:.82rem}@media(max-width:1100px){.mail-layout{grid-template-columns:1fr}.permission-grid{display:block}.permission-grid>div{border-right:0}.permission-grid .head:not(:first-child){display:none}}

/* Preview de tamaño/recorte configurable en Diseño */
.preview-img-adjustable{transform:scale(var(--preview-image-scale,1));transform-origin:center center;}
.image-admin-card{overflow:hidden;}
.correo-page details.card summary{list-style:none;}
.correo-page details.card summary::-webkit-details-marker{display:none;}
.mail-config-form h3{margin-top:18px;color:#0f2038;}


/* ===== FIX 2026-05-26: matriz de módulos con todos los roles visibles ===== */
.permission-grid{
  grid-template-columns:minmax(240px,1.35fr) repeat(var(--roles-count, 8), minmax(150px, 1fr)) !important;
  width:100%;
  overflow:auto;
}
.permission-grid .module-cell{position:sticky;left:0;z-index:2;background:#fff;}
.permission-grid .head:first-child{position:sticky;left:0;z-index:3;}
.permission-grid input[type=checkbox]{width:18px;height:18px;vertical-align:middle;}
.permission-grid label{display:flex;gap:7px;align-items:flex-start;justify-content:center;flex-wrap:wrap;}
.permission-grid small.help{font-size:.72rem;line-height:1.1;color:#64748b;}
@media(max-width:900px){.permission-grid{grid-template-columns:minmax(210px,1.1fr) repeat(var(--roles-count, 8), minmax(135px, 1fr)) !important;}}

/* ===== 2026-05-26: módulos por rol en lista profesional ===== */
.modules-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;align-items:start}.modules-roles-panel{position:sticky;top:18px}.role-picker-list{display:grid;gap:9px;margin-top:12px}.role-picker-item{display:grid;gap:4px;padding:12px 14px;border:1px solid #e8e2d0;border-radius:16px;background:#fffdf7;color:#0f2038;transition:.18s ease}.role-picker-item span{display:flex;gap:9px;align-items:center;font-weight:900}.role-picker-item small{color:#64748b;font-weight:800}.role-picker-item:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,32,56,.08)}.role-picker-item.active{border-color:#c69a44;background:#fff7df;box-shadow:0 0 0 3px rgba(198,154,68,.13)}.role-picker-item.locked span i{color:#b98b33}.modules-editor-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid #eef2f7;padding-bottom:14px;margin-bottom:14px}.modules-role-jump{min-width:260px}.module-group-title{margin:20px 0 10px;color:#0f2038;font-size:1rem}.module-list{display:grid;gap:10px}.module-row{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:14px;border:1px solid #e8e2d0;background:#fff;border-radius:18px;padding:13px 14px;cursor:pointer}.module-row-icon{width:46px;height:46px;border-radius:15px;background:#f4ecd8;color:#a77b2f;display:flex;align-items:center;justify-content:center;font-size:1.05rem}.module-row-text strong,.module-row strong{display:block;color:#0f2038}.module-row-text small,.module-row small{display:block;color:#64748b;line-height:1.35;margin-top:2px}.module-row-text em{display:block;color:#991b1b;font-style:normal;font-weight:850;margin-top:4px;font-size:.8rem}.switch-wrap{position:relative;display:inline-flex;align-items:center}.switch-wrap input{position:absolute;opacity:0;pointer-events:none}.switch-ui{width:56px;height:30px;border-radius:999px;background:#cbd5e1;position:relative;transition:.2s ease}.switch-ui:before{content:"";position:absolute;left:4px;top:4px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.18);transition:.2s ease}.switch-wrap input:checked + .switch-ui{background:#c69a44}.switch-wrap input:checked + .switch-ui:before{transform:translateX(26px)}.module-row.locked{opacity:.7;background:#f8fafc;cursor:not-allowed}.module-row.locked .switch-ui{background:#94a3b8}.module-row.on{border-color:#ead9ad;background:#fffdf7}.sticky-actions{position:sticky;bottom:14px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid #eef2f7;border-radius:18px;padding:12px;margin-top:18px;box-shadow:0 16px 36px rgba(15,32,56,.12)}@media(max-width:1000px){.modules-layout{grid-template-columns:1fr}.modules-roles-panel{position:relative;top:auto}.modules-editor-head{display:block}.modules-role-jump{min-width:0}}

/* ===== 2026-05-26: correo corporativo profesional ===== */
.professional-mail .mail-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.professional-mail .mail-tabs a{display:inline-flex;align-items:center;gap:8px;border:1px solid #e8e2d0;background:#fff;color:#0f2038;border-radius:999px;padding:10px 14px;font-weight:900}.professional-mail .mail-tabs a.active{background:#0f2038;color:#fff;border-color:#0f2038}.mail-layout-clean{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.75fr);gap:18px;align-items:start}.mail-compose-card textarea{min-height:220px}.mail-list.compact{max-height:520px;overflow:auto}.account-item{display:flex;justify-content:space-between;gap:12px;align-items:center}.technical-details{border:1px solid #e8e2d0;border-radius:18px;margin-top:14px;background:#fffdf7;overflow:hidden}.technical-details summary{cursor:pointer;padding:14px 16px;font-weight:950;color:#0f2038;list-style:none;display:flex;gap:9px;align-items:center}.technical-details summary::-webkit-details-marker{display:none}.technical-details .form-grid{padding:0 16px 16px}.signature-preview{border:1px dashed #d8c796;background:#fff;border-radius:16px;padding:14px;margin-top:10px;overflow:auto}.signature-preview img{height:auto;max-width:100%;display:inline-block}.signature-list{gap:16px}.signature-form h3{margin:0;color:#0f2038}.check-inline{display:inline-flex!important;align-items:center;gap:8px;margin:10px 0!important;font-weight:850}.check-inline input{width:auto!important}.inbox-list{margin-top:16px}.mail-card h2{margin-top:0}.mini-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.mail-technical-card{overflow:hidden}@media(max-width:1100px){.mail-layout-clean{grid-template-columns:1fr}.account-item{display:grid}.professional-mail .mail-tabs a{flex:1 1 160px;justify-content:center}}


/* Permisos por rol: lista simple y profesional */
.simple-permissions-card { max-width: 980px; }
.simple-module-list { display: grid; gap: 10px; margin-top: 16px; }
.simple-module-item { display: grid; grid-template-columns: auto 28px 1fr auto; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid rgba(15,32,56,.12); border-radius: 14px; background: #fff; }
.simple-module-item > input { width: 18px; height: 18px; accent-color: var(--gold, #a79d3c); }
.simple-module-item > i { color: var(--navy, #0f2038); text-align: center; }
.simple-module-item span { font-weight: 800; color: #102033; }
.simple-module-item em { font-style: normal; font-size: 12px; font-weight: 800; border-radius: 999px; padding: 5px 9px; background: #f2f4f7; color: #475569; }
.simple-module-item.is-on { border-color: rgba(167,157,60,.35); background: linear-gradient(180deg,#fff,#fffdf4); }
.simple-module-item.is-on em { background: rgba(167,157,60,.14); color: #6b5f13; }
.simple-module-item.is-off { opacity: .82; }
.simple-module-item.is-locked { opacity: .72; background: #f8fafc; }
.reserved-modules-box { margin-top: 18px; padding: 12px 14px; border: 1px dashed rgba(15,32,56,.18); border-radius: 14px; background: #fbfcfe; }
.reserved-modules-box summary { cursor: pointer; font-weight: 800; color: #0f2038; }
.reserved-modules-box .simple-module-item { grid-template-columns: 28px 1fr auto; }
@media (max-width: 640px){ .simple-module-item { grid-template-columns: auto 24px 1fr; } .simple-module-item em { grid-column: 3; width:max-content; } }


/* ===== Notificaciones de chat en menú ===== */
.nav-notify-link{position:relative;gap:10px!important;}
.nav-notify-link span:first-of-type{min-width:0;}
.nav-badge{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#dc2626;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.74rem;font-weight:950;line-height:1;box-shadow:0 0 0 3px rgba(220,38,38,.18)}
.admin-mobile-topbar .nav-badge{position:absolute;right:6px;top:6px}
