/* ============================================================
   Renace CRM · sistema de diseño
   Dos modos: claro y oscuro. El cristal es un efecto que se activa por encima de cualquiera de los dos.
   Marca: pino #17332B · menta #7CCFA9 (sobre oscuro) · menta honda #2E9E72 (sobre claro) · crema #F1F8F3 · glicina · arcilla.
   ============================================================ */
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/archivo-var.woff2) format("woff2")}
@font-face{font-family:"Archivo";font-style:italic;font-weight:700;font-display:swap;src:url(../fonts/archivo-italic-var.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/inst-var.woff2) format("woff2")}
@font-face{font-family:"Archivo Fallback";src:local("Arial Bold"),local("Arial");size-adjust:93%;ascent-override:95%}
@font-face{font-family:"Instrument Sans Fallback";src:local("Arial");size-adjust:98%}

:root{
  --display:"Archivo","Archivo Fallback",system-ui,sans-serif;
  --body:"Instrument Sans","Instrument Sans Fallback",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r-sm:6px;--r:10px;--r-lg:16px;--r-xl:22px;
  --ease:cubic-bezier(.2,.8,.2,1);--dur:.18s;
  --topbar-h:52px;
  color-scheme:dark;
}
/* ---------- oscuro (por defecto) ---------- */
:root,[data-theme=dark]{
  --bg:#0B1511;--bg-2:#10201A;--surface:#12231C;--surface-2:#173028;--surface-3:#1D3B32;--hover:rgba(241,248,243,.055);--press:rgba(241,248,243,.09);
  --line:rgba(241,248,243,.085);--line-2:rgba(241,248,243,.16);
  --text:#F1F8F3;--text-2:#C9D6CF;--text-3:#93A59C;--text-4:#5F7168;
  --accent:#7CCFA9;--accent-ink:#0B1511;--accent-2:#9BE0C0;--accent-soft:rgba(124,207,169,.13);--accent-line:rgba(124,207,169,.38);
  --danger:#F0897D;--danger-soft:rgba(240,137,125,.13);--warn:#E6B26A;--warn-soft:rgba(230,178,106,.14);--info:#B79BE6;--info-soft:rgba(169,139,217,.16);--clay:#E0A27A;--clay-soft:rgba(196,131,91,.18);
  --st-untouched:#93A59C;--st-managing:#7CCFA9;--st-meeting:#B79BE6;--st-agreement:#E0A27A;--st-pool:#5F7168;
  --shadow-1:0 1px 2px rgba(0,0,0,.35);--shadow-2:0 10px 30px rgba(0,0,0,.45),0 2px 6px rgba(0,0,0,.3);--overlay:rgba(3,8,6,.62);
  --input-bg:rgba(241,248,243,.04);--code-bg:rgba(0,0,0,.25);--bar-bg:#12231C;
}
/* ---------- claro ---------- */
[data-theme=light]{
  color-scheme:light;
  --bg:#EDF3EF;--bg-2:#E4ECE7;--surface:#FFFFFF;--surface-2:#F5FAF7;--surface-3:#E9F1EC;--hover:rgba(23,51,43,.05);--press:rgba(23,51,43,.09);
  --line:rgba(23,51,43,.10);--line-2:rgba(23,51,43,.2);
  --text:#0F2620;--text-2:#3A4F46;--text-3:#687B72;--text-4:#9BAAA2;
  --accent:#2E9E72;--accent-ink:#FFFFFF;--accent-2:#23805C;--accent-soft:rgba(46,158,114,.11);--accent-line:rgba(46,158,114,.4);
  --danger:#C8473B;--danger-soft:rgba(200,71,59,.09);--warn:#A9701C;--warn-soft:rgba(169,112,28,.11);--info:#6E4DB0;--info-soft:rgba(110,77,176,.1);--clay:#A9663C;--clay-soft:rgba(196,131,91,.16);
  --st-untouched:#7C8E85;--st-managing:#2E9E72;--st-meeting:#7B58C2;--st-agreement:#C4835B;--st-pool:#9BAAA2;
  --shadow-1:0 1px 2px rgba(23,51,43,.08);--shadow-2:0 12px 32px rgba(23,51,43,.16),0 2px 6px rgba(23,51,43,.08);--overlay:rgba(15,38,32,.38);
  --input-bg:#fff;--code-bg:rgba(23,51,43,.06);--bar-bg:#fff;
}
/* ---------- cristal: un efecto que se activa por encima de claro u oscuro (no es un tercer modo) ---------- */
[data-glass]{--glass-blur:blur(26px) saturate(1.55);--r-glass:var(--r-lg)}
[data-glass][data-theme=dark]{
  --bg:#0A1713;--bg-2:rgba(255,255,255,.04);--surface:rgba(255,255,255,.075);--surface-2:rgba(255,255,255,.11);--surface-3:rgba(255,255,255,.15);--hover:rgba(255,255,255,.08);--press:rgba(255,255,255,.13);
  --line:rgba(255,255,255,.12);--line-2:rgba(255,255,255,.24);
  --text:#F6FBF8;--text-2:#D5E2DB;--text-3:#A3B6AC;--text-4:#71857B;
  --accent:#8CE0B8;--accent-ink:#06130E;--accent-2:#A9EACB;--accent-soft:rgba(140,224,184,.16);--accent-line:rgba(140,224,184,.45);
  --danger:#FF9A8E;--danger-soft:rgba(255,154,142,.16);--warn:#F0C27C;--warn-soft:rgba(240,194,124,.16);--info:#C3A9F2;--info-soft:rgba(195,169,242,.18);--clay:#EBB08A;--clay-soft:rgba(235,176,138,.18);
  --st-untouched:#A3B6AC;--st-managing:#8CE0B8;--st-meeting:#C3A9F2;--st-agreement:#EBB08A;--st-pool:#71857B;
  --shadow-1:0 1px 2px rgba(0,0,0,.2);--shadow-2:0 20px 50px rgba(0,0,0,.4),0 2px 8px rgba(0,0,0,.25);--overlay:rgba(4,12,9,.5);
  --input-bg:rgba(255,255,255,.07);--code-bg:rgba(0,0,0,.22);--glass-hi:inset 0 1px 0 rgba(255,255,255,.14);--menu-bg:rgba(20,38,31,.78);--bar-bg:rgba(15,32,26,.94);
}
[data-glass][data-theme=light]{
  --bg:#DDEBE3;--bg-2:rgba(255,255,255,.35);--surface:rgba(255,255,255,.55);--surface-2:rgba(255,255,255,.7);--surface-3:rgba(255,255,255,.85);--hover:rgba(23,51,43,.06);--press:rgba(23,51,43,.1);
  --line:rgba(23,51,43,.1);--line-2:rgba(23,51,43,.2);
  --text:#0E241E;--text-2:#364B42;--text-3:#5F7369;--text-4:#93A39A;
  --accent:#23895F;--accent-ink:#fff;--accent-2:#1B6F4E;--accent-soft:rgba(35,137,95,.12);--accent-line:rgba(35,137,95,.4);
  --danger:#C0392D;--danger-soft:rgba(192,57,45,.1);--warn:#9A6414;--warn-soft:rgba(154,100,20,.12);--info:#6A48AD;--info-soft:rgba(106,72,173,.1);--clay:#A9663C;--clay-soft:rgba(196,131,91,.18);
  --st-untouched:#6F8278;--st-managing:#23895F;--st-meeting:#7B58C2;--st-agreement:#B8764B;--st-pool:#93A39A;
  --shadow-1:0 1px 2px rgba(23,51,43,.1);--shadow-2:0 20px 50px rgba(23,51,43,.2),0 2px 8px rgba(23,51,43,.1);--overlay:rgba(14,36,30,.3);
  --input-bg:rgba(255,255,255,.6);--code-bg:rgba(23,51,43,.07);--glass-hi:inset 0 1px 0 rgba(255,255,255,.7);--menu-bg:rgba(250,254,252,.82);--bar-bg:rgba(246,252,249,.95);
}
[data-glass][data-theme=dark] body{background:
  radial-gradient(1100px 700px at 8% -8%,rgba(124,207,169,.42),transparent 62%),
  radial-gradient(900px 700px at 102% 8%,rgba(169,139,217,.34),transparent 58%),
  radial-gradient(1000px 800px at 45% 118%,rgba(196,131,91,.26),transparent 62%),
  radial-gradient(700px 500px at 70% 55%,rgba(46,158,114,.14),transparent 70%),#0A1713;background-attachment:fixed}
[data-glass][data-theme=light] body{background:
  radial-gradient(1100px 700px at 8% -8%,rgba(124,207,169,.7),transparent 62%),
  radial-gradient(900px 700px at 102% 8%,rgba(169,139,217,.5),transparent 58%),
  radial-gradient(1000px 800px at 45% 118%,rgba(224,162,122,.5),transparent 62%),#E3EFE8;background-attachment:fixed}
[data-glass] :is(.topbar,.side,.card,.panel,.modal__card,.table-wrap,.kpi,.filters,.detail__top,.detail__bottom,.logsbox,.pdetail,.welcome__card,.login__card,.group,.bulkbar,.leftcol){-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-hi),var(--shadow-1)}
[data-glass] :is(.popover,.toast,.palette__card,.rpop){background:var(--menu-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-hi),var(--shadow-2)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  [data-glass][data-theme=dark]{--surface:rgba(24,44,37,.92);--surface-2:rgba(32,56,47,.95);--menu-bg:#1b362d}
  [data-glass][data-theme=light]{--surface:rgba(255,255,255,.92);--surface-2:#fff;--menu-bg:#fff}
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;height:100%}
body{margin:0;height:100%;font:14px/1.45 var(--body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin:0;text-wrap:balance}
h1{font-size:26px;font-weight:800;letter-spacing:-.03em}h2{font-size:18px}h3{font-size:15px}h4{font-size:13px}
p{margin:0}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
::selection{background:var(--accent-soft);color:var(--text)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}
.muted{color:var(--text-3)}.small{font-size:12px}.tiny{font-size:11px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hide{display:none!important}
kbd{font:600 11px/1 var(--body);padding:3px 5px;border-radius:5px;border:1px solid var(--line-2);background:var(--hover);color:var(--text-3)}
* {scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:99px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-4);background-clip:content-box;border:3px solid transparent}
body.dragging{user-select:none;cursor:grabbing!important}body.dragging *{cursor:inherit!important}

.ico{display:inline-grid;place-items:center;width:var(--s,18px);height:var(--s,18px);flex:none;line-height:0}
.ico svg{width:100%;height:100%;display:block}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:34px;padding:0 14px;border-radius:var(--r);border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);font-weight:600;font-size:13px;white-space:nowrap;transition:background var(--dur),border-color var(--dur),transform .08s,box-shadow var(--dur)}
.btn:hover{background:var(--surface-3);border-color:var(--text-4)}.btn:active{transform:translateY(1px)}
.btn:disabled,.btn[aria-disabled=true]{opacity:.45;pointer-events:none}
.btn.primary{background:var(--accent);border-color:transparent;color:var(--accent-ink)}.btn.primary:hover{background:var(--accent-2)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--hover);color:var(--text)}
.btn.outline{background:transparent}
.btn.danger{background:var(--danger-soft);border-color:transparent;color:var(--danger)}.btn.danger:hover{background:var(--danger);color:#fff}
.btn.sm{height:28px;padding:0 10px;font-size:12px;border-radius:8px;gap:6px}
.btn.lg{height:42px;padding:0 20px;font-size:14px;border-radius:12px}
.btn.block{width:100%}
.iconbtn{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;border:0;background:transparent;color:var(--text-3);transition:background var(--dur),color var(--dur)}
.iconbtn:hover{background:var(--hover);color:var(--text)}.iconbtn.on{color:var(--accent);background:var(--accent-soft)}
.iconbtn.sm{width:26px;height:26px;border-radius:7px}
.iconbtn:disabled{opacity:.35;pointer-events:none}

/* ---------- formularios ---------- */
.input,.select,.textarea{width:100%;height:34px;padding:0 11px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--input-bg);color:var(--text);transition:border-color var(--dur),box-shadow var(--dur),background var(--dur)}
.textarea{height:auto;min-height:72px;padding:9px 11px;resize:vertical;line-height:1.45}
.input::placeholder,.textarea::placeholder{color:var(--text-4)}
.input:hover,.select:hover,.textarea:hover{border-color:var(--text-4)}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.select{appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2393A59C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;background-size:16px}
.select option{background:var(--surface-2);color:var(--text)}
.input.sm,.select.sm{height:28px;font-size:12px;border-radius:8px;padding:0 9px}
.select.sm{padding-right:26px}
.label{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin-bottom:5px}
.field{display:block;min-width:0}
.hint{font-size:12px;color:var(--text-3);margin-top:5px}
.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:15px;height:15px;margin:0;cursor:pointer}
input[type=datetime-local],input[type=date]{color-scheme:inherit}

/* ---------- chips, etiquetas, puntos ---------- */
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:99px;border:1px solid var(--line-2);background:transparent;color:var(--text-2);font-size:12.5px;font-weight:500;white-space:nowrap;transition:all var(--dur)}
.chip:hover{background:var(--hover);color:var(--text)}
.chip.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}
.chip.sm{height:24px;padding:0 9px;font-size:12px}
.chip .x{margin-right:-5px;margin-left:2px;opacity:.65;border:0;background:transparent;color:inherit;display:inline-grid;place-items:center;width:18px;height:18px;padding:0;border-radius:50%}.chip .x:hover{opacity:1;background:var(--press)}
.badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:99px;font-size:11.5px;font-weight:600;background:var(--hover);color:var(--text-2);white-space:nowrap}
.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.clay{background:var(--clay-soft);color:var(--clay)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--c,var(--text-4));flex:none}
.dot.untouched{--c:var(--st-untouched)}.dot.managing{--c:var(--st-managing)}.dot.meeting{--c:var(--st-meeting)}.dot.agreement{--c:var(--st-agreement)}.dot.pool{--c:var(--st-pool)}
.st-untouched{--st:var(--st-untouched)}.st-managing{--st:var(--st-managing)}.st-meeting{--st:var(--st-meeting)}.st-agreement{--st:var(--st-agreement)}.st-pool{--st:var(--st-pool)}
.avatar{display:inline-grid;place-items:center;width:var(--s,28px);height:var(--s,28px);border-radius:50%;background:color-mix(in srgb,var(--c) 22%,transparent);color:var(--c);font:700 calc(var(--s,28px)*.33)/1 var(--display);letter-spacing:.02em;flex:none;border:1px solid color-mix(in srgb,var(--c) 40%,transparent)}
.sep{height:1px;background:var(--line);margin:12px 0;border:0}
.empty{display:grid;place-items:center;text-align:center;gap:6px;padding:28px 16px;color:var(--text-3)}
.empty h3{color:var(--text-2)}

/* ---------- tarjetas ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}

/* ---------- avisos ---------- */
.toasts{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);display:grid;gap:8px;z-index:1000;width:min(520px,calc(100vw - 24px));pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:10px 12px 10px 14px;border-radius:14px;background:var(--surface-3);border:1px solid var(--line-2);box-shadow:var(--shadow-2);animation:tin .24s var(--ease)}
.toast.out{opacity:0;transform:translateY(8px);transition:all .2s}
.toast .ico:first-child{color:var(--accent)}.toast.error .ico:first-child{color:var(--danger)}
.toast__msg{flex:1;font-size:13px}.toast__btn{border:0;background:var(--accent-soft);color:var(--accent);height:26px;padding:0 10px;border-radius:8px;font-weight:600;font-size:12px}.toast__btn:hover{background:var(--accent);color:var(--accent-ink)}
.toast__x{border:0;background:transparent;color:var(--text-3);width:24px;height:24px;display:grid;place-items:center;border-radius:6px}.toast__x:hover{background:var(--hover)}
@keyframes tin{from{opacity:0;transform:translateY(10px) scale(.98)}}

/* ---------- ventanas ---------- */
.modal{position:fixed;inset:0;z-index:800;display:grid;place-items:center;padding:20px;background:var(--overlay);opacity:0;transition:opacity .16s}
.modal.in{opacity:1}.modal.out{opacity:0}
.modal__card{width:min(620px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-xl);box-shadow:var(--shadow-2);transform:translateY(10px) scale(.985);transition:transform .22s var(--ease)}
[data-theme=dark] .modal__card,:root:not([data-theme]) .modal__card{background:#14281F}
[data-theme=light] .modal__card{background:#fff}
.modal.in .modal__card{transform:none}
.modal__card.sm{width:min(440px,100%)}.modal__card.lg{width:min(860px,100%)}.modal__card.xl{width:min(1040px,100%)}
.modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px 6px}
.modal__head h2{font-size:19px}.modal__head p{margin-top:3px;font-size:13px}
.modal__body{padding:12px 22px 18px;overflow:auto;min-height:0}
.modal__foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line)}
.modal__foot .grow{margin-right:auto}

/* ---------- menús ---------- */
.popover{position:fixed;z-index:900;min-width:200px;max-width:min(380px,calc(100vw - 16px));background:var(--surface-3);border:1px solid var(--line-2);border-radius:14px;box-shadow:var(--shadow-2);overflow:auto;opacity:0;transform:translateY(-4px) scale(.98);transform-origin:top;transition:opacity .12s,transform .14s var(--ease)}
[data-theme=dark] .popover,:root:not([data-theme]) .popover{background:#1B362C}
[data-theme=light] .popover{background:#fff}
.popover.in{opacity:1;transform:none}
.menu{display:grid;padding:6px}
.menu__item{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border:0;border-radius:8px;background:transparent;text-align:left;color:var(--text);font-size:13px;white-space:nowrap}
.menu__item:hover,.menu__item:focus-visible{background:var(--hover);outline:0}.menu__item .ico{color:var(--text-3)}.menu__item > span:not(.ico){flex:1}
.menu__item.danger{color:var(--danger)}.menu__item.danger .ico{color:var(--danger)}.menu__item.active{color:var(--accent)}
.menu__item:disabled{opacity:.4}
.menu__sep{height:1px;background:var(--line);margin:5px 4px}.menu__head{padding:8px 10px 4px;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}

/* ---------- divisores ---------- */
.splitter{position:relative;flex:none;z-index:5;touch-action:none}
.splitter.x{width:9px;margin:0 -4px;cursor:col-resize}.splitter.y{height:9px;margin:-4px 0;cursor:row-resize}
.splitter__grip{position:absolute;background:transparent;border-radius:3px;transition:background var(--dur)}
.splitter.x .splitter__grip{left:4px;top:0;bottom:0;width:1px}.splitter.y .splitter__grip{top:4px;left:0;right:0;height:1px}
.splitter:hover .splitter__grip,.splitter.active .splitter__grip{background:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.splitter:focus-visible{outline:0}.splitter:focus-visible .splitter__grip{background:var(--accent)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
