    *{box-sizing:border-box;margin:0;padding:0;}
    /* Touch global: evita delay de 300ms en iOS y doble-tap zoom */
    button,a,[onclick],[role="button"]{touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
    /* Selección refinada */
    ::selection{background:rgba(43,143,191,0.22);color:inherit;}
    /* Scrollbars elegantes — NO aplicar a inputs para evitar layout issues */
    *:not(input):not(textarea):not(select){scrollbar-width:thin;scrollbar-color:rgba(43,143,191,0.28) transparent;}
    *:not(input):not(textarea):not(select)::-webkit-scrollbar{width:6px;height:6px;}
    *:not(input):not(textarea):not(select)::-webkit-scrollbar-track{background:transparent;}
    *:not(input):not(textarea):not(select)::-webkit-scrollbar-thumb{background:rgba(43,143,191,0.22);border-radius:8px;transition:background .2s;}
    *:not(input):not(textarea):not(select)::-webkit-scrollbar-thumb:hover{background:rgba(43,143,191,0.40);}
    :root{
      /* ══════════════════════════════════════════════════════
         DESIGN SYSTEM v33 — Calidad fintech europea
         Inspirado en: Linear, Revolut, N26, Vercel
         ══════════════════════════════════════════════════════ */
      /* ── Primary: Celeste PyA refinado ── */
      --sage:#2B8FBF;--sage-l:#5BB8E0;--sage-xl:rgba(43,143,191,0.10);
      --sage-m:#4A8FAD;--sage-d:#1F6E94;
      /* ── Secondary: Dorado arena ── */
      --gold:#B8963E;--gold-l:rgba(184,150,62,0.15);
      /* ── Accents vivos ── */
      --mint:#22B8A0;--mint-l:rgba(34,184,160,0.13);
      --lavender:#7C6FCF;--lavender-l:rgba(124,111,207,0.13);
      --coral:#E05A3A;--coral-l:rgba(224,90,58,0.12);
      --emerald:#2EAB6C;--emerald-l:rgba(46,171,108,0.12);
      --rose:#E5527F;--rose-l:rgba(229,82,127,0.12);
      /* ── Superficies LIGHT — paleta refinada ── */
      --cream:#F1F4F8;--surface:#F7F9FC;--white:#FFFFFF;
      --surface-2:#EEF2F7;--bg2:#EDF1F6;
      /* ── Texto LIGHT — mejor contraste ── */
      --text:#0F1A24;--text2:#3D5366;--text3:#7A93A4;
      /* ── Bordes refinados ── */
      --border:rgba(15,26,36,0.08);--border-strong:rgba(15,26,36,0.16);
      --border-accent:rgba(43,143,191,0.22);
      /* ── Glass ── */
      --glass:rgba(255,255,255,0.78);--glass-strong:rgba(255,255,255,0.94);
      /* ── Sombras tipo Linear/Vercel — más sutiles, multicapa ── */
      --sh-xs:0 1px 2px rgba(15,26,36,0.06);
      --sh-sm:0 1px 3px rgba(15,26,36,0.06),0 1px 2px rgba(15,26,36,0.04);
      --sh-md:0 4px 12px rgba(15,26,36,0.08),0 2px 4px rgba(15,26,36,0.04);
      --sh-lg:0 12px 32px rgba(15,26,36,0.12),0 4px 12px rgba(15,26,36,0.06);
      --sh-xl:0 24px 56px rgba(15,26,36,0.16),0 8px 20px rgba(15,26,36,0.08);
      --sh-ring:0 0 0 3px rgba(43,143,191,0.15);
      --sh-ring-focus:0 0 0 3px rgba(43,143,191,0.32);
      /* ── Radii sistemáticas ── */
      --r-xs:6px;--r-sm:10px;--r:14px;--r-lg:20px;--r-xl:28px;--r-pill:999px;
      --rs:10px;  /* legacy alias */
      /* ── Spacing escala (8pt grid) ── */
      --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;
      /* ── Bento ── */
      --bento-gap:14px;
      /* ── Motion — curvas profesionales ── */
      --ease:cubic-bezier(0.4, 0, 0.2, 1);
      --ease-out:cubic-bezier(0.16, 1, 0.3, 1);
      --ease-in:cubic-bezier(0.4, 0, 1, 1);
      --ease-bounce:cubic-bezier(0.34, 1.56, 0.64, 1);
      --tr-fast:.12s var(--ease);
      --tr:.22s var(--ease);
      --tr-slow:.4s var(--ease-out);
      /* ── Typography scale ── */
      --fz-xs:11px;--fz-sm:12px;--fz-base:14px;--fz-md:15px;--fz-lg:17px;--fz-xl:20px;--fz-2xl:24px;--fz-3xl:32px;--fz-4xl:42px;
      /* ── Z-index sistema ── */
      --z-sticky:50;--z-header:60;--z-overlay:90;--z-modal:100;--z-toast:110;--z-tooltip:120;
    }
    /* ─── DARK MODE variables ─────────────────────────────── */
    html[data-theme='dark']{
      --sage:#4DB8E8;--sage-l:#7CCFEF;--sage-xl:rgba(77,184,232,0.12);
      --sage-d:#3B95C0;
      --gold:#D4B560;--gold-l:rgba(212,181,96,0.15);
      --mint:#34D4B9;--lavender:#A89BE0;--coral:#F58267;--emerald:#48D88C;--rose:#EE7AA0;
      --cream:#0A1218;--surface:#0F1A22;--surface-2:#15212B;--white:#1A2935;--bg2:#192430;
      --text:#E5F1F8;--text2:#9AB8C9;--text3:#5A7888;
      --border:rgba(255,255,255,0.07);--border-strong:rgba(255,255,255,0.14);
      --border-accent:rgba(77,184,232,0.28);
      --glass:rgba(10,18,24,0.78);--glass-strong:rgba(15,26,34,0.94);
      --sh-xs:0 1px 2px rgba(0,0,0,0.4);
      --sh-sm:0 1px 3px rgba(0,0,0,0.5),0 1px 2px rgba(0,0,0,0.3);
      --sh-md:0 4px 12px rgba(0,0,0,0.55),0 2px 4px rgba(0,0,0,0.3);
      --sh-lg:0 12px 32px rgba(0,0,0,0.65),0 4px 12px rgba(0,0,0,0.4);
      --sh-xl:0 24px 56px rgba(0,0,0,0.75),0 8px 20px rgba(0,0,0,0.4);
      --sh-ring:0 0 0 3px rgba(77,184,232,0.18);
      --sh-ring-focus:0 0 0 3px rgba(77,184,232,0.38);
    }
    @media(prefers-color-scheme:dark){
      html:not([data-theme='light']){
        --sage:#4DB8E8;--sage-l:#7CCFEF;--sage-xl:rgba(77,184,232,0.12);
        --sage-d:#3B95C0;
        --gold:#D4B560;--gold-l:rgba(212,181,96,0.15);
        --mint:#34D4B9;--lavender:#A89BE0;--coral:#F58267;--emerald:#48D88C;--rose:#EE7AA0;
        --cream:#0A1218;--surface:#0F1A22;--surface-2:#15212B;--white:#1A2935;--bg2:#192430;
        --text:#E5F1F8;--text2:#9AB8C9;--text3:#5A7888;
        --border:rgba(255,255,255,0.07);--border-strong:rgba(255,255,255,0.14);
        --border-accent:rgba(77,184,232,0.28);
        --glass:rgba(10,18,24,0.78);--glass-strong:rgba(15,26,34,0.94);
        --sh-sm:0 1px 3px rgba(0,0,0,0.5),0 1px 2px rgba(0,0,0,0.3);
        --sh-md:0 4px 12px rgba(0,0,0,0.55),0 2px 4px rgba(0,0,0,0.3);
        --sh-lg:0 12px 32px rgba(0,0,0,0.65),0 4px 12px rgba(0,0,0,0.4);
      }
    }
    /* ─── Accessibility: respeta preferencias de movimiento ─── */
    @media(prefers-reduced-motion:reduce){
      *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}
    }
    /* ─── Focus rings refinados (sólo teclado) ─── */
    :focus{outline:none;}
    :focus-visible{outline:none;box-shadow:var(--sh-ring-focus);border-radius:var(--r-sm);}
    button:focus-visible,a:focus-visible{box-shadow:var(--sh-ring-focus);}
    /* ─── Body ─── */
    body{font-family:'Inter','SF Pro Display',-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Color Emoji','Apple Color Emoji','Segoe UI Emoji',sans-serif;
      color:var(--text);
      font-feature-settings:'cv02','cv03','cv04','cv11','ss01';  /* Inter optical features */
      -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
      text-rendering:optimizeLegibility;
      letter-spacing:-0.01em;
      display:flex;
      height:100vh;height:-webkit-fill-available;height:100dvh;
      overflow:hidden;
      background-color:var(--cream);
      background-image:radial-gradient(circle,rgba(15,26,36,0.04) 1px,transparent 1px);
      background-size:24px 24px;
      overflow:hidden;
      transition:background-color .35s var(--ease),color .35s var(--ease);
      -webkit-text-size-adjust:100%;
      -webkit-tap-highlight-color:transparent;
    }
    /* ── Tabular numerals: dinero, fechas, estadísticas ── */
    .num,.money,.stat-value,.kpi-value,[data-num],
    .briefing-stat,.bsh-value,.pt-value,.bs-value,
    input[type="number"],input[type="tel"],
    .pg-total-display,#pg-total-display,#pg-alquiler-display,#pg-neto-display,
    .tn-tab,.bn-pill,.fab-item,.toast,.modal-box{font-variant-numeric:tabular-nums;font-feature-settings:'tnum';}
    /* ── Headings: Sora display ── */
    h1,h2,h3,h4,.heading,.display{font-family:'Sora','Inter',sans-serif;font-weight:600;letter-spacing:-0.02em;line-height:1.15;}
    h1{font-size:var(--fz-2xl);}h2{font-size:var(--fz-xl);}h3{font-size:var(--fz-lg);}h4{font-size:var(--fz-md);}
    /* ── Skip link accesible ── */
    .skip-link{position:absolute;top:-40px;left:0;background:var(--sage);color:white;padding:8px 16px;border-radius:0 0 var(--r-sm) 0;z-index:9999;transition:top .2s;}
    .skip-link:focus{top:0;}
    /* ── SIDEBAR — refinado tipo Linear ──────────────── */
    #sb{
      width:236px;min-width:236px;
      background:var(--white);
      border-right:1px solid var(--border);
      display:flex;flex-direction:column;
      overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0;
    }
    html[data-theme='dark'] #sb{background:var(--surface);}
    @media(prefers-color-scheme:dark){html:not([data-theme='light']) #sb{background:var(--surface);}}
    /* ── Dark mode: nav items con colores del sistema ── */
    html[data-theme='dark'] .nav-item{color:var(--text2);}
    html[data-theme='dark'] .nav-item:hover{color:var(--text);background:var(--sage-xl);border-left-color:var(--border-accent);}
    html[data-theme='dark'] .nav-item.active{color:var(--sage);background:var(--sage-xl);border-left-color:var(--sage);}
    html[data-theme='dark'] .sb-section-header{color:var(--text3);}
    @media(prefers-color-scheme:dark){
      html:not([data-theme='light']) .nav-item{color:var(--text2);}
      html:not([data-theme='light']) .nav-item:hover{color:var(--text);background:var(--sage-xl);}
      html:not([data-theme='light']) .nav-item.active{color:var(--sage);background:var(--sage-xl);}
      html:not([data-theme='light']) .sb-section-header{color:var(--text3);}
    }
    .sb-logo{padding:0;border-bottom:1px solid var(--border);}
    nav{flex:1;padding:8px 0 24px;}
    /* ── TOP NAV TABS — Refinado fintech ──────────── */
    #topnav{
      display:flex;align-items:stretch;
      background:linear-gradient(135deg,#0A1A2A 0%,#13314D 50%,#1A4570 100%);
      border-bottom:1px solid rgba(77,184,232,0.18);
      overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
      flex-shrink:0;z-index:var(--z-header);
      box-shadow:inset 0 -1px 0 rgba(77,184,232,0.10);
    }
    #topnav::-webkit-scrollbar{display:none;}
    .tn-tab{
      display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:3px;padding:9px 14px;min-width:64px;
      font-family:'Inter',sans-serif;font-size:10.5px;font-weight:600;
      color:rgba(255,255,255,0.62);
      cursor:pointer;border:none;background:transparent;
      border-bottom:2px solid transparent;
      transition:color var(--tr-fast),border-color var(--tr-fast),background var(--tr-fast),transform var(--tr-fast);
      white-space:nowrap;flex-shrink:0;letter-spacing:0.2px;
      position:relative;
    }
    .tn-tab:hover{color:rgba(255,255,255,0.92);background:rgba(255,255,255,0.05);}
    .tn-tab:active{transform:scale(0.96);}
    .tn-tab.active{color:#fff;border-bottom-color:#4DB8E8;background:linear-gradient(to top,rgba(77,184,232,0.18) 0%,transparent 70%);}
    .tn-tab.active::after{content:'';position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);width:24px;height:2px;background:linear-gradient(90deg,transparent,#4DB8E8,transparent);box-shadow:0 0 10px rgba(77,184,232,0.6);}
    .tn-tab .ti{font-size:18px;line-height:1;}
    /* ── SUB-PANELS ────────────────────── */
    .sub-panel{display:none;padding:4px 0;}
    .sub-panel.active{display:block;animation:fadeInPanel .25s var(--ease-out);}
    @keyframes fadeInPanel{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}
    .sb-section-header{
      padding:9px 18px 3px;
      font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
      color:var(--text3);
    }
    .nav-item{
      padding:7px 18px 7px 20px;
      font-size:13.5px;font-weight:500;color:var(--text2);
      cursor:pointer;transition:color var(--tr-fast),background var(--tr-fast),border-color var(--tr-fast);
      border-left:2.5px solid transparent;
      display:flex;align-items:center;gap:10px;
      position:relative;
    }
    .nav-item:hover{color:var(--text);background:var(--sage-xl);border-left-color:var(--border-accent);}
    .nav-item.active{color:var(--sage);background:var(--sage-xl);border-left-color:var(--sage);font-weight:600;}
    /* legacy stubs */
    .nav-group,.nav-head,.nav-sub{display:none;}
    /* ── Layout principal ── */
    #main{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;position:relative;overflow:hidden;}
    .topbar{
      background:linear-gradient(100deg,#0F2236 0%,#163652 40%,#1E5A8A 75%,#2B8FBF 100%);
      border-bottom:1px solid rgba(43,143,191,0.35);
      padding:0 24px;height:62px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;
      box-shadow:0 2px 24px rgba(43,143,191,0.28),0 1px 0 rgba(255,255,255,0.06) inset;
      position:relative;z-index:var(--z-header);
    }
    /* Sin ::before — evita conflictos de z-index con botones */
    .topbar > *, .topbar button, .topbar a, .topbar [onclick]{
      position:relative; z-index:1;
      -webkit-tap-highlight-color:rgba(255,255,255,0.1);
    }
    @keyframes topbar-shimmer{0%,100%{left:-100%}50%{left:150%}}
    .topbar h1{font-family:'Sora',sans-serif;font-size:17px;font-weight:600;color:#fff;letter-spacing:0.2px;text-shadow:0 1px 4px rgba(0,0,0,0.15);}
    .clock{text-align:right;}
    .clock .time{font-size:18px;font-weight:600;color:#fff;}
    .clock .date{font-size:11px;color:rgba(255,255,255,0.6);}
    .content{
      flex:1;
      height:0;
      overflow-y:auto;
      overflow-x:hidden;
      -webkit-overflow-scrolling:touch;
      overscroll-behavior-y:contain;
      touch-action:pan-y;
      padding:24px 28px;
      background:var(--cream);
      position:relative;
    }
    .view{display:none;}
    .view.active{display:block;animation:fi .22s var(--ease-out);}
    @keyframes fi{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
    @keyframes modal-in{from{opacity:0;transform:scale(0.92) translateY(14px)}to{opacity:1;transform:scale(1) translateY(0)}}
    @keyframes skeleton-shine{0%{background-position:-400px 0}100%{background-position:400px 0}}
    @keyframes count-up{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
    @keyframes pulse-ring{0%{transform:scale(1);opacity:0.7}70%{transform:scale(1.6);opacity:0}100%{transform:scale(1.6);opacity:0}}
    .card{
      background:var(--white);
      border-radius:var(--r-lg);border:1px solid var(--border);
      padding:24px;
      box-shadow:var(--sh-sm);
      transition:box-shadow var(--tr),transform var(--tr),border-color var(--tr);
      position:relative;overflow:hidden;
    }
    .card::before{
      content:'';position:absolute;top:0;left:0;right:0;height:2px;
      background:linear-gradient(90deg,var(--sage),var(--sage-l),transparent);
      opacity:0;transition:opacity var(--tr);pointer-events:none;
    }
    html[data-theme='dark'] .card,
    @media(prefers-color-scheme:dark){html:not([data-theme='light']) .card{background:var(--surface-2);}}
    html[data-theme='dark'] .card{background:var(--surface-2);}
    .card:hover{box-shadow:var(--sh-md);border-color:var(--border-accent);}
    .card:hover::before{opacity:1;}
    .card+.card{margin-top:16px;}
    .card-title{font-family:'Sora',sans-serif;font-size:15px;color:var(--text);margin-bottom:18px;letter-spacing:-0.01em;font-weight:600;display:flex;align-items:center;gap:8px;}
    html[data-theme='dark'] .card-title,
    html[data-theme='dark'] .card-title *{color:#E5F1F8!important;}
    @media(prefers-color-scheme:dark){
      html:not([data-theme='light']) .card-title{color:#E5F1F8!important;}
    }
    .grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
    .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
    .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
    label{display:block;font-size:11px;font-weight:600;color:var(--text2);margin-bottom:6px;text-transform:uppercase;letter-spacing:0.6px;}
    input,select,textarea{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:var(--r-sm);
      font-size:16px; /* 16px mínimo para evitar zoom automático en iOS Safari */
      font-family:'Inter',sans-serif;color:var(--text);background:var(--surface);outline:none;
      transition:border-color var(--tr-fast),background var(--tr-fast),box-shadow var(--tr-fast);
      -webkit-appearance:none;
      border-radius:var(--r-sm);
      font-feature-settings:'cv02','cv03','cv04','cv11';
    }
    input::placeholder,textarea::placeholder{color:var(--text3);opacity:0.7;}
    input:hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){border-color:var(--border-strong);}
    input:focus,select:focus,textarea:focus{border-color:var(--sage);background:var(--white);box-shadow:var(--sh-ring);}
    html[data-theme='dark'] input:focus,html[data-theme='dark'] select:focus,html[data-theme='dark'] textarea:focus{background:var(--surface);}
    html[data-theme='dark'] input,html[data-theme='dark'] select,html[data-theme='dark'] textarea{color-scheme:dark;}
    @media(prefers-color-scheme:dark){html:not([data-theme='light']) input,html:not([data-theme='light']) select,html:not([data-theme='light']) textarea{color-scheme:dark;}}

    /* ══ DARK MODE — visibilidad completa ══════════════════════════════ */
    /* Cards */
    html[data-theme='dark'] .card{background:#1E2D3D;border-color:rgba(255,255,255,0.10);}
    @media(prefers-color-scheme:dark){html:not([data-theme='light']) .card{background:#1E2D3D;border-color:rgba(255,255,255,0.10);}}

    /* Inputs, selects, textareas — fondo y borde claramente visibles */
    html[data-theme='dark'] input,
    html[data-theme='dark'] select,
    html[data-theme='dark'] textarea{
      background:#0F1A24;
      border-color:rgba(255,255,255,0.20);
      color:#E5F1F8;
    }
    @media(prefers-color-scheme:dark){
      html:not([data-theme='light']) input,
      html:not([data-theme='light']) select,
      html:not([data-theme='light']) textarea{
        background:#0F1A24;
        border-color:rgba(255,255,255,0.20);
        color:#E5F1F8;
      }
    }
    html[data-theme='dark'] input:focus,
    html[data-theme='dark'] select:focus,
    html[data-theme='dark'] textarea:focus{background:#162534;border-color:var(--sage);box-shadow:var(--sh-ring);}
    @media(prefers-color-scheme:dark){
      html:not([data-theme='light']) input:focus,
      html:not([data-theme='light']) select:focus,
      html:not([data-theme='light']) textarea:focus{background:#162534;border-color:var(--sage);box-shadow:var(--sh-ring);}
    }

    /* Labels — más visibles */
    html[data-theme='dark'] label{color:rgba(200,220,235,0.75);}
    @media(prefers-color-scheme:dark){html:not([data-theme='light']) label{color:rgba(200,220,235,0.75);}}

    /* Tab buttons */
    html[data-theme='dark'] .tab-btn{color:rgba(200,220,235,0.55);}
    html[data-theme='dark'] .tab-btn:hover{color:rgba(200,220,235,0.90);}
    html[data-theme='dark'] .tab-btn.active{color:var(--sage);border-bottom-color:var(--sage);}
    @media(prefers-color-scheme:dark){
      html:not([data-theme='light']) .tab-btn{color:rgba(200,220,235,0.55);}
      html:not([data-theme='light']) .tab-btn:hover{color:rgba(200,220,235,0.90);}
      html:not([data-theme='light']) .tab-btn.active{color:var(--sage);}
    }

    /* Surface containers */
    html[data-theme='dark'] .bento-card,
    html[data-theme='dark'] .stat-card,
    html[data-theme='dark'] .briefing-item,
    html[data-theme='dark'] .pac-card-item,
    html[data-theme='dark'] .evolution-item,
    html[data-theme='dark'] .turno-slot{
      background:#1A2935;border-color:rgba(255,255,255,0.10);
    }
    @media(prefers-color-scheme:dark){
      html:not([data-theme='light']) .bento-card,
      html:not([data-theme='light']) .stat-card,
      html:not([data-theme='light']) .briefing-item,
      html:not([data-theme='light']) .pac-card-item,
      html:not([data-theme='light']) .evolution-item,
      html:not([data-theme='light']) .turno-slot{
        background:#1A2935;border-color:rgba(255,255,255,0.10);
      }
    }

    /* Separadores y tablas */
    html[data-theme='dark'] th{background:#15212B;color:rgba(200,220,235,0.60);}
    html[data-theme='dark'] td{border-color:rgba(255,255,255,0.07);}
    html[data-theme='dark'] tr:hover td{background:rgba(77,184,232,0.06);}
    @media(prefers-color-scheme:dark){
      html:not([data-theme='light']) th{background:#15212B;color:rgba(200,220,235,0.60);}
      html:not([data-theme='light']) td{border-color:rgba(255,255,255,0.07);}
      html:not([data-theme='light']) tr:hover td{background:rgba(77,184,232,0.06);}
    }

    /* Table-wrap border */
    html[data-theme='dark'] .table-wrap{border-color:rgba(255,255,255,0.10);}
    @media(prefers-color-scheme:dark){html:not([data-theme='light']) .table-wrap{border-color:rgba(255,255,255,0.10);}}

    /* Checkbox/radio labels en ficha de salud */
    html[data-theme='dark'] .fgroup label,
    html[data-theme='dark'] [style*="display:flex"][style*="align-items:center"]{
      color:rgba(200,220,235,0.80)!important;
    }
    @media(prefers-color-scheme:dark){
      html:not([data-theme='light']) .fgroup label{color:rgba(200,220,235,0.80)!important;}
    }
    input[type='checkbox'],input[type='radio']{
      -webkit-appearance:auto!important;appearance:auto!important;
      width:18px;height:18px;cursor:pointer;flex-shrink:0;
      accent-color:var(--sage);
      min-width:18px;padding:0;
    }
    /* ── Emojis — asegurar renderizado con color en todos los OS ── */
    .ti,.bs-icon,.pt-icon,.bsh-icon,.briefing-item .bi-avatar,
    .tn-tab .ti,[data-emoji]{
      font-family:'Apple Color Emoji','Noto Color Emoji','Segoe UI Emoji',
                  'Twemoji Mozilla','Android Emoji',system-ui,sans-serif!important;
    }
    textarea{resize:vertical;min-height:80px;line-height:1.5;}
    /* ── BOTONES — refinado tipo Linear/Vercel ──────────── */
    .btn{
      padding:10px 20px;border-radius:var(--r-sm);border:1px solid transparent;
      font-family:'Inter',sans-serif;font-size:13.5px;font-weight:600;
      cursor:pointer;
      transition:background var(--tr-fast),color var(--tr-fast),border-color var(--tr-fast),
                 box-shadow var(--tr-fast),transform .15s var(--ease-bounce);
      position:relative;overflow:hidden;letter-spacing:-0.005em;
      display:inline-flex;align-items:center;justify-content:center;gap:6px;
      line-height:1.2;white-space:nowrap;
    }
    .btn::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,0.18) 0%,transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none;}
    .btn:active::after{opacity:1;}
    .btn:active{transform:scale(0.96);}
    .btn:disabled{opacity:0.5;cursor:not-allowed;}
    .btn-primary{
      background:linear-gradient(160deg,var(--sage-l) 0%,var(--sage) 30%,var(--sage-d) 100%);
      color:#fff;
      box-shadow:var(--sh-sm),inset 0 1px 0 rgba(255,255,255,0.22),inset 0 -1px 0 rgba(0,0,0,0.12),0 0 0 0 rgba(43,143,191,0);
    }
    .btn-primary:hover{box-shadow:var(--sh-md),inset 0 1px 0 rgba(255,255,255,0.22),0 0 0 3px rgba(43,143,191,0.12);transform:translateY(-1px);}
    .btn-primary:active{transform:translateY(0) scale(0.97);}
    .btn-ghost{background:var(--white);border-color:var(--border-strong);color:var(--text);}
    html[data-theme='dark'] .btn-ghost{background:var(--surface-2);}
    .btn-ghost:hover{border-color:var(--border-accent);color:var(--sage);background:var(--sage-xl);}
    .btn-danger{background:linear-gradient(180deg,var(--coral) 0%,#C84520 100%);color:#fff;box-shadow:var(--sh-sm),inset 0 1px 0 rgba(255,255,255,0.18);}
    .btn-danger:hover{box-shadow:var(--sh-md),inset 0 1px 0 rgba(255,255,255,0.18);transform:translateY(-1px);}
    .btn-success{background:linear-gradient(180deg,var(--emerald) 0%,#1F8852 100%);color:#fff;box-shadow:var(--sh-sm),inset 0 1px 0 rgba(255,255,255,0.18);}
    .btn-success:hover{box-shadow:var(--sh-md),inset 0 1px 0 rgba(255,255,255,0.18);transform:translateY(-1px);}
    .btn-sm{padding:6px 14px;font-size:12.5px;border-radius:var(--r-xs);}
    .btn-lg{padding:14px 28px;font-size:15px;border-radius:var(--r-sm);}
    .stat-card{
      background:var(--white);
      border:1px solid var(--border);
      border-radius:var(--r-lg);padding:20px;
      box-shadow:var(--sh-sm);
      transition:box-shadow var(--tr),transform var(--tr);
    }
    html[data-theme='dark'] .stat-card{background:var(--surface-2);}
    .stat-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px);}
    .stat-card.gold{background:linear-gradient(135deg,rgba(184,150,62,0.06),rgba(184,150,62,0.02));border-color:rgba(184,150,62,0.18);}
    .stat-val{font-size:28px;font-weight:700;color:var(--sage);font-feature-settings:'tnum';letter-spacing:-0.02em;}
    .stat-card.gold .stat-val{color:var(--gold);}
    .stat-lbl{font-size:11px;color:var(--text3);margin-top:4px;font-weight:500;letter-spacing:0.4px;text-transform:uppercase;}
    .table-wrap{overflow-x:auto;margin-top:16px;border-radius:var(--r-sm);border:1px solid var(--border);}
    table{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums;}
    th{text-align:left;padding:12px 14px;font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:0.6px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1;}
    td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text);}
    tr:last-child td{border-bottom:none;}
    tr:hover td{background:var(--surface);}
    .badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-pill);font-size:11px;font-weight:600;letter-spacing:0.2px;line-height:1.4;}
    .badge-green{background:var(--emerald-l);color:var(--emerald);}
    .badge-blue{background:var(--sage-xl);color:var(--sage);}
    .badge-red{background:var(--coral-l);color:var(--coral);}
    .badge-mint{background:var(--mint-l);color:var(--mint);}
    .badge-lavender{background:var(--lavender-l);color:var(--lavender);}
    .badge-coral{background:var(--coral-l);color:var(--coral);}
    .badge-gold{background:var(--gold-l);color:var(--gold);}
    .wa-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:#25D366;color:#fff;border-radius:var(--r-pill);font-size:12.5px;font-weight:600;text-decoration:none;cursor:pointer;transition:transform var(--tr-fast),box-shadow var(--tr-fast);box-shadow:var(--sh-xs);}
    .wa-btn:hover{background:#1EBE5A;box-shadow:var(--sh-sm);transform:translateY(-1px);}
    .wa-btn:active{transform:scale(0.97);}
    .sep{height:1px;background:var(--border);margin:20px 0;border:none;}
    .search-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
    /* En flex, width:100% comprime todos los ítems por igual — override */
    .search-bar input{flex:1 1 180px;min-width:0;width:auto;}
    .search-bar select{flex:0 0 auto;width:auto;min-width:120px;max-width:200px;}
    .search-bar button{flex-shrink:0;}
    @media(max-width:767px){
      .search-bar{flex-wrap:wrap;}
      .search-bar input{flex:1 1 100%;min-width:0;}
      .search-bar select{flex:1 1 calc(50% - 5px);min-width:0;}
    }
    /* Regla general: inputs en rows de filtro (con select/btn hermanos) */
    .filter-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
    .filter-row input{flex:1 1 160px;min-width:0;width:auto;}
    .filter-row select{flex:0 0 auto;width:auto;min-width:100px;}
    .filter-row button{flex-shrink:0;}
    .info-box{background:var(--sage-xl);border-left:3px solid var(--sage);padding:12px 16px;border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:13px;color:var(--text2);margin-bottom:16px;line-height:1.5;}
    .info-box strong{color:var(--sage);font-weight:600;}
    .evolution-item{background:var(--surface);border-radius:var(--r-sm);padding:14px 16px;margin-bottom:10px;border:1px solid var(--border);border-left:3px solid var(--sage-l);transition:transform var(--tr-fast),box-shadow var(--tr-fast);}
    .evolution-item:hover{transform:translateX(2px);box-shadow:var(--sh-sm);}
    .evolution-item .evo-date{font-size:11px;color:var(--text3);font-weight:600;letter-spacing:0.3px;}
    .bar-chart{display:flex;flex-direction:column;gap:10px;margin-top:8px;}
    .bar-row{display:flex;align-items:center;gap:12px;font-size:12.5px;}
    .bar-row .lbl{width:110px;color:var(--text2);font-weight:500;}
    .bar-bg{flex:1;background:var(--surface);border-radius:var(--r-pill);height:22px;overflow:hidden;}
    .bar-fill{height:100%;background:linear-gradient(90deg,var(--sage),var(--sage-l));border-radius:var(--r-pill);transition:width .6s var(--ease-out);display:flex;align-items:center;padding-left:10px;color:#fff;font-size:11px;font-weight:600;}
    .bar-fill.gold{background:linear-gradient(90deg,var(--gold),#D4B560);}
    .turno-slot{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:8px;transition:background var(--tr-fast),border-color var(--tr-fast),transform var(--tr-fast);}
    .turno-slot:hover{background:var(--sage-xl);border-color:var(--border-strong);transform:translateX(2px);}
    .turno-time{font-size:13.5px;font-weight:700;color:var(--sage);min-width:54px;font-variant-numeric:tabular-nums;letter-spacing:-0.005em;}
    .home-welcome{display:flex;align-items:center;gap:24px;background:linear-gradient(135deg,#0A1A2A 0%,#13314D 50%,#2B8FBF 100%);border-radius:var(--r-lg);padding:32px;color:#fff;margin-bottom:20px;box-shadow:var(--sh-lg);position:relative;overflow:hidden;}
    .home-welcome::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(255,255,255,0.14),transparent 55%);pointer-events:none;}
    .hw-icon{font-size:44px;opacity:0.9;position:relative;z-index:1;}
    .hw-title{font-family:'Sora',sans-serif;font-size:22px;margin-bottom:6px;font-weight:700;letter-spacing:-0.02em;position:relative;z-index:1;}
    .hw-sub{font-size:14px;opacity:0.85;line-height:1.5;position:relative;z-index:1;}
    .modal-overlay{
      display:none;position:fixed;
      top:0;left:0;right:0;bottom:0;inset:0;
      background:rgba(8,14,20,0.50);
      backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);
      z-index:var(--z-modal);align-items:center;justify-content:center;
      animation:overlayIn .2s var(--ease-out);
    }
    @keyframes overlayIn{from{opacity:0;}to{opacity:1;}}
    .modal-overlay.show{display:flex;}
    .modal-box{
      background:var(--white);
      border:1px solid var(--border);
      border-radius:var(--r-lg);padding:28px;width:520px;max-width:95%;max-height:85vh;overflow-y:auto;position:relative;
      box-shadow:var(--sh-xl);
      animation:modal-in .3s var(--ease-bounce);
    }
    html[data-theme='dark'] .modal-box{background:var(--surface-2);}
    @media(prefers-color-scheme:dark){html:not([data-theme='light']) .modal-box{background:var(--surface-2);}}
    @keyframes modal-in{from{opacity:0;transform:translateY(20px) scale(0.96);}to{opacity:1;transform:none;}}
    .modal-close{
      position:absolute;top:16px;right:16px;
      background:var(--surface);border:1px solid var(--border);
      font-size:18px;cursor:pointer;color:var(--text2);
      width:32px;height:32px;border-radius:50%;
      display:flex;align-items:center;justify-content:center;line-height:1;
      transition:all var(--tr-fast);
    }
    .modal-close:hover{background:var(--coral-l);color:var(--coral);border-color:var(--coral);transform:rotate(90deg);}
    .fgroup{margin-bottom:14px;}
    .actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}
    /* ── TOAST refinado ── */
    #toast{
      position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(10px);
      background:var(--text);color:var(--white);
      padding:12px 22px;border-radius:var(--r-pill);
      font-size:13.5px;font-weight:500;letter-spacing:-0.005em;
      z-index:var(--z-toast);opacity:0;
      transition:opacity .25s var(--ease-out),transform .35s var(--ease-bounce);
      pointer-events:none;box-shadow:var(--sh-lg);
      max-width:90vw;text-align:center;
    }
    html[data-theme='dark'] #toast{background:var(--white);color:var(--text);}
    #toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
    @media(max-width:767px){
      #toast{bottom:84px;}
    }
    .mini-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px;}
    .cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);font-size:12.5px;cursor:pointer;color:var(--text2);font-weight:500;font-variant-numeric:tabular-nums;transition:background var(--tr-fast),color var(--tr-fast);}
    .cal-day:hover{background:var(--sage-xl);color:var(--sage);}
    .cal-day.today{background:var(--sage);color:#fff;box-shadow:var(--sh-sm);}
    .cal-day.has-event{position:relative;}
    .cal-day.has-event::after{content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--gold);}
    .cal-header{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;color:var(--text);margin-bottom:8px;letter-spacing:-0.01em;}
    .day-name{font-size:10px;color:var(--text3);text-align:center;padding:4px 0;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;}

    /* ── AGENDA SEMANAL ── */
    .week-grid{display:grid;grid-template-columns:60px repeat(7,1fr);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--white);}
    .week-head{background:var(--sage-xl);padding:10px 6px;text-align:center;border-bottom:1px solid var(--border);border-right:1px solid var(--border);}
    .week-head:last-child{border-right:none;}
    .week-head .wd{font-size:10px;text-transform:uppercase;letter-spacing:0.5px;color:var(--text3);font-weight:500;}
    .week-head .wn{font-size:20px;font-weight:500;color:var(--text);margin-top:2px;}
    .week-head .wn.today-n{background:var(--sage);color:#fff;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;margin:2px auto 0;}
    .week-time-col{border-right:1px solid var(--border);}
    .week-time-slot{height:64px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:flex-end;padding:4px 6px 0 0;font-size:10px;color:var(--text3);}
    .week-time-slot:last-child{border-bottom:none;}
    .week-col{border-right:1px solid var(--border);position:relative;}
    .week-col:last-child{border-right:none;}
    .week-cell{height:64px;border-bottom:1px solid rgba(92,122,92,0.06);position:relative;}
    .week-cell:last-child{border-bottom:none;}
    .week-event{position:absolute;left:2px;right:2px;border-radius:6px;padding:3px 6px;font-size:11px;font-weight:500;cursor:pointer;overflow:hidden;z-index:2;transition:opacity .15s;}
    .week-event:hover{opacity:0.85;}
    .week-event .we-hora{font-size:10px;opacity:0.8;}
    .week-event .we-pac{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .week-event .we-sala{font-size:10px;opacity:0.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .week-nav{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap;}
    .week-nav .semana-label{font-family:'Sora',sans-serif;font-size:15px;color:var(--sage);font-weight:500;}
    .event-color-0{background:#d4edda;color:#155724;border-left:3px solid #28a745;}
    .event-color-1{background:#cce5ff;color:#004085;border-left:3px solid #007bff;}
    .event-color-2{background:#fff3cd;color:#856404;border-left:3px solid #ffc107;}
    .event-color-3{background:#f8d7da;color:#721c24;border-left:3px solid #dc3545;}
    .event-color-4{background:#e2d9f3;color:#4a1a7a;border-left:3px solid #6f42c1;}
    .event-color-5{background:#d1ecf1;color:#0c5460;border-left:3px solid #17a2b8;}
    .event-color-6{background:#fde8d8;color:#7d3c00;border-left:3px solid #fd7e14;}
    .event-cancelado{opacity:0.45;text-decoration:line-through;}

    /* ── MODAL EDITAR PACIENTE ── */
    .modal-edit-box{
      background:var(--glass-strong);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
      border:1px solid rgba(255,255,255,0.5);
      border-radius:var(--r);padding:28px;width:560px;max-width:96%;max-height:88vh;overflow-y:auto;position:relative;
      box-shadow:var(--sh-lg);animation:modal-in .25s cubic-bezier(0.34,1.56,0.64,1);
    }

    /* ── MODAL TURNO CONFIRMADO (WA) ── */
    .wa-confirm-box{background:var(--white);border-radius:var(--r);padding:28px;width:480px;max-width:96%;position:relative;text-align:center;}
    .wa-confirm-msg{background:#e8f5e9;border-radius:var(--rs);padding:14px 16px;font-size:13px;color:#1b5e20 !important;line-height:1.6;text-align:left;margin:16px 0;white-space:pre-wrap;border-left:3px solid #25d366;}
    /* ── TABS — refinadas ── */
    .tab-bar{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:24px;overflow-x:auto;scrollbar-width:none;}
    .tab-bar::-webkit-scrollbar{display:none;}
    .tab-btn{
      padding:11px 20px;font-size:13.5px;font-weight:600;
      color:var(--text3);background:none;border:none;cursor:pointer;
      border-bottom:2px solid transparent;margin-bottom:-1px;
      transition:color var(--tr-fast),border-color var(--tr-fast);
      font-family:'Inter',sans-serif;letter-spacing:-0.005em;white-space:nowrap;
      position:relative;
    }
    .tab-btn:hover{color:var(--text);}
    .tab-btn.active{color:var(--sage);border-bottom-color:var(--sage);}
    .tab-pane{display:none;animation:fi .25s var(--ease-out);}
    .tab-pane.active{display:block;}
    /* ── FICHA PDF / VIEW ── */
    .ficha-section{background:var(--cream);border-radius:var(--rs);padding:16px;margin-bottom:14px;border-left:3px solid var(--sage-l);}
    .ficha-section-title{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:0.8px;color:var(--sage);margin-bottom:10px;}
    .ficha-grid{display:grid;gap:8px;}
    .ficha-row{display:grid;gap:8px;}
    .ficha-campo{font-size:12px;}
    .ficha-campo .fc-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:0.4px;margin-bottom:2px;}
    .ficha-campo .fc-value{font-size:13px;color:var(--text);font-weight:400;border-bottom:1px solid var(--border);padding-bottom:3px;min-height:20px;}
    .check-grid{display:flex;flex-wrap:wrap;gap:10px 20px;padding:8px 0;}
    .check-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);}
    .check-box{width:14px;height:14px;border:1.5px solid var(--border);border-radius:3px;display:inline-flex;align-items:center;justify-content:center;background:var(--white);}
    .check-box.checked{background:var(--sage);border-color:var(--sage);color:#fff;font-size:10px;}
    .si-no-row{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:6px;}
    .si-no-row .snlbl{font-weight:500;min-width:160px;}
    .si-no-opt{display:flex;align-items:center;gap:4px;}
    /* Modal wide */
    .modal-box-wide{
      background:var(--glass-strong);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
      border:1px solid rgba(255,255,255,0.5);
      border-radius:var(--r);padding:28px;width:720px;max-width:97%;max-height:90vh;overflow-y:auto;position:relative;
      box-shadow:var(--sh-lg);animation:modal-in .25s cubic-bezier(0.34,1.56,0.64,1);
    }

    /* ════════════════════════════════════════════
       RESPONSIVE & MOBILE
    ════════════════════════════════════════════ */

    /* Hamburger button */
    #hamburger{display:none;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid rgba(255,255,255,0.25);border-radius:var(--rs);background:rgba(255,255,255,0.10);cursor:pointer;flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:rgba(255,255,255,0.15);}
    #hamburger span,#hamburger span::before,#hamburger span::after{display:block;width:18px;height:2px;background:#fff;border-radius:2px;transition:all .25s;}
    #hamburger span{position:relative;}
    #hamburger span::before{content:'';position:absolute;top:-5px;left:0;}
    #hamburger span::after{content:'';position:absolute;top:5px;left:0;}
    #hamburger.open span{background:transparent;}
    #hamburger.open span::before{transform:translateY(5px) rotate(45deg);}
    #hamburger.open span::after{transform:translateY(-5px) rotate(-45deg);}

    /* Sidebar overlay (mobile) */
    #sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:5500;transition:opacity .25s;}
    #sb-overlay.show{display:block;}

    /* ══════════════════════════════
       TABLET (768–1024px)
    ══════════════════════════════ */
    @media(min-width:768px) and (max-width:1024px){
      #sb{width:220px;min-width:220px;}
      .content{padding:18px 20px;}
      .bento-12{grid-template-columns:repeat(6,1fr);}
      .b-8{grid-column:span 6;}
      .b-7{grid-column:span 4;}
      .b-5{grid-column:span 2;}
      .b-2{grid-column:span 3;}
      .grid4{grid-template-columns:1fr 1fr;}
      .grid2{grid-template-columns:1fr 1fr;}
      .card{padding:20px;}
      .topbar{padding:0 18px;}
      .topbar-label{display:none;}
    }

    /* ══════════════════════════════
       MOBILE (≤767px) — tablet UI
    ══════════════════════════════ */
    @media(max-width:767px){
      body{overflow:hidden;height:100dvh;height:-webkit-fill-available;}

      /* Sidebar como drawer — full width */
      #sb{
        position:fixed;top:0;left:0;bottom:0;z-index:5600;
        transform:translateX(-100%);transition:transform .3s cubic-bezier(0.4,0,0.2,1);
        box-shadow:6px 0 32px rgba(0,0,0,0.25);
        width:82vw;max-width:320px;min-width:0;
        overflow-y:auto;-webkit-overflow-scrolling:touch;
        background:#fff;
      }
      /* Sidebar mobile: acordeón — secciones colapsadas por defecto */
      #sb .sub-panel{display:block;}
      #sb .sub-panel .nav-item{display:none;}
      #sb .sub-panel.sb-open .nav-item{display:flex;}
      #sb .sb-section-header{
        cursor:pointer;display:flex;align-items:center;justify-content:space-between;
        padding:9px 18px;
      }
      #sb .sb-section-header::after{
        content:'›';font-size:16px;opacity:0.45;transition:transform .2s;
      }
      #sb .sub-panel.sb-open .sb-section-header::after{transform:rotate(90deg);}
      #sb .sub-panel + .sub-panel{border-top:1px solid rgba(43,143,191,0.08);}
      #sb.open{transform:translateX(0);}
      #main{width:100%;min-width:0;min-height:0;}
      #hamburger{display:flex;}

      /* Ocultar topnav en mobile — las secciones van en el drawer */
      #topnav{display:none;}

      /* Topbar mobile — solo lo esencial */
      .topbar{padding:0 14px;height:56px;gap:10px;}
      .topbar h1{font-size:16px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;}
      /* Ocultar botones no esenciales en topbar mobile */
      #sync-indicator,
      .search-hint-btn,
      .topbar-icon-btn,
      .clock{display:none!important;}
      /* Mostrar solo dark-toggle y búsqueda mobile */
      #dark-toggle{display:flex!important;width:38px;height:38px;}
      #mobile-search-btn{display:flex!important;}
      /* Bottom nav — 5 ítems */
      #bottom-nav li{font-size:9.5px;gap:2px;}
      #bottom-nav li svg{width:20px;height:20px;}

      /* ── Layout mobile: #main fixed llena viewport → flex child .content scrollea en iOS ── */
      #main{
        position:fixed;
        top:0;left:0;right:0;bottom:0;
        display:flex;
        flex-direction:column;
        overflow:hidden;
        z-index:1;
        background:var(--cream);
      }
      .topbar{
        flex-shrink:0;
      }
      /* Content: flex:1 + min-height:0 en padre de altura conocida = scroll iOS garantizado */
      .content{
        flex:1;
        min-height:0;
        overflow-y:auto;
        overflow-x:hidden;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior-y:contain;
        touch-action:pan-y;
        padding:16px 14px;
        padding-bottom:calc(72px + env(safe-area-inset-bottom, 0px));
        background:var(--cream);
        position:relative;
        z-index:1;
      }

      /* Bento — 2 columnas en mobile */
      .bento-12{grid-template-columns:1fr 1fr;}
      .b-1,.b-2,.b-3,.b-4,.b-5,.b-6,.b-7,.b-8,.b-9,.b-10,.b-11,.b-12{grid-column:span 2;}
      .br-2,.br-3{grid-row:span 1;}

      /* Cards */
      .card{padding:18px 16px;border-radius:16px;}
      .card+.card{margin-top:12px;}
      .card-title{font-size:15px;}

      /* Grids */
      .grid2{grid-template-columns:1fr;}
      .grid4{grid-template-columns:1fr 1fr;}

      /* Stat cards — más grandes para touch */
      .stat-card{padding:16px 18px;}
      .stat-val{font-size:24px;}
      .bento-stat .bs-val{font-size:28px;}
      .bento-stat .bs-icon{width:36px;height:36px;font-size:16px;}

      /* Inputs más grandes */
      input,select,textarea{padding:13px 14px;font-size:16px;border-radius:12px;}
      .btn{padding:13px 20px;font-size:14px;min-height:46px;}
      .btn-sm{padding:9px 14px;font-size:13px;min-height:38px;}

      /* Tabs */
      .tab-bar{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;}
      .tab-btn{padding:11px 16px;font-size:13px;white-space:nowrap;}

      /* Actions row — full width */
      .actions-row{flex-direction:column;}
      .actions-row .btn{width:100%;text-align:center;}

      /* Modals — sheet desde abajo */
      .modal-overlay{align-items:flex-end;}
      .modal-box,.modal-edit-box,.modal-box-wide,.wa-confirm-box{
        width:100%!important;max-width:100%!important;
        border-radius:24px 24px 0 0!important;
        position:fixed!important;bottom:0!important;left:0!important;right:0!important;
        max-height:92dvh;
      }

      /* Tables */
      .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
      table{min-width:500px;}

      /* Week grid */
      .week-grid{min-width:580px;}
      .week-nav{gap:8px;flex-wrap:wrap;}
      .week-nav .semana-label{font-size:13px;}

      /* Bar chart */
      .bar-row .lbl{width:90px;font-size:11px;}

      /* Login */
      #app-login-screen > div{width:92%;padding:32px 24px;}

      /* Ficha/Si-No rows */
      .ficha-row{grid-template-columns:1fr;}
      .si-no-row .snlbl{min-width:110px;font-size:12px;}

      /* Install banner */
      #pwa-install-banner{
        position:fixed;bottom:0;left:0;right:0;
        border-radius:0;border-top:1px solid var(--border);
        padding:16px;
      }

      /* Turno slots más grandes */
      .turno-slot{padding:14px 16px;}
      .turno-time{font-size:15px;}

      /* Pac cards */
      .pac-card-item{padding:14px 16px;}
      .pac-avatar{width:46px;height:46px;font-size:18px;}

      /* Plantillas grid */
      .plantilla-btn{padding:16px;min-height:90px;}
      .plantilla-btn .pt-icon{font-size:22px;}
      .plantilla-btn .pt-name{font-size:14px;}
    }

    @media(max-width:380px){
      .grid4{grid-template-columns:1fr;}
      .tab-btn{padding:10px 12px;font-size:12px;}
      .bento-stat .bs-val{font-size:24px;}
    }
    /* ── QUICK ACTION BUTTONS (home) ── */
    .qak-btn{
      display:flex;align-items:center;gap:8px;
      padding:9px 16px;border-radius:50px;
      background:var(--surface);border:1.5px solid var(--border);
      font-family:'Inter',sans-serif;font-size:13px;font-weight:600;
      color:var(--text2);cursor:pointer;
      transition:all .18s;white-space:nowrap;
    }
    .qak-btn:hover{background:var(--sage-xl);border-color:var(--sage-l);color:var(--sage);}
    .qak-btn:active{transform:scale(0.95);}
    @media(max-width:767px){.qak-btn{padding:10px 14px;font-size:12.5px;}}
    #pwa-install-banner{
      position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
      background:var(--white);border:1px solid var(--border);
      border-radius:var(--r);padding:14px 20px;
      display:flex;align-items:center;gap:14px;
      z-index:5000;box-shadow:0 8px 32px rgba(92,122,92,0.2);
      max-width:420px;width:calc(100% - 32px);
      animation:fi .4s ease;
    }
    #pwa-install-banner .pwa-icon{font-size:28px;flex-shrink:0;}
    #pwa-install-banner .pwa-text{flex:1;min-width:0;}
    #pwa-install-banner .pwa-text strong{display:block;font-size:13px;color:var(--text);font-weight:500;}
    #pwa-install-banner .pwa-text span{font-size:11px;color:var(--text3);}
    #pwa-install-banner .pwa-actions{display:flex;gap:8px;flex-shrink:0;}
    #pwa-install-banner.hidden{display:none;}


    /* ── Skeleton Loader ── */
    .skeleton{border-radius:6px;overflow:hidden;position:relative;background:#e5e5e3;}
    .skeleton::after{content:'';position:absolute;inset:0;
      background:linear-gradient(90deg,transparent,rgba(255,255,255,0.6),transparent);
      background-size:400px 100%;animation:skeleton-shine 1.4s infinite;
    }
    .sk-line{height:12px;margin-bottom:8px;border-radius:4px;}
    .sk-line.w60{width:60%;}
    .sk-line.w80{width:80%;}
    .sk-line.w40{width:40%;}
    .sk-line.tall{height:24px;}
    .loading-overlay{position:absolute;inset:0;background:rgba(244,243,242,0.7);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;border-radius:var(--r);z-index:10;};.loading-overlay{position:absolute;inset:0;background:rgba(244,243,242,0.7);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;border-radius:var(--r);z-index:10;}
    .spin{width:28px;height:28px;border:2.5px solid var(--border);border-top-color:var(--sage);border-radius:50%;animation:spin 0.7s linear infinite;}
    @keyframes spin{to{transform:rotate(360deg)}}

    /* ── Chart containers ── */
    .chart-wrap{position:relative;width:100%;height:200px;margin-top:8px;}
    @media(max-width:767px){.chart-wrap{height:160px;}}
    .chart-wrap canvas{width:100%!important;}

    /* ── Ctrl+K Global Search ── */
    #search-overlay{
      display:none;position:fixed;inset:0;z-index:9000;
      background:rgba(15,15,15,0.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
      align-items:flex-start;justify-content:center;padding-top:10vh;
    }
    #search-overlay.show{display:flex;}
    #search-box{
      background:var(--glass-strong);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
      border:1px solid rgba(255,255,255,0.5);
      border-radius:20px;width:580px;max-width:94vw;
      box-shadow:var(--sh-lg);
      overflow:hidden;
      animation:modal-in .2s cubic-bezier(0.34,1.56,0.64,1);
    }
    #search-input-wrap{
      display:flex;align-items:center;gap:12px;
      padding:16px 20px;border-bottom:1px solid var(--border);
    }
    #search-input-wrap svg{flex-shrink:0;color:var(--text3);}
    #search-q{
      flex:1 1 0;min-width:0;width:auto;
      border:none;background:transparent;font-size:16px;
      font-family:'Inter',sans-serif;color:var(--text);outline:none;
    }
    #search-q::placeholder{color:var(--text3);}
    .search-kbd{font-size:11px;color:var(--text3);background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:2px 7px;flex-shrink:0;}
    #search-results{max-height:380px;overflow-y:auto;padding:8px 0;}
    #search-results:empty::after{content:'Sin resultados';display:block;text-align:center;padding:24px;font-size:13px;color:var(--text3);}
    .sr-group{padding:6px 20px 2px;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1px;color:var(--text3);}
    .sr-item{display:flex;align-items:center;gap:12px;padding:10px 20px;cursor:pointer;transition:background .15s;}
    .sr-item:hover,.sr-item.focused{background:rgba(92,122,92,0.08);}
    .sr-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
    .sr-pac .sr-icon{background:rgba(92,122,92,0.12);}
    .sr-turn .sr-icon{background:rgba(122,111,192,0.15);}
    .sr-evo .sr-icon{background:rgba(77,170,143,0.15);}
    .sr-title{font-size:13px;font-weight:500;color:var(--text);}
    .sr-sub{font-size:11px;color:var(--text3);}
    .sr-empty{padding:20px;text-align:center;font-size:13px;color:var(--text3);}
    #search-footer{padding:8px 20px;border-top:1px solid var(--border);display:flex;gap:12px;align-items:center;}
    #search-footer span{font-size:11px;color:var(--text3);}

    /* ── Keyboard shortcut hint in topbar ── */
    .search-hint-btn{
      display:flex;align-items:center;gap:7px;
      background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.22);border-radius:var(--rs);
      padding:6px 12px;cursor:pointer;font-family:'Inter',sans-serif;font-size:12px;
      color:rgba(255,255,255,0.85);transition:all .2s;white-space:nowrap;
      touch-action:manipulation;-webkit-tap-highlight-color:rgba(255,255,255,0.15);
    }
    .search-hint-btn:hover{background:rgba(255,255,255,0.22);border-color:rgba(255,255,255,0.4);color:#fff;}
    .search-hint-btn kbd{font-size:10px;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.25);border-radius:4px;padding:1px 5px;color:rgba(255,255,255,0.7);}
    @media(max-width:767px){.search-hint-btn kbd{display:none;}}

    /* ── Nav item dot for active ── */
    .nav-item.active::before{content:'';display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--sage);margin-right:6px;vertical-align:middle;}

    /* ── Stat card accent variants ── */
    .stat-card.mint{background:linear-gradient(135deg,rgba(77,170,143,0.12),rgba(77,170,143,0.04));border-color:rgba(77,170,143,0.22);box-shadow:0 0 0 1px rgba(77,170,143,0.08) inset;}
    .stat-card.mint .stat-val{color:var(--mint);}
    .stat-card.lavender{background:linear-gradient(135deg,rgba(122,111,192,0.12),rgba(122,111,192,0.04));border-color:rgba(122,111,192,0.22);box-shadow:0 0 0 1px rgba(122,111,192,0.08) inset;}
    .stat-card.lavender .stat-val{color:var(--lavender);}
    .stat-card.coral{background:linear-gradient(135deg,rgba(212,97,74,0.12),rgba(212,97,74,0.04));border-color:rgba(212,97,74,0.18);box-shadow:0 0 0 1px rgba(212,97,74,0.08) inset;}
    .stat-card.coral .stat-val{color:var(--coral);}

    /* ── WA confirm box glass ── */
    .wa-confirm-box{
      background:var(--glass-strong);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
      border:1px solid rgba(255,255,255,0.5);box-shadow:var(--sh-lg);
      animation:modal-in .25s cubic-bezier(0.34,1.56,0.64,1);
    }

    /* ── Smooth scroll in content ── */
    .content{scroll-behavior:smooth;}

    /* ── View transition - smoother ── */
    .view.active{animation:fi .28s cubic-bezier(0.22,1,0.36,1);}

    /* ── SYNC INDICATOR ── */
    #sync-indicator{
      display:flex;align-items:center;gap:7px;
      padding:5px 12px;border-radius:20px;
      background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.18);
      font-size:11px;color:rgba(255,255,255,0.8);cursor:pointer;
      transition:all var(--tr);white-space:nowrap;flex-shrink:0;
    }
    #sync-indicator:hover{background:rgba(255,255,255,0.2);color:#fff;}
    #sync-indicator .si-dot{
      width:7px;height:7px;border-radius:50%;background:#4EC5AA;flex-shrink:0;
      box-shadow:0 0 0 0 rgba(78,197,170,0.6);
    }
    #sync-indicator.syncing .si-dot{background:var(--gold);animation:pulse-ring 1.2s infinite;}
    #sync-indicator.error .si-dot{background:var(--coral);}
    #sync-indicator.offline .si-dot{background:var(--text3);}

    /* ── PLANTILLAS CLÍNICAS ── */
    .plantilla-btn{
      display:flex;flex-direction:column;gap:4px;padding:14px 16px;
      border:1.5px solid var(--border);border-radius:var(--r);cursor:pointer;
      background:var(--surface);transition:all var(--tr);text-align:left;
      font-family:'Inter',sans-serif;
      -webkit-appearance:none;
      -webkit-tap-highlight-color:rgba(43,143,191,0.15);
      touch-action:manipulation;
      width:100%;
    }
    .plantilla-btn:hover{border-color:var(--sage);background:var(--sage-xl);transform:translateY(-2px);box-shadow:var(--sh-sm);}
    .plantilla-btn:active{transform:scale(0.97);background:var(--sage-xl);border-color:var(--sage);}
    .plantilla-btn .pt-icon{font-size:24px;margin-bottom:4px;}
    .plantilla-btn .pt-name{font-size:13px;font-weight:600;color:var(--text);}
    .plantilla-btn .pt-desc{font-size:11px;color:var(--text3);}

    /* ── PROGRESO PACIENTE ── */
    .progreso-ring{
      width:72px;height:72px;position:relative;flex-shrink:0;
    }
    .progreso-ring svg{transform:rotate(-90deg);}
    .progreso-ring .pr-bg{fill:none;stroke:var(--border);stroke-width:5;}
    .progreso-ring .pr-fill{fill:none;stroke:var(--sage);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .5s ease;}
    .progreso-ring .pr-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--sage);}

    /* ── ESTADÍSTICAS AVANZADAS ── */
    .stat-trend{display:flex;align-items:center;gap:4px;font-size:11px;margin-top:4px;}
    .stat-trend.up{color:var(--emerald);}
    .stat-trend.down{color:var(--coral);}
    .stat-trend svg{width:12px;height:12px;}

    /* ── RECORDATORIO CARD ── */
    .reminder-item{
      display:flex;align-items:center;gap:12px;padding:10px 14px;
      background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);
      margin-bottom:8px;transition:all var(--tr);cursor:pointer;
    }
    .reminder-item:hover{background:var(--sage-xl);border-color:var(--sage-l);}
    .reminder-item .ri-icon{
      width:36px;height:36px;border-radius:10px;
      display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;
    }
    .reminder-item .ri-title{font-size:13px;font-weight:500;color:var(--text);}
    .reminder-item .ri-sub{font-size:11px;color:var(--text3);}
    .reminder-item .ri-badge{margin-left:auto;padding:3px 8px;border-radius:12px;font-size:10px;font-weight:600;white-space:nowrap;}

    /* ── GOOGLE SCRIPT CONFIG BOX ── */
    .gs-config-box{
      border:1.5px dashed var(--border-strong);border-radius:var(--r);
      padding:20px;background:var(--sage-xl);margin-top:16px;
    }
    .gs-config-box .gc-title{font-size:14px;font-weight:600;color:var(--sage);margin-bottom:4px;}
    .gs-config-box .gc-desc{font-size:12px;color:var(--text2);margin-bottom:14px;line-height:1.6;}
    .gs-steps{counter-reset:step;display:flex;flex-direction:column;gap:10px;}
    .gs-step{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--text2);}
    .gs-step::before{counter-increment:step;content:counter(step);width:20px;height:20px;border-radius:50%;background:var(--sage);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;flex-shrink:0;margin-top:1px;}

    /* ── TURNO ITEM MEJORADO ── */
    .turno-slot{
      display:flex;align-items:center;gap:10px;padding:10px 14px;
      background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);
      margin-bottom:8px;transition:all var(--tr);cursor:pointer;
    }
    .turno-slot:hover{background:var(--sage-xl);border-color:var(--sage-l);transform:translateX(2px);}
    .turno-slot .ts-bar{width:3px;height:36px;border-radius:2px;background:var(--sage);flex-shrink:0;}
    .turno-time{font-size:13px;font-weight:600;color:var(--sage);min-width:50px;}

    /* ── PACIENTE CARD LIST — refinada ── */
    .pac-card-item{
      display:flex;align-items:center;gap:14px;padding:14px 18px;
      background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
      margin-bottom:10px;cursor:pointer;
      transition:background var(--tr-fast),border-color var(--tr-fast),box-shadow var(--tr-fast),transform var(--tr-fast);
    }
    .pac-card-item:hover{background:var(--white);border-color:var(--border-accent);box-shadow:var(--sh-md);transform:translateY(-1px);}
    html[data-theme='dark'] .pac-card-item:hover{background:var(--surface-2);}
    .pac-avatar{
      width:44px;height:44px;border-radius:50%;
      background:linear-gradient(135deg,var(--sage),var(--sage-l));
      display:flex;align-items:center;justify-content:center;
      font-size:16px;font-weight:700;color:#fff;flex-shrink:0;
      box-shadow:var(--sh-sm);letter-spacing:-0.02em;
    }
    .pac-info .pac-name{font-size:14.5px;font-weight:600;color:var(--text);letter-spacing:-0.01em;}
    .pac-info .pac-meta{font-size:12px;color:var(--text3);margin-top:3px;font-variant-numeric:tabular-nums;}
    .pac-card-item .pac-actions{margin-left:auto;display:flex;gap:6px;}

    /* ── DEUDA BADGE — refinada ── */
    .deuda-badge{
      background:linear-gradient(135deg,var(--coral-l),rgba(224,90,58,0.02));
      border:1px solid rgba(224,90,58,0.20);border-radius:var(--r-sm);
      padding:10px 14px;display:flex;align-items:center;justify-content:space-between;
      margin-bottom:8px;
    }
    .deuda-badge .db-monto{font-size:16px;font-weight:700;color:var(--coral);font-variant-numeric:tabular-nums;letter-spacing:-0.01em;}
    .deuda-badge .db-meta{font-size:11.5px;color:var(--text3);}

    /* ── EXTRA MOBILE ── */
    @media(max-width:767px){
      .stat-val{font-size:22px!important;}
      .bento-stat .bs-val{font-size:26px!important;}
      .plantilla-btn{padding:12px;}
      .plantilla-btn .pt-icon{font-size:20px;}
    }

    /* ══════════════════════════════
       NOVEDADES DEL DÍA (BRIEFING)
    ══════════════════════════════ */
    #daily-briefing-overlay{
      display:none;position:fixed;inset:0;z-index:88000;
      background:rgba(5,10,18,0.65);
      backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);
      align-items:center;justify-content:center;
      padding:16px;
    }
    #daily-briefing-overlay.show{display:flex;}
    .briefing-card{
      background:var(--white);
      border:1px solid var(--border);
      border-radius:var(--r-xl);
      width:100%;max-width:500px;
      max-height:88dvh;
      overflow-y:auto;-webkit-overflow-scrolling:touch;
      box-shadow:var(--sh-xl);
      animation:briefing-in .4s var(--ease-bounce);
    }
    html[data-theme='dark'] .briefing-card{background:var(--surface-2);}
    @keyframes briefing-in{from{opacity:0;transform:scale(0.92) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}
    .briefing-header{
      background:linear-gradient(135deg,#0A1A2A 0%,#13314D 50%,#2B8FBF 100%);
      border-radius:var(--r-xl) var(--r-xl) 0 0;padding:30px 28px 22px;color:#fff;position:relative;
      overflow:hidden;
    }
    .briefing-header::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(255,255,255,0.12),transparent 60%);pointer-events:none;}
    .briefing-header .bh-date{font-size:11px;opacity:0.75;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px;font-weight:600;}
    .briefing-header .bh-title{font-family:'Sora',sans-serif;font-size:24px;font-weight:700;line-height:1.15;letter-spacing:-0.02em;}
    .briefing-header .bh-sub{font-size:13px;opacity:0.85;margin-top:6px;font-weight:400;}
    .briefing-close{
      position:absolute;top:16px;right:16px;
      background:rgba(255,255,255,0.12);
      border:1px solid rgba(255,255,255,0.18);
      border-radius:50%;width:36px;height:36px;cursor:pointer;
      font-size:18px;color:#fff;
      display:flex;align-items:center;justify-content:center;line-height:1;
      transition:all var(--tr-fast);
      backdrop-filter:blur(8px);
    }
    .briefing-close:hover{background:rgba(255,255,255,0.22);transform:rotate(90deg);}
    .briefing-body{padding:24px 26px 26px;}

    /* Sección dentro del briefing */
    .briefing-section{margin-bottom:22px;}
    .briefing-section:last-child{margin-bottom:0;}
    .bs-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border);}
    .bs-head .bsh-icon{font-size:18px;}
    .bs-head .bsh-label{font-size:13.5px;font-weight:700;color:var(--text);flex:1;letter-spacing:-0.005em;}
    .bs-head .bsh-count{
      font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--r-pill);
      background:var(--sage-xl);color:var(--sage);font-variant-numeric:tabular-nums;
    }

    /* Ítem dentro de sección */
    .briefing-item{
      display:flex;align-items:center;gap:12px;padding:12px 14px;
      border-radius:var(--r);margin-bottom:8px;
      background:var(--surface);border:1px solid var(--border);
      transition:transform var(--tr-fast),box-shadow var(--tr-fast),border-color var(--tr-fast);
    }
    .briefing-item:hover{transform:translateX(2px);box-shadow:var(--sh-sm);border-color:var(--border-strong);}
    .briefing-item:last-child{margin-bottom:0;}
    .briefing-item .bi-avatar{
      width:42px;height:42px;border-radius:50%;flex-shrink:0;
      display:flex;align-items:center;justify-content:center;
      font-size:17px;font-weight:700;color:#fff;
      background:linear-gradient(135deg,var(--sage),var(--sage-l));
      box-shadow:var(--sh-sm);
    }
    .briefing-item .bi-avatar.cumple{background:linear-gradient(135deg,#D4A017,#F0C040);}
    .briefing-item .bi-avatar.turno{background:linear-gradient(135deg,var(--lavender),#9b8fdf);}
    .briefing-item .bi-info{flex:1;min-width:0;}
    .briefing-item .bi-nombre{font-size:13.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-0.005em;}
    .briefing-item .bi-meta{font-size:11.5px;color:var(--text3);margin-top:2px;font-variant-numeric:tabular-nums;}
    .briefing-item .bi-badge{font-size:10px;font-weight:700;padding:3px 9px;border-radius:var(--r-pill);white-space:nowrap;flex-shrink:0;letter-spacing:0.3px;text-transform:uppercase;}
    .bi-badge.hoy{background:var(--coral-l);color:var(--coral);}
    .bi-badge.manana{background:var(--sage-xl);color:var(--sage);}
    .bi-badge.prox{background:var(--surface-2);color:var(--text3);border:1px solid var(--border);}

    /* Botón WA en briefing */
    .briefing-wa{
      display:flex;align-items:center;gap:6px;padding:9px 13px;
      background:#25D366;color:#fff;border-radius:var(--r-pill);
      font-size:12.5px;font-weight:600;text-decoration:none;
      border:none;cursor:pointer;white-space:nowrap;flex-shrink:0;
      transition:background var(--tr-fast),transform var(--tr-fast),box-shadow var(--tr-fast);
      box-shadow:var(--sh-xs);
    }
    .briefing-wa:active{transform:scale(0.95);}
    .briefing-wa:hover{background:#1ebe5a;box-shadow:var(--sh-sm);}
    .briefing-wa svg{flex-shrink:0;}

    /* Footer del briefing */
    .briefing-footer{padding:0 26px 26px;}
    .briefing-btn-empezar{
      width:100%;padding:15px;border:none;border-radius:var(--r);
      background:linear-gradient(180deg,var(--sage) 0%,var(--sage-d) 100%);
      color:#fff;
      font-family:'Inter',sans-serif;font-size:15px;font-weight:600;
      cursor:pointer;box-shadow:var(--sh-md),inset 0 1px 0 rgba(255,255,255,0.18);
      transition:transform var(--tr-fast),box-shadow var(--tr-fast);
      letter-spacing:-0.01em;
    }
    .briefing-btn-empezar:hover{transform:translateY(-1px);box-shadow:var(--sh-lg),inset 0 1px 0 rgba(255,255,255,0.18);}
    .briefing-btn-empezar:active{transform:scale(0.98);}

    /* Mensaje WA pre-armado — copyable */
    .wa-msg-preview{
      background:#e8f5e9;border:1px solid #a5d6a7;border-radius:var(--r-sm);
      padding:10px 14px;font-size:12px;color:#1b5e20 !important;line-height:1.6;
      margin-top:8px;font-style:italic;border-left:3px solid #25d366;
    }

    /* ── RIPPLE BUTTON EFFECT ── */
    .btn-ripple{position:absolute;border-radius:50%;transform:scale(0);animation:ripple .5s linear;background:rgba(255,255,255,0.3);pointer-events:none;}
    @keyframes ripple{to{transform:scale(4);opacity:0;}}

    #dark-toggle{
      display:flex;align-items:center;justify-content:center;
      width:36px;height:36px;border-radius:50%;
      background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.22);
      cursor:pointer;transition:all .2s;flex-shrink:0;
      color:rgba(255,255,255,0.8);
      touch-action:manipulation;
      -webkit-tap-highlight-color:rgba(255,255,255,0.15);
    }
    #dark-toggle:hover{background:var(--sage-xl);border-color:var(--sage-l);color:var(--sage);}
    #dark-toggle svg{width:16px;height:16px;pointer-events:none;}
    /* Smooth theme transition */
    body,#sb,.topbar,.card,.modal-box,.modal-edit-box,.modal-box-wide,
    input,select,textarea,.stat-card,.turno-slot,.evolution-item,
    #app-login-screen,#licencia-vencida-screen{
      transition:background .35s,background-color .35s,border-color .25s,color .25s;
    }


    /* ══════════════════════════════════
       BENTO GRID SYSTEM
    ══════════════════════════════════ */
    .bento{
      display:grid;
      gap:var(--bento-gap);
      width:100%;
    }
    /* 12-column bento base */
    .bento-12{ grid-template-columns:repeat(12,1fr); }

    /* Column spans */
    .b-1{grid-column:span 1;} .b-2{grid-column:span 2;} .b-3{grid-column:span 3;}
    .b-4{grid-column:span 4;} .b-5{grid-column:span 5;} .b-6{grid-column:span 6;}
    .b-7{grid-column:span 7;} .b-8{grid-column:span 8;} .b-9{grid-column:span 9;}
    .b-10{grid-column:span 10;}.b-11{grid-column:span 11;}.b-12{grid-column:span 12;}
    /* Row spans */
    .br-1{grid-row:span 1;} .br-2{grid-row:span 2;} .br-3{grid-row:span 3;}

    /* Bento card base — refinado tipo dashboard moderno */
    .bento-card{
      background:var(--white);
      border:1px solid var(--border);
      border-radius:var(--r-lg);
      padding:22px 24px;
      box-shadow:var(--sh-sm);
      transition:box-shadow var(--tr),transform var(--tr),border-color var(--tr);
      overflow:hidden;
      position:relative;
    }
    html[data-theme='dark'] .bento-card,
    @media(prefers-color-scheme:dark){html:not([data-theme='light']) .bento-card}{
      background:var(--surface-2);
    }
    .bento-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px);border-color:var(--border-strong);}

    /* Bento hero (welcome banner) — más elegante */
    .bento-hero{
      background:linear-gradient(135deg,#0A1A2A 0%,#13314D 40%,#1F5582 75%,#2B8FBF 100%);
      border:none;color:#fff;
      border-radius:var(--r-lg);
      box-shadow:var(--sh-md);
      position:relative;
    }
    .bento-hero::before{
      content:'';position:absolute;inset:0;
      background:radial-gradient(ellipse at top right,rgba(255,255,255,0.18),transparent 55%);
      pointer-events:none;border-radius:inherit;
    }
    .bento-hero:hover{transform:translateY(-2px);box-shadow:var(--sh-lg);}
    @media(max-width:600px){
      .bento-hero{flex-wrap:nowrap!important;}
      .bento-hero > div:last-child{display:none!important;}
    }

    /* Stat bento */
    .bento-stat .bs-val{font-size:32px;font-weight:700;letter-spacing:-0.025em;line-height:1;font-feature-settings:'tnum';}
    .bento-stat .bs-lbl{font-size:11px;font-weight:600;letter-spacing:0.4px;margin-top:8px;color:var(--text3);text-transform:uppercase;}
    .bento-stat .bs-icon{
      position:absolute;right:18px;top:18px;
      width:40px;height:40px;border-radius:var(--r-sm);
      display:flex;align-items:center;justify-content:center;
      font-size:18px;opacity:0.85;
    }
    .bento-stat.sage{background:linear-gradient(135deg,var(--sage-xl),rgba(43,143,191,0.02));}
    .bento-stat.sage .bs-val{color:var(--sage);}
    .bento-stat.sage .bs-icon{background:var(--sage-xl);}
    .bento-stat.gold{background:linear-gradient(135deg,var(--gold-l),rgba(184,150,62,0.02));}
    .bento-stat.gold .bs-val{color:var(--gold);}
    .bento-stat.gold .bs-icon{background:var(--gold-l);}
    .bento-stat.mint{background:linear-gradient(135deg,var(--mint-l),rgba(34,184,160,0.02));}
    .bento-stat.mint .bs-val{color:var(--mint);}
    .bento-stat.mint .bs-icon{background:var(--mint-l);}
    .bento-stat.lavender{background:linear-gradient(135deg,var(--lavender-l),rgba(124,111,207,0.02));}
    .bento-stat.lavender .bs-val{color:var(--lavender);}
    .bento-stat.lavender .bs-icon{background:var(--lavender-l);}
    .bento-stat.coral{background:linear-gradient(135deg,var(--coral-l),rgba(224,90,58,0.02));}
    .bento-stat.coral .bs-val{color:var(--coral);}
    .bento-stat.coral .bs-icon{background:var(--coral-l);}

    /* Bento card title */
    .bento-title{font-family:'Sora',sans-serif;font-size:14px;color:var(--sage);margin-bottom:14px;font-weight:500;letter-spacing:0.2px;}

    /* Responsive bento breakpoints */
    @media(max-width:1100px){
      .bento-12{grid-template-columns:repeat(6,1fr);}
      .b-3{grid-column:span 3;} .b-4{grid-column:span 3;} .b-8{grid-column:span 6;} .b-9{grid-column:span 6;}
    }
    @media(max-width:767px){
      .bento-12{grid-template-columns:repeat(2,1fr);}
      .b-1,.b-2,.b-3,.b-4,.b-5,.b-6,.b-7,.b-8,.b-9,.b-10,.b-11,.b-12{grid-column:span 2;}
      .br-2,.br-3{grid-row:span 1;}
    }


    /* ── GDPR ── */
    #gdpr-banner{
      position:fixed;bottom:0;left:0;right:0;z-index:8000;
      background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
      border-top:1px solid var(--border);
      padding:18px 28px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
      box-shadow:0 -6px 30px rgba(0,0,0,0.1);
      animation:fi .4s ease;
    }
    #gdpr-banner.hidden{display:none;}
    #gdpr-banner .gdpr-text{flex:1;min-width:240px;font-size:12.5px;color:var(--text2);line-height:1.6;}
    #gdpr-banner .gdpr-text strong{color:var(--text);font-weight:500;}
    #gdpr-banner .gdpr-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0;}
    .gdpr-section{border:1px solid var(--coral-l,rgba(212,97,74,0.2));border-radius:var(--r);padding:20px;margin-top:16px;background:rgba(212,97,74,0.04);}
    .gdpr-section .gdpr-s-title{font-size:13px;font-weight:500;color:var(--coral);margin-bottom:8px;display:flex;align-items:center;gap:6px;}
    .gdpr-section .gdpr-s-desc{font-size:12px;color:var(--text2);margin-bottom:12px;font-weight:300;line-height:1.6;}
    .btn-danger{background:var(--coral);color:#fff;box-shadow:0 2px 8px rgba(212,97,74,0.25);}
    .btn-danger:hover{background:#bf4a34;box-shadow:0 4px 14px rgba(212,97,74,0.4);transform:translateY(-1px);}
    .gdpr-export-box{background:var(--surface);border-radius:var(--rs);padding:14px;margin-top:10px;border:1px solid var(--border);}
    .gdpr-export-box .gdpr-eb-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
    .gdpr-export-box .gdpr-eb-row:last-child{border-bottom:none;}
    .gdpr-log{font-size:11px;color:var(--text3);background:var(--surface);border-radius:var(--rs);padding:10px 12px;max-height:140px;overflow-y:auto;font-family:monospace;border:1px solid var(--border);margin-top:8px;}
    /* Modal confirm danger */
    .modal-danger-box{
      background:var(--glass-strong);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
      border:1.5px solid rgba(212,97,74,0.3);border-radius:var(--r);
      padding:32px;width:440px;max-width:95%;text-align:center;
      box-shadow:var(--sh-lg);animation:modal-in .25s cubic-bezier(0.34,1.56,0.64,1);
    }


    /* ── QR PAGO ───────────────────────────────────────── */
    #qr-fab{
      position:fixed;bottom:96px;right:28px;z-index:4890;
      width:50px;height:50px;border-radius:50%;border:none;cursor:pointer;
      background:linear-gradient(135deg,#1A5278,#2B8FBF);
      color:#fff;box-shadow:0 4px 18px rgba(43,143,191,0.40);
      display:flex;align-items:center;justify-content:center;
      transition:transform .2s,box-shadow .2s;
      font-size:20px;
    }
    #qr-fab:hover{transform:scale(1.1) translateY(-2px);box-shadow:0 8px 28px rgba(43,143,191,0.55);}
    #qr-fab:active{transform:scale(0.96);}
    @media(max-width:767px){
      /* En mobile: QR a la izquierda, + a la derecha, ambos sobre el bottom-nav */
      #qr-fab{bottom:82px;left:20px;right:auto;width:52px;height:52px;font-size:20px;}
    }
    .qr-modal{
      background:var(--glass-strong);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
      border:1px solid rgba(255,255,255,0.5);border-radius:26px;
      padding:32px 28px 24px;width:340px;max-width:94vw;
      text-align:center;position:relative;
      box-shadow:var(--sh-lg);
      animation:modal-in .25s cubic-bezier(0.34,1.56,0.64,1);
    }
    .qr-img-wrap{
      width:220px;height:220px;margin:0 auto 16px;
      border-radius:18px;overflow:hidden;
      border:2px solid var(--border);
      background:var(--white);
      display:flex;align-items:center;justify-content:center;
      box-shadow:var(--sh-sm);
    }
    .qr-img-wrap img{width:100%;height:100%;object-fit:contain;}
    .qr-title{font-family:'Sora',sans-serif;font-size:18px;color:var(--sage);margin-bottom:4px;}
    .qr-sub{font-size:12px;color:var(--text3);font-weight:300;margin-bottom:16px;}
    .qr-alias{
      background:var(--surface);border:1px solid var(--border);
      border-radius:var(--rs);padding:10px 16px;
      font-size:13px;color:var(--text);font-weight:500;letter-spacing:0.5px;
      display:flex;align-items:center;justify-content:space-between;gap:10px;
      cursor:pointer;transition:background .2s;margin-bottom:16px;
    }
    .qr-alias:hover{background:var(--sage-xl);}
    .qr-alias .copy-hint{font-size:10px;color:var(--text3);}
    .qr-steps{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:6px;}
    .qr-step{
      background:var(--sage-xl);color:var(--sage);
      border-radius:var(--rs);padding:5px 12px;
      font-size:11px;font-weight:500;
    }

    /* ── AI EVOLUTION SUMMARY ──────────────────────────── */
    .ai-summary-wrap{
      background:linear-gradient(135deg,rgba(122,111,192,0.08),rgba(77,170,143,0.06));
      border:1px solid rgba(122,111,192,0.2);
      border-radius:var(--r);padding:18px 20px;margin-top:16px;
      position:relative;overflow:hidden;
    }
    .ai-summary-wrap::before{
      content:'';position:absolute;top:0;left:0;right:0;height:2px;
      background:linear-gradient(90deg,var(--lavender),var(--mint),var(--lavender));
      background-size:200% 100%;animation:ai-shimmer 2.5s linear infinite;
    }
    @keyframes ai-shimmer{0%{background-position:0 0}100%{background-position:200% 0}}
    .ai-summary-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
    .ai-badge{
      display:inline-flex;align-items:center;gap:5px;
      background:rgba(122,111,192,0.15);color:var(--lavender);
      border-radius:20px;padding:3px 10px;font-size:11px;font-weight:500;
    }
    .ai-summary-text{font-size:13px;color:var(--text2);line-height:1.7;font-weight:300;}
    .ai-summary-text strong{color:var(--text);font-weight:500;}
    .ai-loading{display:flex;align-items:center;gap:10px;padding:8px 0;}
    .ai-dots span{
      display:inline-block;width:6px;height:6px;border-radius:50%;
      background:var(--lavender);margin:0 2px;
      animation:ai-bounce .8s infinite;
    }
    .ai-dots span:nth-child(2){animation-delay:.15s;}
    .ai-dots span:nth-child(3){animation-delay:.3s;}
    @keyframes ai-bounce{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-6px)}}
    .ai-btn{
      display:inline-flex;align-items:center;gap:7px;
      background:linear-gradient(135deg,var(--lavender),var(--mint));
      color:#fff;border:none;border-radius:var(--rs);
      padding:8px 16px;font-size:12px;font-weight:500;
      cursor:pointer;font-family:'Inter',sans-serif;
      transition:opacity .2s,transform .2s;
      box-shadow:0 2px 10px rgba(122,111,192,0.3);
    }
    .ai-btn:hover{opacity:0.9;transform:translateY(-1px);}
    .ai-btn:disabled{opacity:0.5;cursor:not-allowed;transform:none;}
    .ai-sections{display:grid;gap:10px;margin-top:10px;}
    .ai-section{background:var(--white);border-radius:var(--rs);padding:12px 14px;border:1px solid var(--border);}
    .ai-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.8px;color:var(--lavender);margin-bottom:6px;}
    .ai-section-body{font-size:12.5px;color:var(--text2);line-height:1.6;font-weight:300;}
    .ai-token-note{font-size:10px;color:var(--text3);margin-top:8px;text-align:right;}

    /* ══════════════════════════════════════
       MÓDULO COBRANZAS
    ══════════════════════════════════════ */
    /* Semáforo de deuda */
    .debt-traffic{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:500;}
    .debt-green{background:rgba(77,170,143,0.15);color:#1a7a5a;}
    .debt-yellow{background:rgba(184,144,90,0.15);color:#8a6020;}
    .debt-red{background:rgba(212,97,74,0.18);color:#8a2a18;}
    .debt-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
    .debt-green .debt-dot{background:#2aaa7a;}
    .debt-yellow .debt-dot{background:var(--gold);}
    .debt-red .debt-dot{background:var(--coral);animation:pulse-dot .9s infinite;}
    @keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:0.45}}

    /* Estado cobro badges */
    .badge-pendiente{background:rgba(184,144,90,0.13);color:#8a6020;}
    .badge-presentado{background:rgba(122,111,192,0.15);color:#4f3f8a;}
    .badge-liquidado{background:rgba(77,170,143,0.15);color:#1a7a5a;}
    .badge-reclamado{background:rgba(212,97,74,0.15);color:#8a2a18;}

    /* Dashboard aging rows */
    .aging-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:var(--rs);border:1px solid var(--border);margin-bottom:8px;background:var(--surface);transition:background .2s;}
    .aging-row:hover{background:var(--white);}
    .aging-row.alert-red{border-left:3px solid var(--coral);background:rgba(212,97,74,0.04);}
    .aging-row.alert-yellow{border-left:3px solid var(--gold);background:rgba(184,144,90,0.04);}
    .aging-row .ar-pac{flex:1;min-width:0;}
    .aging-row .ar-pac-name{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .aging-row .ar-pac-sub{font-size:11px;color:var(--text3);margin-top:1px;}
    .aging-row .ar-dias{font-size:20px;font-weight:600;min-width:40px;text-align:right;}
    .aging-row.alert-red .ar-dias{color:var(--coral);}
    .aging-row.alert-yellow .ar-dias{color:var(--gold);}
    .aging-row .ar-monto{font-size:13px;font-weight:500;color:var(--sage);min-width:80px;text-align:right;}

    /* Cobro card resumen */
    .cobr-stat-band{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
    .cobr-stat{flex:1;min-width:140px;background:var(--glass-strong);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh-sm);}
    .cobr-stat .cs-val{font-size:24px;font-weight:600;color:var(--sage);}
    .cobr-stat .cs-lbl{font-size:11px;color:var(--text3);margin-top:3px;font-weight:300;}
    .cobr-stat.pending .cs-val{color:var(--gold);}
    .cobr-stat.overdue .cs-val{color:var(--coral);}
    .cobr-stat.ok .cs-val{color:var(--mint);}

    /* Professional filter pills */
    .prof-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;}
    .prof-pill{padding:5px 14px;border-radius:20px;font-size:12px;font-weight:500;border:1px solid var(--border);color:var(--text2);cursor:pointer;transition:all .2s;background:var(--surface);}
    .prof-pill:hover,.prof-pill.active{background:var(--sage);color:#fff;border-color:var(--sage);}

    /* ══════════════════════════════════
       HISTORIA CLÍNICA — ADJUNTOS
    ══════════════════════════════════ */
    .hc-adjunto-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;}
    .hc-adjunto{
      display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
      width:90px;min-height:90px;border-radius:var(--rs);border:1px solid var(--border);
      background:var(--surface);cursor:pointer;padding:6px 6px 8px;text-align:center;
      position:relative;transition:box-shadow .15s,transform .15s;font-size:10px;color:var(--text3);
      word-break:break-all;overflow:hidden;
    }
    .hc-adjunto:hover{box-shadow:var(--sh-md);transform:translateY(-2px);}
    .hc-adjunto .hc-adj-thumb{
      width:100%;height:60px;object-fit:cover;border-radius:4px;display:block;
    }
    .hc-adjunto .hc-adj-icon{font-size:26px;line-height:1;}
    .hc-adjunto .hc-adj-del{
      position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;
      background:var(--coral);color:#fff;font-size:10px;display:flex;align-items:center;
      justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s;border:none;
      line-height:1;z-index:2;
    }
    .hc-adjunto:hover .hc-adj-del{opacity:1;}
    .hc-upload-zone{
      border:2px dashed var(--border);border-radius:var(--rs);
      padding:18px;text-align:center;cursor:pointer;transition:all .2s;
      background:var(--surface);color:var(--text3);font-size:12px;margin-top:10px;
    }
    .hc-upload-zone:hover,.hc-upload-zone.drag{border-color:var(--sage);background:var(--sage-xl);color:var(--sage);}

    /* ══════════════════════════════════
       CONSENTIMIENTO INFORMADO
    ══════════════════════════════════ */
    .consent-canvas-wrap{
      border:1px solid var(--border);border-radius:var(--rs);
      background:#fff;overflow:hidden;margin-top:10px;cursor:crosshair;
      /* iOS Safari: touch-action none on the canvas itself, not the wrapper */
    }
    .consent-canvas-wrap canvas{display:block;width:100%;height:160px;touch-action:none;}
    .consent-sig-label{font-size:10px;color:var(--text3);text-align:center;padding:4px 0 6px;
      border-top:1px dashed var(--border);letter-spacing:0.3px;}

    /* ══════════════════════════════════
       VADEMECUM PAMI
    ══════════════════════════════════ */
    .vadem-result{
      display:flex;align-items:flex-start;gap:10px;
      padding:10px 12px;border-bottom:1px solid var(--border);
      font-size:12px;cursor:pointer;transition:background .15s;
    }
    .vadem-result:hover{background:var(--sage-xl);}
    .vadem-result:last-child{border-bottom:none;}
    .vadem-badge{
      flex-shrink:0;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:500;
      background:rgba(92,122,92,0.12);color:var(--sage);border:1px solid rgba(92,122,92,0.2);margin-top:2px;
    }
    .vadem-nombre{font-weight:500;color:var(--text);line-height:1.3;}
    .vadem-lab{color:var(--text3);font-size:11px;margin-top:2px;}
    #vadem-results-list{max-height:320px;overflow-y:auto;margin-top:8px;border:1px solid var(--border);border-radius:var(--rs);}
    #vadem-spinner{display:none;text-align:center;padding:24px;color:var(--text3);font-size:12px;}
    #vadem-topbar-btn{
      display:flex;align-items:center;gap:5px;background:none;border:1px solid var(--border);
      border-radius:20px;padding:4px 12px;font-size:11px;color:var(--text2);cursor:pointer;
      transition:all .2s;font-family:inherit;
    }
    #vadem-topbar-btn:hover{border-color:var(--sage);color:var(--sage);background:var(--sage-xl);}

    /* ══════════════════════════════════
       BARRA DE NAVEGACIÓN INFERIOR (MOBILE) — refinada
    ══════════════════════════════════ */
    #bottom-nav{
      display:none;
      position:fixed;bottom:0;left:0;right:0;
      height:64px;
      background:var(--glass-strong);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);
      border-top:1px solid var(--border);
      z-index:150;
      padding-bottom:env(safe-area-inset-bottom,0px);
      box-shadow:0 -2px 20px rgba(15,26,36,0.06);
    }
    #bottom-nav ul{
      display:flex;align-items:stretch;justify-content:space-around;
      list-style:none;height:100%;padding:0;margin:0;
    }
    #bottom-nav li{
      flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:4px;cursor:pointer;transition:color var(--tr-fast);
      font-size:10px;font-weight:600;color:var(--text3);letter-spacing:0.3px;
      padding:6px 0 2px;
      border:none;background:none;position:relative;
    }
    #bottom-nav li::before{
      content:'';position:absolute;top:0;left:50%;transform:translateX(-50%) scaleX(0);
      width:32px;height:3px;border-radius:0 0 3px 3px;background:var(--sage);
      transition:transform .25s var(--ease-bounce);
    }
    #bottom-nav li svg{width:22px;height:22px;stroke-width:1.8;transition:transform .25s var(--ease-bounce);}
    #bottom-nav li.bn-active{color:var(--sage);}
    #bottom-nav li.bn-active::before{transform:translateX(-50%) scaleX(1);}
    #bottom-nav li.bn-active svg{transform:scale(1.12);}
    #bottom-nav li:active{transform:scale(0.92);}
    html[data-theme='dark'] #bottom-nav{background:rgba(10,18,24,0.92);border-color:rgba(255,255,255,0.08);}
    @media(prefers-color-scheme:dark){html:not([data-theme='light']) #bottom-nav{background:rgba(10,18,24,0.92);border-color:rgba(255,255,255,0.08);}}
    @media(max-width:767px){
      #bottom-nav{display:block;}
    }

    /* ══════════════════════════════════
       FAB — BOTÓN FLOTANTE "+"
    ══════════════════════════════════ */
    #fab-add{
      position:fixed;
      right:24px;bottom:28px;
      width:56px;height:56px;border-radius:50%;
      background:linear-gradient(135deg,var(--sage) 0%,var(--sage-d) 100%);
      color:#fff;border:none;cursor:pointer;
      display:flex;align-items:center;justify-content:center;
      box-shadow:var(--sh-lg),inset 0 1px 0 rgba(255,255,255,0.18);
      z-index:5000;
      transition:transform var(--tr) var(--ease-bounce),box-shadow var(--tr);
      font-size:26px;line-height:1;font-weight:300;
      -webkit-tap-highlight-color:transparent;
    }
    #fab-add:hover{transform:scale(1.08);box-shadow:var(--sh-xl),inset 0 1px 0 rgba(255,255,255,0.18);}
    #fab-add:active{transform:scale(0.96);}
    /* Removed open/× rotation - keep as + always */
    @media(max-width:767px){
      /* Mobile: FAB+ a la derecha sobre bottom-nav, QR a la izquierda */
      #fab-add{right:20px;bottom:82px;width:52px;height:52px;font-size:24px;}
    }
    #fab-menu{
      position:fixed;right:24px;bottom:96px;
      display:flex;flex-direction:column;gap:10px;align-items:flex-end;
      z-index:4999;
      pointer-events:none;opacity:0;transform:translateY(16px);
      transition:opacity .22s var(--ease-out),transform .25s var(--ease-out);
    }
    #fab-menu.show{pointer-events:all;opacity:1;transform:translateY(0);}
    @media(max-width:767px){#fab-menu{right:20px;bottom:150px;}}
    .fab-item{
      display:flex;align-items:center;gap:10px;cursor:pointer;
      background:var(--white);
      border:1px solid var(--border);border-radius:var(--r-pill);
      padding:9px 18px 9px 10px;
      box-shadow:var(--sh-md);
      font-size:13.5px;font-weight:600;color:var(--text);letter-spacing:-0.005em;
      transition:transform var(--tr-fast),box-shadow var(--tr-fast),border-color var(--tr-fast);
      white-space:nowrap;
    }
    html[data-theme='dark'] .fab-item{background:var(--surface-2);}
    .fab-item:hover{transform:translateX(-3px);box-shadow:var(--sh-lg);border-color:var(--border-strong);}
    .fab-item:active{transform:scale(0.96);}
    .fab-item-icon{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
    #fab-overlay{display:none;position:fixed;inset:0;z-index:4998;background:rgba(8,14,20,0.30);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:overlayIn .15s var(--ease-out);}
    #fab-overlay.show{display:block;}

    /* ══════════════════════════════════
       WIZARD / FORMULARIOS ESCALONADOS
    ══════════════════════════════════ */
    .wizard-overlay{
      display:none;position:fixed;inset:0;
      background:rgba(15,15,15,0.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
      z-index:6000;align-items:center;justify-content:center;
    }
    .wizard-overlay.show{display:flex;}
    .wizard-box{
      background:var(--glass-strong);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
      border:1px solid rgba(255,255,255,0.5);border-radius:22px;
      padding:32px;width:540px;max-width:96%;max-height:90vh;overflow-y:auto;
      position:relative;box-shadow:var(--sh-lg);
      animation:modal-in .28s cubic-bezier(0.34,1.56,0.64,1);
    }
    .wizard-header{margin-bottom:28px;}
    .wizard-title{font-family:'Sora',sans-serif;font-size:20px;color:var(--sage);margin-bottom:4px;}
    .wizard-subtitle{font-size:12px;color:var(--text3);}
    /* Progress bar */
    .wizard-progress{display:flex;align-items:center;gap:0;margin-bottom:28px;}
    .wiz-step{
      flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;position:relative;
    }
    .wiz-step:not(:last-child)::after{
      content:'';position:absolute;top:14px;left:50%;right:-50%;height:2px;
      background:var(--border);z-index:0;
    }
    .wiz-step.done::after,.wiz-step.current::after{background:var(--sage);}
    .wiz-step-dot{
      width:28px;height:28px;border-radius:50%;border:2px solid var(--border);
      display:flex;align-items:center;justify-content:center;
      font-size:12px;font-weight:600;color:var(--text3);
      background:var(--surface);position:relative;z-index:1;transition:all .2s;
    }
    .wiz-step.done .wiz-step-dot{background:var(--sage);border-color:var(--sage);color:#fff;}
    .wiz-step.current .wiz-step-dot{background:var(--sage-xl);border-color:var(--sage);color:var(--sage);}
    .wiz-step-lbl{font-size:10px;color:var(--text3);text-align:center;letter-spacing:0.3px;font-weight:500;}
    .wiz-step.current .wiz-step-lbl{color:var(--sage);}
    /* Step panels */
    .wiz-panel{display:none;animation:fi .22s ease;}
    .wiz-panel.active{display:block;}
    /* Nav buttons */
    .wizard-footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:10px;}
    .wizard-footer .wiz-counter{font-size:11px;color:var(--text3);}

    /* ══════════════════════════════════
       BIOMETRIC LOGIN SCREEN
    ══════════════════════════════════ */
    #app-login-screen{
      display:none;position:fixed;inset:0;z-index:99999;
      background:var(--cream);
      background-image:radial-gradient(circle,rgba(128,128,128,0.09) 1px,transparent 1px);
      background-size:22px 22px;
      align-items:center;justify-content:center;
    }
    #app-login-screen.show{display:flex;}
    .login-card{
      background:var(--glass-strong);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
      border:1px solid rgba(255,255,255,0.55);border-radius:24px;
      padding:40px 36px;width:380px;max-width:94%;
      box-shadow:var(--sh-lg);text-align:center;
      animation:modal-in .35s cubic-bezier(0.34,1.56,0.64,1);
    }
    .login-logo{width:64px;height:64px;background:linear-gradient(135deg,#2A5F82,#3B9FD1);border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;box-shadow:0 8px 24px rgba(59,159,209,0.3);}
    .login-title{font-family:'Sora',sans-serif;font-size:22px;color:var(--sage);margin-bottom:4px;}
    .login-sub{font-size:12px;color:var(--text3);margin-bottom:28px;}
    .biometric-btn{
      width:80px;height:80px;border-radius:50%;border:none;cursor:pointer;
      background:linear-gradient(135deg,var(--sage-xl),rgba(92,122,92,0.06));
      border:2px solid var(--sage-l);
      display:flex;align-items:center;justify-content:center;
      margin:0 auto 14px;font-size:36px;
      box-shadow:0 4px 20px rgba(92,122,92,0.2);
      transition:all .25s cubic-bezier(0.34,1.56,0.64,1);
    }
    .biometric-btn:hover{transform:scale(1.08);box-shadow:0 8px 28px rgba(92,122,92,0.35);}
    .biometric-btn:active{transform:scale(0.94);}
    .biometric-btn.scanning{animation:bio-pulse 1.4s infinite;}
    @keyframes bio-pulse{0%,100%{box-shadow:0 4px 20px rgba(59,159,209,0.2)}50%{box-shadow:0 4px 28px rgba(59,159,209,0.55),0 0 0 8px rgba(59,159,209,0.1)}}
    .login-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--text3);font-size:11px;}
    .login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:var(--border);}
    .pin-dots{display:flex;justify-content:center;gap:10px;margin:12px 0 6px;}
    .pin-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--border);transition:all .15s;}
    .pin-dot.filled{background:var(--sage);border-color:var(--sage);}
    .numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:240px;margin:0 auto;}
    .numpad-btn{
      aspect-ratio:1;border-radius:50%;border:1px solid var(--border);background:var(--surface);
      font-size:18px;font-weight:400;color:var(--text);cursor:pointer;
      display:flex;align-items:center;justify-content:center;
      transition:all .15s;font-family:'Inter',sans-serif;
    }
    .numpad-btn:hover{background:var(--sage-xl);border-color:var(--sage-l);color:var(--sage);}
    .numpad-btn:active{transform:scale(0.9);}
    #login-bio-status{font-size:12px;color:var(--text3);margin-bottom:8px;min-height:18px;}
    #bio-icon{font-size:32px;line-height:1;font-family:'Noto Color Emoji','Apple Color Emoji','Segoe UI Emoji','Twemoji Mozilla',sans-serif;}
    #login-pin-error{font-size:11px;color:var(--coral);min-height:16px;margin-top:4px;}

    /* ══════════════════════════════════
       CALENDAR SYNC BADGE
    ══════════════════════════════════ */
    .cal-sync-badge{
      display:inline-flex;align-items:center;gap:6px;
      background:rgba(92,122,92,0.1);border:1px solid rgba(92,122,92,0.18);
      border-radius:20px;padding:4px 12px;font-size:11px;font-weight:500;color:var(--sage);
      cursor:pointer;transition:all .2s;
    }
    .cal-sync-badge:hover{background:rgba(92,122,92,0.16);}
    .cal-sync-dot{width:6px;height:6px;border-radius:50%;background:var(--mint);animation:pulse-dot .9s infinite;}
    /* Wearable panel */
    .wearable-card{
      background:linear-gradient(135deg,rgba(122,111,192,0.07),rgba(77,170,143,0.05));
      border:1px solid rgba(122,111,192,0.15);border-radius:var(--r);padding:18px 20px;margin-top:16px;
    }
    .wearable-metrics{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;}
    .wearable-metric{
      flex:1;min-width:90px;background:var(--glass-strong);border:1px solid var(--border);
      border-radius:var(--rs);padding:12px;text-align:center;
    }
    .wm-val{font-size:20px;font-weight:600;color:var(--sage);}
    .wm-lbl{font-size:10px;color:var(--text3);margin-top:2px;font-weight:300;letter-spacing:0.3px;}
    .wm-icon{font-size:18px;margin-bottom:4px;}

  
    .ni{width:15px;height:15px;vertical-align:middle;flex-shrink:0;opacity:0.75;margin-right:1px;}
    .nav-item .ni{width:14px;height:14px;opacity:0.7;}
    .nav-item:hover .ni,.nav-item.active .ni{opacity:1;}
    .qak-btn .ni{width:18px;height:18px;opacity:0.85;}

    /* ── ANALYTICS DASHBOARD ── */
    .stats-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
    @media(max-width:767px){.stats-kpi-row{grid-template-columns:1fr 1fr;}}
    @media(max-width:380px){.stats-kpi-row{grid-template-columns:1fr;}}
    .ai-analytics-card{background:linear-gradient(135deg,rgba(122,111,192,0.05),rgba(77,170,143,0.04));border:1px solid rgba(122,111,192,0.18);}
    .bar-fill.mint{background:linear-gradient(90deg,var(--mint),rgba(34,184,160,0.7));}
    .bar-fill.lavender{background:linear-gradient(90deg,var(--lavender),rgba(122,111,192,0.7));}
    .bar-fill.coral{background:linear-gradient(90deg,var(--coral),rgba(212,97,74,0.7));}

    /* ── TELECONSULTA ── */
    .tele-status-dot{
      width:9px;height:9px;border-radius:50%;background:var(--sage);
      animation:pulse-dot 1.2s infinite;flex-shrink:0;
    }
    .tele-status-dot.connecting{background:var(--gold);}
    .tele-status-dot.active{background:var(--mint);}
    .tele-status-dot.ended{background:var(--text3);animation:none;}
    #tele-jitsi-container iframe{border:none;width:100%;height:100%;}
    .tele-hist-item{
      display:flex;align-items:center;gap:14px;padding:14px 16px;
      background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);
      margin-bottom:10px;cursor:pointer;
      transition:background var(--tr-fast),border-color var(--tr-fast),transform var(--tr-fast);
    }
    .tele-hist-item:hover{background:var(--white);border-color:var(--border-accent);transform:translateX(2px);}
    .tele-hist-avatar{
      width:40px;height:40px;border-radius:50%;
      background:linear-gradient(135deg,rgba(43,143,191,0.18),rgba(43,143,191,0.08));
      border:1.5px solid rgba(43,143,191,0.2);
      display:flex;align-items:center;justify-content:center;flex-shrink:0;
    }
    @media(max-width:767px){
      #tele-jitsi-container{height:380px!important;}
    }

    /* ── GOOGLE LOGIN ── */
    .google-login-btn{
      display:flex;align-items:center;justify-content:center;gap:10px;
      width:100%;padding:12px 20px;border-radius:var(--r);
      background:#fff;color:#3c4043;font-size:14px;font-weight:500;
      border:1.5px solid #dadce0;cursor:pointer;
      transition:box-shadow var(--tr-fast),background var(--tr-fast);
      margin-bottom:12px;font-family:'Inter',sans-serif;
    }
    .google-login-btn:hover{box-shadow:0 2px 8px rgba(0,0,0,0.12);background:#f8f9fa;}
    .google-login-btn svg{flex-shrink:0;width:20px;height:20px;}
    .google-user-chip{
      display:flex;align-items:center;gap:10px;padding:10px 14px;
      background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
      margin-bottom:16px;
    }
    .google-user-chip img{width:32px;height:32px;border-radius:50%;object-fit:cover;}
    .google-user-chip-info{flex:1;min-width:0;}
    .google-user-chip-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .google-user-chip-email{font-size:11px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    #login-google-error{font-size:12px;color:var(--coral);margin-top:8px;min-height:16px;text-align:center;}
    .login-step{display:none;}
    .login-step.active{display:block;}
