/* ═════════════════════════════════════════════════════════════════════
   glass-system.css · Piel "Glass" sobre los widgets REALES de la app
   ---------------------------------------------------------------------
   NO reemplaza tu JS ni tus widgets. Solo re-viste las clases que tu app
   ya genera (money-in-card, fin-skyline, attention-card, team-card, sec,
   proj-row-compact, bar-chart, today-summary, cf-*, navy-band…).

   Todo respeta tu sistema: mostrar/ocultar/reordenar widgets, iconos SVG,
   datos en vivo — nada cambia salvo la apariencia.

   Se activa con class="gl-on" en <html>. Quítala para revertir.
   Tokens light/dark vía [data-theme].
═════════════════════════════════════════════════════════════════════ */

/* ── Tokens ─────────────────────────────────────────────────────────── */
html.gl-on {
  /* Light = tono gris "neutral" (nuevos valores del mockup) */
  --gl-bg-grad: linear-gradient(160deg,#E4E6EA 0%,#DADDE2 25%,#DEE0E4 60%,#D9DCE1 100%);
  --gl-blob-1: rgba(27,39,64,0.14);
  --gl-blob-2: rgba(58,110,200,0.20);
  --gl-ink: #101828;
  --gl-muted: rgba(16,24,40,0.55);
  --gl-glass: rgba(255,255,255,0.58);
  --gl-glass-2: rgba(255,255,255,0.50);
  --gl-glass-border: rgba(255,255,255,0.80);
  --gl-glass-shadow: 0 2px 10px rgba(27,39,64,0.05);
  --gl-thumb: rgba(255,255,255,0.85);
  --gl-thumb-ink: #101828;
  --gl-green: #0E6E4F;
  --gl-green-bg: rgba(14,110,79,0.10);
  --gl-red: #C0311F;
  --gl-red-bg: rgba(255,235,232,0.35);
  --gl-red-chip: rgba(217,45,32,0.10);
  --gl-amber: #A3610C;
  --gl-amber-chip: rgba(181,71,8,0.10);
  --gl-blue: #2D4A78;
  --gl-gold: #C9A557;
  --gl-bar: rgba(16,24,40,0.12);
  --gl-bar-hot: linear-gradient(180deg,#26355A,#1B2740);
  --gl-prog: linear-gradient(90deg,#26355A,#1B2740);
  --gl-prog-warn: linear-gradient(90deg,#C9A557,#A8853C);
  --gl-chip: rgba(27,39,64,0.10);
  --gl-row-line: rgba(16,24,40,0.08);
  --gl-radius: 20px;
  --gl-radius-sm: 18px;
}
html.gl-on[data-theme="dark"] {
  /* Pure Black OLED */
  --gl-bg-grad: linear-gradient(160deg,#000000 0%,#050505 50%,#000000 100%);
  --gl-blob-1: rgba(70,90,130,0.14);
  --gl-blob-2: rgba(201,165,87,0.10);
  --gl-ink: #F0F2F5;
  --gl-muted: rgba(240,242,245,0.50);
  --gl-glass: rgba(255,255,255,0.045);
  --gl-glass-2: rgba(255,255,255,0.035);
  --gl-glass-border: rgba(255,255,255,0.10);
  --gl-glass-shadow: 0 2px 12px rgba(0,0,0,0.5);
  --gl-thumb: rgba(240,242,245,0.90);
  --gl-thumb-ink: #0D1117;
  --gl-green: #5FCFA3;
  --gl-green-bg: rgba(95,207,163,0.10);
  --gl-red: #F0685C;
  --gl-red-bg: rgba(240,104,92,0.07);
  --gl-red-chip: rgba(240,104,92,0.14);
  --gl-amber: #E8A23D;
  --gl-amber-chip: rgba(232,162,61,0.14);
  --gl-blue: #8FB4E3;
  --gl-gold: #D9C08A;
  --gl-bar: rgba(255,255,255,0.10);
  --gl-bar-hot: linear-gradient(180deg,#E5D3A6,#C9A557);
  --gl-prog: linear-gradient(90deg,#8FB4E3,#5A7CB8);
  --gl-prog-warn: linear-gradient(90deg,#E5D3A6,#C9A557);
  --gl-chip: rgba(217,192,138,0.12);
  --gl-row-line: rgba(255,255,255,0.06);
}

/* ── Tokens EXACTOS del mockup, scopeados a .gl-scope ────────────────
   Permiten pegar el markup del mockup verbatim (var(--ink), var(--glass)…)
   sin chocar con tokens.css de la app (esos siguen intactos afuera). */
html.gl-on .gl-scope {
  --ink: #101828; --muted: rgba(16,24,40,0.55);
  --glass: rgba(255,255,255,0.18); --glass-2: rgba(255,255,255,0.12);
  --glass-border: rgba(255,255,255,0.80);
  --field-bg: rgba(255,255,255,0.92); --field-border: rgba(16,24,40,0.14);
  --glass-shadow: 0 2px 10px rgba(27,39,64,0.05);
  /* Barra flotante (nuevos tokens del mockup) */
  --bar-glass: rgba(255,255,255,0.34); --bar-glass-border: rgba(255,255,255,0.6);
  --bar-pill: #fff; --bar-ink: #101828; --bar-ink-dim: rgba(16,24,40,0.5);
  --sheet: rgba(255,255,255,0.62); --overlay: rgba(13,18,26,0.35);
  --lg-bar-bg: rgba(255,255,255,0.16); --lg-pill-bg: rgba(255,255,255,0.13); --lg-pop-bg: rgba(255,255,255,0.02);
  --pop-glass: rgba(255,255,255,0.14);
  --thumb: rgba(255,255,255,0.85); --thumb-ink: #101828;
  --st-info: #2E6BD0; --st-info-bg: rgba(46,107,208,0.12);
  --green: #0E6E4F; --green-bg: rgba(14,110,79,0.10);
  --red: #C0311F; --red-bg: rgba(255,235,232,0.30); --red-chip: rgba(217,45,32,0.10);
  --amber: #A3610C; --amber-chip: rgba(181,71,8,0.10);
  --gold: #C9A557;
  --bar: rgba(16,24,40,0.12); --bar-hot: linear-gradient(180deg,#26355A,#1B2740);
  --prog: linear-gradient(90deg,#26355A,#1B2740); --prog-warn: linear-gradient(90deg,#C9A557,#A8853C);
  --chip: rgba(27,39,64,0.10);
  --primary: rgba(16,24,40,0.82); --primary-ink: #fff;
  --row-line: rgba(16,24,40,0.08);
  color: var(--ink); font-family: 'Inter', -apple-system, sans-serif;
}
html.gl-on[data-theme="dark"] .gl-scope {
  /* Retune: superficies elevadas sobre OLED (antes casi fundidas).
     glass-2 .035→.06, border .10→.14, muted .50→.62 para que las
     tarjetas floten y la metadata a 12px pase AA. */
  --ink: #F0F2F5; --muted: rgba(240,242,245,0.62);
  --glass: rgba(255,255,255,0.07); --glass-2: rgba(255,255,255,0.06);
  --glass-border: rgba(255,255,255,0.14);
  --field-bg: rgba(255,255,255,0.10); --field-border: rgba(255,255,255,0.20);
  --glass-shadow: 0 2px 12px rgba(0,0,0,0.5);
  --bar-glass: rgba(20,20,22,0.22); --bar-glass-border: rgba(255,255,255,0.12);
  --bar-pill: rgba(255,255,255,0.05); --bar-ink: #F0F2F5; --bar-ink-dim: rgba(240,242,245,0.6);
  --bar-circle: rgba(70,70,80,0.34); --bar-circle-border: rgba(255,255,255,0.22);
  --sheet: rgba(10,10,10,0.88); --overlay: rgba(0,0,0,0.6);
  --lg-bar-bg: rgba(20,20,22,0.22); --lg-pill-bg: rgba(255,255,255,0.05); --lg-pop-bg: rgba(20,20,22,0.02);
  --pop-glass: rgba(28,28,32,0.28);
  --thumb: rgba(240,242,245,0.90); --thumb-ink: #0D1117;
  --st-info: #6FA0E8; --st-info-bg: rgba(111,160,232,0.18);
  --green: #5FCFA3; --green-bg: rgba(95,207,163,0.10);
  --red: #F0685C; --red-bg: rgba(240,104,92,0.07); --red-chip: rgba(240,104,92,0.14);
  --amber: #E8A23D; --amber-chip: rgba(232,162,61,0.14);
  --gold: #D9C08A;
  --bar: rgba(255,255,255,0.10); --bar-hot: linear-gradient(180deg,#E5D3A6,#C9A557);
  --prog: linear-gradient(90deg,#8FB4E3,#5A7CB8); --prog-warn: linear-gradient(90deg,#E5D3A6,#C9A557);
  --seg-a: #E8ECF1; --seg-b: #9AA7BC; --seg-c: #5A6476;
  --chip: rgba(217,192,138,0.12);
  --primary: rgba(240,242,245,0.90); --primary-ink: #0D1117;
  --row-line: rgba(255,255,255,0.06);
}
/* ── Liquid Glass bar · keyframes (globales) ─────────────────────────
   liquidA y liquidB son idénticos a propósito: se alternan para
   RE-DISPARAR el pulso vertical en cada cambio de tab. */
@keyframes liquidA { 0%{transform:scaleY(1)} 30%{transform:scaleY(1.5)} 62%{transform:scaleY(0.92)} 100%{transform:scaleY(1)} }
@keyframes liquidB { 0%{transform:scaleY(1)} 30%{transform:scaleY(1.5)} 62%{transform:scaleY(0.92)} 100%{transform:scaleY(1)} }
@keyframes projRise { 0%{opacity:0;transform:translateY(16px) scaleY(.42)} 52%{opacity:1} 68%{transform:translateY(0) scaleY(1.06)} 84%{transform:translateY(0) scaleY(0.98)} 100%{opacity:1;transform:translateY(0) scaleY(1)} }
/* Pills del popover de Projects · entrada escalonada con rebote */
@keyframes projPill { 0%{opacity:0;transform:translateY(14px) scale(.96)} 100%{opacity:1;transform:translateY(0) scale(1)} }
/* Popovers de header (widgets / crear) + hojas + drawer */
@keyframes wDrop  { 0%{opacity:0;transform:translateY(-16px) scaleY(.42)} 52%{opacity:1} 68%{transform:translateY(0) scaleY(1.06)} 84%{transform:translateY(0) scaleY(.98)} 100%{opacity:1;transform:translateY(0) scaleY(1)} }
@keyframes wRowIn { 0%{opacity:0;transform:translateY(-10px) scaleY(.6)} 60%{opacity:1} 100%{opacity:1;transform:translateY(0) scaleY(1)} }
@keyframes sheetRise { 0%{opacity:0;transform:translateX(-50%) translateY(100%)} 60%{opacity:1} 100%{opacity:1;transform:translateX(-50%) translateY(0)} }
@keyframes drawerIn { 0%{opacity:0;transform:translateX(-100%)} 100%{opacity:1;transform:translateX(0)} }

/* En el Overview con markup exacto, el panel es una columna 430 y el
   markup trae su propio padding. */
html.gl-on body.gl-ovpanel #panelHost > .gl-scope { max-width: 430px; margin: 0 auto; }

/* ── Fondo con gradiente + blobs ───────────────────────────────────── */
html.gl-on { background: var(--gl-bg-grad) fixed; }
html.gl-on body { background: transparent; }
html.gl-on .app-shell { background: transparent; }
html.gl-on body::before, html.gl-on body::after {
  content: ''; position: fixed; border-radius: 50%; pointer-events: none; z-index: 0;
}
html.gl-on body::before { top:-12vh; right:-18vw; width:60vw; height:60vw;
  max-width:520px; max-height:520px;
  background: radial-gradient(circle, var(--gl-blob-1), transparent 70%); }
html.gl-on body::after { top:32vh; left:-22vw; width:70vw; height:70vw;
  max-width:620px; max-height:620px;
  background: radial-gradient(circle, var(--gl-blob-2), transparent 70%); }
html.gl-on .app-shell > * { position: relative; z-index: 1; }

/* ═══ Overview: chrome nativo OCULTO, header glass dentro del panel ═══
   Igual que el "deploy-3" que quedaba 100% continuo: se ocultan el navy
   band, los tabs y el sticky, y overview.js dibuja el header (.gl-head)
   dentro de #panelHost. Solo aplica en el Overview (body.gl-ovpanel). */
html.gl-on body.gl-ovpanel #topNavyBand,
html.gl-on body.gl-ovpanel #projTabsWrap,
html.gl-on body.gl-ovpanel #stickyTitleBar { display: none !important; }
/* Panel = columna 430px centrada (como deploy-3), sin el grid de desktop */
html.gl-on body.gl-ovpanel #panelHost {
  display: block !important;
  max-width: 430px !important; margin: 0 auto !important;
  padding: 0 0 calc(env(safe-area-inset-bottom, 0px) + 40px) !important;
}
html.gl-on body.gl-ovpanel #panelHost > .overview-widget { padding: 0 14px; margin-bottom: 10px; }

/* Header glass dentro del panel */
html.gl-on .gl-head { padding: calc(env(safe-area-inset-top, 0px) + 14px) 20px 4px; }
html.gl-on .gl-head-top { display: flex; align-items: center; gap: 6px; }
html.gl-on .gl-grow { flex: 1; }
html.gl-on .gl-ic {
  width: 34px; height: 34px; display: grid; place-items: center;
  background: none; border: 0; cursor: pointer; color: var(--gl-ink);
}
html.gl-on .gl-head-date { font: 400 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 14px; }
html.gl-on .gl-head-hi { font: 600 24px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); letter-spacing: -0.02em; margin-top: 2px; }

/* Switcher glass */
html.gl-on .gl-head-switch {
  display: flex; gap: 3px; margin-top: 16px;
  background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border);
  border-radius: 14px; padding: 4px; box-shadow: var(--gl-glass-shadow);
  -webkit-backdrop-filter: blur(22px) saturate(1.5); backdrop-filter: blur(22px) saturate(1.5);
}
html.gl-on .gl-sw {
  flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px;
  font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted);
  padding: 9px 0; border: 0; background: none; cursor: pointer; border-radius: 11px;
}
html.gl-on .gl-sw--on {
  font-weight: 600; color: var(--gl-thumb-ink);
  background: var(--gl-thumb); box-shadow: 0 1px 4px rgba(27,39,64,0.12);
}
html.gl-on .gl-sw-dot { width: 6px; height: 6px; border-radius: 50%; }
/* El contenido de widgets recupera su padding lateral bajo el header */
html.gl-on body.gl-ovpanel #panelHost > .overview-widget:first-of-type { margin-top: 10px; }

/* Patrón base de tarjeta glass — aplicado a los widgets del Overview */
html.gl-on #panelHost .money-in-card,
html.gl-on #panelHost .financials-card,
html.gl-on #panelHost .attention-card,
html.gl-on #panelHost .team-card,
html.gl-on #panelHost .sec {
  background: var(--gl-glass) !important;
  border: 1px solid var(--gl-glass-border) !important;
  border-radius: var(--gl-radius) !important;
  box-shadow: var(--gl-glass-shadow) !important;
  -webkit-backdrop-filter: blur(28px) saturate(1.6);
  backdrop-filter: blur(28px) saturate(1.6);
  color: var(--gl-ink);
}
html.gl-on #panelHost .overview-widget { margin-bottom: 10px; }

/* ── Fuentes idénticas al mockup ───────────────────────────────────────
   Tu app aplica serif (Fraunces) y MAYÚSCULAS + tracking a varias labels
   ("AVAILABLE CASH", "PENDING"…). El mockup usa Inter en todo, en minúscula.
   Forzamos Inter en todo el panel y quitamos las mayúsculas/tracking mono. */
html.gl-on #panelHost,
html.gl-on #panelHost * {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
}
html.gl-on #panelHost .fin-sky-hero-lbl,
html.gl-on #panelHost .fin-sky-cell-lbl,
html.gl-on #panelHost .fin-sky-cell-val,
html.gl-on #panelHost .today-summary-value,
html.gl-on #panelHost .today-summary-label,
html.gl-on #panelHost .team-hours,
html.gl-on #panelHost .cf-bar-amount,
html.gl-on #panelHost .pl-amt,
html.gl-on #panelHost .attn-item-amount,
html.gl-on #panelHost .mi-eyebrow { letter-spacing: normal !important; }
html.gl-on #panelHost .mi-amount,
html.gl-on #panelHost .fin-sky-hero-val,
html.gl-on #panelHost .fin-sky-cell-val,
html.gl-on #panelHost .team-hours,
html.gl-on #panelHost .today-summary-value,
html.gl-on #panelHost .cf-bar-amount,
html.gl-on #panelHost .pl-amt { font-variant-numeric: tabular-nums; }

/* ── Money In ──────────────────────────────────────────────────────── */
html.gl-on #panelHost .money-in-card { padding: 16px; }
html.gl-on #panelHost .mi-eyebrow { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); text-transform: none; letter-spacing: 0; }
html.gl-on #panelHost .mi-amount { font: 600 36px/1.1 -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); letter-spacing: -0.03em; margin-top: 6px; }
html.gl-on #panelHost .mi-trend { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; margin-top: 4px; }
html.gl-on #panelHost .mi-trend--up { color: var(--gl-green); }
html.gl-on #panelHost .mi-trend--down { color: var(--gl-red); }
html.gl-on #panelHost .mi-trend--neutral { color: var(--gl-muted); }
html.gl-on #panelHost .mi-ribbon { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--gl-glass-border); }
html.gl-on #panelHost .mi-ribbon b { color: var(--gl-ink); font-weight: 600; }
html.gl-on #panelHost .mi-ribbon .val-red { color: var(--gl-red); }
html.gl-on #panelHost .mi-ribbon .sep { color: var(--gl-muted); opacity: .5; margin: 0 5px; }
html.gl-on #panelHost .mi-expected { margin-top: 10px; display: flex; justify-content: space-between; font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .mi-expected-val { color: var(--gl-ink); font-weight: 600; }

/* ── Cash widget (idéntico al mockup: hero + sparkline + Pending/Budgets) ─ */
html.gl-on #panelHost .gl-cash {
  background: none !important; border: 0 !important; box-shadow: none !important;
  padding: 0 !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  display: flex; flex-direction: column; gap: 10px;
}
html.gl-on #panelHost .gl-cash-main {
  background: var(--gl-glass); border: 1px solid var(--gl-glass-border);
  border-radius: 20px; padding: 16px; box-shadow: var(--gl-glass-shadow);
  -webkit-backdrop-filter: blur(28px) saturate(1.6); backdrop-filter: blur(28px) saturate(1.6);
}
html.gl-on #panelHost .gl-cash-top { display: flex; justify-content: space-between; align-items: baseline; }
html.gl-on #panelHost .gl-cash-lbl { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .gl-cash-trend {
  font: 500 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-green); background: var(--gl-green-bg);
  border: 1px solid var(--gl-glass-border); border-radius: 999px; padding: 2px 8px;
}
html.gl-on #panelHost .gl-cash-trend--down { color: var(--gl-red); background: var(--gl-red-bg); }
html.gl-on #panelHost .gl-cash-val {
  font: 600 36px/1.1 -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink);
  letter-spacing: -0.03em; margin-top: 6px; font-variant-numeric: tabular-nums;
}
html.gl-on #panelHost .gl-cash-val--red { color: var(--gl-red); }
html.gl-on #panelHost .gl-cash-spark { display: flex; gap: 2px; margin-top: 12px; height: 26px; align-items: flex-end; }
html.gl-on #panelHost .gl-cash-bar { flex: 1; border-radius: 3px; background: var(--gl-bar); }
html.gl-on #panelHost .gl-cash-bar--gold { background: var(--gl-bar-hot); }
html.gl-on #panelHost .gl-cash-cells {
  display: flex; background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border);
  border-radius: 18px; -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5);
}
html.gl-on #panelHost .gl-cash-cell { flex: 1; padding: 14px; }
html.gl-on #panelHost .gl-cash-cell--div { border-left: 1px solid var(--gl-row-line); }
html.gl-on #panelHost .gl-cash-cell-lbl { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .gl-cash-cell-val {
  font: 600 20px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); margin-top: 4px; font-variant-numeric: tabular-nums;
}
html.gl-on #panelHost .gl-cash-cell-val--green { color: var(--gl-green); }

/* ── Financials · Cash position ────────────────────────────────────── */
html.gl-on #panelHost .financials-card { padding: 16px; }
html.gl-on #panelHost .fin-sky-head { display: flex; justify-content: space-between; align-items: baseline; }
html.gl-on #panelHost .fin-sky-title { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .fin-sky-title em { font-style: normal; color: var(--gl-ink); }
html.gl-on #panelHost .fin-sky-tag { font: 500 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-green); background: var(--gl-green-bg); border: 1px solid var(--gl-glass-border); border-radius: 999px; padding: 2px 8px; }
html.gl-on #panelHost .fin-sky-hero { margin-top: 6px; background: none !important; }
html.gl-on #panelHost .fin-sky-hero-lbl { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .fin-sky-hero-val { font: 600 36px/1.1 -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); letter-spacing: -0.03em; }
/* Available cash: número completo en un solo color (blanco en dark),
   sin la cola dorada. */
html.gl-on #panelHost .fin-sky-hero-val em { font-style: normal; color: var(--gl-ink) !important; }
html.gl-on #panelHost .fin-sky-hero--red .fin-sky-hero-val { color: var(--gl-red); }
html.gl-on #panelHost .fin-sky-hero-sub { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 2px; }
html.gl-on #panelHost .fin-sky-secondary { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
html.gl-on #panelHost .fin-sky-cell { background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: var(--gl-radius-sm); padding: 12px; }
html.gl-on #panelHost .fin-sky-cell-lbl { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .fin-sky-cell-val { font: 600 20px -apple-system,'SF Pro Text','Inter',sans-serif; margin-top: 4px; color: var(--gl-ink); }
html.gl-on #panelHost .fin-sky-cell-val--green { color: var(--gl-green); }
html.gl-on #panelHost .fin-sky-cell-val--blue { color: var(--gl-blue); }
html.gl-on #panelHost .fin-sky-cell-val--muted { color: var(--gl-muted); }
html.gl-on #panelHost .fin-sky-cell-sub { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 2px; }

/* ── Pending items / attention (mockup: [TAG] texto valor, sin header) ─ */
html.gl-on #panelHost .attention-card.gl-att {
  background: var(--gl-red-bg) !important; border: 1px solid var(--gl-glass-border) !important;
  border-radius: 18px !important; padding: 12px 14px !important; box-shadow: none !important;
  display: flex; flex-direction: column; gap: 8px;
  -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5);
}
html.gl-on #panelHost .gl-att-row {
  display: flex; gap: 8px; align-items: center; width: 100%;
  background: none; border: 0; padding: 0; text-align: left; cursor: pointer;
}
html.gl-on #panelHost .gl-att-tag { font: 600 11px -apple-system,'SF Pro Text','Inter',sans-serif; border-radius: 6px; padding: 2px 6px; flex: none; }
html.gl-on #panelHost .gl-att-tag--red { color: var(--gl-red); background: var(--gl-red-chip); }
html.gl-on #panelHost .gl-att-tag--amber { color: var(--gl-amber); background: var(--gl-amber-chip); }
html.gl-on #panelHost .gl-att-text {
  flex: 1; min-width: 0; font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
html.gl-on #panelHost .gl-att-val { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); flex: none; font-variant-numeric: tabular-nums; }

/* ── Team today (mockup: avatar + nombre/proyecto + chip de tiempo) ─── */
html.gl-on #panelHost .team-card.gl-team {
  background: var(--gl-glass-2) !important; border: 1px solid var(--gl-glass-border) !important;
  border-radius: 18px !important; padding: 14px !important; box-shadow: none !important;
}
html.gl-on #panelHost .gl-team-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
html.gl-on #panelHost .gl-team-title { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on #panelHost .gl-team-meta { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .gl-team-onsite { display: flex; align-items: center; gap: 5px; font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-green); }
html.gl-on #panelHost .gl-team-onsite::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--gl-green); }
html.gl-on #panelHost .gl-team-rows { display: flex; flex-direction: column; gap: 8px; }
html.gl-on #panelHost .gl-team-row { display: flex; gap: 10px; align-items: center; }
html.gl-on #panelHost .gl-team-av {
  width: 30px; height: 30px; border-radius: 10px; flex: none;
  background: var(--gl-chip); border: 1px solid var(--gl-glass-border);
  display: grid; place-items: center; font: 600 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink);
}
html.gl-on #panelHost .gl-team-info { flex: 1; min-width: 0; }
html.gl-on #panelHost .gl-team-name { display: block; font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on #panelHost .gl-team-proj { display: block; font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .gl-team-time {
  font: 600 12.5px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-green); background: var(--gl-green-bg);
  border: 1px solid var(--gl-glass-border); border-radius: 8px; padding: 3px 8px;
  flex: none; font-variant-numeric: tabular-nums;
}
html.gl-on #panelHost .gl-team-empty { text-align: center; padding: 16px; font: 400 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }

/* ── Needs attention ───────────────────────────────────────────────── */
html.gl-on #panelHost .attention-card { background: var(--gl-red-bg) !important; padding: 12px 14px; }
html.gl-on #panelHost .attn-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
html.gl-on #panelHost .attn-eyebrow { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on #panelHost .attn-count { font: 600 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-red); background: var(--gl-red-chip); border-radius: 6px; padding: 1px 7px; }
html.gl-on #panelHost .attn-list { display: flex; flex-direction: column; gap: 8px; }
html.gl-on #panelHost .attn-item { display: flex; gap: 8px; align-items: center; width: 100%; background: none; border: 0; padding: 0; text-align: left; cursor: pointer; }
html.gl-on #panelHost .attn-item-icon { width: 22px; height: 22px; display: grid; place-items: center; flex: none; border-radius: 6px; color: var(--gl-amber); background: var(--gl-amber-chip); }
html.gl-on #panelHost .attn-item--red .attn-item-icon { color: var(--gl-red); background: var(--gl-red-chip); }
html.gl-on #panelHost .attn-item-body { flex: 1; min-width: 0; }
html.gl-on #panelHost .attn-item-title { font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html.gl-on #panelHost .attn-item-sub { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .attn-item-amount { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); flex: none; }

/* ── Team today ────────────────────────────────────────────────────── */
html.gl-on #panelHost .team-card { padding: 14px; }
html.gl-on #panelHost .team-card-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
html.gl-on #panelHost .team-card-head-l { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on #panelHost .team-card-head-r, html.gl-on #panelHost .team-card-onsite { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-green); display: flex; align-items: center; gap: 5px; }
html.gl-on #panelHost .team-card-onsite::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--gl-green); display: inline-block; }
html.gl-on #panelHost .team-row { display: flex; gap: 10px; align-items: center; padding: 4px 0; }
html.gl-on #panelHost .team-row .avatar { width: 30px; height: 30px; border-radius: 10px; flex: none; background: var(--gl-chip); border: 1px solid var(--gl-glass-border); display: grid; place-items: center; font: 600 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on #panelHost .team-info { flex: 1; min-width: 0; }
html.gl-on #panelHost .team-name { font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on #panelHost .team-meta { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .team-totals { text-align: right; flex: none; }
html.gl-on #panelHost .team-hours { font: 600 12.5px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-green); background: var(--gl-green-bg); border: 1px solid var(--gl-glass-border); border-radius: 8px; padding: 3px 8px; display: inline-block; }
html.gl-on #panelHost .team-pay { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 2px; }

/* ── Secciones colapsables (today, appts, cash flow, active, finished) ─ */
html.gl-on #panelHost .sec { padding: 4px 14px 6px; }
html.gl-on #panelHost .sec-head { display: flex; align-items: center; gap: 8px; padding: 10px 0; cursor: pointer; }
html.gl-on #panelHost .sec-title { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); margin: 0; }
html.gl-on #panelHost .sec-meta { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-left: auto; }
html.gl-on #panelHost .sec-meta.green { color: var(--gl-green); }
html.gl-on #panelHost .sec-chev { color: var(--gl-muted); transition: transform .18s ease; margin-left: 6px; }
html.gl-on #panelHost .sec-open .sec-chev { transform: rotate(90deg); }
html.gl-on #panelHost .sec-body { padding-bottom: 8px; }
html.gl-on #panelHost .view-all-link { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-gold); background: none; border: 0; cursor: pointer; }

/* ── Today's summary (grid 3) ──────────────────────────────────────── */
html.gl-on #panelHost .today-summary-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
html.gl-on #panelHost .today-summary-cell { background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: 14px; padding: 12px; text-align: center; }
html.gl-on #panelHost .today-summary-value { font: 600 20px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on #panelHost .today-summary-label { font: 500 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 2px; }
html.gl-on #panelHost .today-summary-foot { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 8px; }
html.gl-on #panelHost .live-dot { color: var(--gl-green); }

/* ── Upcoming appointments ─────────────────────────────────────────── */
html.gl-on #panelHost .appt-compact { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
html.gl-on #panelHost .appt-compact-name { font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on #panelHost .appt-compact-when { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }

/* ── Cash flow by project ──────────────────────────────────────────── */
html.gl-on #panelHost .cf-project { padding: 6px 0; }
html.gl-on #panelHost .cf-project-name { font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on #panelHost .cf-bar-row { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
html.gl-on #panelHost .cf-bar-label { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); width: 52px; }
html.gl-on #panelHost .cf-bar-track { flex: 1; height: 6px; border-radius: 3px; background: var(--gl-bar); overflow: hidden; }
html.gl-on #panelHost .cf-bar-amount { font: 600 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }

/* ── Cash flow last 7 days (bar chart) ─────────────────────────────── */
html.gl-on #panelHost .bar-chart { display: flex; gap: 6px; align-items: flex-end; height: 150px; padding-top: 8px; }
html.gl-on #panelHost .bar-chart-col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px; }
html.gl-on #panelHost .bar-chart-bar { width: 100%; max-width: 26px; border-radius: 4px; background: var(--gl-bar-hot); }
html.gl-on #panelHost .bar-chart-value { font: 500 10px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .bar-chart-day { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .bar-chart-foot { display: flex; justify-content: space-between; margin-top: 10px; font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .bar-chart-total { color: var(--gl-ink); font-weight: 600; }

/* ── Filas de proyecto (active / finished) ─────────────────────────── */
html.gl-on #panelHost .proj-row-compact { display: flex; align-items: center; gap: 10px; padding: 8px 0; cursor: pointer; }
html.gl-on #panelHost .proj-row-compact .pl-bar { width: 3px; height: 26px; border-radius: 3px; flex: none; background: var(--gl-prog); }
html.gl-on #panelHost .proj-row-compact .pl-bar--over { background: var(--gl-prog-warn); }
html.gl-on #panelHost .pl-info { flex: 1; min-width: 0; }
html.gl-on #panelHost .pl-name { font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html.gl-on #panelHost .pl-meta { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on #panelHost .pl-amt { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); flex: none; }
html.gl-on #panelHost .pl-amt--over { color: var(--gl-amber); }
html.gl-on #panelHost .pl-chev { color: var(--gl-muted); flex: none; display: inline-flex; }

/* Handle de drag discreto */
html.gl-on #panelHost .drag-handle { opacity: .35; }

/* ═══ EMPLOYEES panel (idéntico al mockup) ═══════════════════════════
   Chrome nativo oculto; header + tarjetas dentro del panel. */
html.gl-on body.gl-emppanel #topNavyBand,
html.gl-on body.gl-emppanel #projTabsWrap,
html.gl-on body.gl-emppanel #stickyTitleBar { display: none !important; }
html.gl-on body.gl-emppanel #panelHost {
  display: block !important; max-width: 458px !important; margin: 0 auto !important;
  padding: 0 0 calc(env(safe-area-inset-bottom, 0px) + 40px) !important;
}

/* Header */
html.gl-on .gl-emp-head { padding: calc(env(safe-area-inset-top, 0px) + 14px) 20px 0; }
html.gl-on .gl-emp-top { display: flex; justify-content: space-between; align-items: center; }
html.gl-on .gl-emp-back {
  display: inline-flex; align-items: center; gap: 6px; font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif;
  color: var(--gl-muted); background: var(--gl-glass); border: 1px solid var(--gl-glass-border);
  border-radius: 999px; padding: 6px 12px; cursor: pointer;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
html.gl-on .gl-emp-company { font: 600 10.5px -apple-system,'SF Pro Text','Inter',sans-serif; letter-spacing: 0.14em; color: var(--gl-gold); text-transform: uppercase; }
html.gl-on .gl-emp-add {
  font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: #1B2740; background: var(--gl-gold);
  border: 0; border-radius: 10px; padding: 8px 14px; cursor: pointer;
}
html.gl-on .gl-emp-title { font: 600 24px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); letter-spacing: -0.02em; margin-top: 14px; text-align: center; }
html.gl-on .gl-emp-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-top: 14px; }
html.gl-on .gl-emp-stat {
  background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: 12px;
  padding: 10px 6px; text-align: center;
  -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4);
}
html.gl-on .gl-emp-stat-lbl { font: 600 8.5px -apple-system,'SF Pro Text','Inter',sans-serif; letter-spacing: 0.05em; text-transform: uppercase; color: var(--gl-muted); }
html.gl-on .gl-emp-stat-val { font: 600 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); margin-top: 4px; font-variant-numeric: tabular-nums; }
html.gl-on .gl-emp-stat-val--gold { color: var(--gl-gold); }
html.gl-on .gl-emp-stat-val--green { color: var(--gl-green); }
html.gl-on .gl-emp-stat-val--red { color: var(--gl-red); }
html.gl-on .gl-emp-stat-val--muted { color: var(--gl-muted); }

/* Lista de tarjetas */
html.gl-on .gl-emp-list { padding: 18px 14px 8px; display: flex; flex-direction: column; gap: 10px; }
html.gl-on .gl-emp-card {
  background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: 18px; overflow: hidden;
  -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5);
}
html.gl-on .gl-emp-c-head { padding: 14px 14px 12px; display: flex; gap: 12px; align-items: center; }
html.gl-on .gl-emp-av {
  width: 40px; height: 40px; border-radius: 12px; flex: none;
  background: var(--gl-chip); border: 1px solid var(--gl-glass-border);
  display: grid; place-items: center; font: 600 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink);
}
html.gl-on .gl-emp-name { flex: 1; min-width: 0; font: 600 15px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html.gl-on .gl-emp-icons { display: flex; gap: 3px; align-items: center; flex: none; }
html.gl-on .gl-emp-ic {
  width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  color: var(--gl-muted); background: none; border: 0; cursor: pointer;
}
html.gl-on .gl-emp-ic:hover { background: var(--gl-glass); color: var(--gl-ink); }
html.gl-on .gl-emp-ic--armed { color: var(--gl-red) !important; background: var(--gl-red-chip) !important; }
html.gl-on .gl-emp-chev svg { transition: transform .18s ease; }
html.gl-on .gl-emp-chev.is-open svg { transform: rotate(180deg); }
html.gl-on .gl-emp-meta { padding: 0 14px 12px; font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-emp-pin { color: var(--gl-gold); }
html.gl-on .gl-emp-tag { margin-left: 8px; font: 600 10px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); border: 1px solid var(--gl-glass-border); border-radius: 6px; padding: 1px 6px; }
html.gl-on .gl-emp-clockrow { padding: 4px 14px 14px; display: flex; align-items: center; gap: 10px; }
html.gl-on .gl-emp-clock {
  display: inline-flex; align-items: center; gap: 6px; font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif;
  color: var(--gl-green); background: var(--gl-green-bg); border: 1px solid rgba(95,207,163,0.35);
  border-radius: 11px; padding: 9px 16px; cursor: pointer;
}
html.gl-on .gl-emp-clock--out { color: var(--gl-red); background: var(--gl-red-bg); border-color: rgba(240,104,92,0.35); }
html.gl-on .gl-emp-week { flex: 1; text-align: right; }
html.gl-on .gl-emp-week-pay { font: 600 17px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); font-variant-numeric: tabular-nums; }
html.gl-on .gl-emp-week-hrs { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 1px; }

/* Expandido */
html.gl-on .gl-emp-exp { padding: 2px 14px 14px; display: flex; flex-direction: column; gap: 12px; }
html.gl-on .gl-emp-dual { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
html.gl-on .gl-emp-dcard { border: 1px solid var(--gl-row-line); border-radius: 14px; padding: 14px 16px; }
html.gl-on .gl-emp-dlbl { font: 600 10.5px -apple-system,'SF Pro Text','Inter',sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gl-muted); }
html.gl-on .gl-emp-dval { font: 600 24px -apple-system,'SF Pro Text','Inter',sans-serif; margin-top: 5px; font-variant-numeric: tabular-nums; }
html.gl-on .gl-emp-dval--green { color: var(--gl-green); }
html.gl-on .gl-emp-dval--gold { color: var(--gl-gold); }
html.gl-on .gl-emp-dpay { font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; margin-top: 2px; font-variant-numeric: tabular-nums; }
html.gl-on .gl-emp-dpay--green { color: var(--gl-green); }
html.gl-on .gl-emp-dpay--gold { color: var(--gl-gold); }
html.gl-on .gl-emp-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
html.gl-on .gl-emp-actbtn {
  text-align: center; font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink);
  background: var(--gl-glass); border: 1px solid var(--gl-glass-border); border-radius: 11px;
  padding: 11px 0; cursor: pointer;
}
html.gl-on .gl-emp-actbtn--green { color: var(--gl-green); }
html.gl-on .gl-emp-actbtn--gold { color: var(--gl-gold); }
html.gl-on .gl-emp-pay { padding: 4px 2px 0; }
html.gl-on .gl-emp-pay-head { display: flex; justify-content: space-between; align-items: baseline; }
html.gl-on .gl-emp-pay-lbl { font: 600 10.5px -apple-system,'SF Pro Text','Inter',sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gl-muted); }
html.gl-on .gl-emp-pay-r { display: flex; align-items: baseline; gap: 8px; }
html.gl-on .gl-emp-pay-amt { font: 600 24px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-gold); font-variant-numeric: tabular-nums; }
html.gl-on .gl-emp-pay-hrs { font: 400 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); font-variant-numeric: tabular-nums; }
html.gl-on .gl-emp-pay-total { font: 400 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 4px; }
html.gl-on .gl-emp-pay-rows { margin-top: 12px; border-top: 1px solid var(--gl-row-line); }
html.gl-on .gl-emp-pay-row { display: flex; align-items: center; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--gl-row-line); }
html.gl-on .gl-emp-pay-date { font: 400 11.5px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); font-variant-numeric: tabular-nums; }
html.gl-on .gl-emp-pay-method { flex: 1; font: 500 12.5px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on .gl-emp-pay-pamt { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); font-variant-numeric: tabular-nums; }
html.gl-on .gl-emp-pay-del { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; color: var(--gl-muted); background: none; border: 0; cursor: pointer; flex: none; }
html.gl-on .gl-emp-pay-del:hover { background: var(--gl-red-chip); color: var(--gl-red); }

html.gl-on .gl-emp-former {
  width: 100%; text-align: center; font: 600 11.5px -apple-system,'SF Pro Text','Inter',sans-serif; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--gl-muted); background: none;
  border: 1px dashed var(--gl-glass-border); border-radius: 16px; padding: 16px 0; margin-top: 8px; cursor: pointer;
}
html.gl-on .gl-emp-empty { text-align: center; padding: 40px 20px; font: 400 14px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }

/* ═══ PROJECT DETAIL (idéntico al mockup) ════════════════════════════ */
html.gl-on body.gl-projpanel #topNavyBand,
html.gl-on body.gl-projpanel #projTabsWrap,
html.gl-on body.gl-projpanel #stickyTitleBar { display: none !important; }
html.gl-on body.gl-projpanel #panelHost {
  display: block !important; max-width: 458px !important; margin: 0 auto !important;
  padding: 0 0 calc(env(safe-area-inset-bottom, 0px) + 40px) !important;
}
html.gl-on .gl-pj-head { padding: max(54px, calc(env(safe-area-inset-top, 0px) + 14px)) 20px 0; }
html.gl-on .gl-pj-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
html.gl-on .gl-pj-back {
  display: inline-flex; align-items: center; gap: 6px; font: 500 17px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted);
  background: var(--gl-glass); border: 1px solid var(--gl-glass-border); border-radius: 999px; padding: 6px 12px; cursor: pointer;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
html.gl-on .gl-pj-icons { display: flex; gap: 8px; }
html.gl-on .gl-pj-ic {
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.30);
  -webkit-backdrop-filter: blur(20px) saturate(1.8); backdrop-filter: blur(20px) saturate(1.8);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.45), 0 2px 10px rgba(0,0,0,0.05);
  display: grid; place-items: center; color: var(--gl-ink); cursor: pointer;
}
html.gl-on .gl-pj-nameline { display: flex; align-items: flex-start; gap: 12px; }
html.gl-on .gl-pj-nameline .gl-pj-name { flex: 1; min-width: 0; }
html.gl-on .gl-pj-name { font: 600 50px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); letter-spacing: -0.02em; line-height: 1.0; }
html.gl-on .gl-pj-status { font: 600 10.5px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-green); background: var(--gl-green-bg); border: 1px solid var(--gl-glass-border); border-radius: 999px; padding: 3px 10px; text-transform: uppercase; letter-spacing: 0.04em; }
html.gl-on .gl-pj-statusrow { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 6px; }
/* Weather widget · project header */
html.gl-on .gl-pj-wx { flex: none; display: flex; flex-direction: column; align-items: center; gap: 2px; }
html.gl-on .gl-pj-wx-ic { width: 30px; height: 30px; display: grid; place-items: center; }
html.gl-on .gl-pj-wx-ic svg { display: block; }
html.gl-on .gl-pj-wx-temp { font: 600 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); font-variant-numeric: tabular-nums; line-height: 1; }
html.gl-on .gl-pj-wx-hl { font: 400 10px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); white-space: nowrap; }
html.gl-on .gl-pj-meta { font: 400 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 3px; }
html.gl-on #panelHost .gl-pj-meta a { text-transform: uppercase !important; }
html.gl-on .gl-pj-grid {
  display: grid; grid-template-columns: 1fr 1fr 1fr; margin: 14px 0; overflow: hidden;
  background: var(--gl-glass); border: 1px solid var(--gl-glass-border); border-radius: 18px; box-shadow: var(--gl-glass-shadow);
  -webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4);
}
html.gl-on .gl-pj-gcell { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 5px; padding: 14px 12px; }
html.gl-on .gl-pj-gcell--div { border-left: 1px solid var(--gl-glass-border); }
html.gl-on .gl-pj-glbl { font: 500 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); white-space: nowrap; }
html.gl-on .gl-pj-gval { font: 600 17px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); margin-top: 0; font-variant-numeric: tabular-nums; }
html.gl-on .gl-pj-gval--amber { color: var(--gl-amber); }
html.gl-on .gl-pj-fintoggle { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; cursor: pointer; }
html.gl-on .gl-pj-finlbl { font: 600 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); letter-spacing: 0.06em; text-transform: uppercase; }
html.gl-on .gl-pj-finchev { width: 26px; height: 26px; display: grid; place-items: center; color: var(--gl-muted); }
html.gl-on .gl-pj-finchev svg { transition: transform .18s ease; }
html.gl-on .gl-pj-finchev.is-open svg { transform: rotate(180deg); }
html.gl-on .gl-pj-tabs {
  display: flex; gap: 2px; background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border);
  border-radius: 12px; padding: 3px; -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
}
html.gl-on .gl-pj-tab {
  flex: 1; text-align: center; font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted);
  background: none; border: 0; border-radius: 9px; padding: 7px 0; cursor: pointer;
}
html.gl-on .gl-pj-tab.is-on { font-weight: 600; color: var(--gl-thumb-ink); background: var(--gl-thumb); box-shadow: 0 1px 4px rgba(27,39,64,0.12); }

/* Financials expandido */
html.gl-on .gl-pj-fin { background: var(--gl-glass); border: 1px solid var(--gl-glass-border); border-radius: 18px; padding: 16px; margin-bottom: 14px; -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5); }
html.gl-on .gl-pj-fstarted { font: 400 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-finfo { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: 14px; padding: 14px 15px; -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); }
html.gl-on .gl-pj-flbl { font: 600 9.5px -apple-system,'SF Pro Text','Inter',sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gl-muted); }
html.gl-on .gl-pj-fval { font: 500 14px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); margin-top: 2px; }
html.gl-on .gl-pj-fgrid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 10px; row-gap: 10px; margin-top: 12px; }
html.gl-on .gl-pj-fgrid > div { background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: 14px; padding: 12px 14px; -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); }
html.gl-on .gl-pj-fstat { font: 600 19px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); margin-top: 5px; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
html.gl-on .gl-pj-fstat--gold { color: var(--gl-gold); }
html.gl-on .gl-pj-fstat--green { color: var(--gl-green); }
html.gl-on .gl-pj-fstat--red { color: var(--gl-red); }
html.gl-on .gl-pj-fsub { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 1px; }
html.gl-on .gl-pj-fbarcap { display: flex; align-items: baseline; justify-content: space-between; margin-top: 16px; }
html.gl-on .gl-pj-fbarcap-l { font: 600 9.5px -apple-system,'SF Pro Text','Inter',sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gl-muted); }
html.gl-on .gl-pj-fbarcap-v { font: 600 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); font-variant-numeric: tabular-nums; }
html.gl-on .gl-pj-fbar { height: 6px; border-radius: 3px; background: var(--gl-bar); margin-top: 8px; overflow: hidden; }
html.gl-on .gl-pj-fbar-fill { height: 100%; border-radius: 3px; background: var(--gl-prog-warn); }

/* Body + Overview subtab */
html.gl-on .gl-pj-body { padding: 14px 14px 104px; }
html.gl-on .gl-pj-ov { display: flex; flex-direction: column; gap: 10px; }
html.gl-on .gl-pj-live { background: var(--gl-green-bg); border: 1px solid var(--gl-glass-border); border-radius: 18px; padding: 20px 18px; display: flex; align-items: center; gap: 12px; -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4); }
html.gl-on .gl-pj-live-av { width: 34px; height: 34px; border-radius: 11px; background: var(--gl-chip); border: 1px solid var(--gl-glass-border); display: grid; place-items: center; font: 600 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); flex: none; }
html.gl-on .gl-pj-live-info { flex: 1; min-width: 0; }
html.gl-on .gl-pj-live-name { display: block; font: 600 22px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); letter-spacing: -0.01em; }
html.gl-on .gl-pj-live-since { display: block; font: 400 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-live-time { font: 600 14px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-green); font-variant-numeric: tabular-nums; }
html.gl-on .gl-pj-card { background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: 18px; padding: 18px; -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5); }
html.gl-on .gl-pj-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
html.gl-on .gl-pj-card-title { font: 600 20px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); letter-spacing: -0.01em; }
html.gl-on .gl-pj-card-meta { font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-burn { height: 8px; border-radius: 4px; background: var(--gl-bar); overflow: hidden; display: flex; }
html.gl-on .gl-pj-legend { display: flex; gap: 14px; margin-top: 10px; flex-wrap: wrap; }
html.gl-on .gl-pj-leg { display: flex; align-items: center; gap: 5px; font: 400 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-leg-dot { width: 8px; height: 8px; border-radius: 3px; }
html.gl-on .gl-pj-brows { display: flex; flex-direction: column; gap: 8px; }
html.gl-on .gl-pj-brow { display: flex; gap: 8px; align-items: center; }
html.gl-on .gl-pj-brow-l { flex: 1; font: 500 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on .gl-pj-brow-v { font: 600 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); font-variant-numeric: tabular-nums; }
html.gl-on .gl-pj-brow-v--green { color: var(--gl-green); }
html.gl-on .gl-pj-brow-v--amber { color: var(--gl-amber); }
html.gl-on .gl-pj-fpill { font: 500 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-green); background: var(--gl-green-bg); border-radius: 999px; padding: 2px 8px; text-transform: uppercase; letter-spacing: 0.04em; }
html.gl-on .gl-pj-fpill--red { color: var(--gl-red); background: var(--gl-red-bg); }
html.gl-on .gl-pj-ftext { font: 400 14px/1.6 -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-ftext strong { color: var(--gl-ink); font-weight: 600; }
html.gl-on .gl-pj-fstrong-green { color: var(--gl-green) !important; }
html.gl-on .gl-pj-fstrong-red { color: var(--gl-red) !important; }

/* Expenses subtab */
html.gl-on .gl-pj-exptotal { background: var(--gl-glass); border: 1px solid var(--gl-glass-border); border-radius: 18px; padding: 14px; -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5); }
html.gl-on .gl-pj-exptop { display: flex; justify-content: space-between; align-items: baseline; }
html.gl-on .gl-pj-explbl { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-expsub { font: 500 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-expval { font: 600 28px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); letter-spacing: -0.03em; margin-top: 4px; font-variant-numeric: tabular-nums; }
html.gl-on .gl-pj-cat { background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: 18px; overflow: hidden; -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5); }
html.gl-on .gl-pj-cat-head { display: flex; align-items: center; gap: 12px; padding: 20px 18px; cursor: pointer; }
html.gl-on .gl-pj-cat-dot { width: 10px; height: 10px; border-radius: 3px; flex: none; }
html.gl-on .gl-pj-cat-name { flex: 1; font: 600 22px -apple-system,'SF Pro Text','Inter',sans-serif; letter-spacing: -0.01em; color: var(--gl-ink); }
html.gl-on .gl-pj-cat-pct { font: 400 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-cat-amt { font: 600 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); font-variant-numeric: tabular-nums; }
html.gl-on .gl-pj-cat-chev { width: 22px; display: grid; place-items: center; color: var(--gl-muted); }
html.gl-on .gl-pj-cat-chev svg { transition: transform .18s ease; }
html.gl-on .gl-pj-cat-chev.is-open svg { transform: rotate(180deg); }
html.gl-on .gl-pj-cat-items { border-top: 1px solid var(--gl-row-line); }
html.gl-on .gl-pj-expitem { display: flex; align-items: center; gap: 10px; padding: 12px 14px 12px 33px; border-bottom: 1px solid var(--gl-row-line); cursor: pointer; }
html.gl-on .gl-pj-expitem-info { flex: 1; min-width: 0; }
html.gl-on .gl-pj-expitem-title { display: block; font: 500 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on .gl-pj-expitem-meta { display: block; font: 400 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-expitem-amt { font: 600 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); font-variant-numeric: tabular-nums; }
html.gl-on .gl-pj-addbtn { display: block; width: 100%; text-align: center; font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); background: var(--gl-glass); border: 1px solid var(--gl-glass-border); border-radius: 14px; padding: 13px 0; cursor: pointer; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }

/* Tasks subtab */
html.gl-on .gl-pj-tasksum { background: var(--gl-glass); border: 1px solid var(--gl-glass-border); border-radius: 18px; padding: 16px; display: flex; align-items: center; gap: 12px; -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5); }
html.gl-on .gl-pj-tasksum-info { flex: 1; }
html.gl-on .gl-pj-tasksum-title { display: block; font: 600 17px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on .gl-pj-tasksum-sub { display: block; font: 400 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-tasksum-track { width: 110px; height: 6px; border-radius: 3px; background: var(--gl-bar); }
html.gl-on .gl-pj-tasksum-fill { display: block; height: 100%; border-radius: 3px; background: var(--gl-green); }
html.gl-on .gl-pj-tasksum-pct { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-green); font-variant-numeric: tabular-nums; }
html.gl-on .gl-pj-group { background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: 18px; overflow: hidden; -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5); }
html.gl-on .gl-pj-group-head { display: flex; align-items: center; gap: 12px; padding: 20px 18px; cursor: pointer; }
html.gl-on .gl-pj-group-name { flex: 1; font: 600 22px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); letter-spacing: -0.01em; }
html.gl-on .gl-pj-group-meta { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-group-chev { width: 22px; display: grid; place-items: center; color: var(--gl-muted); font: 400 16px -apple-system,'SF Pro Text','Inter',sans-serif; flex: none; }
html.gl-on .gl-pj-task { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-top: 1px solid var(--gl-row-line); cursor: pointer; }
html.gl-on .gl-pj-task-box { width: 18px; height: 18px; border-radius: 6px; border: 1px solid var(--gl-glass-border); display: grid; place-items: center; font: 600 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: #fff; flex: none; }
html.gl-on .gl-pj-task-box.is-done { background: var(--gl-green); border-color: var(--gl-green); }
html.gl-on .gl-pj-task-text { flex: 1; font: 400 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on .gl-pj-task-text.is-done { color: var(--gl-muted); text-decoration: line-through; }
html.gl-on .gl-pj-task-due { font: 500 10.5px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-amber); background: var(--gl-amber-chip); border-radius: 4px; padding: 2px 6px; }
html.gl-on .gl-pj-task-add { padding: 8px 14px 12px; border-top: 1px solid var(--gl-row-line); }
html.gl-on .gl-pj-task-input { width: 100%; background: transparent; border: 1px solid var(--gl-glass-border); border-radius: 8px; padding: 8px 10px; font: 400 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on .gl-pj-task-input::placeholder { color: var(--gl-muted); }

/* Team subtab */
html.gl-on .gl-pj-teamsum { background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: 18px; padding: 20px 18px; display: flex; align-items: center; gap: 12px; -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5); }
html.gl-on .gl-pj-teamsum-l { flex: 1; min-width: 0; }
html.gl-on .gl-pj-teamsum-lbl { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-teamsum-count { font: 600 26px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); margin-top: 2px; }
html.gl-on .gl-pj-teamsum-sub { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 2px; }
html.gl-on .gl-pj-teamsum-sub b { color: var(--gl-ink); font-weight: 600; }
html.gl-on .gl-pj-assign { display: inline-flex; align-items: center; gap: 6px; font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-thumb-ink); background: var(--gl-thumb); border: 0; border-radius: 12px; padding: 10px 16px; cursor: pointer; flex: none; }
html.gl-on .gl-pj-crew { background: var(--gl-glass-2); border: 1px solid var(--gl-glass-border); border-radius: 18px; padding: 20px 18px; cursor: pointer; -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5); }
html.gl-on .gl-pj-crew-top { display: flex; align-items: center; gap: 12px; }
html.gl-on .gl-pj-crew-av { width: 40px; height: 40px; border-radius: 50%; background: var(--gl-chip); border: 1px solid var(--gl-glass-border); display: grid; place-items: center; font: 600 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); flex: none; }
html.gl-on .gl-pj-crew-info { flex: 1; min-width: 0; }
html.gl-on .gl-pj-crew-name { display: block; font: 600 17px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on .gl-pj-crew-rate { display: block; font: 400 12px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-crew-r { text-align: right; flex: none; }
html.gl-on .gl-pj-crew-time { display: block; font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); font-variant-numeric: tabular-nums; }
html.gl-on .gl-pj-crew-line { display: block; font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); margin-top: 1px; font-variant-numeric: tabular-nums; }
html.gl-on .gl-pj-crew-days { display: flex; gap: 4px; margin-top: 12px; }
html.gl-on .gl-pj-day { flex: 1; text-align: center; font: 600 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); background: var(--gl-glass); border: 1px solid var(--gl-glass-border); border-radius: 7px; padding: 6px 0; }
html.gl-on .gl-pj-day.is-on { color: var(--gl-green); background: var(--gl-green-bg); border-color: rgba(95,207,163,0.35); }
/* Team card footer · Remove + Add note + notes list */
html.gl-on .gl-pj-crew-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--gl-row-line); }
html.gl-on .gl-pj-crew-remove { font: 600 15px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-red); background: var(--gl-red-chip); border: 0; border-radius: 11px; padding: 13px 20px; cursor: pointer; }
html.gl-on .gl-pj-crew-note-btn { font: 600 15px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-thumb-ink); background: var(--gl-thumb); border: 0; border-radius: 11px; padding: 13px 20px; cursor: pointer; }
html.gl-on .gl-pj-note-add { display: flex; gap: 8px; align-items: center; margin-top: 12px; }
html.gl-on .gl-pj-note-input { flex: 1; background: transparent; border: 1px solid var(--gl-glass-border); border-radius: 9px; padding: 9px 12px; font: 400 14px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); outline: none; }
html.gl-on .gl-pj-note-input::placeholder { color: var(--gl-muted); }
html.gl-on .gl-pj-note-save { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-thumb-ink); background: var(--gl-thumb); border: 0; border-radius: 9px; padding: 9px 14px; cursor: pointer; flex: none; }
html.gl-on .gl-pj-notes { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
html.gl-on .gl-pj-note { display: flex; gap: 10px; align-items: flex-start; }
html.gl-on .gl-pj-note-av { width: 28px; height: 28px; border-radius: 50%; background: var(--gl-chip); border: 1px solid var(--gl-glass-border); display: grid; place-items: center; font: 600 10.5px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); flex: none; }
html.gl-on .gl-pj-note-body { flex: 1; min-width: 0; }
html.gl-on .gl-pj-note-hd { display: flex; align-items: baseline; gap: 8px; }
html.gl-on .gl-pj-note-author { font: 600 14px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); }
html.gl-on .gl-pj-note-time { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-muted); }
html.gl-on .gl-pj-note-text { font: 400 14px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gl-ink); margin-top: 2px; white-space: pre-wrap; word-break: break-word; }

/* ── Selector de proyectos · BOTTOM SHEET (portal a body) ─────────────
   Overlay a pantalla completa + hoja que sube desde el borde inferior.
   Montado en <body>, por encima de la barra flotante (z-index 45). */
html.gl-on .gl-sheet-wrap { position: fixed; inset: 0; z-index: 300; display: flex; flex-direction: column; justify-content: flex-end; }
html.gl-on .gl-sheet-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.42); opacity: 0; transition: opacity .22s ease; }
html.gl-on .gl-sheet-wrap.is-open .gl-sheet-overlay { opacity: 1; }
html.gl-on .gl-sheet {
  position: relative; width: 100%; max-width: 430px; margin: 0 auto;
  background: var(--glass); -webkit-backdrop-filter: blur(34px) saturate(1.7); backdrop-filter: blur(34px) saturate(1.7);
  border: 1px solid var(--glass-border); border-bottom: 0; border-radius: 24px 24px 0 0;
  padding: 8px 14px calc(18px + env(safe-area-inset-bottom,0px));
  max-height: 72vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
  box-shadow: 0 -10px 40px rgba(0,0,0,0.22);
  transform: translateY(100%); transition: transform .26s cubic-bezier(0.32,0.72,0,1);
}
html.gl-on .gl-sheet-wrap.is-open .gl-sheet { transform: translateY(0); }
html.gl-on .gl-sheet-wrap.is-closing .gl-sheet { transform: translateY(100%); }
html.gl-on .gl-sheet-wrap.is-closing .gl-sheet-overlay { opacity: 0; }
html.gl-on .gl-sheet-grab { width: 36px; height: 4px; border-radius: 999px; background: var(--bar); margin: 4px auto 10px; }
html.gl-on .gl-sheet-title { font: 600 15px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--ink); padding: 2px 6px 10px; }
html.gl-on .gl-sheet-list { display: flex; flex-direction: column; gap: 3px; }
html.gl-on .gl-sheet-item { display: flex; align-items: center; gap: 11px; width: 100%; text-align: left; border: 0; background: transparent; border-radius: 14px; padding: 13px 12px; font: 500 15px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--ink); cursor: pointer; }
html.gl-on .gl-sheet-item:active { background: var(--glass-2); }
html.gl-on .gl-sheet-item.is-active { background: var(--glass-2); border: 1px solid var(--glass-border); }
html.gl-on .gl-sheet-dot { width: 9px; height: 9px; border-radius: 50%; background: currentColor; flex: none; }
html.gl-on .gl-sheet-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html.gl-on .gl-sheet-check { color: var(--green); font-weight: 600; }
html.gl-on .gl-sheet-item--add { color: var(--muted); }

/* ═══ ESTIMATES panel (idéntico al mockup) ══════════════════════════
   Chrome nativo oculto; header + hero + chips + tarjetas dentro del
   panel (.gl-scope, markup exacto con estilos inline). */
html.gl-on body.gl-estpanel #topNavyBand,
html.gl-on body.gl-estpanel #projTabsWrap,
html.gl-on body.gl-estpanel #stickyTitleBar { display: none !important; }
html.gl-on body.gl-estpanel #panelHost {
  display: block !important; max-width: 458px !important; margin: 0 auto !important;
  padding: 0 !important;
}

/* ═══ INVOICES panel (mismo modelo que Estimates) ═══════════════════ */
html.gl-on body.gl-invpanel #topNavyBand,
html.gl-on body.gl-invpanel #projTabsWrap,
html.gl-on body.gl-invpanel #stickyTitleBar { display: none !important; }
html.gl-on body.gl-invpanel #panelHost {
  display: block !important; max-width: 458px !important; margin: 0 auto !important;
  padding: 0 !important;
}

/* ═══ RFIs / LIEN / DAY-OFF / LEAD-EXP / SERVICE panels (mismo modelo) ═ */
html.gl-on body.gl-rfipanel #topNavyBand, html.gl-on body.gl-rfipanel #projTabsWrap, html.gl-on body.gl-rfipanel #stickyTitleBar,
html.gl-on body.gl-lienpanel #topNavyBand, html.gl-on body.gl-lienpanel #projTabsWrap, html.gl-on body.gl-lienpanel #stickyTitleBar,
html.gl-on body.gl-dayoffpanel #topNavyBand, html.gl-on body.gl-dayoffpanel #projTabsWrap, html.gl-on body.gl-dayoffpanel #stickyTitleBar,
html.gl-on body.gl-lexppanel #topNavyBand, html.gl-on body.gl-lexppanel #projTabsWrap, html.gl-on body.gl-lexppanel #stickyTitleBar,
html.gl-on body.gl-svcpanel #topNavyBand, html.gl-on body.gl-svcpanel #projTabsWrap, html.gl-on body.gl-svcpanel #stickyTitleBar,
html.gl-on body.gl-completedpanel #topNavyBand, html.gl-on body.gl-completedpanel #projTabsWrap, html.gl-on body.gl-completedpanel #stickyTitleBar { display: none !important; }
html.gl-on body.gl-rfipanel #panelHost, html.gl-on body.gl-lienpanel #panelHost, html.gl-on body.gl-dayoffpanel #panelHost,
html.gl-on body.gl-lexppanel #panelHost, html.gl-on body.gl-svcpanel #panelHost, html.gl-on body.gl-completedpanel #panelHost {
  display: block !important; max-width: 458px !important; margin: 0 auto !important; padding: 0 !important;
}

/* ═══ CHANGE ORDERS / REIMBURSEMENTS panels (mismo modelo) ══════════ */
html.gl-on body.gl-copanel #topNavyBand, html.gl-on body.gl-copanel #projTabsWrap, html.gl-on body.gl-copanel #stickyTitleBar,
html.gl-on body.gl-reimppanel #topNavyBand, html.gl-on body.gl-reimppanel #projTabsWrap, html.gl-on body.gl-reimppanel #stickyTitleBar { display: none !important; }
html.gl-on body.gl-copanel #panelHost,
html.gl-on body.gl-reimppanel #panelHost {
  display: block !important; max-width: 458px !important; margin: 0 auto !important;
  padding: 0 !important;
}

/* ═══ LEADS / CLIENTS panels (mismo modelo) ═════════════════════════ */
html.gl-on body.gl-leadpanel #topNavyBand, html.gl-on body.gl-leadpanel #projTabsWrap, html.gl-on body.gl-leadpanel #stickyTitleBar,
html.gl-on body.gl-clipanel #topNavyBand, html.gl-on body.gl-clipanel #projTabsWrap, html.gl-on body.gl-clipanel #stickyTitleBar { display: none !important; }
html.gl-on body.gl-leadpanel #panelHost,
html.gl-on body.gl-clipanel #panelHost {
  display: block !important; max-width: 458px !important; margin: 0 auto !important;
  padding: 0 !important;
}

/* ═══ APPOINTMENTS panel (mismo modelo) ═════════════════════════════ */
html.gl-on body.gl-apptpanel #topNavyBand,
html.gl-on body.gl-apptpanel #projTabsWrap,
html.gl-on body.gl-apptpanel #stickyTitleBar { display: none !important; }
html.gl-on body.gl-apptpanel #panelHost {
  display: block !important; max-width: 458px !important; margin: 0 auto !important;
  padding: 0 !important;
}

/* ═══ NAV drawer glass (portal a body) ══════════════════════════════
   El aside/overlay nativo se ocultan; el drawer se monta a nivel body. */
html.gl-on #sidebar, html.gl-on #sidebarOverlay { display: none !important; }

html.gl-on .gl-nav-veil { position: fixed; inset: 0; background: var(--overlay); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); z-index: 50; opacity: 0; transition: opacity .24s ease; }
html.gl-on .gl-nav-veil.is-open { opacity: 1; }
html.gl-on .gl-nav-drawer {
  position: fixed; top: 0; bottom: 0; left: 0; width: 300px; max-width: 86vw; z-index: 51;
  background: var(--sheet); border-right: 1px solid var(--glass-border);
  -webkit-backdrop-filter: blur(36px) saturate(1.5); backdrop-filter: blur(36px) saturate(1.5);
  box-shadow: 12px 0 48px rgba(0,0,0,0.30);
  padding: calc(env(safe-area-inset-top,0px) + 20px) 14px calc(env(safe-area-inset-bottom,0px) + 16px);
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  display: flex; flex-direction: column;
  transform: translateX(-100%); transition: transform .28s cubic-bezier(0.32,0.72,0,1);
}
html.gl-on .gl-nav-drawer.is-open { transform: translateX(0); }
html.gl-on .gl-nav-brand { display: flex; align-items: center; gap: 10px; padding: 0 8px 14px; }
html.gl-on .gl-nav-logo { width: 34px; height: 34px; border-radius: 10px; background: linear-gradient(145deg,#1B2740,#26355A); display: grid; place-items: center; font: 600 14px 'Fraunces',serif; color: #D9C08A; flex: none; box-shadow: 0 2px 8px rgba(27,39,64,0.30); }
html.gl-on .gl-nav-brandtext { flex: 1; min-width: 0; }
html.gl-on .gl-nav-company { font: 600 14.5px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--ink); }
html.gl-on .gl-nav-sub { font: 400 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--muted); margin-top: 1px; }
html.gl-on .gl-nav-close { border: none; background: transparent; font: 400 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--muted); padding: 4px 8px; cursor: pointer; align-self: flex-start; }
html.gl-on .gl-nav-list { display: flex; flex-direction: column; flex: 1; }
html.gl-on .gl-nav-group { display: flex; flex-direction: column; }
html.gl-on .gl-nav-section { font: 700 15px -apple-system,'SF Pro Text','Inter',sans-serif; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); padding: 16px 8px 8px; }
html.gl-on .menu-group-head { display: flex; align-items: center; justify-content: space-between; width: 100%; background: transparent; border: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
html.gl-on .menu-group-head .menu-group-lbl { pointer-events: none; }
html.gl-on .menu-group-chev { display: inline-flex; align-items: center; justify-content: center; color: var(--muted); transition: transform .28s cubic-bezier(.4,0,.2,1); }
html.gl-on .menu-group-chev[data-open="true"] { transform: rotate(180deg); }
html.gl-on .menu-group-body { overflow: hidden; max-height: 0; opacity: .55; transition: max-height .28s cubic-bezier(.4,0,.2,1), opacity .2s ease; }
html.gl-on .menu-group-body[data-open="true"] { max-height: 700px; opacity: 1; }
html.gl-on .gl-nav-item { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 12px; margin-bottom: 3px; background: transparent; border: none; width: 100%; text-align: left; cursor: pointer; }
html.gl-on .gl-nav-item:active { background: var(--glass); }
html.gl-on .gl-nav-item.is-active { background: var(--primary); }
html.gl-on .gl-nav-ic { width: 19px; height: 19px; display: grid; place-items: center; color: var(--muted); flex: none; }
html.gl-on .gl-nav-ic svg { width: 19px; height: 19px; stroke-width: 1.7; }
html.gl-on .gl-nav-lbl { font: 500 17px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--muted); }
html.gl-on .gl-nav-item.is-active .gl-nav-ic { color: var(--gold); }
html.gl-on .gl-nav-item.is-active .gl-nav-lbl { color: var(--primary-ink); font-weight: 600; }
html.gl-on .gl-nav-seg-row { display: flex; align-items: center; gap: 10px; padding: 7px 10px; }
html.gl-on .gl-nav-seg-lbl { flex: 1; font: 500 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--ink); }
html.gl-on .gl-nav-seg { display: flex; background: var(--glass); border: 1px solid var(--glass-border); border-radius: 9px; padding: 2px; }
html.gl-on .gl-nav-seg button { border: none; background: transparent; border-radius: 7px; padding: 4px 10px; font: 500 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--muted); cursor: pointer; }
html.gl-on .gl-nav-seg button.is-active { background: var(--thumb); color: var(--thumb-ink); }
/* Appearance — iOS-style grouped rows */
html.gl-on .gl-nav-seg-row:has(.gl-theme-list) { flex-direction: column; align-items: stretch; gap: 8px; }
html.gl-on .gl-theme-list { display: flex; flex-direction: column; background: var(--glass); border: 1px solid var(--glass-border); border-radius: 12px; overflow: hidden; }
html.gl-on .gl-theme-opt { display: flex; align-items: center; gap: 12px; border: none; background: transparent; padding: 12px 14px; cursor: pointer; text-align: left; border-bottom: 1px solid var(--glass-border); }
html.gl-on .gl-theme-opt:last-child { border-bottom: none; }
html.gl-on .gl-theme-ic { display: flex; color: var(--muted); }
html.gl-on .gl-theme-opt.is-active .gl-theme-ic { color: var(--gold); }
html.gl-on .gl-theme-lbl { flex: 1; font: 500 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--ink); }
html.gl-on .gl-theme-opt.is-active .gl-theme-lbl { font-weight: 600; }
html.gl-on .gl-theme-check { display: flex; color: var(--gold); }
html.gl-on .gl-nav-footer { border-top: 1px solid var(--row-line); padding-top: 12px; margin-top: 12px; display: flex; justify-content: space-between; align-items: center; }
html.gl-on .gl-nav-signout { font: 600 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--ink); background: var(--glass); border: 1px solid var(--glass-border); border-radius: 10px; padding: 9px 14px; cursor: pointer; }
html.gl-on .gl-nav-version { font: 400 10.5px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--muted); }

/* Pills de estado legacy (statusPill) — mayúscula + tracking uniforme */
html.gl-on .status-pill { text-transform: uppercase; letter-spacing: 0.04em; }

/* ═══ Barrido global de pop-ups → liquid glass (chrome compartido) ═══
   Scopeado a html.gl-on (siempre activo). Reskins de modal.js, dialog.js,
   forms.js, photoUpload.js. Sin serif; primario nunca dorado sólido.
   Los pop-ups van portaleados a <body> (fuera de .gl-scope), así que
   definimos los tokens glass SOBRE los overlays para que var(--…) resuelva,
   sin tocar el resto de la app. */
html.gl-on .modal-overlay, html.gl-on .dialog-overlay {
  --ink: #101828; --muted: rgba(16,24,40,0.55);
  --glass: rgba(255,255,255,0.58); --glass-2: rgba(255,255,255,0.50);
  --glass-border: rgba(255,255,255,0.80);
  --field-bg: rgba(255,255,255,0.92); --field-border: rgba(16,24,40,0.14);
  --sheet: rgba(255,255,255,0.62); --overlay: rgba(13,18,26,0.35);
  --chip: rgba(27,39,64,0.10); --gold: #C9A557;
  --primary: rgba(16,24,40,0.82); --primary-ink: #fff;
  --red: #C0311F; --red-chip: rgba(217,45,32,0.10);
}
html.gl-on[data-theme="dark"] .modal-overlay, html.gl-on[data-theme="dark"] .dialog-overlay {
  --ink: #F0F2F5; --muted: rgba(240,242,245,0.62);
  --glass: rgba(255,255,255,0.07); --glass-2: rgba(255,255,255,0.06);
  --glass-border: rgba(255,255,255,0.14);
  --field-bg: rgba(255,255,255,0.10); --field-border: rgba(255,255,255,0.20);
  --sheet: rgba(10,10,12,0.70); --overlay: rgba(0,0,0,0.55);
  --chip: rgba(217,192,138,0.14); --gold: #D9C08A;
  --primary: rgba(240,242,245,0.90); --primary-ink: #0D1117;
  --red: #F0685C; --red-chip: rgba(240,104,92,0.16);
}
/* Header / body / footer transparentes para que el vidrio del sheet mande */
html.gl-on .modal-header, html.gl-on .modal-body, html.gl-on .modal-footer { background: transparent !important; border-color: var(--glass-border) !important; }
/* Scrim */
html.gl-on .modal-overlay { background: var(--overlay); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
html.gl-on .modal-overlay::before { display: none; }
/* Superficie tipo sheet */
html.gl-on .modal { background: var(--sheet); border: 1px solid var(--glass-border); border-bottom: 0; border-radius: 26px 26px 0 0; -webkit-backdrop-filter: blur(40px) saturate(1.6); backdrop-filter: blur(40px) saturate(1.6); box-shadow: 0 -8px 44px rgba(0,0,0,0.30); }
html.gl-on .modal::before { top: 8px; left: 50%; right: auto; transform: translateX(-50%); width: 38px; height: 5px; background: var(--glass-border); border-radius: 999px; }
@media (min-width: 640px) { html.gl-on .modal { border: 1px solid var(--glass-border); border-radius: 26px; } }
/* Título — SF Pro, sin serif */
html.gl-on .modal-title { font: 600 22px -apple-system,'SF Pro Text','Inter',sans-serif !important; color: var(--ink); letter-spacing: -0.01em; }
html.gl-on .modal-close { color: var(--muted); background: var(--glass) !important; border: 1px solid var(--glass-border) !important; border-radius: 50% !important; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
html.gl-on .modal-close:hover { color: var(--ink); border-color: var(--glass-border) !important; background: var(--glass-2) !important; }
/* Footer — no partir botones */
html.gl-on .modal-footer { align-items: center; }
html.gl-on .modal-footer .btn { white-space: nowrap; align-items: center; }
/* Campos */
html.gl-on .fld-label { font: 500 12px -apple-system,'SF Pro Text','Inter',sans-serif !important; color: var(--muted); text-transform: none; letter-spacing: 0; font-style: normal; }
html.gl-on .fld-input { background: var(--glass) !important; border: 1px solid var(--glass-border) !important; border-radius: 12px !important; font: 400 17px -apple-system,'SF Pro Text','Inter',sans-serif !important; color: var(--ink) !important; outline: none !important; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
html.gl-on .fld-input:focus { border-color: var(--glass-border) !important; }
/* Scope-items editor (citas): la tarjeta usaba var(--surface) crema fuera de
   modales. Remapear a glass para igualar los demás campos. */
html.gl-on .si-row { background: var(--glass-2) !important; border: 1px solid var(--glass-border) !important; }
html.gl-on .si-row .fld-input { background: var(--glass) !important; border: 1px solid var(--glass-border) !important; }
html.gl-on .si-row .fld-input:focus { border-color: var(--gold) !important; }
/* Sin acento dorado al colocar el cursor para escribir texto */
html.gl-on input:focus, html.gl-on input:focus-visible,
html.gl-on textarea:focus, html.gl-on textarea:focus-visible,
html.gl-on select:focus, html.gl-on select:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}
/* Dark glass modals: los inputs con --glass (blanco 6%) casi no se veían.
   Superficie y borde más marcados para restaurar el contraste del campo. */
/* Dark glass modals: la celda (.field-group) es la caja visible; el input va
   transparente y sin borde para no dibujar un pill extra alrededor del texto. */
html.gl-on[data-theme="dark"] .modal-overlay .form .field-group:has(> .fld-input),
html.gl-on[data-theme="dark"] .dialog-overlay .form .field-group:has(> .fld-input),
html.gl-on[data-theme="dark"] .modal-overlay .form .field-group:has(> .fld-textarea),
html.gl-on[data-theme="dark"] .dialog-overlay .form .field-group:has(> .fld-textarea) {
  background: #17181B !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.35) !important;
}
html.gl-on[data-theme="dark"] .modal-overlay .fld-input,
html.gl-on[data-theme="dark"] .dialog-overlay .fld-input,
html.gl-on[data-theme="dark"] .modal-overlay .fld-textarea,
html.gl-on[data-theme="dark"] .dialog-overlay .fld-textarea,
html.gl-on[data-theme="dark"] .modal-overlay select.fld-input,
html.gl-on[data-theme="dark"] .dialog-overlay select.fld-input {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
html.gl-on[data-theme="dark"] .modal-overlay .fld-input::placeholder,
html.gl-on[data-theme="dark"] .dialog-overlay .fld-input::placeholder {
  color: rgba(240,242,245,0.42) !important;
}
html.gl-on[data-theme="dark"] .modal-overlay .fld-label,
html.gl-on[data-theme="dark"] .dialog-overlay .fld-label {
  color: rgba(240,242,245,0.88) !important;
}
html.gl-on[data-theme="dark"] .modal-overlay .fld-hint,
html.gl-on[data-theme="dark"] .dialog-overlay .fld-hint {
  color: rgba(240,242,245,0.62) !important;
}
/* Add task group: campo de nombre más grande, placeholder en blanco */
.tg-name-input { font-size: 20px !important; padding-top: 12px !important; padding-bottom: 12px !important; }
.tg-name-input::placeholder { color: #F0F2F5 !important; opacity: 1 !important; font-size: 20px !important; }
html.gl-on .fld-input::placeholder { color: var(--muted); }
/* Autofill: el navegador pintaba crema (#EAE3D2); forzar blanco en glass claro */
html.gl-on:not([data-theme="dark"]) input:-webkit-autofill,
html.gl-on:not([data-theme="dark"]) input:-webkit-autofill:focus,
html.gl-on:not([data-theme="dark"]) input:-webkit-autofill:hover,
html.gl-on:not([data-theme="dark"]) .fld-input:-webkit-autofill,
html.gl-on:not([data-theme="dark"]) textarea:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #FFFFFF inset !important;
  box-shadow: 0 0 0 1000px #FFFFFF inset !important;
  -webkit-text-fill-color: var(--ink) !important;
  caret-color: var(--ink) !important;
}
html.gl-on .fld-hint { font: 400 12px -apple-system,'SF Pro Text','Inter',sans-serif !important; color: var(--muted); font-style: normal; }
html.gl-on .form-err { color: var(--red); font-family: -apple-system,'SF Pro Text','Inter',sans-serif; }
/* Chips (día de semana, etc.) */
html.gl-on .day-pill { color: var(--muted); background: transparent; border: 1px solid var(--glass-border); font-family: -apple-system,'SF Pro Text','Inter',sans-serif; }
html.gl-on .day-pill.active { color: var(--ink); background: var(--chip); border-color: var(--gold); }
/* Botones */
html.gl-on .btn-primary { background: var(--primary) !important; color: var(--primary-ink) !important; border: 0 !important; border-radius: 14px !important; font: 600 17px -apple-system,'SF Pro Text','Inter',sans-serif !important; white-space: nowrap; }
html.gl-on .btn-secondary { background: var(--glass) !important; color: var(--muted) !important; border: 1px solid var(--glass-border) !important; border-radius: 14px !important; font: 600 17px -apple-system,'SF Pro Text','Inter',sans-serif !important; white-space: nowrap; }
/* Dialog (showAlert / showConfirm / showOptions) */
html.gl-on .dialog-overlay { background: var(--overlay); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
html.gl-on .dialog { background: var(--sheet); border: 1px solid var(--glass-border); border-radius: 22px; -webkit-backdrop-filter: blur(40px) saturate(1.6); backdrop-filter: blur(40px) saturate(1.6); box-shadow: 0 20px 60px rgba(0,0,0,0.32); }
html.gl-on .dialog-title { font: 600 21px -apple-system,'SF Pro Text','Inter',sans-serif !important; color: var(--ink); letter-spacing: -0.01em; }
html.gl-on .dialog-message { color: var(--muted); font-family: -apple-system,'SF Pro Text','Inter',sans-serif; }
html.gl-on .dialog-btn { font: 600 16px -apple-system,'SF Pro Text','Inter',sans-serif !important; border-radius: 12px; white-space: nowrap; }
html.gl-on .dialog-btn:not(.dialog-btn--primary) { background: var(--glass); color: var(--muted); border: 1px solid var(--glass-border); }
html.gl-on .dialog-btn--primary { background: var(--primary); color: var(--primary-ink); border: 0; }
html.gl-on .dialog-btn--primary.dialog-btn--danger { background: var(--red); color: #fff; }
html.gl-on .dialog-btn--danger:not(.dialog-btn--primary) { background: var(--red-chip); color: var(--red); border: 0; }
/* Dropzone de foto */
html.gl-on .photo-preview { background: var(--glass-2) !important; border: 1.5px dashed var(--glass-border) !important; border-radius: 14px; }
html.gl-on .photo-preview-empty { border: 1.5px dashed var(--glass-border) !important; background: var(--glass-2) !important; border-radius: 14px; }
html.gl-on .photo-preview-icon { background: var(--chip); border: 1px solid var(--gold); border-radius: 50%; color: var(--ink); }
html.gl-on .photo-preview-hint { font: 400 13px -apple-system,'SF Pro Text','Inter',sans-serif !important; font-style: normal !important; color: var(--muted); }

/* ═══ Modales de FIRMA · liquid glass (solo visual) ═════════════════
   Scopeado a: pad (.sig-layer) y side-picker (:has(.sig-side-picker)).
   No toca los demás modales de la app. */
html.gl-on .sig-layer .modal,
html.gl-on .modal-overlay:has(.sig-side-picker) .modal {
  background: rgba(255,255,255,0.52);
  -webkit-backdrop-filter: blur(40px) saturate(1.6); backdrop-filter: blur(40px) saturate(1.6);
  border: 1px solid rgba(255,255,255,0.80); border-bottom: 0;
  border-radius: 26px 26px 0 0; box-shadow: 0 -12px 44px rgba(0,0,0,0.3);
}
html.gl-on[data-theme="dark"] .sig-layer .modal,
html.gl-on[data-theme="dark"] .modal-overlay:has(.sig-side-picker) .modal {
  background: rgba(60,60,70,0.55); border-color: rgba(255,255,255,0.13);
}
html.gl-on .sig-layer .modal::before,
html.gl-on .modal-overlay:has(.sig-side-picker) .modal::before {
  content: ''; display: block; width: 38px; height: 4px; border-radius: 2px; background: rgba(16,24,40,0.12); margin: 10px auto 0;
}
html.gl-on[data-theme="dark"] .sig-layer .modal::before,
html.gl-on[data-theme="dark"] .modal-overlay:has(.sig-side-picker) .modal::before { background: rgba(255,255,255,0.14); }
html.gl-on .sig-layer .modal-header,
html.gl-on .modal-overlay:has(.sig-side-picker) .modal-header { border-bottom-color: rgba(16,24,40,0.08); }
html.gl-on .sig-layer .modal-title,
html.gl-on .modal-overlay:has(.sig-side-picker) .modal-title { font-family: -apple-system,'SF Pro Text','Inter',sans-serif; font-weight: 600; }
html.gl-on .sig-layer .modal-footer,
html.gl-on .modal-overlay:has(.sig-side-picker) .modal-footer { background: transparent; border-top: 1px solid rgba(16,24,40,0.08); }
html.gl-on[data-theme="dark"] .sig-layer .modal-footer,
html.gl-on[data-theme="dark"] .modal-overlay:has(.sig-side-picker) .modal-footer { border-top-color: rgba(255,255,255,0.07); }
html.gl-on .sig-layer .modal-footer .btn-secondary,
html.gl-on .modal-overlay:has(.sig-side-picker) .modal-footer .btn-secondary {
  background: rgba(255,255,255,0.55); border: 1px solid rgba(255,255,255,0.80); color: var(--ink); border-radius: 12px;
}
html.gl-on .sig-layer .modal-footer .btn-primary {
  background: rgba(16,24,40,0.82); color: #fff; border: none; border-radius: 12px;
}
html.gl-on[data-theme="dark"] .sig-layer .modal-footer .btn-primary { background: rgba(240,242,245,0.90); color: #0D1117; }

/* Side-picker (¿quién firma?) */
html.gl-on .sig-side-btn { background: rgba(255,255,255,0.50); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); border: 1px solid rgba(255,255,255,0.80); border-radius: 16px; }
html.gl-on[data-theme="dark"] .sig-side-btn { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.13); }
html.gl-on .sig-side-btn-title { font: 600 17px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--ink); }
html.gl-on .sig-side-btn-sub { font: 500 12.5px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--muted); }
html.gl-on .sig-side-btn--has { background: rgba(14,110,79,0.10); border-color: rgba(14,110,79,0.25); }
html.gl-on[data-theme="dark"] .sig-side-btn--has { background: rgba(95,207,163,0.10); border-color: rgba(95,207,163,0.30); }
html.gl-on .sig-side-btn-status { font: 600 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--green); text-transform: uppercase; letter-spacing: 0.04em; display: inline-flex; align-items: center; gap: 6px; }
html.gl-on .sig-side-btn-status::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
html.gl-on .sig-side-btn-status--empty { color: var(--muted); }
html.gl-on .sig-side-btn-status--empty::before { background: var(--muted); }

/* Pad de firma */
html.gl-on .sig-pad-wrap { background: rgba(255,255,255,0.50); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); border: 1px solid rgba(255,255,255,0.80); border-radius: 16px; }
html.gl-on[data-theme="dark"] .sig-pad-wrap { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.13); }
html.gl-on .sig-pad { background: rgba(255,255,255,0.55); border: 1px solid rgba(255,255,255,0.80); border-radius: 12px; }
html.gl-on .sig-pad-baseline { background: rgba(16,24,40,0.22); }
html.gl-on .sig-pad-x { color: var(--gold); font-family: Georgia, 'Times New Roman', serif; }
html.gl-on .sig-instructions span, html.gl-on .sig-subtitle { font: 600 11px -apple-system,'SF Pro Text','Inter',sans-serif; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }

/* Firma en archivo */
html.gl-on .sig-existing { background: rgba(27,39,64,0.10); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,0.60); border-radius: 14px; }
html.gl-on[data-theme="dark"] .sig-existing { background: rgba(217,192,138,0.12); border-color: rgba(255,255,255,0.13); }
html.gl-on .sig-existing-label { font: 600 10.5px -apple-system,'SF Pro Text','Inter',sans-serif; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gold-deep, #8E6F2F); }
html.gl-on .sig-existing-img { background: rgba(255,255,255,0.55); border: 1px solid rgba(255,255,255,0.80); border-radius: 10px; }
html.gl-on .sig-existing .btn-danger { background: transparent; color: var(--red); border: 1px solid rgba(192,49,31,0.4); }

/* ═══ Passcode gate · liquid glass keypad (estilo Apple) ═══════════════ */
html.gl-on #pinGateHost { background: var(--gl-bg-grad) !important; }
html.gl-on .gl-pin {
  --pin-key-bg: rgba(255,255,255,0.30);
  --pin-key-border: rgba(255,255,255,0.48);
  --pin-key-shadow: 0 2px 10px rgba(27,39,64,0.05);
  --pin-dot-empty: rgba(16,24,40,0.28);
  --pin-blob-1: rgba(27,39,64,0.20);
  --pin-blob-2: rgba(201,165,87,0.24);
  position: relative; overflow: hidden;
  min-height: 100%; box-sizing: border-box;
  display: flex; flex-direction: column; align-items: center;
  padding: calc(76px + env(safe-area-inset-top,0px)) 40px calc(44px + env(safe-area-inset-bottom,0px));
  background: linear-gradient(160deg,#E7ECF4 0%,#DFE7F2 25%,#F0E9D6 60%,#E4EAF3 100%);
  font-family: -apple-system,'SF Pro Text','Inter',sans-serif;
  color: var(--ink);
}
html.gl-on[data-theme="dark"] .gl-pin {
  --pin-key-bg: rgba(255,255,255,0.05);
  --pin-key-border: rgba(255,255,255,0.12);
  --pin-key-shadow: 0 2px 10px rgba(0,0,0,0.5);
  --pin-dot-empty: rgba(240,242,245,0.32);
  --pin-blob-1: rgba(70,90,130,0.14);
  --pin-blob-2: rgba(201,165,87,0.10);
  background: linear-gradient(160deg,#000000 0%,#050505 50%,#000000 100%);
}
html.gl-on .gl-pin-blob { position: absolute; border-radius: 50%; filter: blur(60px); pointer-events: none; z-index: 0; }
html.gl-on .gl-pin-blob--a { top: -90px; left: -80px; width: 340px; height: 340px; background: var(--pin-blob-1); }
html.gl-on .gl-pin-blob--b { bottom: -60px; right: -80px; width: 300px; height: 300px; background: var(--pin-blob-2); }

html.gl-on .gl-pin-top { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; width: 100%; }
html.gl-on .gl-pin-logo { width: 48px; height: 48px; border-radius: 14px; background: #101828; color: #fff; font: 700 18px -apple-system,'SF Pro Text','Inter',sans-serif; display: grid; place-items: center; letter-spacing: -0.01em; }
html.gl-on .gl-pin-title { margin-top: 22px; font: 600 26px -apple-system,'SF Pro Display','SF Pro Text','Inter',sans-serif; letter-spacing: -0.02em; color: var(--ink); }
html.gl-on .gl-pin-sub { margin-top: 6px; font: 400 15px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--muted); max-width: 300px; }
html.gl-on .gl-pin-dots { display: flex; gap: 18px; margin-top: 30px; }
html.gl-on .gl-pin-dot { width: 14px; height: 14px; border-radius: 50%; box-sizing: border-box; border: 1.5px solid var(--pin-dot-empty); background: transparent; transition: transform .12s ease, background .12s ease, border-color .12s ease; }
html.gl-on .gl-pin-dot.is-filled { background: var(--ink); border-color: var(--ink); transform: scale(1.05); }
html.gl-on .gl-pin-err { margin-top: 16px; font: 500 13px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--red,#C0311F); min-height: 16px; }
html.gl-on .gl-pin-err--ghost { color: transparent; }

html.gl-on .gl-pin-pad { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,1fr); gap: 22px 30px; max-width: 320px; width: 100%; margin: 0 auto; }
html.gl-on .gl-pin-key { aspect-ratio: 1; border-radius: 999px; background: var(--pin-key-bg); border: 1px solid var(--pin-key-border); box-shadow: var(--pin-key-shadow); -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: transform .1s ease, background .12s ease; }
html.gl-on .gl-pin-key:active { transform: scale(0.94); }
html.gl-on .gl-pin-key[disabled] { opacity: .5; pointer-events: none; }
html.gl-on .gl-pin-key--empty { background: transparent; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; pointer-events: none; cursor: default; }
html.gl-on .gl-pin-key-num { font: 400 32px -apple-system,'SF Pro Display','SF Pro Text','Inter',sans-serif; color: var(--ink); line-height: 1; }
html.gl-on .gl-pin-key-abc { font: 600 9px -apple-system,'SF Pro Text','Inter',sans-serif; letter-spacing: 0.16em; text-indent: 0.16em; color: var(--muted); }
html.gl-on .gl-pin-del { aspect-ratio: 1; background: transparent; border: 0; font: 400 16px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--muted); cursor: pointer; display: flex; align-items: center; justify-content: center; -webkit-tap-highlight-color: transparent; }
html.gl-on .gl-pin-del[disabled] { opacity: .4; pointer-events: none; }

html.gl-on .gl-pin-foot { position: relative; z-index: 1; margin: 20px auto 0; background: transparent; border: 0; font: 500 14px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--gold,#C9A557); cursor: pointer; }
html.gl-on .gl-pin-foot--ghost { color: transparent; pointer-events: none; }

html.gl-on .gl-pin-qr { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 20px; }
html.gl-on .gl-pin-qr-img { width: 180px; height: 180px; border-radius: 16px; background: #fff; padding: 8px; box-sizing: border-box; box-shadow: var(--pin-key-shadow); }
html.gl-on .gl-pin-qr-fb { display: flex; flex-direction: column; align-items: center; gap: 2px; }
html.gl-on .gl-pin-qr-fb-lbl { font: 500 11px -apple-system,'SF Pro Text','Inter',sans-serif; color: var(--muted); }
html.gl-on .gl-pin-qr-fb-val { font: 600 13px ui-monospace,Menlo,monospace; color: var(--ink); letter-spacing: 0.05em; word-break: break-all; max-width: 240px; text-align: center; }

/* Liquid-glass treatment for .modal--navy modals (My card, Payment info,
   Notifications) — overrides the hard navy surface when gl-on is active. */
html.gl-on .modal.modal--navy {
  background: var(--sheet) !important;
  color: var(--ink) !important;
  border: 1px solid var(--glass-border) !important;
  -webkit-backdrop-filter: blur(40px) saturate(1.5);
  backdrop-filter: blur(40px) saturate(1.5);
}
html.gl-on .modal.modal--navy .modal-title,
html.gl-on .modal.modal--navy .modal-close { color: var(--muted) !important; }
html.gl-on .modal.modal--navy .modal-header,
html.gl-on .modal.modal--navy .modal-footer { border-color: var(--glass-border) !important; }
html.gl-on .modal--navy .mycard-name { color: var(--ink); }
html.gl-on .modal--navy .mycard-eyebrow,
html.gl-on .modal--navy .mycard-subtitle,
html.gl-on .modal--navy .mycard-row-label,
html.gl-on .modal--navy .mycard-hint { color: var(--muted) !important; }
html.gl-on .modal--navy .mycard-row-value { color: var(--ink) !important; }
html.gl-on .modal--navy .mycard-row + .mycard-row,
html.gl-on .modal--navy .mycard-rule { border-color: var(--glass-border) !important; }
html.gl-on .modal--navy .btn-on-navy {
  background: var(--glass) !important;
  color: var(--ink) !important;
  border: 1px solid var(--glass-border) !important;
}

/* Remap navy tokens to glass inside .modal--navy so ALL children (paycard
   fields, toggles, borders, buttons) inherit the black liquid-glass look. */
html.gl-on .modal--navy {
  --on-navy: var(--ink);
  --on-navy-dim: var(--muted);
  --on-navy-border: var(--glass-border);
  --on-navy-bg: var(--glass);
  --on-navy-bg-2: var(--glass-2);
  --on-navy-bg-3: var(--glass-border);
  --accent: transparent;
}

/* ─── Notifications settings · glass skin ─────────────────────────── */
/* Eyebrows/labels en SF Pro (no monospace). */
html.gl-on .modal--navy .notif-events-title,
html.gl-on .modal--navy .notif-team-status-text,
html.gl-on .modal--navy .notif-team-test-btn {
  font-family: -apple-system,'SF Pro Text','Inter',sans-serif !important;
}
html.gl-on .modal--navy .notif-events-title { letter-spacing: 0.08em; }
/* Pill de estado del dispositivo: superficie glass, contenido centrado. */
html.gl-on .modal--navy .notif-status {
  justify-content: center;
  gap: 11px;
  padding: 14px 16px;
  margin: var(--sp-4) 0 var(--sp-3);
  background: var(--glass);
  border: 1px solid var(--glass-border);
  border-radius: 14px;
}
/* Lista de eventos: fila glass con chevron en vez de bullet dorado. */
html.gl-on .modal--navy .notif-events { display: flex; flex-direction: column; gap: 8px; }
html.gl-on .modal--navy .notif-event {
  padding: 13px 14px 13px 30px;
  background: var(--glass);
  border: 1px solid var(--glass-border);
  border-radius: 12px;
}
html.gl-on .modal--navy .notif-event::before {
  content: "›";
  left: 13px; top: 11px;
  width: auto; height: auto;
  background: transparent;
  color: var(--muted);
  font: 600 16px -apple-system,sans-serif;
  opacity: 1;
}
/* Filas de equipo: superficie glass agrupada, sin regla superior. */
html.gl-on .modal--navy .notif-team-list { gap: 8px; }
html.gl-on .modal--navy .notif-team-row {
  padding: 12px 14px;
  border-top: 0 !important;
  background: var(--glass);
  border: 1px solid var(--glass-border);
  border-radius: 12px;
}
html.gl-on .modal--navy .notif-team-test-btn { border-radius: 999px; }

/* Unify menu-opened modals: give every glass modal the same rise+fade as
   the panels/sheets (some modals opened with no animation). */
@keyframes glModalRise { 0% { opacity: 0; transform: translateY(26px); } 60% { opacity: 1; } 100% { opacity: 1; transform: translateY(0); } }
html.gl-on .modal-overlay .modal { animation: glModalRise 260ms cubic-bezier(0.2,0,0,1) both; }
@media (prefers-reduced-motion: reduce) { html.gl-on .modal-overlay .modal { animation: none; } }

/* Empty states inside glass modals: SF Pro (no serif), glass icon, muted body. */
html.gl-on .empty-rich { background: transparent !important; border-color: var(--glass-border) !important; }
html.gl-on .empty-rich-title { font-family: -apple-system,'SF Pro Text','Inter',sans-serif !important; color: var(--ink) !important; letter-spacing: -0.01em; }
html.gl-on .empty-rich-body { font-family: -apple-system,'SF Pro Text','Inter',sans-serif !important; color: var(--muted) !important; }
html.gl-on .empty-rich-icon { background: var(--glass) !important; border: 1px solid var(--glass-border) !important; color: var(--ink) !important; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }

/* Toast en glass dark: cápsula negra translúcida (sin tinte navy). */
html.gl-on[data-theme="dark"] .toast {
  background: rgba(22,22,26,0.70) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  color: #F0F2F5 !important;
  -webkit-backdrop-filter: blur(30px) saturate(1.4);
  backdrop-filter: blur(30px) saturate(1.4);
  box-shadow: 0 10px 34px rgba(0,0,0,0.45) !important;
}
html.gl-on[data-theme="dark"] .toast-message { color: #F0F2F5 !important; }

/* Backups y otros modales con estilos inline var(--surface/--border/--font-serif):
   remapeo esos tokens a glass dentro de modales para que sean congruentes. */
html.gl-on .modal-overlay, html.gl-on .dialog-overlay {
  --surface: var(--glass);
  --surf2: var(--glass-2);
  --border: var(--glass-border);
  --border-soft: var(--glass-border);
  --font-serif: -apple-system,'SF Pro Text','Inter',sans-serif;
}
html.gl-on .modal .btn-navy {
  background: var(--glass) !important;
  color: var(--ink) !important;
  border: 1px solid var(--glass-border) !important;
}
html.gl-on .modal .btn-navy.armed {
  background: var(--red) !important;
  border-color: var(--red) !important;
  color: #fff !important;
}

/* Evitar el flash de la barra navy al recargar: en glass el chrome nativo
   nunca se usa, así que se oculta desde el primer pintado (sin esperar al JS
   que agrega body.gl-*panel). */
html.gl-on #topNavyBand,
html.gl-on #projTabsWrap,
html.gl-on #stickyTitleBar { display: none !important; }

/* Menú: cascada de los ítems al desplegar un grupo. */
@keyframes navItemIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
html.gl-on .menu-group-body[data-open="true"] .gl-nav-item,
html.gl-on .menu-group-body[data-open="true"] .gl-nav-seg-row {
  animation: navItemIn .3s cubic-bezier(.34,1.2,.5,1) both;
}
html.gl-on .menu-group-body[data-open="true"] > *:nth-child(1) { animation-delay: .02s; }
html.gl-on .menu-group-body[data-open="true"] > *:nth-child(2) { animation-delay: .05s; }
html.gl-on .menu-group-body[data-open="true"] > *:nth-child(3) { animation-delay: .08s; }
html.gl-on .menu-group-body[data-open="true"] > *:nth-child(4) { animation-delay: .11s; }
html.gl-on .menu-group-body[data-open="true"] > *:nth-child(5) { animation-delay: .14s; }
@media (prefers-reduced-motion: reduce) {
  html.gl-on .menu-group-body[data-open="true"] .gl-nav-item,
  html.gl-on .menu-group-body[data-open="true"] .gl-nav-seg-row { animation: none; }
}

/* Todos los pills/chips en mayúscula (vence al #panelHost * text-transform:none). */
html.gl-on #panelHost .gl-pj-status,
html.gl-on #panelHost .status-pill,
html.gl-on #panelHost [class*="-pill"],
html.gl-on #panelHost [class*="-chip"],
html.gl-on #panelHost [class*="pill-"],
html.gl-on #panelHost [class*="chip-"] { text-transform: uppercase !important; letter-spacing: 0.04em; }

@keyframes contactReveal { 0% { opacity: 0; transform: translateY(-12px) scale(.97); } 60% { opacity: 1; } 100% { opacity: 1; transform: translateY(0) scale(1); } }

html.gl-on .hours-row.edited { border-left: none !important; }

/* Hours/global panels use plain .card — give them the glass surface in
   glass mode instead of the cream --surf default. */
html.gl-on #panelHost .card {
  background: var(--glass-2) !important;
  border: 1px solid var(--glass-border) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.5);
  backdrop-filter: blur(24px) saturate(1.5);
}

/* Light glass modals: same treatment as dark — the .field-group cell is the
   visible box, the input/select goes transparent so it doesn't render a
   separate cream pill over the warm sheet. */
html.gl-on[data-theme="light"] .modal-overlay .form .field-group:has(> .fld-input),
html.gl-on[data-theme="light"] .dialog-overlay .form .field-group:has(> .fld-input),
html.gl-on[data-theme="light"] .modal-overlay .form .field-group:has(> .fld-textarea),
html.gl-on[data-theme="light"] .dialog-overlay .form .field-group:has(> .fld-textarea) {
  background: rgba(255,255,255,0.42) !important;
  border: 1px solid rgba(16,24,40,0.12) !important;
  box-shadow: inset 0 1px 2px rgba(16,24,40,0.05) !important;
}
html.gl-on[data-theme="light"] .modal-overlay .fld-input,
html.gl-on[data-theme="light"] .dialog-overlay .fld-input,
html.gl-on[data-theme="light"] .modal-overlay .fld-textarea,
html.gl-on[data-theme="light"] .dialog-overlay .fld-textarea,
html.gl-on[data-theme="light"] .modal-overlay select.fld-input,
html.gl-on[data-theme="light"] .dialog-overlay select.fld-input {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

html.gl-on #panelHost .hours-row.clickable:hover { background: var(--glass) !important; }

/* Defined glass border on panel cards + stat cards to match the concept. */
html.gl-on #panelHost .card,
html.gl-on #panelHost .stat-card,
html.gl-on #panelHost .open-shifts {
  background: var(--glass) !important;
  border: 1px solid rgba(60,70,95,0.42) !important;
  border-radius: 18px !important;
  box-shadow: 0 1px 3px rgba(27,39,64,0.06) !important;
}
html.gl-on[data-theme="dark"] #panelHost .card,
html.gl-on[data-theme="dark"] #panelHost .stat-card,
html.gl-on[data-theme="dark"] #panelHost .open-shifts {
  border-color: rgba(255,255,255,0.22) !important;
}

/* Global panels (Hours, etc.) render plain .card/.stat-card without a
   .gl-scope wrapper, so glass tokens weren't defined and var(--glass-border)
   was empty (border collapsed to 0). Define the glass token set on the panel
   host so those cards resolve their borders/surfaces. */
html.gl-on #panelHost {
  --ink: #101828; --muted: rgba(16,24,40,0.55);
  --glass: rgba(255,255,255,0.18); --glass-2: rgba(255,255,255,0.12);
  --glass-border: rgba(60,70,95,0.20);
  --gold: #C9A557; --gold-deep: #8E6F2F;
}
html.gl-on[data-theme="dark"] #panelHost {
  --ink: #F0F2F5; --muted: rgba(240,242,245,0.62);
  --glass: rgba(255,255,255,0.07); --glass-2: rgba(255,255,255,0.06);
  --glass-border: rgba(255,255,255,0.14);
  --gold: #D9C08A; --gold-deep: #C9AD6E;
}

/* Cada entrada de horas como pill individual con borde y separación. */
html.gl-on #panelHost .card > .list { display: flex; flex-direction: column; gap: 10px; }
html.gl-on #panelHost .hours-row {
  border: 1px solid rgba(60,70,95,0.42) !important;
  border-radius: 16px !important;
  padding: 14px 16px !important;
  background: var(--glass) !important;
  box-shadow: 0 1px 3px rgba(27,39,64,0.05) !important;
}
html.gl-on[data-theme="dark"] #panelHost .hours-row { border-color: rgba(255,255,255,0.20) !important; }
html.gl-on #panelHost .hours-row:last-child { border-bottom: 1px solid rgba(60,70,95,0.42) !important; }


/* Line-item editor (estimates/invoices/change orders): sin crema */
html.gl-on .li-editor { background: transparent !important; }
html.gl-on .li-card { background: #FFFFFF !important; border-color: var(--glass-border) !important; }
html.gl-on .li-card--expanded { background: #FFFFFF !important; }
html.gl-on .li-subtotal { background: transparent !important; }
html.gl-on .li-cell, html.gl-on .li-desc-cell, html.gl-on .li-numbers { background: transparent !important; }
html.gl-on .li-card .fld-input { background: var(--glass, rgba(255,255,255,0.04)) !important; border: 1px solid var(--glass-border) !important; border-radius: 8px !important; font-family: -apple-system,'SF Pro Text','Inter',sans-serif !important; color: var(--ink) !important; transition: border-color 140ms ease !important; }
html.gl-on .li-card .fld-input:focus { border-color: var(--gold) !important; }


/* Line-item TOTAL cell: sin crema (mantiene texto dorado) */
html.gl-on .li-total, html.gl-on .li-cell--total, html.gl-on .li-cell--total .li-total,
html.gl-on .li-numbers .li-total { background: #FFFFFF !important; border: 1px solid var(--glass-border) !important; }


/* Modales/hojas glass portaladas a <body>: forzar Inter (no Fraunces) */
html.gl-on [role="dialog"], html.gl-on [role="dialog"] *,
html.gl-on .modal-overlay, html.gl-on .modal-overlay *,
html.gl-on .dialog-overlay, html.gl-on .dialog-overlay *,
html.gl-on .gl-est-sheet, html.gl-on .gl-est-sheet * {
  font-family: -apple-system,'SF Pro Text','Inter',sans-serif !important;
}


/* Placeholders y color de texto en modales glass: Inter, sin itálica/serif */
html.gl-on [role="dialog"] input, html.gl-on [role="dialog"] textarea,
html.gl-on .gl-est-sheet input, html.gl-on .gl-est-sheet textarea,
html.gl-on .li-card .fld-input {
  color: var(--ink) !important;
  font-style: normal !important;
}
html.gl-on [role="dialog"] input::placeholder, html.gl-on [role="dialog"] textarea::placeholder,
html.gl-on .gl-est-sheet input::placeholder, html.gl-on .gl-est-sheet textarea::placeholder,
html.gl-on .li-card .fld-input::placeholder {
  font-family: -apple-system,'SF Pro Text','Inter',sans-serif !important;
  font-style: normal !important;
  color: var(--muted) !important;
  opacity: 1 !important;
}
