@charset "UTF-8";
/* Mesa · Manual de Estilos v2 de Tableros de Gestión (Municipalidad de La Plata) + capa de vidrio.
   Tokens con los nombres del manual. Los colores de semáforo tienen variante "-text" más oscura
   para que el texto chico cumpla contraste AA. */

@font-face{font-family:"Montserrat";src:url("fonts/montserrat.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
 /* Familia 1 · Marca navy */
 --navy-950:#07213a;--navy-900:#0d3356;--navy-800:#134264;--navy-700:#1a5278;
 /* Familia 2 · Acento teal / cyan */
 --cyan-glow:#00c8f0;--accent-dark:#2d6178;--accent:#5b9db5;--accent-text:#245e76;--accent-soft:#e6f4f8;--accent-border:#bbd8e4;--sky:#66a5b9;
 /* Familia 3 · Categorías */
 --cat-violet:#5b4fcf;--cat-teal:#0e8a7d;--cat-teal-md:#1aa899;--cat-sky:#2980b9;
 /* Familia 4 · Semáforos (relleno / texto) */
 --green:#0fa876;--green-dark:#0a9668;--green-soft:#eafaf4;--green-text:#07734f;
 --amber:#c97a00;--amber-soft:#fef9ee;--amber-text:#8a5300;
 --red:#e03535;--red-dark:#cc2222;--red-soft:#fef1f1;--red-text:#b42020;
 /* Familias 5-6 · Neutros y fondos */
 --ink:#0c1629;--ink-soft:#2d3f55;--ink-faint:#5e738a;--line:#d4dfe6;--field-line:#8197ab;
 --bg:#edf2f6;--paper:#f3f7fa;--card:#ffffff;
 /* Acción "Marcar enviado": teal de categoría, más oscuro para texto blanco */
 --send-a:#0c7f73;--send-b:#09655b;
 /* Vidrio */
 --glass:linear-gradient(135deg,rgba(255,255,255,.7),rgba(255,255,255,.42));--glass-solid:rgba(255,255,255,.62);--glass-strong:rgba(255,255,255,.82);--glass-border:rgba(255,255,255,.85);
 --glass-dark:linear-gradient(160deg,rgba(13,51,86,.94),rgba(7,33,58,.9));
 --glass-edge:inset 0 1px 0 rgba(255,255,255,.95),inset 0 0 0 1px rgba(255,255,255,.25);
 --blur:blur(22px) saturate(180%);
 /* Estructurales */
 --shadow-rgb:7,33,58;--radius:12px;--pill:10px;
 --shadow-1:0 2px 12px rgba(var(--shadow-rgb),.06),0 1px 3px rgba(var(--shadow-rgb),.04);
 --shadow-2:0 10px 30px rgba(var(--shadow-rgb),.12),0 2px 6px rgba(var(--shadow-rgb),.05);
 --shadow-3:0 30px 80px rgba(var(--shadow-rgb),.3);
 --ease:cubic-bezier(.16,1,.3,1);
 --z-sticky:10;--z-nav:20;--z-scrim:30;--z-drawer:40;--z-toast:60;
 --side:264px;--tabbar:78px;
 color-scheme:light;font-family:"Montserrat","Segoe UI",system-ui,-apple-system,sans-serif;font-size:100%;line-height:1.5;color:var(--ink);
 -webkit-text-size-adjust:100%;text-size-adjust:100%;
}
@view-transition{navigation:auto}

/* ── Base ──────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{font-size:87.5%;scroll-padding-top:24px;background:var(--bg)}
body{margin:0;min-height:100dvh;font-size:1rem;font-weight:500;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;position:relative;isolation:isolate}
/* Fondo aurora: le da al vidrio algo que esmerilar */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
 radial-gradient(50vw 45vh at 4% 0%,rgba(0,200,240,.42),transparent 64%),
 radial-gradient(45vw 50vh at 100% 2%,rgba(91,79,207,.34),transparent 64%),
 radial-gradient(42vw 42vh at 58% 48%,rgba(102,165,185,.22),transparent 66%),
 radial-gradient(58vw 52vh at 94% 100%,rgba(14,138,125,.32),transparent 64%),
 radial-gradient(52vw 52vh at 8% 98%,rgba(26,82,120,.3),transparent 64%),
 var(--bg)}
h1,h2,h3,p,ol,ul{margin:0}
h1{font-size:clamp(1.75rem,2.3vw,2.2rem);line-height:1.15;font-weight:800;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
h2{font-size:1.2rem;line-height:1.25;font-weight:800;letter-spacing:-.01em;text-wrap:balance}
h3{font-size:1.05rem;font-weight:700}
strong{font-weight:700}
small{font-size:.875rem}
a{color:var(--accent-dark);text-decoration:none;text-underline-offset:.2em;font-weight:700}
a:hover{color:var(--navy-900)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button,a,input,select,label,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--accent-dark);outline-offset:3px;border-radius:8px}
.sidebar :focus-visible,.mobile-bar :focus-visible,.today-panel :focus-visible,.app-toast :focus-visible{outline-color:var(--cyan-glow)}
svg{width:1.25rem;height:1.25rem;stroke-width:2;flex-shrink:0}
img{display:block;max-width:100%}
input[type=checkbox],input[type=radio]{accent-color:var(--navy-900)}
::selection{background:var(--cyan-glow);color:var(--navy-950)}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--ink-soft)}
.small{font-size:.9rem}
.mono{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-weight:700}
.numeric{text-align:right;font-variant-numeric:tabular-nums}
.skip-link{position:fixed;top:12px;left:12px;z-index:var(--z-toast);background:var(--navy-900);color:white;padding:12px 20px;border-radius:var(--pill);font-weight:700;transform:translateY(-160%);transition:transform .2s var(--ease)}
.skip-link:focus{transform:none}
[hidden]{display:none!important}

/* ── Superficies de vidrio ─────────────────────────────────────────────── */
.cutbar,.how-to,.ref-card,.recipient-item,.table-wrap,.stat,.activity-list,.panel,.upload-section,.account-section,.create-user,.inline-form,.more-filters,.empty-state,.login-panel{
 background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--glass-edge),var(--shadow-1)}
.cutbar,.how-to,.table-wrap,.activity-list,.panel,.upload-section,.account-section,.create-user,.inline-form,.more-filters,.empty-state,.login-panel{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
@media (min-width:1024px) and (hover:hover){
 .ref-card,.recipient-item,.stat{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
}

/* ── Sidebar (navy, vidrio oscuro) ─────────────────────────────────────── */
.sidebar{position:fixed;inset:12px auto 12px 12px;width:var(--side);background:var(--glass-dark);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid rgba(255,255,255,.08);border-radius:16px;box-shadow:var(--shadow-2),inset 0 1px 0 rgba(255,255,255,.08);color:#e2f0f7;display:flex;flex-direction:column;padding:22px 14px 16px;z-index:var(--z-drawer);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;isolation:isolate}
.sidebar::before{content:"";position:absolute;inset:-40px -60px auto auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(0,200,240,.22),transparent 65%);z-index:-1;pointer-events:none}
.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:4px}
.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 6px}
.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}
.brand:hover{color:inherit}
.brand img{width:44px;height:44px;border-radius:12px;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 6px 18px rgba(0,200,240,.18)}
.brand-name{display:flex;flex-direction:column;font-size:1.45rem;font-weight:800;line-height:1;letter-spacing:-.02em;color:#fff}
.brand-name small{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8;margin-top:6px}
.sidebar .sidebar-close{display:none}
.election-day{display:flex;align-items:center;gap:10px;margin:20px 4px 20px;padding:10px 14px;border-radius:var(--pill);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);font-size:.9rem;font-weight:700;color:#fff}
.election-day svg{color:var(--cyan-glow);width:1.1rem;height:1.1rem;filter:drop-shadow(0 0 6px rgba(0,200,240,.6))}
.sidebar nav{display:flex;flex-direction:column;gap:3px}
.nav-link{position:relative;display:flex;align-items:center;gap:12px;min-height:50px;padding:8px 16px;border-radius:var(--pill);font-size:1rem;font-weight:600;color:#a9c4d4;text-decoration:none;transition:background .15s ease,color .15s ease}
.nav-link:hover{background:rgba(255,255,255,.09);color:#e2f0f7}
.nav-link.active{background:rgba(255,255,255,.12);color:#fff;font-weight:700;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.nav-link.active svg{color:var(--cyan-glow);filter:drop-shadow(0 0 6px rgba(0,200,240,.55))}
.nav-link.active::after{content:"";width:7px;height:7px;margin-left:auto;border-radius:50%;background:var(--cyan-glow);box-shadow:0 0 8px var(--cyan-glow)}
.nav-link svg{width:1.3rem;height:1.3rem}
.admin-nav{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
.admin-nav summary{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 10px 8px 16px;border-radius:var(--pill);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#7f9bb0;cursor:pointer;list-style:none;transition:background .15s,color .15s}
.admin-nav summary::-webkit-details-marker{display:none}
.admin-nav summary:hover{background:rgba(255,255,255,.07);color:#cbe3ee}
.admin-nav[open] summary{color:#7cb8cc}
.admin-nav summary .chev{margin-left:auto;width:30px;height:30px;padding:6px;border-radius:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#cbe3ee;transition:transform .22s var(--ease),background .18s}
.admin-nav[open] summary .chev{transform:rotate(180deg);background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}
.admin-nav .nav-link{min-height:46px;font-size:.95rem;padding-left:20px}
.sidebar-user{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:stretch;gap:8px}
.sidebar-user>form{display:flex}
.sidebar-user>a{display:flex;align-items:center;gap:11px;flex:1;min-width:0;color:#fff;text-decoration:none;padding:6px 10px;border-radius:14px;font-weight:700}
.sidebar-user>a:hover{background:rgba(255,255,255,.07);color:#fff}
.sidebar-user small{display:block;color:#94a3b8;font-size:.78rem;font-weight:600}
.sidebar-user>a>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-user>a>span:last-child small{overflow:hidden;text-overflow:ellipsis}
.avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;font-weight:800;font-size:1rem;flex-shrink:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.logout-button{display:flex;align-items:center;justify-content:center;width:100%;gap:8px;min-height:46px;padding:8px 12px;flex-shrink:0;border:1px solid rgba(255,255,255,.14);border-radius:var(--pill);background:rgba(255,255,255,.04);color:#e2f0f7;font-weight:700;font-size:.88rem;transition:background .15s}
.logout-button:hover{background:rgba(255,255,255,.12)}

/* ── Workspace ─────────────────────────────────────────────────────────── */
.workspace{margin-left:calc(var(--side) + 12px);min-height:100dvh;display:flex;flex-direction:column}
.mobile-bar{display:none}
#main{width:100%;max-width:1320px;margin:0 auto;padding:36px 44px 60px;flex:1;min-width:0;outline:none}
.footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 18px;max-width:1320px;width:100%;margin:0 auto;padding:20px 44px 28px;font-size:.85rem;font-weight:600;color:var(--ink-soft);border-top:1px solid rgba(var(--shadow-rgb),.08)}
.tabbar,.scrim{display:none}

/* ── Encabezados ───────────────────────────────────────────────────────── */
.page-head,.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:14px 24px;flex-wrap:wrap;margin-bottom:24px}
.page-heading>div,.page-head>div{min-width:0}
.eyebrow,.greeting{display:block;font-size:.95rem;font-weight:700;color:var(--accent-text);margin-bottom:6px}
.count-label{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:var(--pill);background:var(--glass-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-edge),var(--shadow-1);font-weight:700;font-size:.9rem;color:var(--navy-900);white-space:nowrap}
.back-link,.back-to-groups{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:-6px 0 8px;padding:0 4px;font-size:.98rem;transition:gap .18s var(--ease)}
.back-link:hover{gap:10px}
.section-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 12px;margin:36px 0 14px}
.section-heading h2{display:flex;align-items:center;gap:10px;font-size:1.12rem}
.section-heading h2::before,.upload-section h2::before,.account-section h2::before{content:"";width:3px;height:16px;border-radius:2px;background:var(--accent-dark);flex-shrink:0}
.section-heading a{display:inline-flex;gap:4px;align-items:center;font-size:.95rem;min-height:44px;transition:gap .18s var(--ease)}
.section-heading a:hover{gap:8px}
.section-heading svg{width:1.05rem;height:1.05rem}

/* ── Botones (píldora) ─────────────────────────────────────────────────── */
.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:11px 22px;border:1.5px solid var(--line);border-radius:var(--pill);background:var(--card);color:var(--ink-soft);font-size:.98rem;font-weight:700;line-height:1.15;white-space:nowrap;text-decoration:none;transition:all .2s var(--ease)}
.button:hover{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent-text);transform:translateY(-1.5px)}
.button:active:not(:disabled),.icon-button:active:not(:disabled){transform:scale(.97)}
.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.5;transform:none}
.button.dark,.button.brand{background:var(--navy-900);border-color:rgba(255,255,255,.1);color:#fff;box-shadow:0 4px 14px rgba(7,33,58,.22)}
.button.dark:hover,.button.brand:hover{background:var(--navy-800);color:#fff;box-shadow:0 8px 20px rgba(7,33,58,.28)}
.button.primary,.button.signal{background:linear-gradient(135deg,var(--send-a),var(--send-b));border-color:rgba(255,255,255,.12);color:#fff;box-shadow:0 4px 14px rgba(9,101,91,.25)}
.button.primary:hover,.button.signal:hover{background:linear-gradient(135deg,#0d8a7d,var(--send-a));color:#fff;box-shadow:0 8px 20px rgba(9,101,91,.3)}
.button.subtle{background:var(--card)}
.button.compact{min-height:44px;padding:8px 16px;font-size:.92rem;gap:7px}
.button svg{width:1.25rem;height:1.25rem}
.icon-button{display:inline-grid;place-items:center;width:46px;height:46px;flex-shrink:0;border:1.5px solid transparent;border-radius:10px;background:transparent;color:var(--ink-soft);transition:background .18s,border-color .18s,transform .12s var(--ease)}
.icon-button:hover{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent-dark)}
.icon-button svg{width:1.3rem;height:1.3rem}
.row-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.row-actions.status-actions{justify-content:flex-start}
.is-loading svg{animation:spin 1s linear infinite}

/* Desplegables: flecha circular 36px (norma del manual) */
summary svg.chev{width:36px;height:36px;padding:8px;margin-left:auto;border-radius:10px;background:var(--accent-soft);border:1.5px solid var(--accent-border);color:var(--accent-dark);transition:transform .22s var(--ease),background .18s,color .18s,border-color .18s}
details[open]>summary svg.chev{transform:rotate(180deg);background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}

/* ── Formularios ───────────────────────────────────────────────────────── */
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea{min-height:52px;width:auto;max-width:100%;min-width:0;padding:12px 18px;border:1.5px solid var(--field-line);border-radius:var(--radius);background:var(--card);font-size:1rem;font-weight:500;color:var(--ink);transition:border-color .18s,box-shadow .18s}
input:not([type=checkbox]):not([type=radio]):hover,select:hover{border-color:var(--accent-dark)}
input:not([type=checkbox]):not([type=radio]):focus,select:focus{outline:none;border-color:var(--accent-dark);box-shadow:0 0 0 3px rgba(45,97,120,.32)}
input::placeholder{color:var(--ink-faint);opacity:1}
select{appearance:none;padding-right:46px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6178' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:18px;cursor:pointer}
select[multiple]{background-image:none;padding-right:12px;min-height:110px}
input[type=checkbox]{width:22px;height:22px;margin:0;flex-shrink:0;cursor:pointer}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field>label,.field-label{font-size:.98rem;font-weight:700;color:var(--ink)}
.field input:not([type=checkbox]),.field select{width:100%}
.field ul:not(.errorlist),.field div[id]:has(label){list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.field ul:not(.errorlist) label,.field div[id] label,.team-checks label{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:8px 16px;border:1.5px solid var(--line);border-radius:var(--pill);background:var(--card);font-weight:700;font-size:.95rem;color:var(--ink-soft);cursor:pointer;transition:all .18s ease}
.field div[id] label:has(input:checked),.team-checks label:has(input:checked){background:var(--accent-soft);border-color:var(--accent-dark);color:var(--accent-text)}
.stack-form{display:flex;flex-direction:column;gap:22px}
.errorlist{list-style:none;padding:0;margin:2px 0 0;color:var(--red-text);font-size:.92rem;font-weight:700}
.helptext{color:var(--ink-soft);font-size:.88rem}
.check-label{display:inline-flex;align-items:center;gap:11px;cursor:pointer;font-size:.98rem;font-weight:700;min-height:46px;color:var(--ink-soft)}

/* ── Avisos (rule-callout del manual) ─────────────────────────────────── */
.notice,.inline-alert{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:14px 18px;margin-bottom:20px;background:var(--accent-soft);border:1.5px solid var(--accent-border);border-left:4px solid var(--accent-dark);border-radius:var(--radius);font-size:.98rem;font-weight:600;color:var(--ink-soft);animation:rise .25s var(--ease)}
.notice.success{background:var(--green-soft);border-color:rgba(15,168,118,.3);border-left-color:var(--green);color:var(--green-text)}
.notice.error{background:var(--red-soft);border-color:rgba(224,53,53,.3);border-left-color:var(--red);color:var(--red-text)}
.notice.warning,.inline-alert{background:var(--amber-soft);border-color:rgba(201,122,0,.3);border-left-color:var(--amber);color:var(--amber-text)}
.inline-alert{margin:16px 0 0}
.notice a,.inline-alert a{color:var(--navy-900);text-decoration:underline;font-weight:800}
.inline-alert a{margin-left:auto;display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.notice .errorlist{color:inherit}

/* ── Estados (status-pill) ─────────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:4px 12px;border-radius:var(--pill);font-size:.85rem;font-weight:700;white-space:nowrap;background:rgba(100,116,139,.1);border:1px solid rgba(100,116,139,.2);color:var(--ink-soft)}
.badge svg{width:1rem;height:1rem}
.badge.success{color:var(--green-text);background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.25)}
.badge.danger{color:var(--red-text);background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.22)}
.badge.processing{color:var(--amber-text);background:rgba(217,164,65,.14);border-color:rgba(217,164,65,.28)}
.badge.neutral{background:var(--card);border-color:var(--line)}
.status-dot,.live-dot{width:9px;height:9px;border-radius:50%;background:var(--green);flex-shrink:0}
.live-dot{animation:pulse 2.4s var(--ease) infinite}

/* ── Barra de lista vigente ────────────────────────────────────────────── */
.cutbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 20px;padding:12px 12px 12px 20px;margin-bottom:22px}
.cut-info{display:flex;align-items:center;gap:14px;min-width:0}
.cut-info>span:last-child{display:flex;flex-direction:column;min-width:0}
.cut-info strong{font-size:1.02rem;font-weight:800;color:var(--navy-900)}
.cut-info small{color:var(--ink-soft);font-size:.86rem;font-weight:600}
.cut-tag{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:var(--pill);font-size:.82rem;font-weight:700;color:var(--green-text);background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.25);white-space:nowrap}
.cut-tag.old{color:var(--amber-text);background:rgba(217,164,65,.14);border-color:rgba(217,164,65,.28)}
.cut-selector{display:flex;align-items:center;gap:10px}
.cut-selector label{font-size:.88rem;font-weight:700;color:var(--ink-soft);white-space:nowrap}
.cut-selector select{min-height:46px;font-size:.94rem;max-width:300px;border-radius:var(--pill)}

/* ── Filtros & buscador ────────────────────────────────────────────────── */
.filters{margin-bottom:22px;display:flex;flex-direction:column;gap:12px}
.filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.filter-row>select{flex:0 1 240px}
.search,.home-search{display:flex;align-items:center;gap:4px;flex:1 1 260px;min-width:0;padding-left:18px;background:var(--card);border:1.5px solid var(--field-line);border-radius:var(--pill);box-shadow:0 2px 10px rgba(var(--shadow-rgb),.04);transition:border-color .18s,box-shadow .18s}
.search:focus-within,.home-search:focus-within{border-color:var(--accent-dark);box-shadow:0 0 0 3px rgba(45,97,120,.32)}
.search svg{color:var(--accent-dark)}
.search input:not([type=checkbox]),.home-search input:not([type=checkbox]){flex:1;width:100%;min-height:49px;border:0!important;box-shadow:none!important;background:transparent;padding-left:8px}
.home-search{flex:0 1 380px;padding-left:4px}
.home-search .icon-button{margin-right:3px;color:var(--accent-dark)}
.segmented,.view-switch{display:inline-flex;padding:4px;gap:3px;background:rgba(243,247,250,.8);border:1px solid var(--line);border-radius:var(--pill);flex-shrink:0;box-shadow:var(--glass-edge)}
.segmented label{position:relative;cursor:pointer}
.segmented input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.segmented span,.view-switch a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;white-space:nowrap;border-radius:var(--pill);font-weight:700;font-size:.95rem;color:var(--ink-soft);text-decoration:none;transition:all .15s ease}
.view-switch a:hover,.segmented label:hover span{color:var(--navy-900)}
.segmented input:checked+span,.view-switch a.selected{background:var(--navy-900);color:#fff;box-shadow:0 2px 8px rgba(7,33,58,.22)}
.view-switch a.selected svg{color:var(--cyan-glow)}
.segmented input:focus-visible+span{outline:3px solid var(--accent-dark);outline-offset:2px}
.more-filters{overflow:hidden}
.more-filters summary{display:flex;align-items:center;gap:10px;min-height:56px;padding:6px 10px 6px 20px;font-weight:700;color:var(--ink);cursor:pointer;list-style:none;transition:background .18s}
.more-filters summary:hover{background:rgba(243,247,250,.7)}
.more-filters summary::-webkit-details-marker{display:none}
.more-filters summary>svg:first-child{color:var(--accent-dark)}
.more-filters[open] summary{border-bottom:1px solid var(--line);background:rgba(243,247,250,.6)}
.more-filters>.filter-row{padding:16px 20px 18px;align-items:flex-end}
.more-filters .field{flex:0 1 260px}
.more-filters .field.wide{flex:1 1 320px}
.more-filters .field>label{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}

/* ── Tablas ────────────────────────────────────────────────────────────── */
.table-wrap{width:100%;overflow-x:auto}
table{width:100%;border-collapse:collapse;text-align:left}
th{padding:13px 18px;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);background:rgba(243,247,250,.85);border-bottom:2px solid var(--line);white-space:nowrap}
th.numeric{text-align:right}
td{padding:15px 18px;border-bottom:1px solid var(--line);font-size:.98rem;color:var(--ink-soft);vertical-align:middle}
td strong{color:var(--ink)}
tbody tr:last-child td{border-bottom:0}
tbody tr{transition:background .15s}
tbody tr:hover{background:rgba(45,97,120,.05)}
.cell-sub{display:block;color:var(--ink-faint);font-size:.88rem;font-weight:600;margin-top:2px}
.referent-cell{max-width:380px;min-width:180px;overflow-wrap:break-word}
.empty-cell{text-align:center;padding:52px 20px!important;color:var(--ink-soft);font-weight:700}
.pagination{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-top:18px;font-weight:700;font-size:.92rem;color:var(--ink-soft)}
.pagination>div{display:flex;align-items:center;gap:10px}
.pagination .icon-button{width:40px;height:40px;border-color:var(--line);background:var(--card);color:var(--accent-dark)}

/* ── Estados vacíos ────────────────────────────────────────────────────── */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:260px;padding:40px 24px;text-align:center;grid-column:1/-1}
.empty-state>svg{width:3rem;height:3rem;padding:14px;box-sizing:content-box;border-radius:16px;background:var(--accent-soft);border:1.5px solid var(--accent-border);color:var(--accent-dark)}
.empty-state h2{font-size:1.2rem;max-width:30ch}
.empty-state p{color:var(--ink-soft);max-width:42ch}

/* ── Inicio: panel del día (vidrio navy) ───────────────────────────────── */
.today-panel{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:center;gap:20px 40px;padding:22px 26px;margin-bottom:20px;color:#fff;border-radius:14px;background:var(--glass-dark);border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow-2),inset 0 1px 0 rgba(255,255,255,.1)}
.today-panel::before{content:"";position:absolute;inset:-90px auto auto -60px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(0,200,240,.28),transparent 65%);z-index:-1}
.today-panel::after{content:"";position:absolute;inset:auto -80px -120px auto;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(91,79,207,.3),transparent 65%);z-index:-1}
.today-cut{display:flex;align-items:center;gap:14px;min-width:0}
.today-cut .live-dot{width:11px;height:11px;background:var(--cyan-glow);box-shadow:0 0 10px var(--cyan-glow)}
.today-cut strong{display:block;font-size:1.3rem;font-weight:800;line-height:1.2;letter-spacing:-.01em}
.today-cut small{display:block;color:#cbe3ee;font-size:.86rem;font-weight:600;margin-top:4px}
.progress-text{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 7px;font-size:.98rem;font-weight:600;margin-bottom:12px;color:#cbe3ee}
.progress-text strong{font-size:1.7rem;font-weight:800;color:#fff;line-height:1;letter-spacing:-.03em}
.progress-track{height:12px;border-radius:var(--pill);background:rgba(255,255,255,.18);overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.25)}
.progress-track>span{display:block;height:100%;width:100%;border-radius:inherit;background:linear-gradient(90deg,var(--sky),var(--cyan-glow));box-shadow:0 0 12px rgba(0,200,240,.6);transform-origin:left;transform:scaleX(calc(var(--p,0) / 100));transition:transform .6s var(--ease)}
.today-panel.all-done .progress-track>span{background:linear-gradient(90deg,var(--green-dark),#34d399);box-shadow:0 0 12px rgba(52,211,153,.55)}

/* ── Inicio: cómo se usa ───────────────────────────────────────────────── */
.how-to{margin-bottom:24px;overflow:hidden}
.how-to summary{display:flex;align-items:center;gap:10px;min-height:58px;padding:8px 10px 8px 20px;font-weight:800;font-size:1rem;cursor:pointer;list-style:none;color:var(--ink);transition:background .18s}
.how-to summary:hover{background:rgba(243,247,250,.7)}
.how-to summary::-webkit-details-marker{display:none}
.how-to summary>svg:first-child{color:var(--accent-dark)}
.how-to[open] summary{border-bottom:1px solid var(--line);background:rgba(243,247,250,.6)}
.steps{list-style:none;padding:16px 20px 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.steps li{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:var(--radius);background:rgba(243,247,250,.85);border:1px solid var(--line)}
.steps p{color:var(--ink-soft);font-size:.94rem;margin-top:3px}
.steps strong{display:block;color:var(--ink);font-size:1rem;font-weight:800}
.step-num{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;font-weight:800;flex-shrink:0;background:var(--navy-900);color:#fff;box-shadow:0 4px 12px rgba(7,33,58,.22)}
.steps li:nth-child(2) .step-num{background:linear-gradient(135deg,var(--send-a),var(--send-b))}

/* ── Inicio: herramientas ──────────────────────────────────────────────── */
.home-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px 20px;margin-bottom:16px}
.status-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.status-filter button{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:6px 7px 6px 18px;border:1.5px solid var(--line);border-radius:var(--pill);background:var(--glass-strong);font-weight:700;font-size:.94rem;color:var(--ink-soft);box-shadow:var(--glass-edge);transition:all .18s ease}
.status-filter button:hover{border-color:var(--accent-border);color:var(--accent-text);background:var(--accent-soft);transform:translateY(-1px)}
.status-filter button span{display:grid;place-items:center;min-width:32px;height:32px;padding:0 9px;border-radius:var(--pill);background:var(--paper);border:1px solid var(--line);font-size:.88rem;font-weight:800;color:var(--navy-900)}
.status-filter button[aria-pressed=true]{background:var(--navy-900);border-color:var(--navy-900);color:#fff;box-shadow:0 2px 10px rgba(7,33,58,.2);transform:none}
.status-filter button[aria-pressed=true] span{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18);color:#fff}

/* ── Inicio: tarjetas de referente ─────────────────────────────────────── */
.group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:18px;align-items:stretch}
.ref-card{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border-top:3px solid var(--amber);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.ref-card:hover{transform:translateY(-2px);box-shadow:var(--glass-edge),var(--shadow-2)}
.ref-card.is-done{border-top-color:var(--green)}
.ref-card[data-status=empty]{border-top-color:var(--line)}
.ref-card-body{padding:20px 22px;display:flex;flex-direction:column;gap:15px;flex:1}
.ref-card-head{display:flex;align-items:flex-start;gap:14px;min-width:0}
.ref-avatar{display:grid;place-items:center;width:50px;height:50px;flex-shrink:0;border-radius:12px;background:linear-gradient(135deg,var(--navy-700),var(--navy-950));color:#fff;font-size:1.35rem;font-weight:800;box-shadow:0 6px 16px rgba(7,33,58,.22),inset 0 1px 0 rgba(255,255,255,.18)}
.ref-card.is-done .ref-avatar{background:linear-gradient(135deg,#34c48f,var(--green-text))}
.ref-title{min-width:0;flex:1}
.ref-title h2{font-size:1.3rem;font-weight:800;line-height:1.2;letter-spacing:-.015em;color:var(--ink);overflow-wrap:anywhere}
.ref-title p{color:var(--ink-faint);font-size:.9rem;font-weight:600;margin-top:4px}
.ref-status{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;min-height:32px;padding:4px 13px;border-radius:var(--pill);font-weight:700;font-size:.9rem;color:var(--amber-text);background:rgba(217,164,65,.14);border:1px solid rgba(217,164,65,.28)}
.ref-status .dot{width:8px;height:8px;border-radius:50%;background:var(--amber)}
.ref-status svg{width:1.05rem;height:1.05rem}
.ref-status.done{color:var(--green-text);background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.25)}
.ref-status.empty{color:var(--green-text);background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.2)}
.ref-status.bump{animation:bump .4s var(--ease)}
.ref-lists{list-style:none;padding:12px 14px;display:flex;flex-direction:column;gap:7px;border-radius:10px;background:rgba(243,247,250,.8);border:1px solid var(--line)}
.ref-lists li{display:flex;align-items:flex-start;gap:9px;font-size:.86rem;font-weight:600;color:var(--ink-soft);overflow-wrap:break-word;min-width:0}
.ref-lists li>span{min-width:0}
.ref-lists svg{width:1rem;height:1rem;margin-top:1px;color:var(--accent)}
.ref-lists .more{padding-left:25px;font-weight:800;color:var(--accent-dark)}
.group-form{display:flex;flex-direction:column;gap:10px;margin-top:auto}
.step-button{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:7px 20px 7px 8px;border:1px solid rgba(255,255,255,.12);border-radius:var(--pill);font-size:1.05rem;font-weight:800;text-align:left;color:#fff;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s,opacity .18s}
.step-button:hover:not(:disabled){transform:translateY(-1px)}
.step-button:active:not(:disabled){transform:scale(.98)}
.step-button .step-badge{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;font-size:1rem;font-weight:800;flex-shrink:0;background:rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.step-button .label{flex:1}
.step-button svg{width:1.4rem;height:1.4rem}
.group-download{background:linear-gradient(135deg,var(--navy-800),var(--navy-950));box-shadow:0 6px 18px rgba(7,33,58,.25)}
.group-download:hover:not(:disabled){box-shadow:0 10px 24px rgba(7,33,58,.32)}
.group-send{background:linear-gradient(135deg,var(--send-a),var(--send-b));box-shadow:0 6px 18px rgba(9,101,91,.25)}
.group-send:hover:not(:disabled){box-shadow:0 10px 24px rgba(9,101,91,.32)}
.step-button:disabled{cursor:not-allowed}
.group-download:disabled{background:var(--paper);color:var(--ink-faint);border-color:var(--line);box-shadow:none}
.group-download:disabled .step-badge{background:var(--card)}
.group-send.sent-button,.group-send.sent-button:disabled{background:var(--green-soft);border-color:rgba(15,168,118,.35);color:var(--green-text);box-shadow:none;opacity:1}
.group-send.sent-button .step-badge{background:var(--card);color:var(--green-text)}
.group-send:disabled:not(.sent-button){opacity:.5;box-shadow:none}
.group-undo{align-self:center;min-height:44px;padding:6px 12px;border:0;background:none;color:var(--ink-soft);font-weight:700;font-size:.9rem;text-decoration:underline;text-underline-offset:4px;border-radius:var(--pill)}
.group-undo:hover{color:var(--navy-900)}
.ref-card-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;padding:10px 14px 10px 22px;border-top:1px solid var(--line);background:rgba(243,247,250,.7);min-height:58px}
.ref-card-foot a{display:inline-flex;align-items:center;gap:4px;min-height:44px;font-size:.95rem;transition:gap .18s var(--ease)}
.ref-card-foot a:hover{gap:8px}
.ref-card-foot a svg{width:1.05rem;height:1.05rem}
.ref-card-foot>span{font-size:.86rem;font-weight:700;color:var(--ink-soft);text-align:right}
.ref-card.is-done .ref-card-foot{background:rgba(234,250,244,.8)}
.filter-empty{grid-column:1/-1}

/* ── Archivos uno por uno ──────────────────────────────────────────────── */
.bulkbar{position:sticky;top:12px;z-index:var(--z-sticky);display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:10px 12px 10px 20px;margin-bottom:6px;background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border);border-radius:var(--pill);box-shadow:var(--glass-edge),var(--shadow-2)}
.bulkbar #selected-count{font-weight:700;color:var(--ink-soft)}
.bulk-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.recipient-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.recipient-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:16px 28px;align-items:center;padding:18px 20px 18px 24px;transition:box-shadow .2s var(--ease)}
.recipient-item:hover{box-shadow:var(--glass-edge),var(--shadow-2)}
.group-caption{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-text);background:var(--accent-soft);border:1px solid var(--accent-border);padding:3px 11px;border-radius:var(--pill);margin-bottom:8px}
.recipient-info h2{font-size:1.1rem;font-weight:800;color:var(--ink);overflow-wrap:break-word}
.recipient-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px;color:var(--ink-soft);font-size:.92rem;font-weight:600}
.recipient-meta span,.recipient-meta a{display:inline-flex;align-items:center;gap:7px;min-height:32px}
.recipient-meta a{min-height:44px}
.recipient-meta svg{width:1.05rem;height:1.05rem;color:var(--accent)}
.recipient-meta .phone{font-weight:800;color:var(--navy-900)}
.voter-switch{margin-bottom:20px}
.file-list{display:flex;flex-direction:column;gap:8px}
.file-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:7px 7px 7px 14px;border-radius:var(--pill);background:rgba(243,247,250,.85);border:1px solid var(--line);transition:background .2s,border-color .2s}
.file-row[data-sent=true]{background:rgba(234,250,244,.9);border-color:rgba(15,168,118,.3)}
.file-check{display:inline-flex;align-items:center;gap:11px;cursor:pointer;min-height:44px}
.file-format{display:inline-grid;place-items:center;min-width:58px;height:32px;padding:0 10px;border-radius:var(--pill);font-size:.78rem;font-weight:800;letter-spacing:.04em;background:var(--card);border:1px solid var(--line)}
.file-format.pdf{color:var(--red-text)}
.file-format.xlsx{color:var(--green-text)}
.file-status{font-size:.92rem;min-width:0;font-weight:700}
.file-status small{display:block;font-size:.8rem;font-weight:600;color:var(--ink-faint);overflow-wrap:anywhere}
.file-status .sent{display:inline-flex;align-items:center;gap:6px;color:var(--green-text)}
.file-status .pending{color:var(--amber-text)}
.file-status svg{width:1.05rem;height:1.05rem}
.file-actions{display:flex;gap:6px}
.file-actions .button{min-height:44px;padding:8px 15px;font-size:.88rem;gap:7px}
.file-actions .button svg{width:1.1rem;height:1.1rem}
.single-send{background:linear-gradient(135deg,var(--send-a),var(--send-b));border-color:rgba(255,255,255,.12);color:#fff}
.single-send:hover{background:linear-gradient(135deg,#0d8a7d,var(--send-a));border-color:transparent;color:#fff}
.single-send.is-sent{background:var(--card);border-color:var(--line);color:var(--ink-soft)}
.single-send.is-sent:hover{background:var(--accent-soft);color:var(--accent-text)}
.no-pending{justify-self:start}

/* ── Resumen: KPI nivel 1 (borde superior) ─────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:8px}
.stat{display:flex;flex-direction:column;gap:4px;padding:20px 22px;border-top:3px solid var(--accent-dark);color:var(--ink);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease;min-width:0}
.stat:hover{transform:translateY(-2px);box-shadow:var(--glass-edge),var(--shadow-2);color:var(--ink)}
.stat>span{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}
.stat>span svg{width:1.05rem;height:1.05rem;color:var(--accent-dark)}
.stat strong{font-size:2.4rem;line-height:1;font-weight:800;letter-spacing:-.03em;color:var(--navy-900)}
.stat small{color:var(--ink-faint);font-size:.86rem;font-weight:600;margin-top:6px}
.stat-meter{height:7px;border-radius:var(--pill);background:rgba(0,0,0,.07);overflow:hidden;margin-top:10px}
.stat-meter span{display:block;height:100%;border-radius:inherit;background:var(--accent-dark)}
.stat.tone-ok{border-top-color:var(--green)}.stat.tone-ok strong{color:var(--green-text)}.stat.tone-ok>span svg{color:var(--green)}
.stat.tone-signal{border-top-color:var(--amber)}.stat.tone-signal strong{color:var(--amber-text)}.stat.tone-signal>span svg{color:var(--amber)}
.stat.tone-brand{border-top-color:var(--accent-dark)}.stat.tone-brand strong{color:var(--accent-dark)}
.activity-list{overflow:hidden}
.activity-list>div{display:flex;align-items:center;gap:14px;padding:13px 20px;border-bottom:1px solid var(--line)}
.activity-list>div:last-child{border-bottom:0}
.activity-list strong{color:var(--ink);font-size:.96rem}
.activity-list small{display:block;color:var(--ink-faint);font-size:.84rem;font-weight:600}
.activity-list time{margin-left:auto;color:var(--navy-900);font-size:.88rem;font-weight:700;white-space:nowrap}
.activity-list>p{padding:20px}
.activity-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--accent-soft);border:1.5px solid var(--accent-border);color:var(--accent-dark);flex-shrink:0}
.activity-icon svg{width:1.05rem;height:1.05rem}

/* ── Secciones de administración ───────────────────────────────────────── */
.panel,.upload-section,.account-section,.inline-form{padding:22px 24px}
.upload-section h2,.account-section h2{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-size:1.05rem}
.upload-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:18px 20px}
.upload-form .file-field{grid-column:1/-1}
.upload-form>.button{justify-self:start}
.upload-form .button{min-height:52px}
.file-picker{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:10px;border:1.5px dashed var(--accent-border);border-radius:var(--radius);background:rgba(230,244,248,.6);cursor:pointer;transition:background .18s,border-color .18s}
.file-picker:hover{background:var(--accent-soft);border-color:var(--accent-dark)}
.file-picker input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0}
.file-picker:focus-within{outline:3px solid var(--accent-dark);outline-offset:3px}
.file-picker .button{pointer-events:none}
.file-name{color:var(--ink-soft);font-weight:600;overflow-wrap:anywhere;min-width:0}
.file-name.chosen{color:var(--navy-900);font-weight:800}
.inline-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px 16px;margin-bottom:22px}
.inline-form .field{flex:1 1 260px;max-width:420px}
.assign-form{display:flex;align-items:center;gap:8px;min-width:220px}
.assign-form select{flex:1;min-width:0;max-width:300px}
.create-user{margin-bottom:22px;overflow:hidden}
.create-user summary{display:flex;align-items:center;gap:10px;min-height:62px;padding:10px 12px 10px 24px;font-weight:800;font-size:1.02rem;color:var(--ink);cursor:pointer;list-style:none;transition:background .18s}
.create-user summary:hover{background:rgba(243,247,250,.7)}
.create-user summary::-webkit-details-marker{display:none}
.create-user summary>svg:first-child{color:var(--accent-dark)}
.create-user[open] summary{border-bottom:1px solid var(--line);background:rgba(243,247,250,.6)}
.user-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:20px 24px 24px}
.user-form .field:has(> input[type=checkbox]){flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:12px}
.user-form .button{align-self:end;justify-self:start}
.user-teams{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.team-checks{display:flex;flex-wrap:wrap;gap:8px;border:0;margin:0;padding:0;min-width:0}
.password-reset{margin-top:10px}
.password-reset summary{display:inline-flex;align-items:center;min-height:40px;font-weight:700;color:var(--accent-dark);cursor:pointer;font-size:.92rem}
.password-reset form{margin-top:8px;gap:10px;max-width:280px}
.account-section{max-width:560px}
.error-detail{max-width:480px;font-size:.88rem;color:var(--red-text);margin-top:8px;overflow-wrap:anywhere;font-weight:700}

/* ── Grupos sugeridos ──────────────────────────────────────────────────── */
.suggest-panel{margin-bottom:24px;padding:22px 24px;border-radius:14px;background:var(--glass);border:1px solid var(--glass-border);border-top:3px solid var(--accent-dark);box-shadow:var(--glass-edge),var(--shadow-1);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.suggest-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:14px 24px;margin-bottom:18px}
.suggest-head h2{display:flex;align-items:center;gap:10px;font-size:1.12rem}
.suggest-head h2::before{content:"";width:3px;height:16px;border-radius:2px;background:var(--accent-dark)}
.suggest-head p{margin-top:6px;max-width:62ch;color:var(--ink-soft);font-size:.94rem}
.suggest-subtitle{margin:4px 0 10px;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}
.suggest-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.suggest-form{display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr) auto;align-items:center;gap:12px 18px;padding:12px 12px 12px 16px;border-radius:var(--radius);background:rgba(243,247,250,.85);border:1px solid var(--line)}
.suggest-name label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}
.suggest-name input{min-height:46px!important;font-weight:800!important;color:var(--navy-900)!important}
.suggest-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.suggest-lists{border:0;margin:0;padding:0;min-width:0}
.suggest-tags{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:0;margin-bottom:8px}
.suggest-hint{font-size:.8rem;font-weight:600;color:var(--ink-faint)}
.suggest-checks{display:flex;flex-wrap:wrap;gap:6px}
.suggest-checks label{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:5px 12px 5px 8px;border-radius:var(--pill);background:var(--card);border:1.5px solid var(--accent-border);font-size:.84rem;font-weight:700;color:var(--ink-soft);cursor:pointer;overflow-wrap:anywhere;min-width:0;transition:all .15s}
.suggest-checks label:has(input:not(:checked)){background:transparent;border-style:dashed;border-color:var(--line);color:var(--ink-faint);text-decoration:line-through}
.suggest-checks input{width:20px;height:20px}
.move-bar{position:sticky;top:12px;z-index:var(--z-sticky);display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-bottom:10px;padding:10px 12px 10px 20px;background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border);border-radius:var(--pill);box-shadow:var(--glass-edge),var(--shadow-1)}
.move-bar.has-selection{box-shadow:var(--glass-edge),var(--shadow-2);border-color:var(--accent-border)}
.move-count{font-weight:700;color:var(--ink-soft)}
.move-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-left:auto}
.move-controls select,.move-controls input{min-height:44px!important;border-radius:var(--pill)!important;font-size:.92rem!important}
.move-controls select{min-width:230px}
td.pick{width:52px;padding-right:0}
.suggest-singles{margin-top:16px;border-radius:var(--radius);border:1px solid var(--line);background:rgba(255,255,255,.55);overflow:hidden}
.suggest-singles summary{display:flex;align-items:center;gap:10px;min-height:56px;padding:6px 10px 6px 18px;font-weight:700;cursor:pointer;list-style:none}
.suggest-singles summary::-webkit-details-marker{display:none}
.suggest-singles summary>svg:first-child{color:var(--accent-dark)}
.suggest-singles[open] summary{border-bottom:1px solid var(--line)}
.suggest-singles .suggest-list{padding:12px;max-height:520px;overflow-y:auto}
.team-filter{width:100%;margin-bottom:8px;min-height:44px!important;border-radius:var(--pill)!important;font-size:.92rem!important}
.team-checks.many,.field div[id].many{max-height:220px;overflow-y:auto;padding:4px;border-radius:var(--radius);border:1px solid var(--line);background:rgba(243,247,250,.6)}

/* ── Diálogo & toast ───────────────────────────────────────────────────── */
.action-dialog{width:min(500px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:30px;border:1px solid var(--glass-border);border-radius:16px;color:var(--ink);background:var(--glass-strong);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);box-shadow:var(--glass-edge),var(--shadow-3)}
.action-dialog::backdrop{background:rgba(7,33,58,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.action-dialog[open]{animation:pop .3s var(--ease)}
.action-dialog[open]::backdrop{animation:fade .3s var(--ease)}
.dialog-close{position:absolute;top:14px;right:14px}
.dialog-symbol{display:grid;place-items:center;width:58px;height:58px;border-radius:14px;background:linear-gradient(135deg,var(--send-a),var(--send-b));color:#fff;margin-bottom:20px;box-shadow:0 10px 24px rgba(9,101,91,.3)}
.dialog-symbol svg{width:1.7rem;height:1.7rem}
.action-dialog h2{font-size:1.45rem;line-height:1.2;margin-bottom:10px;padding-right:36px;overflow-wrap:anywhere}
.action-dialog p{font-size:1rem;color:var(--ink-soft)}
.dialog-actions{display:flex;gap:10px;margin-top:28px}
.dialog-actions .button{flex:1;min-height:56px;font-size:1rem;white-space:normal}
.app-toast{position:fixed;left:50%;bottom:32px;z-index:var(--z-toast);display:flex;align-items:center;gap:10px;max-width:calc(100% - 32px);width:max-content;padding:14px 22px;border-radius:var(--pill);background:var(--glass-dark);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid rgba(255,255,255,.1);color:#fff;font-weight:700;font-size:.98rem;box-shadow:var(--shadow-3);transform:translateX(-50%);animation:toast-in .3s var(--ease)}
.app-toast::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--cyan-glow);box-shadow:0 0 8px var(--cyan-glow);flex-shrink:0}
.app-toast.error{background:linear-gradient(135deg,var(--red-dark),#9e1a1a)}
.app-toast.error::before{background:#fff;box-shadow:none}

/* ── Elegir formato de descarga ───────────────────────────────────────── */
.download-symbol{background:linear-gradient(135deg,var(--navy-700),var(--navy-950));box-shadow:0 10px 24px rgba(7,33,58,.3)}
.download-symbol svg{color:var(--cyan-glow)}
.format-options{display:grid;gap:12px;margin-top:24px}
.format-option{position:relative;display:flex;align-items:center;gap:16px;width:100%;min-height:80px;padding:14px 18px 14px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--card);text-align:left;color:var(--ink);box-shadow:var(--shadow-1);transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .2s,background .2s}
.format-option:hover,.format-option:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow-2)}
.format-option:active{transform:scale(.985)}
.format-option.pdf:hover,.format-option.pdf:focus-visible{border-color:rgba(224,53,53,.45);background:linear-gradient(135deg,#fff,var(--red-soft))}
.format-option.xlsx:hover,.format-option.xlsx:focus-visible{border-color:rgba(15,168,118,.45);background:linear-gradient(135deg,#fff,var(--green-soft))}
.format-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:12px;flex-shrink:0;transition:transform .3s var(--ease)}
.format-option:hover .format-icon{transform:rotate(-6deg) scale(1.06)}
.format-option.pdf .format-icon{background:linear-gradient(135deg,#f25c5c,var(--red-dark));color:#fff;box-shadow:0 8px 18px rgba(204,34,34,.28)}
.format-option.xlsx .format-icon{background:linear-gradient(135deg,#22c08c,var(--green-text));color:#fff;box-shadow:0 8px 18px rgba(7,115,79,.28)}
.format-icon svg{width:1.7rem;height:1.7rem}
.format-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.format-text strong{font-size:1.2rem;font-weight:800;letter-spacing:-.01em}
.format-text small{font-size:.92rem;font-weight:600;color:var(--ink-soft)}
.format-option .go{width:1.4rem;height:1.4rem;color:var(--accent-dark);transition:transform .22s var(--ease)}
.format-option:hover .go{transform:translateX(4px)}
.format-note{display:flex;align-items:center;gap:9px;margin-top:16px!important;padding:10px 14px;border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent-border);font-size:.9rem!important;font-weight:600;color:var(--accent-text)!important}
.format-note svg{width:1.1rem;height:1.1rem;color:var(--accent-dark)}
.download-dialog[open] .format-option{animation:option-in .5s var(--ease) both}
.download-dialog[open] .format-option:nth-child(1){animation-delay:.08s}
.download-dialog[open] .format-option:nth-child(2){animation-delay:.16s}
.download-dialog[open] .download-symbol{animation:symbol-in .55s var(--ease) both}
.download-dialog[open] .format-note{animation:rise .4s var(--ease) .24s both}
@keyframes option-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@keyframes symbol-in{0%{opacity:0;transform:scale(.6) rotate(-12deg)}60%{opacity:1;transform:scale(1.08) rotate(3deg)}100%{transform:none}}

/* ── Ingreso: fondo degradé + tarjeta de vidrio centrada ─────────────── */
.login-page{min-height:100dvh;display:grid;place-items:center;padding:28px 16px;position:relative;overflow:hidden;color:#fff;background:
 radial-gradient(55vw 55vh at 0% 0%,rgba(14,138,125,.85),transparent 62%),
 radial-gradient(55vw 65vh at 100% 0%,rgba(91,79,207,.8),transparent 62%),
 radial-gradient(65vw 65vh at 100% 100%,rgba(0,200,240,.55),transparent 58%),
 radial-gradient(65vw 65vh at 0% 100%,rgba(26,82,120,.9),transparent 62%),
 linear-gradient(135deg,var(--navy-950),var(--navy-900))}
.login-page::before{content:none}
.login-orbs{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.login-orbs span{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;animation:orb 22s ease-in-out infinite alternate}
.login-orbs span:nth-child(1){width:38vmax;height:38vmax;left:-8vmax;top:-10vmax;background:#00c8f0}
.login-orbs span:nth-child(2){width:30vmax;height:30vmax;right:-6vmax;top:20%;background:#7b6fd4;animation-duration:26s}
.login-orbs span:nth-child(3){width:34vmax;height:34vmax;left:30%;bottom:-16vmax;background:#1aa899;animation-duration:30s}
@keyframes orb{to{transform:translate(6vmax,4vmax) scale(1.12)}}
.login-card{position:relative;z-index:1;width:min(420px,100%);padding:34px 30px 26px;border-radius:18px;background:linear-gradient(150deg,rgba(255,255,255,.2),rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(26px) saturate(170%);backdrop-filter:blur(26px) saturate(170%);box-shadow:0 30px 80px rgba(3,15,30,.45),inset 0 1px 0 rgba(255,255,255,.35);animation:pop .5s var(--ease)}
.login-head{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:26px}
.login-head img{width:60px;height:60px;border-radius:14px;box-shadow:0 0 0 1px rgba(255,255,255,.25),0 12px 30px rgba(0,200,240,.35)}
.login-head h1{margin-top:14px;font-size:2.3rem;font-weight:800;letter-spacing:-.03em;color:#fff}
.login-head p{margin-top:6px;font-size:.92rem;font-weight:600;color:#d6e9f2}
.login-head p span{display:block;margin-top:2px;color:var(--cyan-glow);font-weight:700}
.login-card .field>label{color:#fff;font-size:.9rem}
.login-input{position:relative;display:flex;align-items:center}
.login-input input{flex:1;width:100%!important;min-width:0}
.login-input>svg{position:absolute;left:15px;width:1.15rem;height:1.15rem;color:var(--accent-dark);pointer-events:none}
.login-card input:not([type=hidden]){width:100%;min-height:52px!important;padding:12px 16px 12px 44px!important;font-size:1rem!important;border-radius:12px!important;border:1px solid rgba(255,255,255,.7)!important;background:rgba(255,255,255,.94)!important;color:var(--ink)!important}
.login-card input:focus{box-shadow:0 0 0 3px rgba(0,200,240,.55)!important;border-color:#fff!important}
.password-input input{padding-right:54px!important}
.password-input button{position:absolute;right:6px;display:grid;place-items:center;width:42px;height:42px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--accent-dark)}
.password-input button:hover{background:var(--accent-soft)}
.password-input button svg{width:1.25rem;height:1.25rem}
.login-submit{width:100%;min-height:54px!important;margin-top:4px;justify-content:space-between!important;padding:0 20px!important;font-size:1.05rem!important;border-radius:12px!important;background:#fff!important;border:0!important;color:var(--navy-900)!important;box-shadow:0 10px 30px rgba(3,15,30,.3)!important}
.login-submit:hover{background:#eafaff!important;color:var(--navy-950)!important;box-shadow:0 12px 34px rgba(0,200,240,.4)!important}
.login-submit svg{width:1.3rem;height:1.3rem;color:var(--accent-dark);transition:transform .2s var(--ease)}
.login-submit:hover svg{transform:translateX(4px)}
.login-card .notice{background:rgba(254,241,241,.95)}
.login-security{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:20px;color:#d6e9f2;font-size:.82rem;font-weight:600}
.login-security svg{width:1rem;height:1rem;color:var(--cyan-glow)}
.login-card :focus-visible{outline-color:var(--cyan-glow)}

/* ── Movimiento ────────────────────────────────────────────────────────── */
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,200,240,.55)}60%{box-shadow:0 0 0 9px rgba(0,200,240,0)}}
.htmx-request{opacity:.6;transition:opacity .2s}

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (min-width:1500px){#main,.footer{padding-inline:60px}}

@media (max-width:1180px){
 #main{padding:30px 28px 52px}.footer{padding-inline:28px}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .user-form{grid-template-columns:1fr 1fr}
 .recipient-item{grid-template-columns:1fr}
}

/* Tablet y celular: cajón + barra inferior de vidrio */
@media (max-width:1023px){
 .sidebar{inset:10px auto 10px 10px;width:min(320px,calc(100vw - 48px));transform:translateX(calc(-100% - 20px));transition:transform .34s var(--ease),visibility 0s .34s;visibility:hidden;padding-top:max(22px,env(safe-area-inset-top))}
 .sidebar.open{transform:none;visibility:visible;transition:transform .34s var(--ease);box-shadow:var(--shadow-3)}
 .sidebar .sidebar-close{display:inline-grid;color:#fff;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.06)}
 .sidebar-close:hover{background:rgba(255,255,255,.14)!important;color:#fff!important}
 .scrim{display:block;position:fixed;inset:0;z-index:var(--z-scrim);background:rgba(7,33,58,.42);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}
 .scrim.show{opacity:1;pointer-events:auto}
 html{scroll-padding-top:84px;scroll-padding-bottom:calc(var(--tabbar) + 24px + env(safe-area-inset-bottom))}
 body:has(.sidebar.open){overflow:hidden}
 .workspace{margin-left:0;padding-bottom:calc(var(--tabbar) + 16px + env(safe-area-inset-bottom))}
 .mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:var(--z-nav);margin:0;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:linear-gradient(160deg,rgba(13,51,86,.92),rgba(7,33,58,.9));-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 6px 24px rgba(7,33,58,.18);color:#fff}
 .mobile-bar .brand img{width:38px;height:38px;border-radius:11px}
 .mobile-bar .brand-name{font-size:1.25rem}
 .mobile-bar .brand-name small{font-size:.66rem;margin-top:4px;color:#a9c4d4}
 .mobile-bar .brand{min-height:44px}
 .mobile-account{display:inline-flex;align-items:center;justify-content:center;min-height:46px;min-width:46px;text-decoration:none}
 .mobile-account .avatar{width:38px;height:38px;font-size:.95rem}
 .tabbar{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:var(--z-nav);padding:7px;background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.8);border-radius:16px;box-shadow:var(--glass-edge),0 10px 34px rgba(7,33,58,.18)}
 .tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:56px;padding:6px 4px;white-space:nowrap;border:0;border-radius:12px;background:transparent;color:var(--ink-soft);font-size:.78rem;font-weight:700;text-decoration:none;border-radius:12px;transition:background .18s,color .18s}
 .tabbar svg{width:1.45rem;height:1.45rem}
 .tabbar .selected{background:var(--navy-900);color:#fff;box-shadow:0 4px 14px rgba(7,33,58,.25)}
 .tabbar .selected svg{color:var(--cyan-glow);filter:drop-shadow(0 0 6px rgba(0,200,240,.5))}
 #main{padding:24px 22px 36px}
 .footer{padding:18px 22px 22px}
 .app-toast{bottom:calc(var(--tabbar) + 22px + env(safe-area-inset-bottom))}
 .bulkbar{top:76px}
}

@media (max-width:720px){
 h1{font-size:1.7rem}
 #main{padding:20px 14px 32px}
 .footer{padding:16px 16px 20px;font-size:.8rem}
 .page-head,.page-heading{margin-bottom:20px;align-items:flex-start}
 .today-panel{grid-template-columns:1fr;padding:20px;gap:18px}
 .today-cut strong{font-size:1.15rem}
 .steps{grid-template-columns:1fr;padding:14px}
 .how-to summary{padding-left:16px}
 .home-toolbar{flex-direction:column;align-items:stretch;gap:12px}
 .view-switch{display:grid;grid-template-columns:1fr 1fr}
 .view-switch a{padding:0 8px;font-size:.92rem}
 .home-search{flex:none;width:100%}
 .status-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .status-filter:has(> :nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}
 .status-filter button{flex-direction:column;justify-content:center;gap:5px;padding:8px 4px;border-radius:12px;min-height:72px;font-size:.86rem}
 .group-grid{grid-template-columns:1fr;gap:14px}
 .ref-card-body{padding:18px}
 .ref-title h2{font-size:1.22rem}
 .ref-card-foot{padding-left:18px}
 .cutbar{flex-direction:column;align-items:stretch;padding:16px}
 .cut-info{flex-direction:column;align-items:flex-start;gap:8px}
 .cut-selector{flex-direction:column;align-items:stretch;gap:6px}
 .cut-selector select{max-width:none;width:100%}
 .filter-row{display:grid;grid-template-columns:1fr;gap:10px}
 .filter-main{grid-template-columns:minmax(0,1fr) auto!important}
 .filter-main .button{width:auto!important;padding-inline:18px}
 .more-filters .field{flex:none}
 .more-filters>.filter-row{padding:14px 16px 16px}
 .segmented{display:grid;grid-template-columns:1fr 1fr}
 .filter-row .button{width:100%}
 .bulkbar{position:static;padding:14px;border-radius:var(--radius)}
 .bulkbar.has-selection .bulk-actions{position:fixed;left:10px;right:10px;bottom:calc(var(--tabbar) + 18px + env(safe-area-inset-bottom));z-index:var(--z-nav);width:auto;padding:10px;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.85);border-radius:14px;box-shadow:var(--glass-edge),var(--shadow-3);animation:rise .25s var(--ease)}
 .bulkbar.has-selection ~ .recipient-list{padding-bottom:140px}
 .bulk-actions{width:100%;margin:0;display:grid;grid-template-columns:1fr 1fr}
 .bulk-actions .button{padding-inline:10px;font-size:.9rem;white-space:normal;min-width:0}
 .bulk-actions .button:last-child{grid-column:1/-1}
 .recipient-item{padding:16px}
 .file-row{grid-template-columns:auto minmax(0,1fr);padding:10px 10px 10px 14px;border-radius:12px}
 .file-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .file-actions .button{min-height:48px;font-size:.92rem;white-space:normal;padding-inline:8px}
 .stats{grid-template-columns:1fr 1fr;gap:12px}
 .stat{padding:16px}
 .stat strong{font-size:1.9rem}
 .section-heading{margin-top:30px}
 .upload-form,.user-form{grid-template-columns:1fr}
 .upload-section,.account-section,.inline-form,.panel{padding:18px}
 .user-form{padding:16px 18px 18px}
 .create-user summary{padding-left:18px}
 .inline-form .field{max-width:none}
 .suggest-panel{padding:18px 16px}
 .suggest-head .button{width:100%}
 .suggest-form{grid-template-columns:1fr;padding:14px}
 .suggest-form .button{width:100%}
 .move-bar{position:static;border-radius:var(--radius);padding:14px}
 .move-controls{width:100%;margin:0;display:grid;grid-template-columns:1fr}
 .move-controls select{min-width:0;width:100%}
 .move-controls .button{width:100%}
 .stack-table td.pick{display:block;position:absolute;top:14px;right:14px;width:auto;padding:0}
 .stack-table td.pick::before{content:none}
 .stack-table tr{position:relative}
 .stack-table td.pick+td.lead{padding-right:40px}
 .inline-form .button,.upload-form .button{width:100%}
 .dialog-actions{flex-direction:column-reverse}
 .action-dialog{padding:26px 22px 22px}
 .action-dialog h2{font-size:1.3rem}

 /* Tablas como fichas */
 .stack-table{background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
 .stack-table table,.stack-table tbody,.stack-table tr,.stack-table td{display:block;width:100%}
 .stack-table thead{display:none}
 .stack-table tr{margin-bottom:12px;padding:14px 16px;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--glass-edge),var(--shadow-1)}
 .stack-table tbody tr:hover{background:var(--glass-solid)}
 .stack-table td{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:7px 0;border:0;text-align:right;max-width:none;min-width:0}
 .stack-table td::before{content:attr(data-label);flex-shrink:0;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);text-align:left}
 .stack-table td.lead{display:block;text-align:left;padding:0 0 10px;margin-bottom:6px;border-bottom:1px solid var(--line);font-size:1.05rem}
 .stack-table td.lead::before{content:none}
 .stack-table td.lead .cell-sub{display:inline;margin-left:6px}
 .stack-table td.lead form,.stack-table td.full{display:block;text-align:left}
 .stack-table td.full::before{display:block;margin-bottom:6px}
 .stack-table td:empty{display:none}
 .stack-table .empty-cell{display:block;text-align:center;background:var(--glass);border:1.5px dashed var(--accent-border);border-radius:var(--radius)}
 .stack-table .empty-cell::before{content:none}
 .stack-table td.referent-cell,.stack-table td.full{flex-direction:column;align-items:flex-start;text-align:left;gap:2px}
 .stack-table .assign-form,.stack-table .user-teams{width:100%;min-width:0}
 .stack-table .assign-form{flex-direction:column;align-items:stretch}
 .stack-table .assign-form .button{width:100%}
 .stack-table .assign-form select,.stack-table .user-teams select{max-width:none;flex:1}
 .stack-table .row-actions{justify-content:flex-start}
}

@media (max-width:380px){
 .step-button{gap:9px;padding-right:14px;font-size:.98rem}
 .step-button .step-badge{width:38px;height:38px}
 .segmented span{padding:0 10px;font-size:.88rem}
 .tabbar a,.tabbar button{font-size:.72rem}
 .status-filter button{font-size:.8rem}
 .bulk-actions{grid-template-columns:1fr}
}

/* Sin soporte de backdrop-filter: vidrio más opaco para no perder contraste */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 :root{--glass:rgba(255,255,255,.92);--glass-solid:rgba(255,255,255,.92);--glass-strong:rgba(255,255,255,.96)}
 .tabbar{background:rgba(255,255,255,.96)}
}
@media (prefers-reduced-transparency:reduce){
 :root{--glass:rgba(255,255,255,.97);--glass-solid:rgba(255,255,255,.97);--glass-strong:#fff}
}
@media (prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media (forced-colors:active){.button,.step-button,.status-filter button{border:2px solid ButtonText}}
@media print{body::before,.sidebar,.tabbar,.mobile-bar,.bulkbar,.footer{display:none!important}.workspace{margin:0}}
