/* Binlex — tokens de marca y tema compartidos por login y chat (OP#25841).
   OP#26312: lenguaje visual Airia (vidrio, degradés suaves, radios 16, píldoras) con la paleta BINLEX.
   data-theme lo fija el script inline de cada página antes de pintar; claro es el modo principal. */
/* Tipografía de Airia (la misma de Bintia, OP#26356): Figtree variable, self-hosted, OFL (fonts/OFL-figtree.txt). */
@font-face { font-family:'Figtree'; font-style:normal; font-display:swap; font-weight:300 900; src:url('/fonts/figtree-latin-ext-wght-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Figtree'; font-style:normal; font-display:swap; font-weight:300 900; src:url('/fonts/figtree-latin-wght-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
/* Paleta Binlex: Midnight Navy #071525 · Deep Blue #123B72 · Cobalt #2864D7 · blanco · platino #C9D1DC. Sin violeta.
   Contraste AA verificado por test (test/ui-airia.test.ts): texto, --muted y --faint ≥ 4,5:1 sobre fondo y superficie. */
:root, [data-theme="dark"] {
  --bg:#071525; --surface:#0b1d33; --surface-2:#10253f; --surface-3:#163152; --surface-soft:var(--surface-2);
  --text:#f2f5fa; --muted:#aab5c6; --faint:#8a9cb8;
  --border:rgba(201,209,220,.09); --border-strong:rgba(201,209,220,.16);
  --brand:#123B72; --primary:#2864D7; --accent:#5B8DEF; --legal:#176EEA; --platinum:#C9D1DC;
  --bubble-user:#123B72; --iso:url('/brand/binlex-iso-white.svg'); /* D3: logo blanco en oscuro */
  --on-primary:#ffffff;
  --accent-soft:rgba(91,141,239,.10); --accent-border:rgba(91,141,239,.35);
  --code-bg:rgba(201,209,220,.08);
  --err-bg:rgba(255,60,60,.1); --err-border:rgba(255,80,60,.3); --err-text:#ffb3a7;
  --ok-bg:rgba(52,168,83,.10); --ok-border:rgba(52,168,83,.35); --ok-text:#8fdca8;
  --overlay:rgba(3,10,20,.6); --glow:#0f2a4f;
  --warn:#f5b544; --danger:#ff7b72;
  --glass:rgba(12,29,51,.62); --glass-strong:rgba(12,29,51,.86); --tint:rgba(91,141,239,.10);
  --bg-gradient:radial-gradient(1100px 560px at 8% -12%, rgba(40,100,215,.22), transparent 62%), radial-gradient(900px 520px at 100% 0%, rgba(18,59,114,.45), transparent 60%), linear-gradient(180deg, #081a2e, #071525);
  --elev-1:0 1px 2px rgba(0,0,0,.25), 0 6px 20px rgba(0,0,0,.22); --elev-2:0 18px 48px rgba(0,0,0,.42);
  --shadow:var(--elev-2);
  color-scheme: dark;
}
[data-theme="light"] {
  --bg:#f5f7fb; --surface:#ffffff; --surface-2:#f0f3f8; --surface-3:#e6ebf3; --surface-soft:var(--surface-2);
  --text:#071525; --muted:#45526a; --faint:#5a6880;
  --border:rgba(7,21,37,.07); --border-strong:rgba(7,21,37,.12);
  --brand:#123B72; --primary:#2864D7; --accent:#2864D7; --legal:#176EEA; --platinum:#C9D1DC;
  --bubble-user:#e6eefc; --iso:url('/brand/binlex-iso-v2.svg');
  --on-primary:#ffffff;
  --accent-soft:rgba(40,100,215,.07); --accent-border:rgba(40,100,215,.28);
  --code-bg:rgba(7,21,37,.06);
  --err-bg:#fdecea; --err-border:#f3b8b0; --err-text:#9b1c10;
  --ok-bg:#e7f6ef; --ok-border:#a8dcc3; --ok-text:#14593b;
  --overlay:rgba(7,21,37,.28); --glow:#e4ecfa;
  --warn:#8a5300; --danger:#b42318;
  --glass:rgba(255,255,255,.72); --glass-strong:rgba(255,255,255,.9); --tint:rgba(40,100,215,.07);
  --bg-gradient:radial-gradient(1100px 560px at 8% -12%, rgba(40,100,215,.11), transparent 62%), radial-gradient(900px 520px at 100% 0%, rgba(201,209,220,.55), transparent 60%), linear-gradient(180deg, #f8faff, #f3f6fb);
  --elev-1:0 1px 2px rgba(7,21,37,.04), 0 4px 16px rgba(7,21,37,.05); --elev-2:0 16px 44px rgba(7,21,37,.12);
  --shadow:var(--elev-2);
  color-scheme: light;
}
:root {
  --paper:#ffffff; --paper-ink:#071525;
  --radius-control:10px; --radius-surface:16px; --radius-pill:999px;
  --radius-s:10px; --radius-m:14px; --radius-l:16px; --nav-w:260px; --panel-w:380px;
  --font-sans:'Figtree', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;
  --c-venc:var(--warn); --c-aud:var(--accent); --c-app:var(--ok-text); --c-ms:#8496b3; --c-go:#34a853;
  /* Alias de nombres usados por módulos viejos (antes resolvían a nada). */
  --surface1:var(--surface); --surface2:var(--surface-2); --text-muted:var(--muted);
}
body { font-family:var(--font-sans); letter-spacing:0; }
button, input, select, textarea { font-family: inherit; }
h1, h2, h3 { font-weight:600; letter-spacing:-.01em; }
.paper { font-family: Georgia, 'Times New Roman', serif; color: var(--paper-ink); background: var(--paper); }
/* Wordmark en UI: isotipo + texto vivo (accesible y nítido a cualquier tamaño). El lockup PNG queda para login y piezas grandes. */
.brand { display:flex; align-items:center; gap:10px; }
.brand .iso { width:28px; height:28px; background:var(--iso) center/contain no-repeat; flex-shrink:0; }
.brand .wm { display:flex; flex-direction:column; line-height:1.05; min-width:0; }
.brand .wm b { font-weight:800; letter-spacing:.015em; font-size:15px; white-space:nowrap; }
.brand .wm small { font-weight:600; font-size:8px; letter-spacing:.24em; color:var(--muted); margin-top:3px; white-space:nowrap; }
.brand .legal { color:var(--legal); }
.eyebrow { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.24em; color:var(--muted); }

/* ── Cowork (P2): secciones, tareas en vivo y propuestas ── */
.sections { display:flex; flex-direction:column; gap:2px; margin:10px 0; }
.sections .sec { text-align:left; background:none; border:0; color:var(--muted); padding:8px 10px; border-radius:8px; cursor:pointer; font:inherit; font-size:14px; }
.sections .sec:hover { color:var(--text); }
.sections .sec.active { background:var(--surface-soft); color:var(--text); font-weight:600; }
.filters { display:flex; flex-wrap:wrap; gap:4px; margin:4px 0 8px; }
.filters .filter { background:none; border:1px solid var(--border-strong); color:var(--muted); border-radius:999px; padding:2px 8px; font-size:12px; cursor:pointer; }
.filters .filter.active { border-color:var(--accent); color:var(--text); }
.sess .info { display:flex; flex-direction:column; gap:3px; min-width:0; flex:1; }
.sess .info small { color:var(--faint); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.status { display:inline-block; width:max-content; font-size:11px; padding:1px 8px; border-radius:999px; border:1px solid currentColor; white-space:nowrap; }
.st-running { color:var(--accent); }
.st-wait, .act-pending { color:var(--warn); }
.st-done, .act-rejected { color:var(--muted); }
.st-error, .act-failed { color:var(--danger); }
.act-approved, .act-executed { color:var(--ok-text); }
.soon { padding:16px 10px; color:var(--muted); font-size:13px; }
.soon b { display:block; color:var(--text); margin-bottom:4px; }
.task-head { display:flex; align-items:center; gap:10px; padding:4px 0 10px; border-bottom:1px solid var(--border); margin-bottom:10px; flex-shrink:0; }
.task-head b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.timeline { align-self:stretch; border-left:2px solid var(--border-strong); padding:4px 0 4px 12px; margin:8px 0; color:var(--muted); font-size:13px; }
.timeline .now { font-weight:600; color:var(--text); }
.timeline.live .now::after { content:''; display:inline-block; width:8px; height:8px; margin-left:8px; border-radius:50%; background:var(--accent); animation:bl-pulse 1.2s infinite; }
.timeline ol { margin:4px 0 0; padding-left:18px; }
@keyframes bl-pulse { 0%,100% { opacity:.25 } 50% { opacity:1 } }
@media (prefers-reduced-motion: reduce) { .timeline.live .now::after { animation:none; } }
.actions-box { display:flex; flex-direction:column; gap:8px; margin:10px 0; }
.action-card { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:12px; border:1px solid var(--border-strong); border-radius:12px; background:var(--surface); }
.action-card.pending { border-color:var(--warn); }
.action-card .summary { flex:1 1 100%; color:var(--text); overflow-wrap:anywhere; }
.action-card .status { margin-right:auto; }

/* ── Causas (P3): lista, alta, detalle con pestañas ── */
.causa-view { flex:1; overflow:auto; padding:8px 4px 24px; display:flex; flex-direction:column; gap:12px; min-height:0; }
.causa-view h2 { font-size:20px; line-height:1.3; overflow-wrap:anywhere; }
.causa-sub { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--faint); margin-top:8px; }
.causa-meta { color:var(--muted); font-size:13px; margin:0; }
.causa-bar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.causa-new { width:100%; margin-bottom:6px; }
.causa-form { display:grid; gap:10px; max-width:520px; }
.causa-form label { display:flex; flex-direction:column; gap:4px; color:var(--muted); font-size:13px; }
.causa-form .send { justify-self:start; }
.causa-form input, .foja-q, .ficha-edit { background:var(--surface-soft); color:var(--text); border:1px solid var(--border-strong); border-radius:8px; padding:8px 10px; font:inherit; font-size:14px; }
.causa-form input:focus, .foja-q:focus, .ficha-edit:focus { outline:2px solid var(--accent-border); outline-offset:1px; }
.ficha-edit { flex:none; min-height:420px; max-height:none; width:100%; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:13px; resize:vertical; }
.tabs { display:flex; gap:4px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.tabs .tab { background:none; border:0; border-bottom:2px solid transparent; color:var(--muted); padding:8px 12px; cursor:pointer; font:inherit; font-size:14px; }
.tabs .tab:hover { color:var(--text); }
.tabs .tab.active { color:var(--text); border-bottom-color:var(--accent); font-weight:600; }
.tab-body { display:flex; flex-direction:column; gap:10px; }
.tab-body > .send { align-self:flex-start; }
.ficha { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:14px 18px; font-size:15px; line-height:1.6; overflow-wrap:anywhere; color:var(--text); }
.ficha h2, .ficha h3 { font-size:16px; margin:12px 0 6px; }
.ficha h2:first-child, .ficha h3:first-child { margin-top:0; }
.ficha p { margin:6px 0; }
.ficha ul, .ficha ol { margin:6px 0 6px 20px; }
.ficha blockquote { border-left:3px solid var(--accent); background:var(--accent-soft); padding:6px 12px; margin:6px 0; border-radius:0 6px 6px 0; }
.ficha code { background:var(--code-bg); padding:1px 5px; border-radius:4px; font-size:13px; }
.upload { align-self:flex-start; border:1px dashed var(--border-strong); color:var(--muted); border-radius:8px; padding:8px 12px; font-size:13px; cursor:pointer; }
.upload:hover { color:var(--text); border-color:var(--accent); }
.volumes { list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.vol { padding:8px 10px; border:1px solid var(--border); border-radius:8px; font-size:14px; overflow-wrap:anywhere; }
.vol-processing { border-color:var(--accent-border); }
.vol-failed { border-color:var(--err-border); }
.foja-row .foja-q { flex:1; min-width:0; }
.foja-results { display:flex; flex-direction:column; gap:8px; }
.foja { border-left:3px solid var(--accent); background:var(--accent-soft); padding:8px 12px; border-radius:6px; font-size:14px; }
.foja b { color:var(--accent); font-size:13px; }
.foja p { white-space:pre-wrap; margin:6px 0 0; overflow-wrap:anywhere; }
.error-text { color:var(--danger); font-size:13px; }
.error-text:empty { display:none; }
@media (max-width: 760px) {
  .causa-view { padding:4px 0 16px; }
  .tabs { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
  .tabs .tab { white-space:nowrap; flex-shrink:0; }
  .foja-row { flex-wrap:wrap; }
}
.upload.busy { opacity:.55; cursor:progress; pointer-events:none; }

/* ── Conectores (P4): campanita, bandeja, Conexiones, tarjeta de evento y toast ── */
.bell { position:relative; background:none; border:1px solid var(--border-strong); color:var(--muted); border-radius:8px; padding:5px 9px; font-size:13px; line-height:1; cursor:pointer; }
.bell:hover, .bell[aria-expanded="true"] { color:var(--text); border-color:var(--accent-border); }
.bell-count { position:absolute; top:-7px; right:-7px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--danger); color:#fff; font-size:11px; font-weight:700; line-height:18px; text-align:center; }
.bell-panel { position:fixed; top:58px; right:16px; width:min(380px, calc(100vw - 24px)); max-height:70vh; overflow-y:auto; background:var(--surface); border:1px solid var(--border-strong); border-radius:14px; box-shadow:0 16px 48px rgba(0,0,0,.28); z-index:30; padding:10px; }
.bell-head { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:2px 4px 10px; border-bottom:1px solid var(--border); font-size:14px; }
.bell-list { display:flex; flex-direction:column; gap:2px; padding-top:6px; }
.bell-list .empty { padding:10px 6px; }
.bell-item { position:relative; display:flex; flex-direction:column; gap:3px; text-align:left; background:none; border:0; border-radius:8px; padding:9px 10px 9px 24px; color:var(--muted); font:inherit; font-size:13px; line-height:1.4; cursor:pointer; overflow-wrap:anywhere; }
.bell-item:hover, .bell-item:focus-visible { background:var(--surface-soft); color:var(--text); }
.bell-item.unread { color:var(--text); font-weight:600; }
.bell-item.unread::before { content:''; position:absolute; left:9px; top:15px; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.bell-item small { color:var(--faint); font-weight:400; font-size:12px; }
.bell-item .bell-body { font-weight:400; color:var(--muted); }
.conn-view { flex:1; overflow:auto; padding:8px 4px 24px; display:flex; flex-direction:column; gap:12px; min-height:0; }
.conn-view h2 { font-size:20px; line-height:1.3; }
.conn-list { display:grid; gap:12px; max-width:640px; }
.conn-card { display:flex; flex-wrap:wrap; align-items:center; gap:12px 16px; padding:16px 18px; border:1px solid var(--border-strong); border-radius:14px; background:var(--surface); }
.conn-card.soon-card { border-style:dashed; }
.conn-info { flex:1 1 240px; display:flex; flex-direction:column; gap:3px; min-width:0; }
.conn-info b { font-size:15px; color:var(--text); }
.conn-info small { color:var(--faint); font-size:12px; }
.conn-state { margin-top:4px; font-size:13px; color:var(--muted); overflow-wrap:anywhere; }
.conn-state.ok { color:var(--ok-text); }
.conn-state.warn { color:var(--warn); }
.conn-actions { display:flex; flex-wrap:wrap; gap:8px; }
.event-card { align-items:stretch; flex-direction:column; flex-wrap:nowrap; gap:8px; }
.event-head { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px; color:var(--muted); }
.event-card .status { margin-right:0; }
.event-title { font-size:15px; color:var(--text); overflow-wrap:anywhere; }
.event-meta { display:grid; grid-template-columns:max-content 1fr; gap:4px 14px; margin:0; font-size:13px; }
.event-meta dt { color:var(--faint); }
.event-meta dd { margin:0; color:var(--text); overflow-wrap:anywhere; }
.event-meta dd:first-of-type::first-letter { text-transform:uppercase; }
.event-desc { margin:0; font-size:13px; color:var(--muted); white-space:pre-wrap; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.event-actions { display:flex; gap:8px; }
.toast { position:fixed; left:50%; bottom:24px; transform:translateX(-50%); max-width:calc(100vw - 32px); background:var(--surface); color:var(--ok-text); border:1px solid var(--ok-border); border-radius:12px; padding:10px 16px; font-size:14px; box-shadow:0 12px 32px rgba(0,0,0,.25); z-index:40; }
.toast.err { color:var(--err-text); border-color:var(--err-border); }
@media (max-width: 760px) {
  .bell-panel { top:56px; right:12px; }
  .conn-view { padding:4px 0 16px; }
}

/* ── UX Cowork (T7): shell de 3 columnas, barra lateral, menús y búsqueda ── */
body { overflow: hidden; }
.app { flex:1; min-height:0; display:grid; grid-template-columns: var(--nav-w) minmax(0, 1fr); }
.app.with-panel { grid-template-columns: var(--nav-w) minmax(0, 1fr) var(--panel-w); }
.app.nav-collapsed { grid-template-columns: 0 minmax(0, 1fr); }
.app.nav-collapsed.with-panel { grid-template-columns: 0 minmax(0, 1fr) var(--panel-w); }
.app.nav-collapsed .nav { visibility:hidden; }
.faint { color:var(--faint); }
.nav { background:var(--surface); border-right:1px solid var(--border); display:flex; flex-direction:column; min-height:0; min-width:0; position:relative; }
.app.nav-collapsed .nav { overflow:hidden; }
.nav .brand { min-width:0; }
.nav .brand .wm b { font-size:14px; }
.nav .brand .wm small { font-size:6.6px; }
.nav-top { padding:14px 10px 8px 14px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.icon-btn { width:30px; height:30px; flex-shrink:0; border-radius:8px; border:1px solid transparent; background:none; display:inline-grid; place-items:center; color:var(--muted); cursor:pointer; padding:0; }
.icon-btn:hover, .icon-btn[aria-expanded="true"] { background:var(--surface-2); color:var(--text); }
.icon-btn.xs { width:22px; height:22px; border-radius:6px; }
.icon-btn svg { pointer-events:none; width:17px; height:17px; }
.icon-btn.xs svg { width:13px; height:13px; }
:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
.new-task { margin:6px 12px 10px; display:flex; align-items:center; gap:8px; padding:9px 12px; border-radius:10px; border:1px solid var(--border-strong); background:var(--surface-2); color:var(--text); font-weight:600; font-size:14px; cursor:pointer; }
.new-task:hover { border-color:var(--accent-border); }
.nav-sec { padding:0 8px; display:flex; flex-direction:column; gap:1px; margin:0; }
.nav-item { display:flex; align-items:center; gap:10px; padding:7px 10px; border-radius:8px; border:0; background:none; color:var(--muted); text-align:left; width:100%; font-size:14px; cursor:pointer; }
.nav-item:hover { background:var(--surface-2); color:var(--text); }
.nav-item.on { background:var(--surface-3); color:var(--text); font-weight:600; }
.nav-item svg { width:16px; height:16px; flex-shrink:0; opacity:.85; }
.nav-item .chev { width:12px; height:12px; margin-left:auto; transition:transform .15s; }
.nav-item[aria-expanded="true"] .chev { transform:rotate(90deg); }
.nav-item .count, .menu-pop .count { margin-left:auto; font-size:11px; color:var(--faint); font-weight:400; }
.count.kbd { font-family:inherit; border:1px solid var(--border-strong); border-radius:5px; padding:0 5px; }
.count.warn { color:var(--warn); font-weight:600; }
.ws-sub { padding-left:16px; display:flex; flex-direction:column; gap:1px; }
.ws-sub .nav-item { font-size:13px; padding:6px 10px; }
.side-scroll { flex:1; overflow:auto; min-height:0; padding-bottom:8px; }
.nav-label { padding:16px 18px 6px; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--faint); }
.row-l { display:flex; align-items:center; justify-content:space-between; padding-right:10px; }
.projects, .recents { padding:0 8px; display:flex; flex-direction:column; gap:1px; }
.proj { display:flex; align-items:center; gap:6px; padding:6px 8px; border-radius:8px; color:var(--muted); font-size:13px; cursor:pointer; border:1px dashed transparent; position:relative; }
.proj:hover { background:var(--surface-2); color:var(--text); }
.proj .t { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.proj svg { width:14px; height:14px; flex-shrink:0; }
.proj .chev { width:12px; height:12px; color:var(--faint); transition:transform .15s; }
.proj.open .chev { transform:rotate(90deg); }
.proj .pf { color:var(--accent); }
.proj .linked { color:var(--faint); width:13px; height:13px; }
/* Nombre + causa del proyecto en la fila de la barra: la carátula (con link) o "Sin causa". */
.proj .p-info { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; line-height:1.3; }
.p-causa { display:inline-flex; align-items:center; gap:4px; font-size:11px; color:var(--accent); text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.p-causa svg { width:11px; height:11px; }
.p-causa.none { color:var(--faint); cursor:default; }
.pv-meta a { color:var(--accent); }
.proj .count { font-size:11px; color:var(--faint); }
.proj.drop { border-color:var(--accent); background:var(--accent-soft); color:var(--text); }
.proj-tasks { padding-left:22px; display:flex; flex-direction:column; gap:1px; }
.proj-tasks .empty, .proj-empty { padding:4px 10px; font-size:12px; }

.rec { position:relative; display:flex; gap:10px; align-items:flex-start; padding:7px 10px; border-radius:8px; color:var(--muted); cursor:pointer; }
.rec:hover { background:var(--surface-2); color:var(--text); }
.rec.active { background:var(--surface-3); color:var(--text); }
.rec .col { min-width:0; flex:1; display:flex; flex-direction:column; }
.rec .t { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:13px; }
.rec small { display:block; font-size:11.5px; color:var(--faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rec.sm { padding:5px 8px; }
.rec .pin { width:13px; height:13px; color:var(--faint); margin-top:3px; flex-shrink:0; }
.rec .more { display:none; position:absolute; right:6px; top:5px; background:var(--surface-3); }
.rec:hover .more, .rec:focus-within .more, .rec .more[aria-expanded="true"] { display:inline-grid; }
.rec.dragging { opacity:.55; outline:1px dashed var(--accent-border); outline-offset:-1px; }
.rec .rename { width:100%; background:var(--surface-2); color:var(--text); border:1px solid var(--accent-border); border-radius:6px; padding:2px 6px; font-size:13px; outline:none; }
.rec .tags { display:flex; gap:4px; flex-wrap:wrap; margin-top:3px; }
.tag { font-size:10.5px; color:var(--muted); border:1px solid var(--border-strong); border-radius:999px; padding:0 6px; }
.dot { width:8px; height:8px; border-radius:50%; margin-top:6px; flex-shrink:0; background:var(--faint); }
.rec.sm .dot { margin-top:5px; }
.dot.run { background:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); animation:bl-pulse 1.4s infinite; }
.dot.wait { background:var(--warn); } .dot.ok { background:var(--ok-text); } .dot.err { background:var(--danger); }
@media (prefers-reduced-motion: reduce) { .dot.run { animation:none; } }
.nav-item.archived { margin:6px 8px 0; width:calc(100% - 16px); font-size:12.5px; color:var(--faint); }
.nav-item.archived svg { width:14px; height:14px; }
.filters.menu-pop { position:absolute; left:12px; right:12px; z-index:35; margin:0; flex-direction:column; align-items:stretch; }
.filters.menu-pop:not(.hidden) { display:flex; }
.filters .filter { border:0; border-radius:8px; text-align:left; padding:7px 9px; font-size:13px; background:none; color:var(--text); }
.filters .filter:hover { background:var(--surface-2); }
.filters .filter.active { color:var(--accent); font-weight:600; border:0; }
.nav-foot { border:0; border-top:1px solid var(--border); padding:10px 12px; display:flex; align-items:center; gap:10px; cursor:pointer; background:none; color:var(--text); text-align:left; width:100%; }
.nav-foot:hover, .nav-foot[aria-expanded="true"] { background:var(--surface-2); }
.avatar { width:30px; height:30px; border-radius:50%; background:var(--brand); color:#fff; display:grid; place-items:center; font-weight:700; font-size:12px; flex-shrink:0; }
.nav-foot .who { min-width:0; flex:1; display:flex; flex-direction:column; }
.nav-foot .who b { font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nav-foot .who small { color:var(--faint); font-size:11.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.menu-pop { background:var(--surface); border:1px solid var(--border-strong); border-radius:12px; box-shadow:var(--shadow); padding:6px; min-width:220px; }
.menu-pop button { display:flex; align-items:center; gap:10px; width:100%; border:0; background:none; padding:7px 9px; border-radius:8px; text-align:left; font-size:13px; color:var(--text); cursor:pointer; }
.menu-pop button:hover, .menu-pop button:focus-visible, .menu-pop button.hl { background:var(--surface-2); outline:none; }
.menu-pop button svg { width:15px; height:15px; color:var(--muted); flex-shrink:0; }
.menu-pop button.danger, .menu-pop button.danger svg { color:var(--danger); }
.menu-pop button.on { color:var(--accent); font-weight:600; }
.menu-pop hr { border:0; border-top:1px solid var(--border); margin:5px 4px; }
.menu-pop .lbl { font-size:11px; color:var(--faint); padding:6px 9px 4px; text-transform:uppercase; letter-spacing:.07em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.menu-pop small { display:block; color:var(--faint); font-size:11.5px; font-weight:400; }
.menu-pop .empty { padding:6px 9px; }
.menu-pop .tag-edit { display:flex; flex-direction:column; gap:6px; padding:4px; }
.menu-pop .tag-edit input { background:var(--surface-2); color:var(--text); border:1px solid var(--border-strong); border-radius:8px; padding:6px 8px; font-size:13px; }
.task-menu, .pick-menu { position:fixed; z-index:45; max-height:min(420px, 70vh); overflow:auto; }
.user-menu { position:absolute; left:12px; width:272px; bottom:58px; z-index:40; }
.menu-pop button > span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.menu-pop .count { white-space:nowrap; }
.scrim { display:none; position:fixed; inset:0; background:var(--overlay); z-index:24; }
.overlay.search-ov { align-items:flex-start; padding-top:12vh; z-index:50; }
.search-box input::-webkit-search-cancel-button { display:none; }
.search-box { width:min(620px, 100%); background:var(--surface); border:1px solid var(--border-strong); border-radius:16px; box-shadow:var(--shadow); overflow:hidden; }
.search-box .in { display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid var(--border); color:var(--muted); }
.search-box input { flex:1; min-width:0; border:0; background:none; color:var(--text); font-size:15px; outline:0; }
.search-box kbd, .search-box .ft-bar { font-family:inherit; font-size:11.5px; color:var(--faint); }
.search-box .in kbd { border:1px solid var(--border-strong); border-radius:6px; padding:1px 6px; }
.search-box .res { padding:6px; max-height:min(420px, 60vh); overflow:auto; }
.search-box .grp { font-size:11px; color:var(--faint); text-transform:uppercase; letter-spacing:.07em; padding:8px 10px 4px; }
.search-box .it { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:9px; font-size:13.5px; cursor:pointer; color:var(--text); }
.search-box .it .tx { min-width:0; flex:1; display:flex; flex-direction:column; }
.search-box .it .tx span, .search-box .it .tx small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.search-box .it .tx small { color:var(--faint); font-size:12px; }
.search-box .it .meta { color:var(--faint); font-size:12px; white-space:nowrap; }
.search-box .it.hl { background:var(--surface-2); }
.search-box .it svg { width:15px; height:15px; color:var(--muted); flex-shrink:0; }
.search-box .it.archived { color:var(--muted); }
.search-box mark { background:var(--accent-soft); color:var(--accent); border-radius:3px; padding:0 1px; }
.search-box .ft-bar { display:flex; gap:14px; padding:8px 14px; border-top:1px solid var(--border); }
.search-box .ft-bar .sp { flex:1; }
.search-box .hint { padding:14px 12px; color:var(--faint); font-size:13px; }
/* main */
.main { display:flex; flex-direction:column; min-width:0; min-height:0; overflow:hidden; position:relative; }
/* OP#25872: zona de arrastrar y soltar */
.drop-overlay { position:absolute; inset:12px; z-index:40; display:flex; align-items:center; justify-content:center; text-align:center; padding:24px;
  border:2px dashed var(--accent); border-radius:16px; background:color-mix(in srgb, var(--bg) 88%, transparent); color:var(--text); font-weight:600; pointer-events:none; }
.drop-overlay.hidden { display:none; }
.topbar { height:52px; display:flex; align-items:center; gap:10px; padding:0 18px; border-bottom:1px solid var(--border); flex-shrink:0; }
.topbar .crumb { color:var(--faint); font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.topbar .crumb b { color:var(--text); font-weight:600; }
.topbar .sp { flex:1; }
#toggle-side { display:none; }
.app.nav-collapsed #toggle-side { display:inline-grid; }
.bell { border:1px solid transparent; padding:0; }
.bell .bell-count { top:-3px; right:-3px; }
.panel { background:var(--surface); border-left:1px solid var(--border); min-height:0; overflow:auto; }
.scroll { flex:1; overflow:auto; min-height:0; }
.task-head { display:none; }
.chat { width:100%; max-width:820px; margin:0 auto; padding:20px 24px 12px; }
.causa-view, .conn-view { width:100%; max-width:900px; margin:0 auto; padding:16px 24px 24px; }
.cal-list { display:flex; flex-direction:column; gap:14px; max-width:640px; }
.cal-day h3 { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--faint); margin-bottom:6px; }
.cal-item { display:flex; gap:12px; align-items:baseline; padding:9px 12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); margin-bottom:6px; font-size:13.5px; }
.cal-item .when { color:var(--muted); font-size:12px; min-width:64px; }
.cal-item .what { flex:1; min-width:0; overflow-wrap:anywhere; }
.cal-item .kind { font-size:11px; color:var(--faint); }
.dock { width:100%; max-width:820px; margin:0 auto; padding:0 24px 16px; flex-shrink:0; }
.banner { flex-shrink:0; }

/* ── UX Cowork (T7): composer único (Inicio centrado / acoplado en la tarea) ── */
.home { max-width:780px; margin:0 auto; padding:8vh 24px 80px; display:flex; flex-direction:column; gap:26px; }
.home-notes { display:flex; flex-direction:column; gap:8px; }
.home-notes:empty { display:none; }
.home-notes .msg { max-width:100%; align-self:stretch; text-align:center; }
.composer { position:relative; border:1px solid var(--border-strong); background:var(--surface); border-radius:18px; padding:12px 12px 10px; box-shadow:var(--shadow); }
.composer:focus-within { border-color:var(--accent-border); }
.composer textarea { display:block; width:100%; border:0; background:none; color:var(--text); font-size:15px; line-height:1.5; resize:none; outline:0; min-height:48px; max-height:220px; padding:4px 4px 8px; }
.attached { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.attached:empty { display:none; }
.file-chip { display:inline-flex; align-items:center; gap:8px; padding:4px 6px 4px 5px; border-radius:10px; background:var(--surface-2); border:1px solid var(--border); font-size:12.5px; color:var(--text); max-width:100%; }
.file-chip .nm { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:220px; }
.file-chip small { color:var(--faint); }
.file-chip.sent { opacity:.75; }
.file-chip button { width:20px; height:20px; border:0; border-radius:6px; background:none; color:var(--faint); cursor:pointer; display:grid; place-items:center; font-size:12px; }
.file-chip button:hover { background:var(--surface-3); color:var(--text); }
.comp-row { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.tool-btn, .pill { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 10px; border-radius:9px; border:1px solid var(--border-strong); background:none; color:var(--muted); font-size:13px; cursor:pointer; white-space:nowrap; max-width:220px; }
.pill { border-color:var(--border); background:var(--surface-2); }
.pill span { overflow:hidden; text-overflow:ellipsis; }
.pill.set { color:var(--text); border-color:var(--accent-border); }
.tool-btn:hover, .pill:hover, .tool-btn[aria-expanded="true"], .pill[aria-expanded="true"] { color:var(--text); background:var(--surface-3); }
.tool-btn svg, .pill svg { width:15px; height:15px; flex-shrink:0; }
.level-box select { border:0; background:none; padding:0; color:inherit; font-size:13px; cursor:pointer; max-width:150px; }
.level-box select:focus { outline:none; }
.level-box:focus-within { outline:2px solid var(--accent); outline-offset:1px; } /* el select no muestra foco propio */
#close-side { display:none; }
.dock .new-only { display:none; }
#send { margin-left:auto; width:34px; height:34px; padding:0; border-radius:10px; display:grid; place-items:center; }
#send svg { width:16px; height:16px; }

/* ── UX Cowork (T8): Inicio, composer y menú Adjuntar ── */
.hello { text-align:center; }
.hello .iso-big { display:block; width:44px; height:44px; margin:0 auto 14px; background:var(--iso) center/contain no-repeat; }
.hello .eyebrow { color:var(--accent); margin-bottom:10px; letter-spacing:.26em; }
.hello h1 { font-size:30px; font-weight:750; letter-spacing:-.025em; line-height:1.2; text-wrap:balance; }
.hello .pos { font-size:15px; color:var(--text); font-weight:500; margin-top:10px; }
.hello p { color:var(--muted); margin-top:6px; font-size:14px; }
.home .composer textarea { min-height:64px; }
.composer.dragover { border-color:var(--accent); background:var(--accent-soft); }
.composer .drop-hint { display:none; position:absolute; inset:0; border-radius:18px; align-items:center; justify-content:center; font-weight:600; color:var(--accent); background:color-mix(in srgb, var(--surface) 82%, transparent); border:2px dashed var(--accent); pointer-events:none; }
.composer.dragover .drop-hint { display:flex; }
.file-chip .ft { width:24px; height:24px; border-radius:6px; display:grid; place-items:center; font-size:8.5px; font-weight:800; color:#fff; background:#b4410c; flex-shrink:0; letter-spacing:.02em; }
.file-chip .ft.w { background:#1d4ed8; } .file-chip .ft.s { background:#0f766e; } .file-chip .ft.g { background:#15803d; } .file-chip .ft.t { background:#475569; }
.file-chip .ft.ag { background:var(--primary); }
.comp-row .menu { position:relative; }
.pill { max-width:170px; }
.composer .pop { position:absolute; bottom:40px; left:0; width:280px; z-index:30; }
.home .composer .pop { bottom:auto; top:40px; }
.composer .pop button svg { width:18px; height:18px; }
.method { display:flex; align-items:center; justify-content:center; gap:6px; flex-wrap:wrap; color:var(--muted); font-size:12px; }
.method span { padding:2px 9px; border-radius:999px; border:1px solid var(--border-strong); }
.method i { font-style:normal; opacity:.6; }
.h-sec h2 { font-size:11px; text-transform:uppercase; letter-spacing:.16em; color:var(--muted); font-weight:600; margin-bottom:10px; }
.agent-cards { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; }
.agent-card { border:1px solid var(--border); background:var(--surface); border-radius:14px; padding:14px; display:flex; flex-direction:column; gap:6px; text-align:left; color:var(--text); cursor:pointer; }
.agent-card:hover, .agent-card.on { border-color:var(--accent-border); background:var(--surface-2); }
.agent-card .ic { width:30px; height:30px; border-radius:9px; background:var(--accent-soft); color:var(--accent); display:grid; place-items:center; }
.agent-card .ic svg { width:16px; height:16px; }
.agent-card b { font-size:13.5px; font-weight:700; letter-spacing:-.01em; }
.agent-card small { color:var(--muted); font-size:12.5px; line-height:1.45; }
.pl { font-size:10px; font-weight:800; letter-spacing:.12em; color:var(--muted); }
.pl em { font-style:normal; color:var(--accent); }
.hlist { border:1px solid var(--border); border-radius:14px; background:var(--surface); overflow:hidden; }
.hrow { display:flex; align-items:center; gap:12px; padding:11px 14px; border:0; border-top:1px solid var(--border); background:none; width:100%; text-align:left; color:var(--text); cursor:pointer; font-size:13.5px; }
.hrow:first-child { border-top:0; }
.hrow:hover { background:var(--surface-2); }
.hrow .col { flex:1; min-width:0; display:flex; flex-direction:column; }
.hrow .col span, .hrow .col small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hrow .col small { color:var(--faint); font-size:12px; }
.hrow .dot { margin-top:0; }
.hlist .empty { padding:14px; }
.conns { display:flex; gap:8px; flex-wrap:wrap; }
.conn { display:inline-flex; align-items:center; gap:8px; padding:7px 12px; border-radius:999px; border:1px solid var(--border); background:var(--surface); font-size:12.5px; color:var(--muted); cursor:pointer; max-width:100%; }
.conn:hover { border-color:var(--accent-border); }
.conn b { color:var(--text); font-weight:600; }
.conn .dot { margin-top:0; }
.conn .em { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ── Mobile (≤860px): barra lateral como drawer con overlay ── */
@media (max-width: 860px) {
  .app, .app.with-panel, .app.nav-collapsed { grid-template-columns: minmax(0, 1fr); }
  .nav { position:fixed; top:0; bottom:0; left:0; width:min(300px, 86vw); z-index:25; transform:translateX(-100%); transition:transform .2s; visibility:visible !important; box-shadow:var(--shadow); }
  .nav.open { transform:none; }
  .nav.open + .scrim { display:block; }
  #collapse-side { display:none; }
  #close-side { display:inline-grid; }
  #toggle-side { display:inline-grid; }
  .topbar { padding:0 10px; gap:6px; }
  .home { padding:28px 16px 60px; gap:22px; }
  .hello h1 { font-size:23px; }
  .agent-cards { grid-template-columns:1fr 1fr; }
  .chat { padding:12px; }
  .dock { padding:0 10px 10px; }
  .msg { max-width:95%; }
  .causa-view, .conn-view { padding:12px; }
  .tool-btn .lbl-txt { display:none; }
  .pill { max-width:150px; }
  .overlay.search-ov { padding-top:8vh; }
}
@media (max-width: 480px) { .agent-cards { grid-template-columns:1fr; } }
@media (prefers-reduced-motion: reduce) { .nav { transition:none; } }
/* Listas de causas en la barra lateral y tareas de una causa (P3) con el estilo del shell. */
.sess { display:flex; align-items:center; gap:6px; padding:7px 10px; border-radius:8px; cursor:pointer; font-size:13px; color:var(--muted); }
.sess:hover, .sess.active { background:var(--surface-2); color:var(--text); }
.sess .t { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#sessions .causa-new { margin:0 0 6px; }
#sessions .soon { padding:8px 10px; }
#sessions > .empty { padding:6px 10px; }

/* ── UX Cowork (T9): vista de tarea — conversación y panel Progreso · Archivos · Contexto · Entregable ── */
.chat, .dock { max-width:808px; }
.chat .msg.assistant { align-self:stretch; max-width:100%; background:none; border:0; border-radius:0; padding:2px 0 2px 36px; position:relative; }
.chat .msg.assistant::before { content:''; position:absolute; left:0; top:4px; width:24px; height:24px; background:var(--iso) center/contain no-repeat; }
/* OP#26311: respuesta escribiéndose en vivo (cursor) y respuesta incompleta (aviso con el motivo) */
.chat .msg.assistant.live > :last-child::after { content:''; display:inline-block; width:7px; height:1em; margin-left:2px; vertical-align:text-bottom; background:var(--accent); animation:live-caret 1s steps(2) infinite; }
@keyframes live-caret { 50% { opacity:0; } }
@media (prefers-reduced-motion: reduce) { .chat .msg.assistant.live > :last-child::after { animation:none; } }
.msg.assistant.incomplete .incomplete-note { margin-top:8px; padding:6px 10px; border:1px solid var(--border-strong); border-left:3px solid var(--warn); border-radius:8px; font-size:13px; color:var(--muted); background:var(--surface-2); }
.msg.user .chips { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; white-space:normal; }
.activity { margin:6px 0 6px 36px; border:1px solid var(--border); border-radius:12px; background:var(--surface); font-size:13px; }
.activity summary { list-style:none; padding:9px 12px; cursor:pointer; color:var(--muted); display:block; }
.activity summary::-webkit-details-marker { display:none; }
.activity summary:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:12px; }
.activity .cnt { color:var(--faint); }
.activity ol { list-style:none; margin:0; padding:0 12px 8px 26px; color:var(--faint); font-size:12.5px; }
.activity ol li { padding:3px 0; }
.activity.live .now::before { content:''; display:inline-block; width:8px; height:8px; margin-right:8px; border-radius:50%; background:var(--accent); animation:bl-pulse 1.2s infinite; -webkit-text-fill-color:initial; }
.shimmer { background:linear-gradient(90deg, var(--muted) 0%, var(--text) 50%, var(--muted) 100%); background-size:200% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:bl-sh 2s linear infinite; }
@keyframes bl-sh { to { background-position:-200% 0; } }
.doc-card { display:flex; align-items:center; gap:12px; margin:6px 0 6px 36px; padding:12px; border:1px solid var(--border-strong); border-radius:12px; background:var(--surface); }
.doc-card .ft, .frow .ft { width:30px; height:36px; border-radius:6px; display:grid; place-items:center; font-size:9px; font-weight:800; color:#fff; background:#b4410c; flex-shrink:0; }
.doc-card .ft.w, .frow .ft.w { background:#1d4ed8; } .frow .ft.s { background:#0f766e; } .frow .ft.g { background:#15803d; } .frow .ft.t { background:#475569; }
.doc-card .col { flex:1; min-width:0; display:flex; flex-direction:column; }
.doc-card .col b { font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.doc-card small { color:var(--faint); font-size:12px; }
.btn-pri { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px; border-radius:9px; background:var(--primary); color:var(--on-primary); font-size:13px; font-weight:600; text-decoration:none; white-space:nowrap; }
.btn-pri:hover { filter:brightness(1.08); }
.approval { border-color:color-mix(in srgb, var(--warn) 55%, transparent); background:color-mix(in srgb, var(--warn) 7%, var(--surface)); }
.approval .event-kind, .approval > .event-kind { color:var(--warn); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; flex:1 1 100%; }
.approval .event-head .event-kind { flex:1; }
.approval .event-sub { margin:0; font-size:14px; color:var(--text); }
.actions-box { margin-left:36px; }
/* Panel derecho */
.panel { display:flex; flex-direction:column; overflow:hidden; }
.sheet-handle { display:none; }
.ptabs { display:flex; gap:2px; padding:10px 10px 0; border-bottom:1px solid var(--border); flex-shrink:0; }
.ptabs [role="tab"] { border:0; background:none; padding:8px 10px; font:inherit; font-size:13px; color:var(--muted); border-bottom:2px solid transparent; cursor:pointer; white-space:nowrap; }
.ptabs [role="tab"]:hover { color:var(--text); }
.ptabs [role="tab"].on { color:var(--text); border-bottom-color:var(--accent); font-weight:600; }
.ptabs [role="tab"]:focus-visible, .pbody button:focus-visible, .pbody a:focus-visible, .sheet-handle:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.ptabs .n { color:var(--faint); font-weight:400; }
.pbody { flex:1; min-height:0; overflow:auto; padding:14px; }
.pbody [role="tabpanel"] { display:flex; flex-direction:column; gap:12px; }
.pbody [role="tabpanel"][hidden] { display:none; }
.pbody .sub { font-size:11px; text-transform:uppercase; letter-spacing:.07em; color:var(--faint); margin-top:6px; }
.p-muted { color:var(--muted); font-size:13px; }
.p-faint { color:var(--faint); font-size:12.5px; }
.pcard { border:1px solid var(--border); border-radius:12px; background:var(--bg); overflow:hidden; }
.pcard > header { display:flex; align-items:center; gap:8px; padding:10px 12px; font-size:13px; }
.pcard > header small { margin-left:auto; color:var(--faint); font-size:12px; }
.pcard .inner { padding:0 12px 12px; display:flex; flex-direction:column; gap:4px; }
.progress { height:4px; border-radius:4px; background:var(--surface-3); overflow:hidden; margin:0 12px 10px; }
.progress i { display:block; height:100%; background:var(--accent); transition:width .3s; }
.check { display:flex; gap:10px; align-items:flex-start; flex-wrap:wrap; font-size:13px; padding:3px 0; color:var(--text); }
.check .cbox { width:16px; height:16px; border-radius:50%; border:1.5px solid var(--border-strong); flex-shrink:0; margin-top:1px; display:grid; place-items:center; }
.check .t { flex:1; min-width:0; overflow-wrap:anywhere; }
.check.done { color:var(--muted); }
.check.done .t { text-decoration:line-through; text-decoration-color:var(--faint); }
.check.done .cbox { background:var(--ok-text); border-color:var(--ok-text); }
.check.done .cbox::after { content:''; width:6px; height:3px; border-left:1.5px solid var(--bg); border-bottom:1.5px solid var(--bg); transform:rotate(-45deg) translate(1px,-1px); }
.check.running .cbox { border-color:var(--accent); border-top-color:transparent; animation:bl-spin 1s linear infinite; }
.check.running .t { font-weight:600; }
.check.waiting .cbox { border-color:var(--warn); background:color-mix(in srgb, var(--warn) 20%, transparent); }
.check .wait-note { color:var(--warn); font-size:11.5px; font-weight:400; text-decoration:none; display:inline-block; }
@keyframes bl-spin { to { transform:rotate(360deg); } }
.act-list { margin:6px 0 0; padding-left:18px; color:var(--faint); font-size:12.5px; }
.frow { display:flex; align-items:center; gap:10px; padding:6px 0; font-size:13px; }
.frow .ft { width:26px; height:30px; font-size:8.5px; }
.frow .col { flex:1; min-width:0; }
.frow .col div { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.frow small { color:var(--faint); font-size:11.5px; }
.frow .mini { border:1px solid var(--border-strong); background:none; color:var(--text); border-radius:8px; padding:3px 8px; font-size:12px; cursor:pointer; text-decoration:none; white-space:nowrap; }
.frow .mini:hover { background:var(--surface-3); }
.ctx-causa { display:flex; flex-direction:column; color:var(--text); text-decoration:none; font-size:13px; }
.ctx-causa:hover span { text-decoration:underline; }
.ctx-causa small, .ctx-line { color:var(--faint); font-size:12px; }
.ctx-line { color:var(--text); font-size:13px; }
.ctx-conn { display:flex; align-items:center; gap:8px; font-size:13px; }
.ctx-conn .dot { width:8px; height:8px; border-radius:50%; background:var(--ok-text); flex-shrink:0; }
.src { display:flex; gap:10px; padding:5px 0; font-size:13px; align-items:flex-start; }
.src .tag { font-size:10px; font-weight:700; padding:2px 6px; border-radius:5px; background:var(--accent-soft); color:var(--accent); flex-shrink:0; margin-top:1px; letter-spacing:.03em; }
.src .tag.j { background:color-mix(in srgb, var(--warn) 14%, transparent); color:var(--warn); }
.src .tag.b { background:var(--surface-3); color:var(--muted); }
.src .col { min-width:0; overflow-wrap:anywhere; }
.src a { color:var(--text); text-decoration:none; }
.src a:hover { text-decoration:underline; }
.src small { display:block; color:var(--faint); font-size:11.5px; }
.doc-pick { background:var(--surface-2); color:var(--text); border:1px solid var(--border-strong); border-radius:8px; padding:6px 8px; font:inherit; font-size:13px; }
.doc-bar { display:flex; align-items:center; gap:8px; }
.doc-bar small { color:var(--faint); margin-right:auto; font-size:12px; }
.pbody .paper { border-radius:8px; padding:22px 22px 26px; font-size:13px; line-height:1.6; box-shadow:0 1px 0 var(--border), 0 6px 18px rgba(0,0,0,.18); overflow-wrap:anywhere; }
.paper h2, .paper h3 { font-size:14px; text-align:center; letter-spacing:.03em; margin:12px 0 8px; }
.paper p { margin:0 0 8px; text-align:justify; }
.paper ul, .paper ol { margin:0 0 8px 20px; }
.paper blockquote { border-left:3px solid #2864D7; padding:4px 10px; margin:6px 0; color:#123B72; }
.paper a { color:#123B72; }
.paper code { background:rgba(7,21,37,.06); padding:0 4px; border-radius:3px; }
.paper .p-muted { color:#4a5568; }
@media (prefers-reduced-motion: reduce) { .shimmer, .check.running .cbox, .activity.live .now::before { animation:none; } .shimmer { color:var(--text); background:none; } }
/* Mobile (≤860px): el panel es un bottom sheet con asa; el composer queda arriba del sheet. */
@media (max-width: 860px) {
  :root { --sheet-h:84px; }
  .panel.sheet { position:fixed; left:0; right:0; bottom:0; z-index:20; max-height:var(--sheet-h); border-left:0; border-top:1px solid var(--border-strong); border-radius:16px 16px 0 0; box-shadow:0 -8px 24px rgba(0,0,0,.25); transition:max-height .2s; }
  .panel.sheet.hidden { display:none; }
  .panel.sheet.expanded { max-height:70vh; height:70vh; }
  .panel.sheet .pbody { display:none; }
  .panel.sheet.expanded .pbody { display:block; }
  .panel.sheet.expanded .pbody [role="tabpanel"]:not([hidden]) { display:flex; }
  .sheet-handle { display:flex; flex-direction:column; align-items:center; gap:4px; width:100%; border:0; background:none; color:var(--muted); font:inherit; font-size:12px; padding:8px 0 2px; cursor:pointer; }
  .sheet-handle i { width:36px; height:4px; border-radius:4px; background:var(--border-strong); }
  .panel.sheet.expanded .sheet-handle span { display:none; }
  .ptabs { overflow-x:auto; scrollbar-width:none; padding-top:4px; }
  .app.with-panel .main { padding-bottom:var(--sheet-h); }
  #panel-btn { display:none; }
  .activity, .doc-card, .actions-box { margin-left:0; }
  .chat .msg.assistant { padding-left:32px; }
}
@media (prefers-reduced-motion: reduce) { .panel.sheet { transition:none; } }

/* ── UX Cowork (T10): vistas de causa y proyecto, acciones de la topbar y paneles por vista ── */
.top-actions { display:flex; align-items:center; gap:6px; }
.top-actions:empty { display:none; }
.top-btn { text-decoration:none; display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px; border-radius:9px; border:0; background:var(--primary); color:var(--on-primary); font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; }
.top-btn:hover { filter:brightness(1.08); }
.top-btn svg { width:15px; height:15px; }
.top-btn.ghost-btn { background:none; border:1px solid var(--border-strong); color:var(--text); }
.causa-view, .conn-view { max-width:1000px; }
.causa-view h1 { font-size:22px; font-weight:750; letter-spacing:-.02em; line-height:1.25; overflow-wrap:anywhere; }
.cv-chips { display:flex; gap:6px; flex-wrap:wrap; }
.cv-chips .chip { font-size:12px; padding:3px 10px; background:none; }
.chip.ok { color:var(--ok-text); border-color:var(--ok-border); }
.tabs .tab .n { color:var(--faint); font-size:12px; font-weight:400; }
.box { border:1px solid var(--border); border-radius:14px; background:var(--surface); padding:14px 16px; display:flex; flex-direction:column; gap:8px; min-width:0; }
.box-h { display:flex; align-items:baseline; gap:8px; }
.box-h h3 { font-size:13.5px; }
.box-h small { margin-left:auto; color:var(--faint); font-size:12px; }
.box .hrow { border-top:1px solid var(--border); padding:10px 4px; }
.box .hrow:first-of-type { border-top:0; }
.grid2 { display:grid; grid-template-columns:minmax(0, 1.3fr) minmax(0, 1fr); gap:14px; }
.ask { display:flex; gap:8px; align-items:center; border:1px solid var(--border-strong); border-radius:14px; padding:7px 7px 7px 14px; background:var(--surface); }
.ask:focus-within { border-color:var(--accent-border); }
.ask input { flex:1; min-width:0; border:0; background:none; color:var(--text); font:inherit; font-size:14px; outline:0; }
.ask .ask-ic { width:18px; height:18px; color:var(--accent); flex-shrink:0; }
.ask .send { width:34px; height:34px; padding:0; border-radius:10px; display:grid; place-items:center; }
.ask .send svg { width:16px; height:16px; }
.ficha-sum { font-size:13.5px; line-height:1.55; overflow-wrap:anywhere; color:var(--text); }
.ficha-sum h1, .ficha-sum h2, .ficha-sum h3 { font-size:13px; margin:8px 0 4px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; }
.ficha-sum h2:first-child, .ficha-sum h3:first-child { margin-top:0; }
.ficha-sum p { margin:4px 0; } .ficha-sum ul, .ficha-sum ol { margin:4px 0 4px 18px; }
.link-btn { align-self:flex-start; border:0; background:none; padding:0; color:var(--accent); font:inherit; font-size:12.5px; cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
.pcard > header .link-btn { margin-left:auto; }
.dl { display:flex; flex-direction:column; gap:10px; }
.dl .d { display:flex; gap:12px; align-items:center; font-size:13px; }
.dl .date { width:46px; text-align:center; border:1px solid var(--border-strong); border-radius:8px; padding:3px 0; font-size:10.5px; color:var(--faint); line-height:1.25; flex-shrink:0; }
.dl .date b { display:block; font-size:15px; color:var(--text); }
.dl .col { min-width:0; display:flex; flex-direction:column; }
.dl small { color:var(--faint); font-size:12px; } .dl small.warn { color:var(--warn); }
.kv { display:grid; grid-template-columns:max-content minmax(0, 1fr); gap:5px 14px; font-size:13px; align-items:center; }
.kv > span { color:var(--faint); }
.kv > div { overflow-wrap:anywhere; }
.instr { white-space:pre-wrap; font-size:12.5px; color:var(--muted); background:var(--surface-2); border-radius:8px; padding:10px; border:1px solid var(--border); overflow-wrap:anywhere; }
.instr-edit { width:100%; background:var(--surface-2); color:var(--text); border:1px solid var(--accent-border); border-radius:8px; padding:9px; font:inherit; font-size:13px; line-height:1.5; resize:vertical; }
.counter { color:var(--faint); font-size:12px; margin-right:auto; }
.add-files { align-self:flex-start; margin-top:6px; }
/* Proyecto */
.page-h { display:flex; align-items:center; gap:12px; }
.page-h .big-ic { width:42px; height:42px; border-radius:12px; background:var(--accent-soft); color:var(--accent); display:grid; place-items:center; flex-shrink:0; }
.page-h .big-ic svg { width:20px; height:20px; }
.page-h .col { min-width:0; display:flex; flex-direction:column; gap:2px; }
.page-h h1 { font-size:22px; font-weight:750; letter-spacing:-.02em; overflow-wrap:anywhere; }
.page-h h1.editable { cursor:text; border-radius:6px; }
.page-h h1.editable:hover { background:var(--surface-2); }
.page-h p, .pv-meta { color:var(--muted); font-size:13px; }
.pv-meta a { color:var(--accent); }
.pv-rename { font:inherit; font-size:20px; font-weight:700; background:var(--surface-2); color:var(--text); border:1px solid var(--accent-border); border-radius:8px; padding:3px 8px; width:min(520px, 100%); outline:none; }
#project-slot .composer textarea { min-height:52px; }
.pv-label { font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); font-weight:600; margin:6px 0 8px; }
.pv-list { border:1px solid var(--border); border-radius:14px; background:var(--surface); overflow:hidden; }
.pv-row { display:flex; align-items:center; gap:10px; padding:11px 14px; border-top:1px solid var(--border); cursor:pointer; font-size:13.5px; }
.pv-row:first-child { border-top:0; }
.pv-row:hover { background:var(--surface-2); }
.pv-row.dragging { opacity:.5; }
.pv-row .dot { margin-top:0; }
.pv-row .col { flex:1; min-width:0; display:flex; flex-direction:column; }
.pv-row .col .t, .pv-row .col small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pv-row .col small { color:var(--faint); font-size:12px; }
.drag-h { cursor:grab; color:var(--faint); font-size:13px; letter-spacing:-2px; user-select:none; }
.tagc { font-size:11px; padding:1px 8px; border-radius:999px; background:var(--surface-3); color:var(--muted); white-space:nowrap; }
.pv-empty { padding:14px; }
.pv-drop { display:flex; align-items:center; gap:10px; margin-top:8px; padding:12px 14px; border:1px dashed var(--border-strong); border-radius:12px; color:var(--faint); font-size:13px; }
.pv-drop svg { width:16px; height:16px; flex-shrink:0; }
.pv-drop.drop { border-color:var(--accent); background:var(--accent-soft); color:var(--accent); }
@media (max-width: 860px) {
  .grid2 { grid-template-columns:minmax(0, 1fr); }
  .top-btn span { display:none; }
  .top-btn { padding:0 9px; }
  .pv-row .tagc { display:none; }
  .causa-view h1, .page-h h1 { font-size:19px; }
}
.proj.on { background:var(--surface-3); color:var(--text); }
body[data-view="project"] #project-pick { display:none; } /* la tarea nace en este proyecto */
.causa-view > *, .conn-view > * { flex-shrink:0; } /* en columnas con scroll, las pestañas no se achican a 0 */

/* ── UX Cowork (T11): Workspace del estudio ── */
.ws-tabs { display:flex; gap:6px; flex-wrap:wrap; }
.ws-tabs [role="tab"] { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border); background:var(--surface); border-radius:10px; padding:8px 12px; color:var(--muted); font:inherit; font-size:13.5px; cursor:pointer; white-space:nowrap; }
.ws-tabs [role="tab"] svg { width:15px; height:15px; }
.ws-tabs [role="tab"]:hover { color:var(--text); }
.ws-tabs [role="tab"].on { border-color:var(--accent-border); background:var(--accent-soft); color:var(--text); font-weight:600; }
.ws-tabs small { color:var(--faint); font-weight:400; }
.ws-pane { display:flex; flex-direction:column; gap:12px; }
.ws-pane[hidden] { display:none; }
.ws-tools { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.searchf { flex:1 1 220px; display:flex; align-items:center; gap:8px; border:1px solid var(--border-strong); border-radius:10px; padding:0 10px; height:36px; background:var(--surface); color:var(--faint); }
.searchf svg { width:15px; height:15px; flex-shrink:0; }
.searchf input { flex:1; min-width:0; border:0; background:none; color:var(--text); font:inherit; font-size:13.5px; outline:0; }
.seg { display:inline-flex; border:1px solid var(--border-strong); border-radius:9px; overflow:hidden; flex-shrink:0; }
.seg button { border:0; background:none; padding:7px 12px; font:inherit; font-size:13px; color:var(--muted); cursor:pointer; }
.seg button.on { background:var(--surface-3); color:var(--text); font-weight:600; }
.tpl-grid, .ag-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
.tpl, .agc { border:1px solid var(--border); border-radius:14px; background:var(--surface); padding:14px; display:flex; flex-direction:column; gap:8px; text-align:left; color:var(--text); font:inherit; cursor:pointer; min-width:0; }
.tpl:hover, .agc:hover { border-color:var(--accent-border); }
.tpl.on, .agc.on { border-color:var(--accent-border); box-shadow:0 0 0 3px var(--accent-soft); }
.tpl .hd, .agc .hd { display:flex; align-items:center; gap:10px; min-width:0; }
.tpl .hd svg { width:16px; height:16px; color:var(--accent); flex-shrink:0; }
.tpl .hd b { flex:1; min-width:0; font-size:14px; overflow-wrap:anywhere; }
.tpl small, .agc small { color:var(--muted); font-size:12.5px; line-height:1.45; }
.agc .hd > div { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.agc b { font-size:14px; font-weight:700; }
.agc .ic, .ag-hero .ic { width:34px; height:34px; border-radius:10px; background:var(--accent-soft); color:var(--accent); display:grid; place-items:center; flex-shrink:0; }
.agc .ic svg, .ag-hero .ic svg { width:18px; height:18px; }
.ag-hero .ic.big { width:48px; height:48px; border-radius:14px; }
.ag-hero .ic.big svg { width:24px; height:24px; }
.meta2 { display:flex; justify-content:space-between; gap:8px; font-size:11.5px; color:var(--faint); border-top:1px solid var(--border); padding-top:8px; }
.ag-hero { display:flex; flex-direction:column; gap:6px; }
.ag-hero b { font-size:16px; font-weight:750; letter-spacing:-.015em; }
.ag-hero small { color:var(--muted); font-size:12.5px; }
.vars { display:flex; gap:4px; flex-wrap:wrap; }
.var { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:11px; padding:1px 6px; border-radius:5px; background:var(--accent-soft); color:var(--accent); border:1px solid var(--accent-border); }
.tfield { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--faint); }
.tfield.hidden { display:none; }
.inp { border:1px solid var(--border-strong); background:var(--surface-2); border-radius:8px; padding:8px 10px; color:var(--text); font:inherit; font-size:13px; }
.inp:focus, .doc-pick:focus, .instr-edit:focus { outline:2px solid var(--accent-border); outline-offset:1px; }
.instr-edit.mono { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:12.5px; }
.paper .v { background:rgba(40,100,215,.14); border-radius:3px; padding:0 2px; }
.paper .v.empty { color:#4a5568; background:rgba(7,21,37,.06); }
button.primary.wide { width:100%; padding:10px 14px; font-size:13.5px; }
.box h3 { font-size:13.5px; }
.lib-note .ghost { align-self:flex-start; }
.lib-list { border:1px solid var(--border); border-radius:14px; background:var(--surface); overflow:hidden; }
.lib-list > .empty { padding:14px; }
.lib-row { display:flex; align-items:center; gap:10px; padding:10px 14px; border-top:1px solid var(--border); font-size:13.5px; }
.lib-row:first-child { border-top:0; }
.lib-row .ft { width:26px; height:30px; border-radius:6px; display:grid; place-items:center; font-size:8.5px; font-weight:800; color:#fff; background:#b4410c; flex-shrink:0; }
.lib-row .ft.t { background:#475569; }
.lib-row .col { flex:1; min-width:0; display:flex; flex-direction:column; }
.lib-row .col .t, .lib-row .col small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lib-row small { color:var(--faint); font-size:12px; }
.lib-row .mini, .auto-row .mini { border:1px solid var(--border-strong); background:none; color:var(--text); border-radius:8px; padding:3px 8px; font-size:12px; cursor:pointer; white-space:nowrap; }
.lib-proc { display:inline-flex; align-items:center; gap:6px; }
.spin { width:10px; height:10px; border-radius:50%; border:1.5px solid currentColor; border-top-color:transparent; animation:bl-spin 1s linear infinite; }
.upsell { border-color:var(--accent-border); background:var(--accent-soft); }
.upsell .btn-pri { align-self:flex-start; }
.auto-row { display:flex; align-items:center; gap:12px; padding:12px 14px; border-top:1px solid var(--border); cursor:pointer; font-size:13.5px; }
.auto-row:first-child { border-top:0; }
.auto-row:hover, .auto-row.on { background:var(--surface-2); }
.auto-row .col { flex:1; min-width:0; display:flex; flex-direction:column; }
.auto-row .col small { color:var(--faint); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.switch { width:36px; height:20px; border-radius:999px; border:0; background:var(--surface-3); position:relative; cursor:pointer; flex-shrink:0; padding:0; }
.switch::after { content:''; position:absolute; top:3px; left:3px; width:14px; height:14px; border-radius:50%; background:var(--faint); transition:left .15s; }
.switch.on { background:var(--primary); }
.switch.on::after { left:19px; background:#fff; }
.switch:disabled { opacity:.5; cursor:not-allowed; }
.days { display:flex; gap:4px; flex-wrap:wrap; }
.day-btn { border:1px solid var(--border-strong); background:none; color:var(--muted); border-radius:8px; padding:5px 8px; font:inherit; font-size:12px; cursor:pointer; }
.day-btn.on { border-color:var(--accent-border); background:var(--accent-soft); color:var(--text); font-weight:600; }
@media (prefers-reduced-motion: reduce) { .spin { animation:none; } .switch::after { transition:none; } }

/* ── UX Cowork (T11): Calendario ── */
.cal-view { max-width:1100px; }
.cal-bar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cal-bar h2 { font-size:21px; font-weight:750; letter-spacing:-.02em; margin:0 8px 0 4px; }
.cal-bar .sp { flex:1; }
.pill-btn { border:1px solid var(--border-strong); background:var(--surface); color:var(--text); border-radius:9px; padding:6px 12px; font:inherit; font-size:13px; cursor:pointer; }
.icon-btn .flip { transform:rotate(180deg); }
.legend { display:flex; gap:6px; flex-wrap:wrap; }
.lg { display:inline-flex; align-items:center; gap:6px; font:inherit; font-size:12px; color:var(--muted); background:none; border:1px solid var(--border); border-radius:999px; padding:3px 10px; cursor:pointer; }
.lg i { width:8px; height:8px; border-radius:2px; display:inline-block; background:var(--c); }
.lg.off { opacity:.6; border-style:dashed; }
.c-venc { --c:var(--c-venc); } .c-aud { --c:var(--c-aud); } .c-apr { --c:var(--c-app); } .c-ms { --c:var(--c-ms); } .c-go { --c:var(--c-go); }
.cal-warn { border:1px solid color-mix(in srgb, var(--warn) 45%, transparent); background:color-mix(in srgb, var(--warn) 9%, var(--surface)); color:var(--text); border-radius:10px; padding:8px 12px; font-size:13px; display:flex; flex-direction:column; gap:2px; }
.cal-create { margin-top:12px; border:1px solid var(--border-strong); border-radius:12px; background:var(--surface); padding:14px 16px; }
.cal-create-title { font-size:14px; font-weight:750; margin-bottom:10px; }
.cal-form-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px 12px; }
.cal-form-grid label { display:flex; flex-direction:column; gap:4px; color:var(--muted); font-size:12px; }
.cal-form-grid .f-full { grid-column:1 / -1; }
.cal-form-err { color:var(--err-text); font-size:13px; margin:8px 0 0; }
.month { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); border:1px solid var(--border); border-radius:14px; overflow:hidden; background:var(--surface); }
.month .dow { padding:8px 10px; font-size:11px; color:var(--faint); text-transform:uppercase; letter-spacing:.06em; border-bottom:1px solid var(--border); }
.month .d { min-width:0; min-height:98px; padding:6px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); display:flex; flex-direction:column; gap:3px; cursor:pointer; }
.month .d:nth-child(7n) { border-right:0; }
.month .d:hover { background:var(--surface-2); }
.month .d .n { font-size:12px; color:var(--muted); width:22px; height:22px; display:grid; place-items:center; border-radius:50%; }
.month .d.out .n { color:var(--faint); opacity:.55; }
.month .d.today .n { background:var(--primary); color:#fff; font-weight:700; }
.month .d.sel { background:var(--accent-soft); }
.ev { display:block; width:100%; text-align:left; font:inherit; font-size:11.5px; padding:2px 6px; border:0; border-left:3px solid var(--c); border-radius:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; background:color-mix(in srgb, var(--c) 16%, transparent); color:var(--text); cursor:pointer; }
.ev.more { background:none; border:0; color:var(--faint); padding-left:6px; }
.week { display:grid; border:1px solid var(--border); border-radius:14px; overflow:hidden; background:var(--surface); }
.week .wh { padding:8px 6px; border:0; border-bottom:1px solid var(--border); border-left:1px solid var(--border); font:inherit; background:none; color:var(--muted); display:flex; flex-direction:column; align-items:center; gap:2px; }
.week .wh:first-child { border-left:0; }
.week .wh.day { cursor:pointer; }
.week .wh small { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--faint); }
.week .wh b { font-size:15px; color:var(--text); width:28px; height:28px; display:grid; place-items:center; border-radius:50%; }
.week .wh.today b { background:var(--primary); color:#fff; }
.week .wh.sel { background:var(--accent-soft); }
.week .hl { font-size:11px; color:var(--faint); padding:4px 6px; border-top:1px solid var(--border); text-align:right; }
.week .slot { min-width:0; min-height:34px; padding:3px; border-top:1px solid var(--border); border-left:1px solid var(--border); display:flex; flex-direction:column; gap:2px; }
.week .slot.all { background:var(--surface-2); }
.agenda { display:flex; flex-direction:column; }
.agenda .it { display:flex; gap:10px; padding:9px 0; border-top:1px solid var(--border); font-size:13px; }
.agenda .it:first-child { border-top:0; }
.agenda .bar { width:3px; border-radius:2px; background:var(--c); flex-shrink:0; }
.agenda .tm { width:46px; color:var(--faint); font-size:12px; flex-shrink:0; }
.agenda .tm:empty { display:none; }
.agenda .col { min-width:0; display:flex; flex-direction:column; overflow-wrap:anywhere; }
.agenda small { color:var(--faint); font-size:11.5px; }
.agenda small a { color:var(--accent); }
.unsynced { display:flex; flex-direction:column; gap:8px; padding:4px 0 8px; }
.unsynced + .unsynced { border-top:1px solid var(--border); padding-top:10px; }
.unsynced .doc-bar { justify-content:flex-start; }
@media (max-width: 860px) {
  .tpl-grid, .ag-grid { grid-template-columns:minmax(0, 1fr); }
  .ws-tabs { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
  .ws-tabs [role="tab"] { flex-shrink:0; }
  .cal-bar h2 { font-size:17px; }
  .cal-form-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .cal-form-grid .f-full { grid-column:1 / -1; }
  .month .d { min-height:58px; padding:3px; }
  .month .ev { font-size:0; height:5px; padding:0; border-left-width:0; background:var(--c); }
  .month .ev.more { font-size:10px; height:auto; background:none; }
  .auto-row .mini { display:none; }
}
/* P7 · Cuenta corriente (causa, Clientes, tarjeta de aprobación). Montos con tabular-nums y a la derecha. */
.cc { display:flex; flex-direction:column; gap:14px; }
.cc-view { display:flex; flex-direction:column; gap:12px; }
.cc-view.hidden { display:none; }
.cc-bar { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.cc-bar h2, .cc-bar h3 { margin:0; }
.cc-acts { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cc-acts .send { padding:8px 16px; font-size:14px; }
.cc-view h3, .cc h3 { font-size:15px; margin:6px 0 0; }
.cc .num, .cc-view .num, .cc-total dd, .cc-saldo, .cc-card .event-title { font-variant-numeric:tabular-nums; }
.cc-totals { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px; }
.cc-total { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-m); padding:12px 14px; }
.cc-total .cc-mon { font-size:11px; letter-spacing:.08em; font-weight:700; color:var(--faint); }
.cc-total dl { display:grid; grid-template-columns:max-content 1fr; gap:4px 12px; margin:6px 0 0; font-size:13px; }
.cc-total dt { color:var(--muted); }
.cc-total dd { margin:0; text-align:right; }
.cc-saldo { font-weight:600; }
.cc-saldo.neg { color:var(--danger); }
.cc-saldo.pos { color:var(--ok-text); }
.cc-table { width:100%; border-collapse:collapse; font-size:13px; }
.cc-table th { text-align:left; font-weight:600; color:var(--faint); font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; padding:6px 8px; border-bottom:1px solid var(--border-strong); }
.cc-table td { padding:8px; border-bottom:1px solid var(--border); vertical-align:top; }
.cc-table .cc-desc { overflow-wrap:anywhere; }
.cc-table .cc-fecha, .cc-table .cc-tipo, .cc-table .cc-ori, .cc-badge { white-space:nowrap; }
.cc-table .num { text-align:right; white-space:nowrap; }
.cc-table .cc-row.gasto .cc-monto { color:var(--text); }
.cc-table .cc-row.ingreso .cc-monto { color:var(--ok-text); }
.cc-table small { color:var(--faint); }
.cc-table a, .cc-cli a, .cc-back { color:var(--accent); }
.cc-act { white-space:nowrap; text-align:right; }
.cc-act button { padding:4px 8px; font-size:12px; }
.cc-badge { display:inline-block; font-size:11px; padding:1px 8px; border-radius:999px; background:var(--accent-soft); border:1px solid var(--accent-border); color:var(--accent); }
.ghost.danger { color:var(--danger); }
.cc-more { align-self:flex-start; }
.cc-form-host:empty { display:none; }
.cc-sheet { background:var(--surface); border:1px solid var(--border-strong); border-radius:var(--radius-m); padding:14px; max-width:560px; }
.cc-sheet h3 { margin:0; }
.cc-2 { display:grid; grid-template-columns:1fr 110px; gap:10px; }
.cc-sheet select, .cc-link select, .cc-search, .cc-cli-form textarea { background:var(--surface-soft); color:var(--text); border:1px solid var(--border-strong); border-radius:8px; padding:8px 10px; font:inherit; font-size:14px; }
.cc-sheet input[name="monto"] { text-align:right; font-variant-numeric:tabular-nums; }
.cc-backdrop { display:none; }
.cc-link { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-m); padding:16px; display:flex; flex-direction:column; gap:8px; max-width:560px; }
.cc-link select { min-width:240px; }
.cc-search { max-width:420px; }
.cl-list { display:flex; flex-direction:column; border:1px solid var(--border); border-radius:var(--radius-m); background:var(--surface); }
.cl-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; color:var(--text); text-decoration:none; border-top:1px solid var(--border); }
.cl-row:first-child { border-top:0; }
.cl-row:hover { background:var(--accent-soft); }
.cl-info { display:flex; flex-direction:column; min-width:0; }
.cl-info small { color:var(--faint); font-size:12px; }
.cl-saldos { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:4px 12px; font-size:13px; }
.cc-notas { white-space:pre-wrap; color:var(--muted); font-size:13px; margin:0; }
.cc-back { font-size:13px; text-decoration:none; }
@media (max-width: 860px) {
  .cc-totals { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; grid-template-columns:none; }
  .cc-total { flex:0 0 82%; scroll-snap-align:start; }
  .cc-table thead { display:none; }
  .cc-table, .cc-table tbody { display:block; }
  .cc-table .cc-row { display:grid; grid-template-columns:1fr auto; gap:2px 10px; padding:10px 0; border-bottom:1px solid var(--border); }
  .cc-table td { padding:0; border:0; }
  .cc-row .cc-fecha { grid-column:1; color:var(--faint); font-size:12px; }
  .cc-row .cc-monto, .cc-causas .cc-row .num:last-child { grid-column:2; grid-row:1 / span 2; align-self:center; font-size:15px; font-weight:600; }
  .cc-row .cc-tipo, .cc-row .cc-ori { display:none; }
  .cc-row .cc-cat, .cc-row .cc-desc { grid-column:1; }
  .cc-row .cc-desc { color:var(--muted); font-size:12.5px; }
  .cc-row .cc-act { grid-column:1 / -1; text-align:left; }
  .cc-causas .cc-row .cc-mon, .cc-causas .cc-row .num:not(:last-child) { display:none; }
  .cc button, .cc-view button, .cc-card button, .cc-view .cl-row, .cc-sheet select, .cc-sheet input { min-height:44px; }
  .cc-act button { min-width:44px; }
  .cc-backdrop { display:block; position:fixed; inset:0; background:var(--overlay); z-index:40; }
  .cc-sheet { position:fixed; left:0; right:0; bottom:0; z-index:41; max-width:none; max-height:85vh; overflow-y:auto; border-radius:16px 16px 0 0; box-shadow:0 -8px 24px rgba(0,0,0,.25); padding-bottom:calc(14px + env(safe-area-inset-bottom)); }
  .cl-row { flex-direction:column; align-items:flex-start; }
  .cl-saldos { justify-content:flex-start; }
  .cc-link select { min-width:0; width:100%; }
}

/* ── P8: Agentes del estudio, diff de versiones, panel de gestión ── */
.ag-grid{display:grid;grid-template-columns:1fr;gap:6px}
.agc{display:flex;flex-direction:column;align-items:flex-start;padding:10px 12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;gap:4px;cursor:pointer;text-align:left;width:100%}
.agc.on,.agc:hover{border-color:var(--primary);background:var(--surface-3)}
.agc .hd{display:flex;align-items:center;gap:8px;width:100%}
.ag-star{color:var(--muted);font-size:.85em}
.ag-up{padding:12px;background:var(--surface);border:1px dashed var(--border-strong);border-radius:8px;display:flex;flex-direction:column;gap:4px}
.ag-ins{white-space:pre-wrap;word-break:break-word;font-size:.8em;max-height:320px;overflow-y:auto;padding:8px;background:var(--bg);border-radius:4px}
.ag-form{display:flex;flex-direction:column;gap:10px;padding:0 0 12px}
.char-cnt{font-size:.75em;color:var(--muted)}.char-cnt.warn{color:var(--warn)}.char-cnt.over{color:var(--danger)}
.tl-checks{display:flex;flex-wrap:wrap;gap:6px}.tl-checks label{display:flex;align-items:center;gap:4px;font-size:.8em}
.ag-err{color:var(--danger);font-size:.85em;padding:4px 0}.ag-err.hidden{display:none}
.ag-task-chip{background:var(--surface-3);color:var(--muted)}
.ag-dialog{border:none;border-radius:12px;background:var(--surface);color:var(--text);padding:20px;min-width:320px;max-width:560px;width:90vw;max-height:88vh;overflow-y:auto}
.ag-dialog::backdrop{background:var(--overlay)}
.dlg-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.dlg-close{font-size:1.1em;line-height:1}
/* Diff de versiones */
.df-box{margin:6px 0}
.df-pre{font-size:.78em;white-space:pre-wrap;word-break:break-word;padding:8px;background:var(--bg);border-radius:4px;margin:0}
.df-add{color:var(--ok-text);display:block}.df-del{color:var(--danger);display:block}.df-eq{color:var(--muted);display:block}
.ver-list{display:flex;flex-direction:column;gap:10px}
.ver-row{padding:10px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;display:flex;flex-direction:column;gap:6px}
.ver-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
/* ── Indicadores de gestión (OP#26312): alertas arriba, KPIs, secciones en tarjetas de vidrio, gráficos fluidos ── */
.pn-view { padding-bottom:48px; gap:16px; }
.pn-ranges { display:flex; gap:6px; flex-wrap:wrap; padding:2px 0 4px; }
.pn-range { border:1px solid var(--border-strong); background:var(--glass); color:var(--muted); border-radius:var(--radius-pill); padding:6px 14px; font:inherit; font-size:13px; font-weight:500; cursor:pointer; transition:background .15s, color .15s, border-color .15s; }
.pn-range:hover { color:var(--text); border-color:var(--accent-border); }
.pn-range.active { background:var(--primary); border-color:var(--primary); color:var(--on-primary); font-weight:600; }
#pn-body { display:flex; flex-direction:column; gap:18px; }
.pn-sec { font-size:15px; font-weight:600; color:var(--text); margin:0 0 12px; letter-spacing:-.005em; }
.pn-alerts .pn-sec { margin-bottom:10px; }
.pn-alert-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:10px; }
.pn-alert { --tone:var(--accent); display:flex; align-items:center; gap:12px; text-align:left; font:inherit; color:var(--text); padding:14px 16px; border-radius:var(--radius-surface); border:1px solid color-mix(in srgb, var(--tone) 26%, transparent); background:color-mix(in srgb, var(--tone) 7%, var(--surface)); box-shadow:var(--elev-1); }
button.pn-alert { cursor:pointer; transition:transform .15s, box-shadow .15s; }
button.pn-alert:hover { transform:translateY(-1px); box-shadow:var(--elev-2); }
.pn-alert.danger { --tone:var(--danger); } .pn-alert.warn { --tone:var(--warn); } .pn-alert.info { --tone:var(--accent); } .pn-alert.neutral { --tone:var(--faint); }
.pn-alert-ic { width:36px; height:36px; border-radius:12px; display:grid; place-items:center; flex-shrink:0; color:var(--tone); background:color-mix(in srgb, var(--tone) 14%, transparent); }
.pn-alert-ic svg { width:18px; height:18px; }
.pn-alert b { display:block; font-size:22px; font-weight:700; line-height:1.1; font-variant-numeric:tabular-nums; }
.pn-alert span { font-size:12.5px; color:var(--muted); }
.pn-allclear { display:flex; align-items:center; gap:10px; padding:14px 16px; color:var(--ok-text); font-size:13.5px; }
.pn-allclear svg { width:18px; height:18px; flex-shrink:0; }
.pn-kpis { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:10px; }
.pn-kpi { position:relative; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-surface); padding:14px 16px; display:flex; flex-direction:column; gap:4px; box-shadow:var(--elev-1); min-width:0; }
.pn-kpi b { font-size:24px; font-weight:700; color:var(--text); line-height:1.15; font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.pn-kpi > span:not(.pn-badge) { font-size:12.5px; color:var(--muted); }
.pn-hero .pn-kpi { background:var(--glass-strong); }
.pn-hero .pn-kpi:first-child { background:linear-gradient(135deg, var(--primary), var(--brand)); border-color:transparent; }
.pn-hero .pn-kpi:first-child b, .pn-hero .pn-kpi:first-child > span:not(.pn-badge) { color:var(--on-primary); }
.pn-badge { align-self:flex-start; font-size:11px; font-weight:600; color:var(--accent); background:var(--accent-soft); border:1px solid var(--accent-border); border-radius:var(--radius-pill); padding:1px 8px; margin-top:2px; }
.pn-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }
.pn-card { padding:18px 20px; display:flex; flex-direction:column; gap:12px; min-width:0; }
.pn-card.wide { grid-column:1 / -1; }
.pn-two { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }
.pn-three { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.pn-fig { margin:0; display:flex; flex-direction:column; gap:8px; min-width:0; }
.pn-fig figcaption { font-size:12.5px; font-weight:600; color:var(--muted); }
.pn-fig-total { display:flex; align-items:baseline; gap:8px; }
.pn-fig-total b { font-size:22px; font-weight:700; font-variant-numeric:tabular-nums; }
.pn-fig-total span { font-size:12.5px; color:var(--faint); }
.pn-fig .link-btn { font-size:12px; }
.pn-chart { display:block; height:auto; overflow:visible; }
.pn-bars { display:flex; flex-direction:column; gap:10px; }
.pn-bar-row { display:grid; grid-template-columns:minmax(80px, 34%) minmax(0, 1fr) auto; align-items:center; gap:10px; font-size:12.5px; }
.pn-bar-lbl { color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pn-bar-track { height:10px; border-radius:var(--radius-pill); background:var(--surface-2); overflow:hidden; }
.pn-bar-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg, var(--accent), var(--primary)); }
.pn-bar-num { font-weight:600; color:var(--text); font-variant-numeric:tabular-nums; min-width:3ch; text-align:right; }
.pn-line { fill:none; stroke:var(--primary); stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; }
.pn-area { fill:var(--primary); opacity:.1; }
.pn-tbl { border-collapse:collapse; width:100%; font-size:13px; }
.pn-tbl th { text-align:left; font-weight:600; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--faint); padding:8px 10px; border-bottom:1px solid var(--border-strong); }
.pn-tbl td { padding:9px 10px; border-bottom:1px solid var(--border); color:var(--text); }
.pn-tbl tr:last-child td { border-bottom:0; }
.pn-tbl .num, .pn-money th:not(:first-child) { text-align:right; font-variant-numeric:tabular-nums; }
.pn-tbl td.neg { color:var(--danger); }
.pn-list { display:flex; flex-direction:column; gap:2px; min-width:0; scroll-margin-top:16px; }
.pn-list-title { font-size:12.5px; color:var(--muted); margin:0 0 6px; font-weight:600; }
.pn-list-item { display:flex; align-items:center; gap:10px; width:100%; text-align:left; font:inherit; color:var(--text); background:none; border:0; border-radius:var(--radius-control); padding:9px 10px; cursor:pointer; }
.pn-list-item:hover:not(:disabled) { background:var(--surface-2); }
.pn-list-item:disabled { cursor:default; }
.pn-list-item > div { flex:1; min-width:0; }
.pn-list-item .i-inline { width:16px; height:16px; flex-shrink:0; color:var(--faint); }
.pn-list-item.danger > .i-inline:first-child { color:var(--danger); }
.pn-list-item.warn > .i-inline:first-child { color:var(--warn); }
.pn-list-item .pn-go { width:12px; height:12px; opacity:.6; }
.pn-list-item b { display:block; font-size:13.5px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pn-list-item small { display:block; color:var(--muted); font-size:12px; margin-top:1px; }
@media (max-width: 1100px) { .pn-three { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) {
  .pn-grid, .pn-two, .pn-three { grid-template-columns:minmax(0, 1fr); }
  .pn-kpis { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .pn-card { padding:14px; }
  .pn-ranges { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
  .pn-range { flex-shrink:0; }
  .pn-tbl { font-size:12px; }
  .pn-tbl th, .pn-tbl td { padding:8px 5px; }
  .pn-money td.num { white-space:nowrap; }
}
@media (prefers-reduced-motion: reduce) { button.pn-alert, .pn-range { transition:none; } button.pn-alert:hover { transform:none; } }
/* P6 · Novedades del PJN */
.novedades-list{list-style:none;padding:0;margin:.5rem 0}
.novedad-row{padding:.6rem .75rem;border-bottom:1px solid var(--border);cursor:default}
.novedad-row.unread{border-left:3px solid var(--accent)}
.novedad-fecha{display:block;font-size:.78em;color:var(--text-muted)}
.novedad-texto{margin:.25rem 0;font-size:.88em;white-space:pre-wrap;word-break:break-word}
.novedad-origen{font-size:.72em;color:var(--text-muted);text-transform:uppercase}
/* P9 · Tarjeta de plan */
.plan-card{padding:.5rem .75rem;border-top:1px solid var(--border);margin-top:.25rem}
.plan-row{display:flex;align-items:center;gap:.5rem}
.plan-name{font-size:.88em}
.plan-trial{font-size:.72em;background:#2864D7;color:#fff;border-radius:3px;padding:0 4px}
.plan-features{display:flex;flex-wrap:wrap;gap:.3rem;margin:.3rem 0}
.plan-feat{font-size:.72em;border:1px solid var(--border);border-radius:3px;padding:0 4px}
.plan-note{font-size:.78em;color:var(--text-muted);margin:.3rem 0 0}
.plan-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.plan-btn{font-size:.8em;padding:.25rem .5rem}

/* ── OP#25919 · ítem 9: upsell en Starter — features grisadas y modal de planes ──
   .locked: estado grisado pero clickeable (abre el modal de planes). */
.locked { opacity:.62; filter:grayscale(.5); }
button.locked { cursor:pointer; }
.plan-badge { display:inline-flex; align-items:center; font-size:.68em; color:var(--accent); border:1px solid var(--accent-border); border-radius:999px; padding:1px 7px; margin-left:5px; white-space:nowrap; vertical-align:1px; }
.level-box select option.locked { color:var(--faint); }
.plans-modal { max-width:660px; }
#plans-lock-note { margin-bottom:10px; }
#plans-sheet { display:flex; flex-direction:column; gap:4px; }
.pm-head, .pm-row { display:grid; grid-template-columns:minmax(0,1fr) repeat(3,minmax(0,1fr)); gap:6px 10px; align-items:center; }
.pm-head { padding-bottom:6px; border-bottom:1px solid var(--border); }
.pm-cell { padding:4px 2px; font-size:13px; min-width:0; }
.pm-rail { color:var(--faint); font-size:12px; }
.pm-plan { font-weight:700; }
.pm-cur { border-radius:10px; box-shadow: inset 0 0 0 1px var(--accent-border); background:var(--accent-soft); }
.pm-tag { color:var(--faint); font-size:11px; font-weight:400; }
.pm-set { color:var(--ok-text); }
.pm-nop { color:var(--faint); }
.pm-cell-cta { justify-self:center; }
.pm-cta { white-space:nowrap; }

/* ── Correo (OP#25919 · ítem 8): resumen + redactar con el LLM ── */
.mail-view { max-width: 960px; }
.mail-view .page-h { margin-bottom: 14px; }
.mail-view .card { border:1px solid var(--border-strong); border-radius:14px; background:var(--surface); }
.mail-warn { border:1px solid color-mix(in srgb, var(--warn) 45%, transparent); background:color-mix(in srgb, var(--warn) 9%, var(--surface)); color:var(--text); border-radius:10px; padding:8px 12px; font-size:13px; margin-bottom:12px; }
/* OP#25919 ronda 2: lista a lo ancho; Redactar ocupa la vista y oculta la lista. */
.mail-grid { display:block; }
.mail-compose.hidden { display:none; }
/* Dark: compose neutro (menos azul/gris), superficie plana y caret del tema */
.mail-compose { background:var(--surface); border:1px solid var(--border); }
.mail-compose .field { caret-color:var(--text); }
.ml-preview { background:var(--surface); }
.mail-actions { margin:0 0 12px; }
.ml-folders { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 14px; }
.ml-folder { display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border:1px solid var(--border); border-radius:999px; background:var(--surface); color:var(--muted); font-size:12.5px; cursor:pointer; }
.ml-folder.on { background:var(--accent-soft); border-color:var(--accent); color:var(--text); }
.ml-folder .n { font-weight:700; color:var(--accent); }
.ml-mail { cursor:pointer; }
.ml-mail .reply-btn { margin-top:4px; align-self:flex-start; }
.ml-mail .reply-btn.hidden, .ml-acts .ghost-btn.hidden { display:none; }
.ml-acts { display:none; gap:6px; margin-top:6px; flex-wrap:wrap; }
.ml-mail.open .ml-acts { display:inline-flex; }
.ml-mail .p { color:var(--muted); font-size:12px; }
.mail-h3 { font-size:13px; font-weight:750; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:10px; }
.ml-totales { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.ml-total { flex:1; min-width:110px; border:1px solid var(--border-strong); border-radius:12px; background:var(--surface); padding:10px 12px; display:flex; flex-direction:column; gap:2px; cursor:pointer; transition:border-color .15s, background .15s; }
.ml-total:hover { border-color:var(--accent-border); background:var(--accent-soft); }
.ml-total.active { border-color:var(--accent); background:var(--accent-soft); }
.ml-total b { font-size:20px; letter-spacing:-.02em; }
.ml-total small { color:var(--faint); font-size:11.5px; }
.ml-grupo { margin-bottom:10px; padding:12px 14px; }
.ml-grupo h4 { font-size:13px; font-weight:700; margin-bottom:6px; }
.ml-mail { display:flex; flex-direction:column; gap:2px; padding:7px 0; border-top:1px solid var(--border); font-size:13px; }
.ml-mail:first-child { border-top:0; }
.ml-mail .t { font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ml-mail.no-leido .t { color:var(--accent); }
.ml-mail small { color:var(--faint); font-size:11.5px; }
.ml-mail .p { color:var(--muted); font-size:12px; }
.mail-compose { padding:14px 16px; }
.mail-compose .field { width:100%; resize:vertical; }
.mail-compose label { display:flex; flex-direction:column; gap:4px; color:var(--muted); font-size:12px; margin-bottom:10px; }
.mail-compose label.f-full { grid-column:1 / -1; }
.ml-preview { margin-top:14px; border-top:1px solid var(--border); padding-top:12px; }
.mail-bar { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:4px; }
.mail-bar > label { margin-bottom:0; }
@media (max-width: 820px) { .mail-grid { grid-template-columns:minmax(0, 1fr); } }

/* Plan 2: Búsqueda semántica de expediente */
.cv-search { display:flex; flex-direction:column; gap:8px; margin-bottom:12px; }
.cv-search-input { width:100%; padding:8px 12px; border:1px solid var(--border); border-radius:6px; background:var(--surface1); color:var(--text); font-size:14px; }
.cv-search-input:focus { outline:none; border-color:var(--accent); }
.cv-search-results { display:flex; flex-direction:column; gap:8px; max-height:400px; overflow-y:auto; }
.cv-hit { padding:10px 12px; border-radius:6px; background:var(--surface2); border-left:3px solid var(--accent); }
.cv-hit-cite { display:block; font-size:12px; color:var(--muted); margin-bottom:4px; font-weight:500; }
.cv-hit-text { font-size:13px; line-height:1.5; }
.cv-hit-text mark { background:rgba(255, 210, 0, .35); border-radius:2px; }
.cv-dragover { outline:2px dashed var(--accent, #0af); outline-offset:3px; border-radius:8px; }
.cv-docs { display:flex; flex-direction:column; gap:8px; }
.cv-docs-list { display:flex; flex-direction:column; gap:4px; }
.cv-doc { display:flex; align-items:center; gap:8px; padding:4px 6px; border-radius:6px; background:var(--surface2); }
.cv-doc-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* OP#25841: fila con checkbox (dominio del estudio) */
.check-row { display:flex; align-items:center; gap:8px; margin:10px 0 4px; font-size:14px; color:var(--text); }
.check-row input:disabled + span { color:var(--muted); }

/* OP#26313 · Conexión PJN con credencial personal */
.pjn-card { display:block; }
.pjn-card .pjn-body { display:flex; flex-direction:column; gap:10px; }
.pjn-warning { border:1px solid var(--border-strong); border-left:3px solid var(--warn); border-radius:10px; padding:10px 12px; background:var(--surface-2); font-size:13px; }
.pjn-warning p { margin:6px 0 0; color:var(--muted); }
.pjn-form { display:flex; flex-direction:column; gap:8px; max-width:420px; }
.pjn-form input[type=text], .pjn-form input[type=password] { padding:8px 10px; border:1px solid var(--border-strong); border-radius:8px; background:var(--surface); color:var(--text); }
.pjn-accept { display:flex; gap:8px; align-items:flex-start; font-size:13px; }
.pjn-msg { color:var(--muted); min-height:1em; }
.pjn-inbox { border-top:1px solid var(--border); padding-top:8px; }
.pjn-item { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; padding:8px 0; border-bottom:1px solid var(--border); }
.pjn-item-meta { display:flex; flex-direction:column; min-width:0; }
.pjn-item select { max-width:220px; }

/* OP#26323 · causa sincronizada con el PJN */
.pjn-badge { display:inline-block; margin-top:3px; padding:1px 7px; border-radius:999px; font-size:11px; font-weight:600; color:var(--primary); background:var(--accent-soft); border:1px solid var(--accent-border); }

/* OP#26328 · filtros de causas */
.causas-filtros { margin:6px 0; font-size:13px; }
.causas-filtros summary { cursor:pointer; color:var(--muted); padding:4px 0; }
.causas-filtros input[type=search], .causas-filtros select { width:100%; margin:4px 0; padding:6px 8px; border:1px solid var(--border-strong); border-radius:8px; background:var(--surface); color:var(--text); }
.causas-filtro-chk { display:flex; gap:6px; align-items:center; margin:4px 0; }

/* OP#26330 · responsable de la causa */
.cv-resp { display:inline-flex; gap:6px; align-items:center; font-size:13px; color:var(--muted); margin:4px 0 8px; }
.cv-resp select { padding:4px 8px; border:1px solid var(--border-strong); border-radius:8px; background:var(--surface); color:var(--text); }

/* OP#26322 · plazos estimados */
.plazos-box { margin:8px 0 14px; display:flex; flex-direction:column; gap:6px; }
.plazo-row { display:flex; justify-content:space-between; gap:8px; padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.plazo-row.urgente { border-left:3px solid var(--danger); }
.plazo-info { display:flex; flex-direction:column; min-width:0; }
.plazo-form { display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding:8px 10px; border:1px dashed var(--border-strong); border-radius:10px; }
.plazo-form input, .plazo-form select { padding:6px 8px; border:1px solid var(--border-strong); border-radius:8px; background:var(--surface); color:var(--text); }
.plazo-form .causa-meta { flex-basis:100%; }

/* OP#26324 · Mi día */
.midia-kpis { display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:8px; margin:6px 0 10px; }
.midia-kpi { display:flex; flex-direction:column; padding:10px 12px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.midia-kpi b { font-size:22px; }
.midia-kpi small { color:var(--muted); }
.midia-alert { display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding:10px 12px; margin-bottom:10px; border:1px solid var(--err-border); border-left:3px solid var(--danger); border-radius:12px; background:var(--err-bg); color:var(--err-text); }
.midia-chip { padding:3px 10px; border-radius:999px; border:1px solid var(--err-border); background:var(--surface); color:var(--text); cursor:pointer; font-size:12px; }
.midia-list { display:flex; flex-direction:column; gap:4px; }
.midia-row { display:flex; gap:10px; text-align:left; padding:6px 8px; border:0; border-radius:8px; background:none; color:var(--text); cursor:pointer; }
.midia-row:hover { background:var(--surface-2); }
.midia-when { min-width:90px; color:var(--muted); font-size:12px; }

/* OP#26325 / OP#26327 · acciones IA de la causa */
.cv-acciones { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 12px; }

/* OP#26329 · honorarios */
.honorarios-box { margin:0 0 12px; }
.honorarios-box summary { cursor:pointer; font-weight:600; padding:4px 0; }
.honorarios-out { display:flex; flex-direction:column; gap:6px; margin-top:6px; }

/* ══ OP#26312 · Capa Airia (componentes base para toda la app) ══════════════════════════════════════
   Va al final a propósito: ajusta radios, vidrio, sombras y píldoras sin reescribir cada pantalla. */
html { background:var(--bg); }
body { background:var(--bg-gradient); background-attachment:fixed; }
::selection { background:color-mix(in srgb, var(--primary) 22%, transparent); }
.surface-card { position:relative; background:var(--glass); -webkit-backdrop-filter:blur(18px) saturate(1.4); backdrop-filter:blur(18px) saturate(1.4); border:1px solid var(--border); border-radius:var(--radius-surface); box-shadow:var(--elev-1); }
.hl, .page-h h1 em, .hello h1 em { font-style:normal; color:var(--accent); }

/* Shell: barra lateral y topbar de vidrio, ítems activos en píldora */
.nav { background:var(--glass); -webkit-backdrop-filter:blur(18px) saturate(1.4); backdrop-filter:blur(18px) saturate(1.4); border-right:1px solid var(--border); }
.topbar { background:color-mix(in srgb, var(--bg) 55%, transparent); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.nav-item, .rec, .proj, .sess, .sections .sec { border-radius:var(--radius-control); }
.nav-item.on, .rec.active, .proj.on, .sess.active, .sections .sec.active { background:var(--tint); color:var(--text); }
.nav-item.on svg { color:var(--accent); opacity:1; }
.new-task { border-radius:var(--radius-pill); background:var(--primary); color:var(--on-primary); border-color:transparent; justify-content:center; box-shadow:0 6px 18px color-mix(in srgb, var(--primary) 28%, transparent); }
.new-task:hover { filter:brightness(1.06); border-color:transparent; }
.panel { background:var(--glass); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); }
.menu-pop, .bell-panel, .search-box { background:var(--glass-strong); -webkit-backdrop-filter:blur(20px) saturate(1.4); backdrop-filter:blur(20px) saturate(1.4); border-color:var(--border); border-radius:var(--radius-surface); box-shadow:var(--elev-2); }
.icon-btn { border-radius:var(--radius-control); }

/* Botones: primarios y fantasma en píldora */
button.primary, button.send, .top-btn { border-radius:var(--radius-pill); }
button.primary, button.send, .top-btn:not(.ghost-btn), .btn-pri { background:var(--primary); color:var(--on-primary); box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 24%, transparent); }
.btn-pri, .pill-btn, .tool-btn, .pill, button.ghost, .err-actions button, .frow .mini, .lib-row .mini, .auto-row .mini, .midia-chip, .day-btn, .lg { border-radius:var(--radius-pill); }
.pill-btn, button.ghost, .top-btn.ghost-btn { background:var(--surface); border:1px solid var(--border-strong); color:var(--text); }
.pill-btn:hover, button.ghost:hover, .top-btn.ghost-btn:hover { border-color:var(--accent-border); background:var(--tint); filter:none; }
#send, .ask .send { border-radius:50%; }
.seg { border-radius:var(--radius-pill); padding:2px; background:var(--surface-2); border-color:var(--border); }
.seg button { border-radius:var(--radius-pill); }
.seg button.on { background:var(--surface); box-shadow:var(--elev-1); }

/* Pestañas en píldora */
.tabs { border-bottom:0; gap:6px; }
.tabs .tab { border:1px solid transparent; border-radius:var(--radius-pill); padding:6px 14px; }
.tabs .tab:hover { background:var(--surface-2); }
.tabs .tab.active { border-radius:var(--radius-pill); background:var(--tint); border-color:var(--accent-border); color:var(--text); }
.ptabs [role="tab"] { border-bottom:0; border-radius:var(--radius-pill); }
.ptabs [role="tab"].on { background:var(--tint); }
.ptabs { border-bottom:1px solid var(--border); padding-bottom:8px; gap:4px; }
.ws-tabs [role="tab"] { border-radius:var(--radius-pill); }

/* Tarjetas y superficies: radio de superficie, borde suave, elevación leve */
.box, .hlist, .pv-list, .lib-list, .cl-list, .conn-card, .agent-card, .tpl, .agc, .cal-create, .month, .week, .mail-view .card,
.cc-total, .cc-sheet, .cc-link, .midia-kpi, .ficha, .pcard, .action-card, .doc-card, .activity, .ver-row, .ag-up, .ml-total, .cal-item, .plazo-row, .event-card {
  border-radius:var(--radius-surface); border-color:var(--border); box-shadow:var(--elev-1);
}
.box, .hlist, .pv-list, .lib-list, .cl-list, .conn-card, .cal-create, .mail-view .card, .cc-sheet, .cc-link, .ficha, .ver-row { background:var(--glass-strong); }
.agc { padding:14px; }
.agc.on, .agc:hover, .agent-card:hover, .agent-card.on, .tpl:hover { border-color:var(--accent-border); background:var(--surface); }
.composer { border-radius:22px; border-color:var(--border); background:var(--glass-strong); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); box-shadow:var(--elev-2); }
.agent-card .ic, .agc .ic, .page-h .big-ic { border-radius:12px; background:var(--tint); }

/* Campos: radio de control y foco con anillo */
.inp, .doc-pick, .instr-edit, .causa-form input, .foja-q, .ficha-edit, select, input.field, .searchf, .ask, .cc-sheet select, .cc-search, .pjn-form input[type=text], .pjn-form input[type=password],
.causas-filtros input[type=search], .causas-filtros select, .plazo-form input, .plazo-form select, .cv-resp select, .cv-search-input, .rec .rename, .menu-pop .tag-edit input {
  border-radius:var(--radius-control); border-color:var(--border-strong); background:var(--surface);
}
.inp:focus, .doc-pick:focus, .instr-edit:focus, .causa-form input:focus, .foja-q:focus, .ficha-edit:focus, select:focus-visible, input.field:focus, .cv-search-input:focus,
.pjn-form input:focus, .plazo-form input:focus, .causas-filtros input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.ask { border-radius:var(--radius-pill); }

/* Modales y diálogos: vidrio con radio amplio */
.modal, .ag-dialog { border-radius:20px; border:1px solid var(--border); background:var(--glass-strong); -webkit-backdrop-filter:blur(22px) saturate(1.4); backdrop-filter:blur(22px) saturate(1.4); box-shadow:var(--elev-2); }
.overlay, .ag-dialog::backdrop { -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.toast { border-radius:var(--radius-pill); box-shadow:var(--elev-2); }

/* Badges y chips */
.status, .tag, .tagc, .chip, .role, .plan-badge, .cc-badge, .pjn-badge { border-radius:var(--radius-pill); }
.plan-trial, .plan-feat { border-radius:var(--radius-pill); padding:0 8px; }

/* Títulos de página */
.page-h h1, .causa-view h1, .cal-bar h2 { font-weight:600; letter-spacing:-.015em; }
.hello h1 { font-weight:600; }
.causa-view h2, .conn-view h2 { font-weight:600; }

/* Mensajes */
.msg.user { border-radius:20px 20px 6px 20px; }
.msg.error, .msg.ok, .msg.sys { border-radius:var(--radius-surface); }
.chat .msg.assistant.incomplete .incomplete-note, .msg.assistant.incomplete .incomplete-note { border-radius:var(--radius-control); }

/* Glifos reemplazados por íconos (D5: sin emojis) */
.activity ol li { display:flex; gap:6px; align-items:baseline; }
.activity ol li::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--ok-text); flex-shrink:0; transform:translateY(-1px); }
button.stop-btn::before { content:''; display:inline-block; width:9px; height:9px; border-radius:2px; background:currentColor; margin-right:8px; vertical-align:0; }
.i-inline { width:14px; height:14px; vertical-align:-2px; }
a.dl .i-inline { margin-right:6px; }

/* Botón base (especificidad 0 con :where): ningún botón queda con el aspecto del navegador; cualquier clase propia gana. */
:where(button:not([class]), button.wide:not(.primary), button.xs:not(.icon-btn)) {
  display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:32px; padding:6px 14px;
  border:1px solid var(--border-strong); border-radius:var(--radius-pill); background:var(--surface); color:var(--text);
  font:inherit; font-size:13px; font-weight:500; cursor:pointer; transition:background .15s, border-color .15s;
}
:where(button:not([class]), button.wide:not(.primary), button.xs:not(.icon-btn)):hover { border-color:var(--accent-border); background:var(--tint); }
:where(button.wide:not(.primary)) { width:100%; }
:where(button:not([class]), button.wide:not(.primary)):disabled { opacity:.55; cursor:not-allowed; }
.ghost-btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:32px; padding:6px 14px; border:1px solid var(--border-strong); border-radius:var(--radius-pill); background:var(--surface); color:var(--text); font:inherit; font-size:13px; font-weight:500; cursor:pointer; text-decoration:none; }
.ghost-btn:hover { border-color:var(--accent-border); background:var(--tint); }
.ghost-btn.xs { min-height:26px; padding:3px 10px; font-size:12px; }
.ghost-btn:disabled { opacity:.55; cursor:not-allowed; }

/* ── Ajustes UX 22/10 (OP#26312): menú de usuario ordenado, Conexiones en el Workspace, Mi día como sección ── */
.menu-pop button { justify-content:flex-start; }
.menu-pop .plan-card { padding:10px 12px; margin:4px 0; border:1px solid var(--border); border-radius:var(--radius-control); background:var(--surface-2); }
.menu-pop .plan-row { justify-content:space-between; }
.menu-pop .plan-features { display:flex; flex-wrap:wrap; gap:4px; margin:6px 0 2px; }
.menu-pop .plan-feat { white-space:nowrap; padding:1px 8px; font-size:11px; color:var(--muted); background:var(--surface); }
.menu-pop .plan-note { font-size:11.5px; color:var(--faint); }
.ws-pane .conn-view.in-ws { padding:0; max-width:none; margin:0; flex:initial; overflow:visible; }
.ws-pane .conn-view.in-ws > h2, .ws-pane .conn-view.in-ws > .page-h { display:none; }
.midia-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }
.midia-grid .box h3, #view-midia .box > h3 { font-size:15px; font-weight:600; margin:0 0 6px; }
.midia-row { align-items:center; }
.midia-row .status { margin-left:auto; }
#midia-body { display:flex; flex-direction:column; gap:16px; }
@media (max-width: 860px) { .midia-grid { grid-template-columns:minmax(0, 1fr); } }

/* ── OP#26387 · Honorarios de la causa (presupuesto aprobado y regulaciones) ── */
.hon { display:flex; flex-direction:column; gap:12px; margin:8px 0 18px; }
.hon-totals .cc-total dl { grid-template-columns:max-content 1fr; }
.hon-card { background:var(--glass-strong); border:1px solid var(--border); border-radius:var(--radius-surface); box-shadow:var(--elev-1); padding:14px 16px; display:flex; flex-direction:column; gap:8px; }
.hon-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.hon-card-head > b { font-size:14px; }
.hon-monto { font-size:20px; font-weight:700; font-variant-numeric:tabular-nums; }
.hon-nota { margin:0; font-size:13px; color:var(--muted); white-space:pre-wrap; overflow-wrap:anywhere; }
.hon-adj { font-size:13px; color:var(--accent); align-self:flex-start; }
.hon-acts { display:flex; flex-wrap:wrap; gap:6px; }
.hon-acts .ghost { padding:4px 12px; font-size:12px; }
.hon-reg { border-top:1px solid var(--border); padding:10px 0 4px; display:flex; flex-direction:column; gap:6px; }
.hon-reg:first-of-type { border-top:0; }
.hon-reg-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.hon-reg-info { display:flex; flex-direction:column; gap:2px; min-width:0; }
.hon-reg-info b { font-size:14px; overflow-wrap:anywhere; }
.hon-reg-nums { display:flex; flex-direction:column; gap:2px; }
.hon-reg-nums .hon-monto { font-size:17px; }
.hon-cobro { font-size:12.5px; color:var(--muted); font-variant-numeric:tabular-nums; }
.hon-form-host:empty { display:none; }
.hon-form { max-width:560px; background:var(--surface); border:1px solid var(--border-strong); border-radius:var(--radius-surface); padding:14px 16px; }
.hon-form h4 { font-size:14px; margin:0 0 4px; }

/* OP#26388 · Correo: marca de pendiente como punto de CSS (antes un glifo) */
.ml-mail .t.pend::before { content:''; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--warn); margin-right:7px; vertical-align:1px; }

/* OP#26388 · el selector de análisis muestra "Automático (recomendado)" completo */
.pill.level-box { max-width:320px; }
.level-box select { max-width:240px; }
@media (max-width: 860px) { .pill.level-box { max-width:100%; } .level-box select { max-width:200px; } }

/* D5 · marcas de estado del agente ([ok] [atención] [riesgo]) como puntos */
.mk { display:inline-block; width:9px; height:9px; border-radius:50%; margin:0 4px 1px 0; vertical-align:middle; }
.mk-ok { background:var(--ok-text); } .mk-atencion { background:var(--warn); } .mk-riesgo { background:var(--danger); }
