/* =====================================================================
   Vinto · tema "Air": vidrio, varios tonos, aire.
   Oscuro: negros y grises con blanco; verde eléctrico solo como señal.
   Claro: blanco hueso con negro; verde profundo para acción, eléctrico solo en puntos.
   ===================================================================== */
:root{
  --font:"Montserrat",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --r-xl:24px; --r-lg:18px; --r-md:12px; --r-sm:9px;
  --sidew:256px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
/* ---------- Oscuro (por defecto) ---------- */
:root,:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0b0c0d;
  --bg-grad:
    radial-gradient(900px 620px at 12% -8%,rgba(255,255,255,.075),transparent 62%),
    radial-gradient(760px 560px at 100% 8%,rgba(255,255,255,.045),transparent 60%),
    radial-gradient(700px 520px at 78% 110%,rgba(0,255,102,.045),transparent 62%),
    linear-gradient(180deg,#0e0f11,#0a0b0c);
  --glass-1:rgba(255,255,255,.035);
  --glass-2:rgba(255,255,255,.06);
  --glass-3:rgba(255,255,255,.095);
  --glass-solid:rgba(22,23,25,.82);
  --line:rgba(255,255,255,.075);
  --line-2:rgba(255,255,255,.13);
  --shine:inset 0 1px 0 rgba(255,255,255,.06);
  --shadow:0 20px 50px -24px rgba(0,0,0,.75);
  --ink-1:#F3F3F5; --ink-2:rgba(243,243,245,.72); --ink-3:rgba(243,243,245,.5); --ink-4:rgba(243,243,245,.3);
  --primary:#F3F3F5; --primary-ink:#0b0c0d;
  --accent:#00FF66; --accent-soft:rgba(0,255,102,.12); --accent-text:#7dffb0;
  --warn:#e9b65c; --warn-soft:rgba(233,182,92,.13);
  --danger:#f08174; --danger-soft:rgba(240,129,116,.13);
  --info:#97b8f2; --info-soft:rgba(151,184,242,.13);
  --chart-1:#e8e8ec; --chart-2:#00e85c; --chart-base:rgba(243,243,245,.35); --chart-grid:rgba(255,255,255,.06);
  --input:rgba(255,255,255,.045);
  --overlay:rgba(4,5,6,.55);
  --good:#74e3a6;
  --p-neutral:#a9aab2; --p-urdimbre:#8fa8dc; --p-montaje:#e2b363; --p-pasadas:#b4a0f2; --p-hilos:#63d1c5; --p-medicion:#ee9cc9; --p-ifile:#00FF66; --p-informes:#f2c98c;
  --m-leer:#8fa8dc; --m-tramar:#b4a0f2; --m-tejer:#63d1c5; --m-mitad:#e2b363; --m-anudar:#ee9cc9; --m-decidir:#74e3a6;
  --s-idea:#8b8c94; --s-prod:#b4a0f2; --s-qc:#8fa8dc; --s-cliente:#e2b363; --s-listo:#63d1c5; --s-pub:#74e3a6;
}
/* ---------- Claro ---------- */
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#F3F3F5;
  --bg-grad:
    radial-gradient(900px 620px at 8% -6%,rgba(255,255,255,1),transparent 60%),
    radial-gradient(820px 600px at 100% 6%,rgba(23,81,59,.07),transparent 62%),
    radial-gradient(760px 600px at 70% 110%,rgba(0,198,94,.08),transparent 62%),
    radial-gradient(600px 500px at 0% 100%,rgba(200,206,200,.45),transparent 65%),
    linear-gradient(180deg,#f5f5f7,#eeefee);
  --glass-1:rgba(255,255,255,.5);
  --glass-2:rgba(255,255,255,.68);
  --glass-3:rgba(255,255,255,.86);
  --glass-solid:rgba(250,250,251,.9);
  --line:rgba(30,30,30,.075);
  --line-2:rgba(30,30,30,.13);
  --shine:inset 0 1px 0 rgba(255,255,255,.9);
  --shadow:0 18px 44px -26px rgba(30,40,35,.35);
  --ink-1:#1E1E1E; --ink-2:rgba(30,30,30,.7); --ink-3:rgba(30,30,30,.5); --ink-4:rgba(30,30,30,.3);
  --primary:#17513B; --primary-ink:#ffffff;
  --accent:#00C65E; --accent-soft:rgba(23,81,59,.09); --accent-text:#17513B;
  --warn:#9a6200; --warn-soft:rgba(190,130,20,.11);
  --danger:#b4382b; --danger-soft:rgba(180,56,43,.09);
  --info:#2f5fa8; --info-soft:rgba(47,95,168,.09);
  --chart-1:#1E1E1E; --chart-2:#17513B; --chart-base:rgba(30,30,30,.35); --chart-grid:rgba(30,30,30,.07);
  --input:rgba(255,255,255,.7);
  --overlay:rgba(40,46,42,.22);
  --good:#17513B;
  --p-neutral:#7a7b82; --p-urdimbre:#3c5d9a; --p-montaje:#a26a12; --p-pasadas:#6a4fb8; --p-hilos:#167a72; --p-medicion:#a83d78; --p-ifile:#17513B; --p-informes:#9a6a1c;
  --m-leer:#3c5d9a; --m-tramar:#6a4fb8; --m-tejer:#167a72; --m-mitad:#a26a12; --m-anudar:#a83d78; --m-decidir:#17513B;
  --s-idea:#8b8c94; --s-prod:#6a4fb8; --s-qc:#3c5d9a; --s-cliente:#a26a12; --s-listo:#167a72; --s-pub:#17513B;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{font-family:var(--font);font-size:14px;line-height:1.55;color:var(--ink-1);background:var(--bg-grad);background-color:var(--bg);background-attachment:fixed;letter-spacing:-.005em;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}
a{color:inherit}
:focus-visible{outline:2px solid var(--ink-2);outline-offset:2px}
::selection{background:var(--accent-soft)}
[hidden]{display:none!important}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- Vidrio ---------- */
.glass{background:var(--glass-1);border:1px solid var(--line);box-shadow:var(--shine);-webkit-backdrop-filter:blur(24px) saturate(140%);backdrop-filter:blur(24px) saturate(140%)}
.card{background:var(--glass-1);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shine);-webkit-backdrop-filter:blur(24px) saturate(140%);backdrop-filter:blur(24px) saturate(140%);padding:24px;min-width:0}
.card.tight{padding:18px}
.card.flat{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.card.raised{background:var(--glass-2)}

/* ---------- Tipografía ---------- */
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.02em;color:var(--ink-1)}
.h1{font-size:28px;line-height:1.15;letter-spacing:-.03em}
.h2{font-size:18px;line-height:1.3}
.h3{font-size:15px;line-height:1.35}
.over{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.sub{color:var(--ink-2);font-size:14px;margin:6px 0 0;max-width:68ch}
.muted{color:var(--ink-3)}
.small{font-size:12.5px}
.num{font-variant-numeric:tabular-nums}
p{margin:0}

/* ---------- Estructura ---------- */
.app{display:grid;grid-template-columns:var(--sidew) minmax(0,1fr);min-height:100vh}
.app.collapsed{--sidew:76px}
.side{position:sticky;top:12px;margin:12px 0 12px 12px;height:calc(100vh - 24px);border-radius:var(--r-xl);display:flex;flex-direction:column;gap:6px;padding:18px 12px;overflow:auto}
.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 14px}
.brand svg{width:26px;height:22px;flex:none}
.brand b{font-weight:700;font-size:19px;letter-spacing:-.04em}
.brand span{font-size:12px;color:var(--ink-3);font-weight:500}
.navgroup{display:flex;flex-direction:column;gap:2px}
.navlabel{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4);padding:14px 12px 6px}
.navbtn{display:flex;align-items:center;gap:12px;border:0;background:none;border-radius:var(--r-md);padding:9px 12px;color:var(--ink-2);font-weight:500;cursor:pointer;text-align:left;position:relative;text-decoration:none;min-width:0}
.navbtn:hover{background:var(--glass-2);color:var(--ink-1)}
.navbtn[aria-current="page"]{background:var(--glass-3);color:var(--ink-1);font-weight:600}
.navbtn[aria-current="page"]::before{content:"";position:absolute;left:-2px;top:50%;width:3px;height:16px;margin-top:-8px;border-radius:3px;background:var(--accent)}
.navbtn svg{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.navbtn .lbl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.navbtn .cnt{font-size:11px;font-weight:600;color:var(--ink-3);font-variant-numeric:tabular-nums}
.navbtn .dot{width:7px;height:7px;border-radius:50%;background:var(--ink-4);flex:none;margin:0 5px}
.navbtn .dot.activo{background:var(--accent)} .navbtn .dot.montaje{background:var(--warn)} .navbtn .dot.prospecto{background:var(--info)}
.sidefoot{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:10px;border-top:1px solid var(--line)}
.me{display:flex;align-items:center;gap:10px;padding:10px 10px 4px;min-width:0}
.me div{min-width:0}
.me>div strong{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me>div span{display:block;font-size:12px;color:var(--ink-3)}
.av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;background:var(--glass-3);border:1px solid var(--line-2);flex:none;color:var(--ink-1)}
.av.sm{width:26px;height:26px;font-size:10.5px}
.avs{display:flex}.avs .av{margin-left:-6px;border:2px solid var(--bg)}.avs .av:first-child{margin-left:0}
.app.collapsed .lbl,.app.collapsed .navlabel,.app.collapsed .brand b,.app.collapsed .brand span,.app.collapsed .cnt,.app.collapsed .me div,.app.collapsed .navbtn .dot{display:none}
.app.collapsed .navbtn{justify-content:center;padding:10px}
.app.collapsed .brand{justify-content:center;padding:4px 0 14px}

.main{min-width:0;padding:12px 28px 80px 28px}
.topbar{position:sticky;top:12px;z-index:20;display:flex;align-items:center;gap:12px;height:56px;padding:0 10px 0 18px;border-radius:var(--r-lg);margin-bottom:28px}
.crumbs{display:flex;align-items:center;gap:8px;min-width:0;flex:1;font-size:13px;color:var(--ink-3)}
.crumbs a,.crumbs button{background:none;border:0;padding:0;color:var(--ink-3);cursor:pointer;text-decoration:none;white-space:nowrap}
.crumbs a:hover,.crumbs button:hover{color:var(--ink-1)}
.crumbs b{color:var(--ink-1);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumbs i{font-style:normal;color:var(--ink-4)}
.tools{display:flex;align-items:center;gap:6px}
.iconbtn{width:38px;height:38px;border-radius:12px;display:inline-grid;place-items:center;border:1px solid transparent;background:none;cursor:pointer;color:var(--ink-2);position:relative;flex:none}
.iconbtn:hover{background:var(--glass-2);color:var(--ink-1);border-color:var(--line)}
.iconbtn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.iconbtn .badge{position:absolute;top:6px;right:6px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;line-height:1}
.searchbtn{display:flex;align-items:center;gap:10px;height:38px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:var(--glass-1);color:var(--ink-3);cursor:pointer;min-width:220px}
.searchbtn:hover{color:var(--ink-1);background:var(--glass-2)}
.searchbtn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.searchbtn kbd{margin-left:auto;font-family:inherit;font-size:11px;border:1px solid var(--line-2);border-radius:6px;padding:1px 6px}
.saved{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:6px;white-space:nowrap;padding:0 6px}
.saved::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
.saved.saving::before{background:var(--warn)}
.wrap{max-width:1180px;margin:0 auto}

/* ---------- Encabezados de página ---------- */
.phead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.phead .over{margin-bottom:8px;display:block}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 16px;border-radius:12px;border:1px solid var(--line);background:var(--glass-2);color:var(--ink-1);font-weight:500;font-size:13.5px;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .15s var(--ease),border-color .15s}
.btn:hover{background:var(--glass-3);border-color:var(--line-2)}
.btn.primary{background:var(--primary);color:var(--primary-ink);border-color:transparent;font-weight:600}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{background:none;border-color:transparent;color:var(--ink-2)}
.btn.ghost:hover{background:var(--glass-2);color:var(--ink-1)}
.btn.danger{color:var(--danger)}
.btn.sm{height:30px;padding:0 11px;font-size:12.5px;border-radius:10px}
.btn.block{width:100%}
.btn[disabled]{opacity:.42;cursor:not-allowed;filter:none}
.btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.link{background:none;border:0;padding:0;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px;cursor:pointer}
.link:hover{color:var(--ink-1)}

/* ---------- Pastillas y estados ---------- */
.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:99px;font-size:12px;font-weight:500;background:var(--glass-2);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink-4)}
.pill.nodot::before{display:none}
.pill.ok::before{background:var(--accent)} .pill.warn::before{background:var(--warn)} .pill.bad::before{background:var(--danger)} .pill.info::before{background:var(--info)}
.pill.ok{color:var(--ink-1)}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:7px;font-size:11.5px;font-weight:600;background:var(--glass-2);color:var(--ink-2);white-space:nowrap}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;font-weight:600;letter-spacing:.02em;padding:2px 7px;border-radius:7px;background:var(--glass-2);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}
.dec{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}
.dec.patron{background:var(--accent-soft);color:var(--accent-text)}
.dec.ajuste{background:var(--warn-soft);color:var(--warn)}
.dec.descarte{background:var(--danger-soft);color:var(--danger)}
.dec.pendiente{background:var(--info-soft);color:var(--info)}
.dec.none{background:var(--glass-2);color:var(--ink-3)}

/* ---------- Pestañas y segmentos ---------- */
.tabs{display:flex;gap:4px;padding:5px;border-radius:16px;overflow-x:auto;scrollbar-width:none;margin-bottom:28px;width:max-content;max-width:100%}
.tabs::-webkit-scrollbar{display:none}
.tab{border:0;background:none;height:36px;padding:0 16px;border-radius:12px;color:var(--ink-2);font-weight:500;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:8px}
.tab:hover{color:var(--ink-1);background:var(--glass-2)}
.tab[aria-selected="true"]{background:var(--glass-3);color:var(--ink-1);font-weight:600;box-shadow:var(--shine),0 4px 14px -8px rgba(0,0,0,.4)}
.tab .tc{font-size:11px;color:var(--ink-3);font-weight:500;font-variant-numeric:tabular-nums}
.seg{display:inline-flex;gap:3px;padding:3px;border-radius:12px;background:var(--glass-1);border:1px solid var(--line)}
.seg button{border:0;background:none;height:30px;padding:0 12px;border-radius:9px;color:var(--ink-2);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}
.seg button[aria-pressed="true"]{background:var(--glass-3);color:var(--ink-1);font-weight:600}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--glass-1);height:30px;padding:0 12px;border-radius:99px;color:var(--ink-2);font-size:12.5px;font-weight:500;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.chip:hover{color:var(--ink-1);background:var(--glass-2)}
.chip[aria-pressed="true"]{background:var(--ink-1);color:var(--bg);border-color:var(--ink-1)}
.chip i{font-style:normal;opacity:.6;font-variant-numeric:tabular-nums}

/* ---------- Sección con índice lateral (una sección a la vez) ---------- */
.split{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}
.secnav{position:sticky;top:96px;display:flex;flex-direction:column;gap:2px}
.secnav button{display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;background:none;text-align:left;padding:9px 12px;border-radius:11px;color:var(--ink-2);cursor:pointer;font-weight:500}
.secnav button:hover{background:var(--glass-2);color:var(--ink-1)}
.secnav button[aria-current="true"]{background:var(--glass-3);color:var(--ink-1);font-weight:600}
.secnav .st{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:500}
.secnav .st.done{color:var(--accent-text)}
.secnav .ck{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center;flex:none}
.secnav .ck.done{background:var(--accent);border-color:var(--accent)}
.secnav .ck.done::after{content:"";width:5px;height:8px;border:solid #0b0c0d;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.sechead{margin-bottom:22px}
.sechead .over{display:block;margin-bottom:6px}
.secfoot{display:flex;justify-content:space-between;gap:12px;margin-top:24px}

/* ---------- Formularios ---------- */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px}
.form.one{grid-template-columns:minmax(0,1fr)}
.form.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.f{display:flex;flex-direction:column;gap:7px;min-width:0}
.f.wide{grid-column:1/-1}
.f>label,.lab{font-size:12.5px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:6px}
.req{color:var(--warn);font-weight:700}
.hint{font-size:12px;color:var(--ink-3);line-height:1.45}
.warnline{font-size:12px;color:var(--warn)}
input[type=text],input[type=password],input[type=time],input[type=month],input[type=email],input[type=url],input[type=date],input[type=number],input[type=search],textarea,select{
  width:100%;min-width:0;border:1px solid var(--line);background:var(--input);border-radius:12px;padding:11px 13px;color:var(--ink-1);transition:border-color .15s,background .15s,box-shadow .15s}
input::placeholder,textarea::placeholder{color:var(--ink-4)}
input:hover,textarea:hover,select:hover{border-color:var(--line-2)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ink-3);background:var(--glass-3);box-shadow:0 0 0 4px var(--glass-2)}
textarea{resize:none;min-height:72px;line-height:1.55;overflow:hidden}
select{appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px}
input[disabled],textarea[disabled],select[disabled]{opacity:.55;cursor:not-allowed}
.check{display:flex;gap:10px;align-items:flex-start;cursor:pointer;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--glass-1)}
.check:hover{background:var(--glass-2)}
.check input{width:17px;height:17px;margin:1px 0 0;accent-color:var(--primary);flex:none}
.check.on{border-color:var(--line-2);background:var(--glass-2)}
.checks{display:grid;gap:8px}
.checks.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.toggle{position:relative;width:38px;height:22px;flex:none}
.toggle input{opacity:0;width:0;height:0}
.toggle span{position:absolute;inset:0;border-radius:99px;background:var(--glass-3);border:1px solid var(--line-2);cursor:pointer;transition:.2s}
.toggle span::after{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;border-radius:50%;background:var(--ink-2);transition:.2s var(--ease)}
.toggle input:checked+span{background:var(--primary)}
.toggle input:checked+span::after{transform:translateX(16px);background:var(--primary-ink)}

/* ---------- Tablas ---------- */
.tbl{width:100%;border-collapse:collapse}
.tblbox{overflow-x:auto;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--glass-1)}
.tbl th{font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--ink-3);text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--glass-1);position:sticky;top:0}
.tbl td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr.click{cursor:pointer}
.tbl tbody tr.click:hover td{background:var(--glass-2)}
.tbl .r{text-align:right}
.tbl td input{padding:8px 10px;border-radius:10px}
.tbl tfoot td{font-weight:600;border-top:1px solid var(--line-2)}
.cell-title{font-weight:600;color:var(--ink-1)}
.cell-sub{font-size:12px;color:var(--ink-3);margin-top:2px}

/* ---------- Métricas ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px}
.kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.kpis.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.kpi{padding:20px;border-radius:var(--r-lg);background:var(--glass-1);border:1px solid var(--line);box-shadow:var(--shine);display:flex;flex-direction:column;gap:6px;min-width:0}
.kpi .lab{font-weight:500;color:var(--ink-3);font-size:12.5px}
.kpi .val{font-size:30px;font-weight:600;letter-spacing:-.035em;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--ink-1)}
.kpi .val small{font-size:13px;font-weight:500;color:var(--ink-3);letter-spacing:0;margin-left:4px}
.kpi .knote{font-size:12px;color:var(--ink-3);line-height:1.4}
.delta{font-size:12px;font-weight:600;color:var(--ink-3)}
.delta.up{color:var(--accent-text)} .delta.down{color:var(--danger)}
.bar{height:6px;border-radius:99px;background:var(--glass-3);overflow:hidden}
.bar i{display:block;height:100%;border-radius:99px;background:var(--ink-2)}
.bar.accent i{background:var(--accent)}

/* ---------- Grillas ---------- */
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.grid-main{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start}
.stack{display:flex;flex-direction:column;gap:16px;min-width:0}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.row.between{justify-content:space-between}
.gap-s{gap:6px}
.mt{margin-top:16px}.mt-l{margin-top:28px}.mb{margin-bottom:16px}
.divider{height:1px;background:var(--line);margin:22px 0}

/* ---------- Listas ---------- */
.list{display:flex;flex-direction:column}
.li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line)}
.li:first-child{border-top:0;padding-top:4px}
.li .grow{flex:1;min-width:0}
.li .t{font-weight:500;color:var(--ink-1)}
.li .d{font-size:12.5px;color:var(--ink-3);margin-top:2px}
.sev{width:8px;height:8px;border-radius:50%;margin-top:7px;flex:none;background:var(--ink-4)}
.sev.alta{background:var(--danger)} .sev.media{background:var(--warn)} .sev.info{background:var(--info)} .sev.ok{background:var(--accent)}
.empty{padding:40px 20px;text-align:center;color:var(--ink-3)}
.empty strong{display:block;color:var(--ink-1);font-size:15px;font-weight:600;margin-bottom:6px}

/* ---------- Bienvenida ---------- */
.hello{padding:30px 32px;border-radius:var(--r-xl);margin-bottom:20px;position:relative;overflow:hidden}
.hello .h1{font-size:30px}
.hello p{color:var(--ink-2);font-size:15px;margin-top:8px;max-width:64ch}
.hello .over{display:block;margin-bottom:10px}

/* ---------- Tablero (kanban) ---------- */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:14px;overflow-x:auto;padding-bottom:8px}
.col{border-radius:var(--r-lg);background:var(--glass-1);border:1px solid var(--line);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:200px}
.colhead{display:flex;justify-content:space-between;align-items:center;padding:4px 6px 6px}
.colhead b{font-size:13px;font-weight:600}
.colhead span{font-size:12px;color:var(--ink-3)}
.hcard{border-radius:14px;background:var(--glass-2);border:1px solid var(--line);padding:13px 14px;cursor:pointer;display:flex;flex-direction:column;gap:8px;text-align:left;color:inherit;width:100%;box-shadow:var(--shine);transition:transform .15s var(--ease),background .15s}
.hcard:hover{background:var(--glass-3);transform:translateY(-1px)}
.hcard .t{font-weight:600;font-size:13.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hcard .m{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--ink-3)}
.hcard .warn{font-size:11.5px;color:var(--warn)}

/* ---------- Calendario ---------- */
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal .dh{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:4px 8px}
.cal .cd{min-height:96px;border-radius:12px;background:var(--glass-1);border:1px solid var(--line);padding:6px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cal .cd.off{background:transparent;border-color:transparent}
.cal .dn{font-size:12px;color:var(--ink-3);padding:2px 4px;align-self:flex-start;border-radius:6px;font-variant-numeric:tabular-nums}
.cal .cd.today .dn{background:var(--ink-1);color:var(--bg);font-weight:700}
.cal .ev{border:0;text-align:left;font-size:11.5px;padding:4px 7px;border-radius:7px;background:var(--glass-3);color:var(--ink-1);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal .ev.pub{box-shadow:inset 2px 0 0 var(--accent)}

/* ---------- Línea de tiempo (momentos / pasos) ---------- */
.timeline{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.timeline.steps6{grid-template-columns:repeat(6,minmax(0,1fr))}
.tstep{border:1px solid var(--line);background:var(--glass-1);border-radius:14px;padding:12px 14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:3px;color:inherit;position:relative;min-width:0}
.tstep:hover{background:var(--glass-2)}
.tstep b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tstep span{font-size:11.5px;color:var(--ink-3)}
.tstep[aria-current="true"]{background:var(--glass-3);border-color:var(--line-2)}
.tstep.now::after{content:"Hoy";position:absolute;top:10px;right:10px;font-size:10px;font-weight:700;padding:1px 6px;border-radius:99px;background:var(--accent);color:#0b0c0d}
.tstep.done b::before{content:"✓ ";color:var(--accent-text)}
.progress{height:4px;border-radius:99px;background:var(--glass-3);overflow:hidden;margin:16px 0 4px}
.progress i{display:block;height:100%;background:var(--ink-1);border-radius:99px}

/* ---------- Hipótesis / nudos ---------- */
.hyp{border:1px solid var(--line);background:var(--glass-1);border-radius:var(--r-lg);padding:20px;display:flex;flex-direction:column;gap:16px}
.hyp+.hyp{margin-top:12px}
.hn{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--glass-3);border:1px solid var(--line-2);flex:none}
.chain{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chain .node{border:1px solid var(--line);background:var(--glass-2);border-radius:12px;padding:8px 12px;font-size:12.5px;display:flex;flex-direction:column;gap:2px;cursor:pointer;text-align:left;color:inherit}
.chain .node:hover{background:var(--glass-3)}
.chain .node b{font-weight:600}
.chain .arrow{color:var(--ink-4)}

/* ---------- Drawer y modal ---------- */
.overlay{position:fixed;inset:0;background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:60;animation:fade .2s}
.drawer{position:fixed;top:12px;right:12px;bottom:12px;width:min(620px,calc(100vw - 24px));z-index:61;border-radius:var(--r-xl);background:var(--glass-solid);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(30px) saturate(150%);backdrop-filter:blur(30px) saturate(150%);display:flex;flex-direction:column;animation:slide .25s var(--ease)}
.dhead{padding:22px 24px 0;display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.dhead .h2{font-size:19px}
.dtabs{padding:16px 24px 0;display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.dtabs button{border:0;background:none;padding:10px 12px;color:var(--ink-3);font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.dtabs button[aria-selected="true"]{color:var(--ink-1);border-bottom-color:var(--ink-1);font-weight:600}
.dbody{padding:24px;overflow:auto;flex:1}
.dfoot{padding:16px 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center}
.modal{position:fixed;z-index:61;left:50%;top:50%;transform:translate(-50%,-50%);width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 48px);overflow:auto;border-radius:var(--r-xl);background:var(--glass-solid);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(30px) saturate(150%);backdrop-filter:blur(30px) saturate(150%);padding:28px;animation:pop .22s var(--ease)}
.modal.wide{width:min(880px,calc(100vw - 24px))}
.mhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:20px}
@keyframes fade{from{opacity:0}}
@keyframes slide{from{transform:translateX(30px);opacity:0}}
@keyframes pop{from{transform:translate(-50%,-48%);opacity:0}}

/* ---------- Paleta de búsqueda ---------- */
.palette{top:14vh;transform:translateX(-50%);padding:0;width:min(560px,calc(100vw - 24px))}
@keyframes popt{from{opacity:0;transform:translate(-50%,8px)}}
.palette{animation:popt .2s var(--ease)}
.palette input{border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:18px 20px;font-size:15px}
.palette input:focus{box-shadow:none;background:none}
.plist{padding:8px;max-height:52vh;overflow:auto}
.plist button{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;padding:10px 12px;border-radius:11px;cursor:pointer;text-align:left;color:var(--ink-1)}
.plist button:hover,.plist button.sel{background:var(--glass-3)}
.plist small{margin-left:auto;color:var(--ink-3);font-size:12px}

/* ---------- Ayuda del método ---------- */
.term{border-bottom:1px dotted var(--ink-3);cursor:help;position:relative}
.tip{position:fixed;z-index:80;max-width:280px;padding:10px 12px;border-radius:12px;background:var(--glass-solid);border:1px solid var(--line-2);box-shadow:var(--shadow);font-size:12.5px;line-height:1.45;color:var(--ink-1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);pointer-events:none}
.tip b{display:block;margin-bottom:2px}
.gloss{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gloss div{padding:12px 14px;border-radius:12px;background:var(--glass-1);border:1px solid var(--line)}
.gloss b{font-size:13px}
.gloss p{font-size:12.5px;color:var(--ink-2);margin-top:2px}
.gloss .tag{margin-left:6px}

/* ---------- Gráficos ---------- */
.chart{width:100%;height:auto;display:block;overflow:visible}
.chart text{font-family:var(--font);font-size:12px;fill:var(--ink-3)}
.chart .grid{stroke:var(--chart-grid)}
.chart .base{stroke:var(--chart-base);stroke-dasharray:4 4}
.chart .ln{fill:none;stroke:var(--chart-1);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chart .pt{fill:var(--chart-1);stroke:var(--bg);stroke-width:2}
.chart .hit{fill:transparent;cursor:pointer}
.chart .br{fill:var(--chart-1)}
.chart .br.acc{fill:var(--chart-2)}
.chart .vl{font-size:12.5px;font-weight:600;fill:var(--ink-1)}
.legend{display:flex;gap:16px;font-size:12px;color:var(--ink-3);margin-top:10px;flex-wrap:wrap}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:14px;height:2px;background:var(--chart-1);border-radius:2px}
.legend i.base{background:none;border-top:2px dashed var(--chart-base);height:0}
.funnel{display:flex;flex-direction:column;gap:10px}
.funnel .fr{display:grid;grid-template-columns:150px minmax(0,1fr) 70px;gap:12px;align-items:center;font-size:13px}
.funnel .ft{height:10px;border-radius:99px;background:var(--glass-3);overflow:hidden}
.funnel .ft i{display:block;height:100%;border-radius:99px;background:var(--ink-2)}

/* ---------- Biblioteca ---------- */
.lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.libcard{display:flex;flex-direction:column;gap:12px}
.libcard .rule{font-weight:600;font-size:15px;line-height:1.4;letter-spacing:-.01em}
.facets{display:grid;grid-template-columns:2fr repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}

/* ---------- Login ---------- */
.login{min-height:100vh;display:grid;place-items:center;padding:32px 16px}
.lcard{width:min(520px,100%);border-radius:28px;padding:36px}
.lprof{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:22px}
.lprof button{display:flex;gap:12px;align-items:center;text-align:left;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--glass-1);cursor:pointer;color:inherit}
.lprof button:hover{background:var(--glass-3)}
.lprof b{display:block;font-size:13.5px}
.lprof span{display:block;font-size:12px;color:var(--ink-3)}

/* ---------- Portal ---------- */
.portal-note{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;border-radius:var(--r-md);margin-bottom:18px;font-size:13px;color:var(--ink-2)}

/* ---------- Avisos ---------- */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:90;padding:12px 18px;border-radius:14px;background:var(--ink-1);color:var(--bg);font-weight:500;font-size:13.5px;box-shadow:var(--shadow);max-width:calc(100vw - 32px);animation:fade .2s}
.note{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;background:var(--glass-1);border:1px solid var(--line);font-size:13px;color:var(--ink-2)}
.note::before{content:"";width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:var(--info)}
.note.warn::before{background:var(--warn)} .note.bad::before{background:var(--danger)} .note.ok::before{background:var(--accent)}
.note b{color:var(--ink-1);font-weight:600}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .grid-main{grid-template-columns:minmax(0,1fr)}
  .timeline,.timeline.steps6{grid-template-columns:repeat(3,minmax(0,1fr))}
  .facets{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .app{--sidew:76px}
  .app .lbl,.app .navlabel,.app .brand b,.app .brand span,.app .cnt,.app .me div,.app .navbtn .dot{display:none}
  .app .navbtn{justify-content:center;padding:10px}
  .split{grid-template-columns:minmax(0,1fr)}
  .secnav{position:static;flex-direction:row;overflow-x:auto}
  .secnav button{white-space:nowrap}
  .form,.form.three,.grid2,.grid3,.checks.two,.gloss{grid-template-columns:minmax(0,1fr)}
  .searchbtn{min-width:0}.searchbtn span,.searchbtn kbd{display:none}
  .main{padding:12px 14px 80px}
}
@media (max-width:560px){.kpis,.kpis.three,.kpis.two{grid-template-columns:minmax(0,1fr)}.lprof{grid-template-columns:minmax(0,1fr)}}
@media print{
  body{background:#fff;color:#111}
  body.printing>*:not(.modal){display:none!important}
  body.printing .modal{position:static;transform:none;box-shadow:none;border:0;background:#fff;width:100%;max-height:none}
  .noprint{display:none!important}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- Colores por proceso ---------- */
.pdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--pc,var(--ink-4));flex:none}
.tab .pdot{opacity:.9}
.split .secnav button[aria-current="true"]{box-shadow:inset 3px 0 0 var(--pc)}
.split .sechead .over,.pover{color:var(--pc)}
.tstep{border-top:3px solid var(--pc,var(--line))}
.tstep b::after{content:""}
.hcard{box-shadow:var(--shine),inset 3px 0 0 var(--pc,transparent)}
.colhead b{display:flex;align-items:center;gap:8px}
.legendrow{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-3)}
.legendrow span{display:inline-flex;align-items:center;gap:6px}
/* ---------- Juicio de resultados ---------- */
.j-good{color:var(--good)!important}.j-flat{color:var(--ink-2)!important}.j-reg{color:var(--warn)!important}.j-bad{color:var(--danger)!important}
.jtag{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:6px;background:var(--glass-2)}
.delta.j-flat::before{content:""}
/* ---------- Tooltip enriquecido ---------- */
.tip{max-width:340px;padding:14px 16px}
.tip .tt{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.tip .tt b{margin:0;font-size:13.5px}
.tip .tag{height:18px;font-size:10px}
.tip .mini{display:flex;gap:4px;margin-top:10px;flex-wrap:wrap}
.tip .mini span{font-size:10.5px;padding:3px 7px;border-radius:7px;background:var(--glass-2);color:var(--ink-3);border:1px solid var(--line)}
.tip .mini span.on{background:var(--pc);color:#0b0c0d;border-color:transparent;font-weight:700}
[data-theme="light"] .tip .mini span.on{color:#fff}
[data-term]{cursor:help}
.term{border-bottom:1px dotted var(--ink-3)}
/* ---------- Diagrama del método (HTML, legible) ---------- */
.mflow{display:flex;flex-direction:column;gap:14px}
.mrow{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
.mnode{flex:1;min-width:150px;padding:16px 18px;border-radius:16px;background:var(--glass-2);border:1px solid var(--line);border-top:3px solid var(--pc);display:flex;flex-direction:column;gap:4px}
.mnode b{font-size:16px;font-weight:600;letter-spacing:-.01em}
.mnode span{font-size:13px;color:var(--ink-2);line-height:1.45}
.mnode small{font-size:11.5px;color:var(--ink-3);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.marrow{display:grid;place-items:center;color:var(--ink-4);font-size:20px;flex:none;width:18px}
.mloop{padding:16px;border-radius:20px;border:1px dashed var(--line-2)}
.mloop>.over{display:block;margin-bottom:12px}
.mnote{font-size:13px;color:var(--ink-2);text-align:center}

/* ---------- Guías ---------- */
.gbody{max-width:72ch;font-size:15px;line-height:1.7;color:var(--ink-1)}
.gbody .gp{margin:0 0 14px;color:var(--ink-2)}
.gbody .gp b,.gbody li b{color:var(--ink-1)}
.gbody .gh{margin:30px 0 12px;font-size:19px}
.gbody .gl{margin:0 0 16px;padding-left:22px;color:var(--ink-2)}
.gbody .gl li{margin-bottom:8px;padding-left:4px}
.gbody .gvis{margin:22px 0 24px;max-width:none}
.gbody .gnote{margin:18px 0;font-size:14px}
.gex{margin:18px 0;padding:16px 18px;border-radius:14px;background:var(--glass-2);border:1px solid var(--line);border-left:3px solid var(--pc,var(--ink-3))}
.gex p{margin:6px 0 0;color:var(--ink-1)}
article.guide{max-width:none}
.gbody .mnode b{font-size:14px}

/* ---------- Informe (página A4, siempre en blanco) ---------- */
.rpages{display:flex;flex-direction:column;align-items:center;gap:28px;padding:8px 0 40px}
.rp{width:210mm;min-height:297mm;background:#fff;color:#1E1E1E;font-family:var(--font);padding:20mm 18mm 22mm;position:relative;box-shadow:0 18px 50px -20px rgba(0,0,0,.45);border-radius:6px;display:flex;flex-direction:column;letter-spacing:-.005em}
.rp *{color:inherit}
.rlogo{display:flex;align-items:center;gap:2px}.rlogo svg{width:11mm;height:auto}.rlogo span{font-weight:800;font-size:25px;letter-spacing:-.045em;color:#1E1E1E;margin-left:-2px}
.rkick{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#17513B;margin-bottom:6px}
.rcover .rkick{margin-top:26mm}
.rtitle{font-size:40px;font-weight:700;letter-spacing:-.035em;line-height:1.05;color:#1E1E1E;margin:4px 0 10px}
.rperiod{font-size:14px;color:#5a5a5a}
.rline{width:46px;height:4px;border-radius:2px;background:#00C65E;margin:22px 0 26px}
.rh1{font-size:26px;font-weight:700;letter-spacing:-.03em;color:#1E1E1E;margin:0 0 22px}
.rh2{font-size:15px;font-weight:700;color:#17513B;margin:26px 0 10px;letter-spacing:-.01em}
.rgrid4{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.rbig{border:1px solid #e6e6ea;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;background:#F3F3F5}
.rbig span{font-size:11.5px;color:#5a5a5a;font-weight:500}
.rbig b{font-size:28px;font-weight:700;letter-spacing:-.03em;color:#1E1E1E}
.rj{font-size:11.5px;font-weight:700}
.rtext{font-size:13.5px;line-height:1.65;color:#2a2a2a;white-space:pre-wrap;border-radius:8px;min-height:1.6em}
.rtext.rsm{font-size:12.5px;margin-top:6px;color:#444}
.rmsg{font-size:15px;line-height:1.7}
.rnote{font-size:11.5px;color:#6a6a6a;margin-top:12px}
.rtable{width:100%;border-collapse:collapse;font-size:12.5px}
.rtable th{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#6a6a6a;text-align:left;padding:8px 6px;border-bottom:2px solid #1E1E1E}
.rtable td{padding:9px 6px;border-bottom:1px solid #e6e6ea}
.rtable .r{text-align:right}
.rtable tr.ctx td{color:#6a6a6a}
.rchart{position:relative;display:flex;align-items:flex-end;gap:18px;height:170px;padding:0 6px;border-bottom:1px solid #e6e6ea}
.rcol{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;max-width:90px}
.rcol i{display:block;width:100%;border-radius:6px 6px 0 0}
.rcol b{font-size:12px}
.rcol span{font-size:10.5px;color:#6a6a6a;padding-bottom:6px}
.rbase{position:absolute;left:0;right:0;border-top:1.5px dashed #9a9a9a}
.rbase span{position:absolute;right:0;top:-18px;font-size:10px;color:#6a6a6a;background:#fff;padding:0 4px}
.rtop{display:flex;flex-direction:column;gap:10px}
.rtopc{display:flex;gap:14px;padding:12px 14px;border:1px solid #e6e6ea;border-radius:12px}
.rnum{font-size:20px;font-weight:700;color:#00C65E;min-width:28px}
.rtopc b{font-size:14px}
.rmeta{font-size:11.5px;color:#6a6a6a;margin-top:2px}
.rul{margin:0;padding-left:20px;font-size:13px;line-height:1.6}
.rul li{margin-bottom:6px}
.rlearn{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #eee;font-size:13px}
.rdec{font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;background:#e8efeb;color:#17513B;white-space:nowrap}
.rextra{position:relative}
.rx{position:absolute;right:0;top:26px;border:0;background:#f0f0f2;border-radius:6px;cursor:pointer;color:#888}
.rbtn{margin-top:14px;border:1px dashed #bbb;background:none;border-radius:10px;padding:8px 12px;cursor:pointer;color:#555;font:inherit;font-size:12.5px;align-self:flex-start}
.rsign{display:flex;gap:40px;margin-top:auto;padding-top:24px}
.rsign span{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#6a6a6a}
.rsign b{font-size:13.5px}
.rfoot{position:absolute;left:18mm;right:18mm;bottom:10mm;display:flex;justify-content:space-between;font-size:9.5px;color:#8a8a8a;border-top:1px solid #eee;padding-top:6px}
.rpages.editing [contenteditable]{outline:1.5px dashed #b9c9bf;outline-offset:4px;cursor:text}
.rpages.editing [contenteditable]:hover{outline-color:#17513B}
.rpages.editing [contenteditable]:focus{outline:2px solid #17513B;background:#f6faf7}
@media screen and (max-width:900px){.rp{width:100%;min-height:auto;padding:24px}}
@media print{
  @page{size:A4;margin:0}
  body.printing-report{background:#fff!important}
  body.printing-report>*:not(#print){display:none!important}
  #print .rpages{display:block;padding:0}
  #print .rp{box-shadow:none;border-radius:0;margin:0;width:210mm;height:297mm;min-height:297mm;page-break-after:always;break-after:page;overflow:hidden}
  #print .rp:last-child{page-break-after:auto}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
#print{display:none}
body.printing-report #print{display:block}

.mloop .mrow{flex-wrap:nowrap}.mloop .mnode{min-width:0}
.dbody .mrow{flex-direction:column;align-items:stretch;flex-wrap:nowrap}
.dbody .mrow .marrow{transform:rotate(90deg);height:16px;width:100%}
.dbody .mrow+.mrow{margin-top:8px}
@media (max-width:900px){.mloop .mrow{flex-wrap:wrap}.mloop .mnode{min-width:140px}}

/* ---------- Ideación: mapa de burbujas ---------- */
:root,:root[data-theme="dark"]{--n-pil:#d9dae0;--n-idea:#f5d76e;--n-res:#8fa8dc;--n-hyp:#b4a0f2;--n-hilo:#63d1c5;--n-hist:#ee9cc9;--n-voz:#f0a37c;--n-dec:#a9aab2;--n-lib:#00FF66;--p-ideacion:#f5d76e}
:root[data-theme="light"]{--n-pil:#3a3b40;--n-idea:#8c6d00;--n-res:#3c5d9a;--n-hyp:#6a4fb8;--n-hilo:#167a72;--n-hist:#a83d78;--n-voz:#b4532a;--n-dec:#7a7b82;--n-lib:#17513B;--p-ideacion:#8c6d00}
.isess{padding:22px 24px}
.ireto{font-size:21px;margin-top:8px;line-height:1.3;max-width:62ch}
.isteps{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.isteps button{width:100%;display:flex;gap:10px;align-items:center;text-align:left;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--glass-1);color:var(--ink-2);cursor:pointer;font:inherit}
.isteps button:hover{background:var(--glass-2)}
.isteps .n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;border:1px solid var(--line-2);color:var(--ink-3)}
.isteps b{display:block;font-size:13px;color:var(--ink-1)}.isteps small{display:block;font-size:11.5px;color:var(--ink-3)}
.isteps button[aria-current="true"]{background:var(--glass-3);border-color:var(--n-idea)}
.isteps button[aria-current="true"] .n{background:var(--n-idea);border-color:var(--n-idea);color:#111}
[data-theme="light"] .isteps button[aria-current="true"] .n{color:#fff}
.isteps button.done .n{color:var(--good);border-color:var(--good)}
.imap{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.imap.full{position:fixed;inset:12px;z-index:62;margin:0;padding:16px;border-radius:var(--r-xl);background:var(--glass-solid);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px)}
.ibar{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:10px}
.iq{position:relative}
.iq input{height:48px;font-size:15px;border-radius:14px;padding-right:12px}
.ibar>input{height:48px;border-radius:14px}
.dtags{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;gap:6px;align-items:center}
.ibody{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:10px;height:680px}
.imap.full .ibody{flex:1;height:auto;min-height:0}
.icanvas{position:relative;border-radius:var(--r-lg);border:1px solid var(--line);overflow:hidden;cursor:grab;touch-action:none;background:radial-gradient(circle,var(--line-2) 1px,transparent 1.2px) 0 0/24px 24px,var(--glass-1)}
.icanvas:active{cursor:grabbing}
.ipanel{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--glass-1);padding:18px;overflow:auto}
#imapsvg{display:block;user-select:none}
.ifilters{position:absolute;left:10px;top:10px;right:170px;display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.ichip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:99px;border:1px solid var(--line);background:var(--glass-solid);color:var(--ink-2);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer}
.ichip[aria-pressed="false"]{opacity:.45}.ichip[aria-pressed="false"] .pdot{background:transparent;border:1px solid var(--pc)}
.isel{height:26px!important;padding:0 26px 0 10px!important;font-size:11.5px!important;border-radius:99px!important;width:auto!important;background-color:var(--glass-solid)!important}
.ilive{position:absolute;right:12px;top:12px;display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-3);background:var(--glass-solid);border:1px solid var(--line);border-radius:99px;padding:4px 10px;pointer-events:none}
.livedot{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px var(--accent-soft)}
.ilegend{position:absolute;right:12px;bottom:12px;width:214px;background:var(--glass-solid);border:1px solid var(--line);border-radius:14px;padding:10px 12px;font-size:11.5px;color:var(--ink-2);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.ilegend.min{width:auto}
.ilh{all:unset;cursor:pointer;display:flex;justify-content:space-between;gap:16px;width:100%;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.ilegend .lg{display:flex;align-items:center;gap:8px;margin-top:6px}
.ln{display:inline-block;width:22px;height:0;border-top:1.6px solid var(--ink-2)}
.ln.pil{border-top:1px solid var(--ink-4)}.ln.build{border-top:2px solid var(--n-idea)}.ln.sug{border-top:1.6px dashed var(--ink-3)}
.sz{display:inline-block;width:22px;height:10px;background:radial-gradient(circle at 4px 5px,var(--ink-3) 3px,transparent 3.5px),radial-gradient(circle at 15px 5px,var(--ink-3) 5px,transparent 5.5px)}
.bdi{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;font-size:10px;font-weight:800;color:#111;flex:none}
.bdi.warn{background:var(--warn)}.bdi.ok{background:var(--good)}.bdi.star{background:var(--n-hist)}
[data-theme="light"] .bdi{color:#fff}
.cloud{fill:var(--pc);fill-opacity:.045;stroke:var(--line-2);stroke-dasharray:4 6;vector-effect:non-scaling-stroke;display:none;pointer-events:none}
.z-far .cloud{display:block}
.ie{stroke:var(--ink-3);stroke-width:1.4;opacity:.6}
.ie.k-pil{stroke:var(--ink-4);stroke-width:1;opacity:.55}
.ie.k-build{stroke:var(--n-idea);stroke-width:2;opacity:.85}
.ie.k-sug{stroke-dasharray:4 5;opacity:.4}
.ie.on{stroke:var(--ink-1);opacity:1;stroke-width:2.2}.ie.dim{opacity:.07}
.in{cursor:pointer}
.in .bb{fill:var(--pc);fill-opacity:.2;stroke:var(--pc);stroke-width:1.8;vector-effect:non-scaling-stroke;transition:fill-opacity .15s}
.in.t-idea .bb{fill-opacity:.32}
.in.t-pil .bb{fill:var(--glass-3);fill-opacity:1;stroke:var(--ink-3);stroke-width:1.4}
.in.t-pil .ring{fill:none;stroke:var(--ink-4);stroke-dasharray:3 5;vector-effect:non-scaling-stroke}
.in:hover .bb{fill-opacity:.5}.in.sel .bb{fill-opacity:.65;stroke-width:3}
.in.hit .bb{stroke-width:3.4}
.in.dim{opacity:.18}.in.off{opacity:.42}
.in .vn{text-anchor:middle;font-size:12px;font-weight:800;fill:var(--ink-1);font-family:var(--font);pointer-events:none}
.lb,.lbs{transform:scale(var(--ls,1))}
.lb text{text-anchor:middle;font-family:var(--font);paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round;pointer-events:none}
.lb .l1,.lb .l2{font-size:12px;font-weight:600;fill:var(--ink-1)}
.lb .lf{font-size:10.5px;font-weight:500;fill:var(--ink-3)}
.lb.pl .l1,.lb.pl .l2{font-size:14px;font-weight:700}
.bd circle{stroke:var(--bg);stroke-width:2}.bd.warn circle{fill:var(--warn)}.bd.ok circle{fill:var(--good)}.bd.star circle{fill:var(--n-hist)}
.bd text{text-anchor:middle;font-size:10px;font-weight:800;fill:#111;font-family:var(--font)}
[data-theme="light"] .bd text{fill:#fff}
.z-far .lb:not(.pl),.z-far .in:not(.sel):not(.show):not(:hover) .lb:not(.pl){display:none}
.z-far .lbs{display:none}
.z-mid .in:not(.t-idea):not(.t-hist):not(.t-pil):not(.sel):not(.show):not(:hover) .lb{display:none}
.z-mid .in:not(.sel):not(:hover) .lb .lf{display:none}
.z-far .in.sel .lb,.z-far .in.show .lb,.z-far .in:hover .lb{display:block}
.cur{fill:var(--n-hyp);stroke:var(--bg);stroke-width:1.5}.curn{font-size:11px;font-weight:700;fill:var(--n-hyp);font-family:var(--font);paint-order:stroke;stroke:var(--bg);stroke-width:3px}
.isug{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;text-align:left;padding:10px 12px;margin-bottom:6px;border-radius:12px;border:1px solid var(--line);background:var(--glass-1);color:var(--ink-1);font:inherit;font-size:13px;cursor:pointer;line-height:1.4}
.isug:hover{background:var(--glass-2)}
.icross{display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;padding:10px 12px;margin-bottom:6px;border-radius:12px;border:1px dashed var(--line-2);background:transparent;color:var(--ink-1);font:inherit;font-size:13px;cursor:pointer}
.icross:hover{border-style:solid;border-color:var(--n-idea);background:var(--glass-1)}
.itimer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:14px;background:var(--glass-2);border:1px solid var(--line)}
.itimer .num{font-size:26px;font-weight:700;letter-spacing:-.02em}
.igoal{margin-top:12px}.igoal .bar{height:6px;border-radius:9px;background:var(--glass-3);margin-top:6px;overflow:hidden}.igoal .bar i{display:block;height:100%;background:var(--n-idea);border-radius:9px}
.irules{display:grid;gap:8px}.irules div{display:flex;flex-direction:column;font-size:12.5px;line-height:1.4}.irules b{font-weight:600}.irules span{color:var(--ink-3)}
.istim{padding:16px;border-radius:14px;background:var(--glass-2);border:1px solid var(--line)}.istim p{margin:10px 0 0;font-size:15px;font-weight:600;line-height:1.45}.istim .btn{margin-top:12px}
.vdots{display:flex;gap:5px}.vdots i{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--n-idea)}.vdots i.on{background:var(--n-idea)}
.vrow{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}
.vrow .link{text-align:left;text-decoration:none;color:var(--ink-1);line-height:1.35}
.vbtn{flex:none;min-width:34px;height:28px;border-radius:99px;border:1px solid var(--line-2);background:transparent;color:var(--ink-2);font:inherit;font-weight:700;cursor:pointer}
.vbtn.on{background:var(--n-idea);border-color:var(--n-idea);color:#111}[data-theme="light"] .vbtn.on{color:#fff}
.imatrix{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:14px 0 6px 18px;padding-bottom:18px}
.imatrix .q{min-height:84px;border-radius:12px;border:1px solid var(--line);background:var(--glass-1);padding:8px;display:flex;flex-direction:column;gap:5px}
.imatrix .q b{font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.imatrix .q0{border-color:var(--good);background:var(--accent-soft)}.imatrix .q0 b{color:var(--good)}
.imatrix .ax{position:absolute;font-size:10.5px;color:var(--ink-3)}.imatrix .ax.y{left:-18px;top:50%;transform:rotate(-90deg) translateX(30%);transform-origin:left top}.imatrix .ax.x{right:0;bottom:0}
.qchip{all:unset;cursor:pointer;font-size:11.5px;padding:4px 8px;border-radius:8px;background:var(--glass-solid);border:1px solid var(--line);line-height:1.3}
.drow{padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.drow .link{text-align:left;text-decoration:none;color:var(--ink-1)}
.seg.sm button{height:26px;padding:0 9px;font-size:11.5px}
.igrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.igrid .f{gap:4px}.igrid select{height:38px;font-size:13px;padding:0 28px 0 10px;line-height:normal}
.irefe{display:flex;gap:6px;align-items:center;margin-bottom:6px}.irefe input{height:34px;font-size:12.5px;min-width:0;flex:1}
.iref{display:flex;align-items:center;gap:8px;padding:8px 10px;margin-bottom:6px;border-radius:10px;border:1px solid var(--line);color:var(--ink-1);text-decoration:none;font-size:13px}.iref:hover{background:var(--glass-2)}.iref svg{width:15px;height:15px;flex:none}.iref span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mlink{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px}
.mlink .link{flex:1;text-align:left;text-decoration:none;color:var(--ink-1)}
.maptools{position:absolute;left:12px;bottom:12px;display:flex;gap:6px;flex-wrap:wrap}
.maptools .iconbtn{background:var(--glass-solid);border-color:var(--line);font-size:18px;font-weight:600}
.maptools .btn{background:var(--glass-solid)}
@media (max-width:1100px){.ibody{grid-template-columns:minmax(0,1fr);height:auto}.icanvas{height:560px}.isteps{grid-template-columns:repeat(5,minmax(120px,1fr));overflow:auto}.ibar{grid-template-columns:1fr}}

/* ---------- Barra lateral por grupos ---------- */
.side .navlabel{padding:16px 12px 6px}
.navfold{background:none;border:0;width:100%;font:inherit;cursor:pointer;text-align:left}
.navfold svg{width:16px;height:16px;opacity:.7}
.navsub{display:flex;flex-direction:column;gap:2px;margin-left:12px;padding-left:8px;border-left:1px solid var(--line)}
.navsub .navbtn{padding-top:7px;padding-bottom:7px;font-size:13.5px}
.app.collapsed .navsub{margin-left:0;padding-left:0;border-left:0}
.soon{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line-2);border-radius:99px;padding:1px 7px}
.app.collapsed .soon{display:none}
.studioic{flex:none;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--glass-3);color:var(--pc)}
.studioic svg{width:26px;height:26px}
.kslash{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;border:1.5px solid currentColor;font-weight:700;font-size:13px;line-height:1;opacity:.85}
.h1.jose{font-size:clamp(24px,2.4vw,32px);line-height:1.2}

/* ---------- Divisiones con color ---------- */
.wrap .card{box-shadow:inset 0 2px 0 0 color-mix(in srgb,var(--pc,transparent) 70%,transparent),var(--shine)}
.wrap .card .card,.wrap .card.raised,.wrap .card.tight{box-shadow:var(--shine)}
.wrap .card h2.h2::before{content:"";display:inline-block;width:4px;height:.82em;border-radius:3px;background:var(--pc,var(--ink-4));margin-right:10px;vertical-align:-1px;opacity:.9}
.wrap .card .over{color:color-mix(in srgb,var(--pc,var(--ink-3)) 72%,var(--ink-3))}
.wrap .card.hero,.wrap .hello.hero{background:linear-gradient(135deg,color-mix(in srgb,var(--pc) 13%,transparent),var(--glass-1) 65%)}
.wrap .hello.hero .over{color:var(--accent-text)}
.wrap .grid2>.card,.wrap .grid3>.card{border-color:color-mix(in srgb,var(--pc,var(--line)) 10%,var(--line))}

/* ---------- Hilos: vistas ---------- */
.hqchips{margin:-4px 0 16px}
.cnum{margin-left:6px;font-size:11px;font-weight:700;color:var(--ink-3)}
.hwrap.dense .hcard .m:last-of-type,.hwrap.dense .hcard .warn{display:none}
.hwrap.dense .hcard{padding:10px 12px;gap:6px}
.hgroup{margin-bottom:18px}
.hgh{all:unset;display:flex;align-items:center;gap:10px;width:100%;padding:6px 2px 10px;cursor:pointer;font-size:14px}
.hgh .pdot{width:9px;height:9px}
.hlist{display:flex;flex-direction:column;gap:6px}
.hrow{display:grid;grid-template-columns:72px auto minmax(0,1fr) auto 80px 150px;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--glass-1);color:var(--ink-1);font:inherit;font-size:13.5px;cursor:pointer;box-shadow:inset 3px 0 0 var(--pc)}
.hrow:hover{background:var(--glass-2)}
.hrow .hd{font-weight:600;color:var(--ink-2);font-size:12.5px}
.hrow .ht{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hrow .ht small{display:block;font-weight:500;color:var(--warn);font-size:11.5px}
.hrow .hy{font-size:12px;color:var(--ink-3)}
.hrow .pill{justify-self:start;display:inline-flex;align-items:center;gap:6px}
.hweek{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:8px;overflow-x:auto}
.hday{min-height:280px;border-radius:14px;border:1px solid var(--line);background:var(--glass-1);padding:8px;display:flex;flex-direction:column;gap:6px}
.hday.today{border-color:var(--accent-text);background:var(--glass-2)}
.hdh{display:flex;align-items:baseline;justify-content:space-between;padding:2px 4px 6px;text-transform:capitalize;font-size:12px;color:var(--ink-3)}
.hdh b{font-size:18px;color:var(--ink-1)}
.hday .hcard{padding:10px}
@media (max-width:900px){.hrow{grid-template-columns:64px minmax(0,1fr) auto}.hrow .code,.hrow .hy,.hrow .tag{display:none}}

/* ---------- Portal: pasadas anteriores y ayuda ---------- */
details.pold{padding:0}
details.pold>summary{list-style:none;display:flex;align-items:center;gap:14px;padding:20px 26px;cursor:pointer}
details.pold>summary::-webkit-details-marker{display:none}
details.pold>summary .grow{display:flex;flex-direction:column;gap:4px}
details.pold>summary .chev svg{width:18px;height:18px;transition:transform .2s}
details.pold[open]>summary .chev svg{transform:rotate(180deg)}
details.pold[open]{padding:0 0 26px}
details.pold>*:not(summary){margin-left:26px;margin-right:26px}
.codeanat{display:flex;align-items:stretch;gap:10px;margin:20px 0 6px;flex-wrap:wrap}
.codeanat>div{flex:1;min-width:150px;display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:14px;background:var(--glass-2);border:1px solid var(--line)}
.codeanat>i{align-self:center;font-style:normal;font-size:26px;color:var(--ink-4)}
.cbig{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:28px;font-weight:700;color:var(--pc);letter-spacing:.02em}
.codeanat small{color:var(--ink-3);font-size:12.5px;line-height:1.4}
.hsteps{display:flex;flex-direction:column;gap:8px}
.hstep{display:flex;align-items:center;gap:16px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--glass-1)}
.hstep>div{flex:1}.hstep p{margin:4px 0 0;color:var(--ink-2);font-size:13.5px;line-height:1.5}

/* ---------- Pausa activa ---------- */
.wbox{min-height:380px;display:flex;align-items:center;justify-content:center}
.wstage{width:100%;padding:10px 0}
.wcircle{width:230px;height:230px;margin:0 auto;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;
  background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--accent) 22%,transparent),color-mix(in srgb,var(--accent) 6%,transparent) 70%);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);transform:scale(.55);transition:transform 4s ease-in-out}
.wcircle span{font-size:22px;font-weight:600;color:var(--ink-1);padding:0 18px}
.wcircle small{font-size:12px;color:var(--ink-3)}
.wcircle.slow,.wcircle.pomo{transform:none;transition:none}
.wcircle.slow.on{animation:wpulse 8s ease-in-out infinite}
@keyframes wpulse{0%,100%{transform:scale(.92)}50%{transform:scale(1)}}
.wcircle.pomo.descanso{background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--p-urdimbre) 25%,transparent),transparent 70%);border-color:color-mix(in srgb,var(--p-urdimbre) 40%,transparent)}
.wfigbox{width:180px;height:180px;border-radius:24px;background:var(--glass-2);border:1px solid var(--line);display:grid;place-items:center}
.wfig{width:140px;height:140px;fill:none;stroke:var(--ink-1);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.wfig .arw{stroke:var(--accent-text);stroke-width:3;stroke-dasharray:4 5}
.wbar{height:6px;border-radius:9px;background:var(--glass-3);overflow:hidden}.wbar i{display:block;height:100%;background:var(--accent-text);transition:width .2s linear}
.wdots{display:flex;gap:6px;justify-content:center;margin-top:22px}.wdots i{width:8px;height:8px;border-radius:50%;background:var(--glass-3)}.wdots i.on{background:var(--accent-text)}.wdots i.done{background:var(--ink-3)}
.pomopill{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:99px;border:1px solid var(--line-2);background:var(--glass-2);color:var(--ink-1);font:inherit;font-weight:700;font-size:13px;cursor:pointer}
.pomopill svg{width:16px;height:16px}.pomopill.foco{border-color:var(--accent-text)}.pomopill.descanso{border-color:var(--p-urdimbre)}
.wnudge{position:fixed;right:20px;bottom:20px;z-index:80;width:360px;padding:16px;border-radius:18px;background:var(--glass-solid);box-shadow:var(--shadow);animation:wup .35s ease}
.wnudge b{font-size:14px}.wnudge p{margin:4px 0 0;font-size:13px;color:var(--ink-2);line-height:1.45}
.wleaf{flex:none;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text)}.wleaf svg{width:18px;height:18px}
@keyframes wup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.wcircle{transition:none}.wcircle.slow.on{animation:none}.wnudge{animation:none}}

/* Voz del cliente: una fila por voz, con el texto a lo ancho */
.vozlist{display:flex;flex-direction:column;gap:8px}
.vozrow{padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--glass-1)}
.vtop{display:flex;gap:10px;align-items:flex-start}
.vtop .vtipo{width:150px;flex:none}
.vtop textarea{flex:1;min-height:40px!important;font-weight:600}
.vmeta{display:grid;grid-template-columns:90px minmax(160px,1fr) 170px;gap:10px;margin-top:10px;padding-left:160px}
.vmeta label{display:flex;flex-direction:column;gap:4px}.vmeta span{font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.vmeta input{height:36px;font-size:13px}
@media (max-width:900px){.vmeta{padding-left:0;grid-template-columns:1fr 1fr}.vtop{flex-wrap:wrap}.vtop .vtipo{width:100%}}

/* ---------- Perfil en la barra superior ---------- */
.mewrap{position:relative;display:flex}
.mebtn{border:0;background:none;padding:0;cursor:pointer;border-radius:50%;display:flex}
.mebtn:focus-visible{outline:2px solid var(--ink-2);outline-offset:2px}
.mebtn .av{width:34px;height:34px;font-size:12px;box-shadow:0 0 0 2px var(--line-2)}
.av.ph{padding:0;overflow:hidden}.av.ph img{width:100%;height:100%;object-fit:cover;display:block}
.av.lg{width:46px;height:46px;font-size:15px}
.memenu{position:absolute;right:0;top:calc(100% + 10px);width:280px;z-index:70;padding:8px;border-radius:18px;background:var(--bg);background-image:linear-gradient(var(--glass-2),var(--glass-2));border:1px solid var(--line-2);box-shadow:var(--shadow);animation:wup .18s ease}
.mmhead{display:flex;gap:12px;align-items:center;padding:10px 10px 14px;border-bottom:1px solid var(--line);margin-bottom:6px}
.mmhead>div b{display:block;font-size:14px}.mmhead>div span{display:block;font-size:12.5px;color:var(--ink-2)}.mmhead>div small{display:block;font-size:11.5px;color:var(--ink-3)}
.mmi{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:none;color:var(--ink-1);font:inherit;font-size:13.5px;text-decoration:none;cursor:pointer;text-align:left}
.mmi:hover{background:var(--glass-3)}.mmi svg{width:17px;height:17px;opacity:.75;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.mmsep{height:1px;background:var(--line);margin:6px 4px}

/* ---------- Reloj de arena del pomodoro ---------- */
.hgbtn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px 0 8px;border-radius:99px;border:1px solid var(--line-2);background:var(--glass-2);color:var(--ink-1);font:inherit;font-weight:700;font-size:12.5px;cursor:pointer}
.hgbtn .sand{width:22px;height:22px}
.sand .hg{fill:none;stroke:var(--ink-1);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sand .sf{fill:var(--accent-text);transition:y 1s linear,height 1s linear}
.hgbtn.descanso .sand .sf{fill:var(--p-urdimbre)}
.sand .stream{stroke:var(--accent-text);stroke-width:1;stroke-dasharray:1.2 1.6;animation:sandfall .8s linear infinite}
.hgbtn.descanso .sand .stream{stroke:var(--p-urdimbre)}
@keyframes sandfall{to{stroke-dashoffset:-5.6}}
.hgbtn.flip .sand{animation:hgflip .9s cubic-bezier(.6,0,.3,1)}
@keyframes hgflip{from{transform:rotate(-180deg)}to{transform:rotate(0)}}

/* ---------- Aviso de descanso ---------- */
.wbreak{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px;background:rgba(8,9,10,.55);-webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);animation:wfade .35s ease}
[data-theme="light"] .wbreak{background:rgba(243,243,245,.6)}
.wbcard{max-width:520px;width:100%;text-align:center;padding:40px 34px;border-radius:28px;background:var(--glass-solid);box-shadow:var(--shadow)}
.wbcard .h1{margin:18px 0 8px}.wbcard p{color:var(--ink-2);margin:0 auto;max-width:40ch;line-height:1.55}
.wbleaf{width:92px;height:92px;margin:0 auto;border-radius:30px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.wbleaf svg{width:50px;height:50px;stroke-width:1.8;transform-origin:30% 85%;animation:leafsway 2.4s ease-in-out infinite}
@keyframes leafsway{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg) translateY(-2px)}}
@keyframes wfade{from{opacity:0}to{opacity:1}}
.side .navbtn.due{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.side .navbtn.due svg{color:var(--accent);transform-origin:30% 85%;animation:leafsway 2.4s ease-in-out infinite}
.wchips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:6px}
.wchip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:var(--glass-1);color:var(--ink-2);font:inherit;font-size:12.5px;cursor:pointer}
.wchip small{font-size:11px;color:var(--ink-3)}
.wchip[aria-pressed="true"]{background:var(--glass-3);border-color:var(--accent-text);color:var(--ink-1)}
.wchip:disabled{opacity:.5;cursor:default}
.wfig .chair{stroke:var(--ink-3);stroke-width:3}
.wbox{min-height:440px}

/* ---------- Mensaje del día ---------- */
.qcard{padding:6px 4px}
.qmark{font-size:84px;line-height:.8;color:var(--pc);font-family:Georgia,serif;margin-top:22px;opacity:.85}
.qcard blockquote{margin:6px 0 0;font-size:24px;line-height:1.4;font-weight:600;letter-spacing:-.01em;color:var(--ink-1)}
.qa{margin:14px 0 0;color:var(--ink-2);font-size:14px}
@media (prefers-reduced-motion:reduce){.wbleaf svg,.side .navbtn.due svg,.sand .stream,.hgbtn.flip .sand{animation:none}}

/* ---------- Inicio accionable ---------- */
.hello{position:relative}
.hcargo{position:absolute;top:22px;right:24px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--ink-2);padding:5px 12px;border-radius:99px;border:1px solid var(--line-2);background:var(--glass-2)}
.hplan{margin-top:14px}
@property --kang{syntax:'<angle>';inherits:false;initial-value:0deg}
:root,:root[data-theme="dark"]{--klight:rgba(255,255,255,.92);--kglow:rgba(255,255,255,.28)}
:root[data-theme="light"]{--klight:rgba(0,198,94,.9);--kglow:rgba(0,198,94,.28)}
.kbtn{position:relative;isolation:isolate;font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%;transition:transform .2s ease,background .2s ease}
.kbtn::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;pointer-events:none;
  background:conic-gradient(from var(--kang),transparent 0deg,transparent 250deg,var(--kglow) 300deg,var(--klight) 330deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:kspin 10s linear infinite}
.kbtn:nth-child(2)::before{animation-delay:-2.5s}.kbtn:nth-child(3)::before{animation-delay:-5s}.kbtn:nth-child(4)::before{animation-delay:-7.5s}
@keyframes kspin{to{--kang:360deg}}
.kbtn:hover{transform:translateY(-2px);background:var(--glass-2)}
.kbtn:focus-visible{outline:2px solid var(--ink-2);outline-offset:3px}
.kbtn .lab{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kgo{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--glass-3);opacity:0;transform:translateX(-4px);transition:.2s}
.kgo svg{width:14px;height:14px}
.kbtn:hover .kgo,.kbtn:focus-visible .kgo{opacity:1;transform:none}
/* Lo urgente no gira: late despacio con la misma luz */
.kbtn.urgent::before{animation:none;background:var(--klight);opacity:0;animation:kbeat 3.6s ease-in-out infinite}
.kbtn.urgent{animation:kpulse 3.6s ease-in-out infinite}
@keyframes kbeat{0%,100%{opacity:.15}50%{opacity:1}}
@keyframes kpulse{0%,100%{box-shadow:var(--shine),0 0 0 0 transparent}50%{box-shadow:var(--shine),0 0 0 5px var(--kglow),0 0 30px var(--kglow)}}
.klist{display:flex;flex-direction:column;gap:8px}
.krow{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--glass-1);box-shadow:inset 3px 0 0 var(--ink-4)}
.krow.sev-alta{box-shadow:inset 3px 0 0 var(--danger)}.krow.sev-media{box-shadow:inset 3px 0 0 var(--warn)}
.krow .t{font-weight:600;font-size:14px;line-height:1.35}.krow .d{font-size:12.5px;color:var(--ink-3);margin-top:3px;line-height:1.4}
.knum{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--glass-3);color:var(--ink-2)}
.krow .btn svg{width:14px;height:14px;margin-left:4px}
.kplan{position:fixed;right:20px;bottom:20px;z-index:80;width:400px;max-width:calc(100vw - 40px);padding:18px;border-radius:20px;background:var(--bg);background-image:linear-gradient(var(--glass-2),var(--glass-2));border:1px solid var(--line-2);box-shadow:var(--shadow);animation:wup .35s ease}
.kpt{display:block;font-size:15px;margin-top:4px;line-height:1.35}
.kpl{list-style:none;counter-reset:k;margin:14px 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.kpl li{counter-increment:k;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--glass-1);border:1px solid var(--line)}
.kpl li::before{content:counter(k);flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:700;color:#111;background:var(--warn)}
.kpl li.sev-alta::before{background:var(--danger);color:#fff}
.kpl .t{font-size:13px;font-weight:600;line-height:1.35}.kpl .d{font-size:11.5px;color:var(--ink-3)}
.kpl .btn svg{width:13px;height:13px;margin-left:4px}
@media (prefers-reduced-motion:reduce){.kbtn::before,.kbtn.urgent{animation:none}}

/* Leyenda de colores en la ventana del método */
.clegend{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-bottom:6px}
.clegend>div{padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--glass-1)}
.clegend .over{display:block;margin-bottom:10px}
.clegend .lg{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.4;margin-top:7px;color:var(--ink-2)}
.clegend .lg b{color:var(--ink-1);font-weight:600}
.clegend .sev,.clegend .pdot{margin-top:5px}

/* Agenda: un color claramente distinto por tipo. Si dos son de la misma familia, uno es oscuro y el otro muy claro */
:root,:root[data-theme="dark"]{--k-reunion:#4C7DFF;--k-informe:#A8ECFF;--k-plazo:#FF9F43;--k-cobro:#FFE066;--k-pub:#00FF66;--k-hito:#B98CFF;--k-tarea:#FF6FB5;--k-rec:#8E939B}
:root[data-theme="light"]{--k-reunion:#1F4FD1;--k-informe:#6CC6EC;--k-plazo:#E07000;--k-cobro:#C9A000;--k-pub:#12A150;--k-hito:#7B3FE4;--k-tarea:#D6337F;--k-rec:#8A8F98}

/* Procesos y momentos: tonos que no se confunden entre sí */
:root,:root[data-theme="dark"]{
  --p-urdimbre:#4C7DFF;--p-montaje:#FF9F43;--n-idea:#FFE066;--p-pasadas:#B98CFF;--p-hilos:#3FE0D0;--p-medicion:#FF6FB5;--p-ifile:#00FF66;--p-informes:#EDEDF0;
  --m-leer:#4C7DFF;--m-tramar:#B98CFF;--m-tejer:#3FE0D0;--m-mitad:#FF9F43;--m-anudar:#FF6FB5;--m-decidir:#00FF66;
  --n-res:#4C7DFF;--n-hyp:#B98CFF;--n-hilo:#3FE0D0;--n-hist:#FF6FB5;--n-voz:#FF9F43;--n-lib:#00FF66}
:root[data-theme="light"]{
  --p-urdimbre:#1F4FD1;--p-montaje:#E07000;--n-idea:#A88300;--p-pasadas:#7B3FE4;--p-hilos:#0E8F9B;--p-medicion:#D6337F;--p-ifile:#17513B;--p-informes:#2A2B30;
  --m-leer:#1F4FD1;--m-tramar:#7B3FE4;--m-tejer:#0E8F9B;--m-mitad:#E07000;--m-anudar:#D6337F;--m-decidir:#17513B;
  --n-res:#1F4FD1;--n-hyp:#7B3FE4;--n-hilo:#0E8F9B;--n-hist:#D6337F;--n-voz:#E07000;--n-lib:#17513B}

/* Clientes con iniciales cuando el menú está contraído */
.cini{display:none}
.app.collapsed .navsub .cini{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-size:10.5px;font-weight:700;letter-spacing:.02em;background:var(--glass-3);color:var(--ink-1);border:1.5px solid var(--line-2)}
.app.collapsed .navsub .cini.activo{border-color:var(--good)}.app.collapsed .navsub .cini.montaje{border-color:var(--p-montaje)}.app.collapsed .navsub .cini.prospecto{border-color:var(--p-urdimbre)}.app.collapsed .navsub .cini.pausado{border-color:var(--warn)}
.app.collapsed .navsub .navbtn[aria-current="page"] .cini{background:var(--ink-1);color:var(--bg)}
.app.collapsed .navfold{justify-content:center}

/* Ojitos del inicio de sesión: arriba a la derecha, en la línea del logo */
.lcard .brand{align-items:center}
.eyes{width:76px;height:36px;margin-left:auto;flex:none}
.eyes svg{width:100%;height:100%;overflow:visible}
.eyes .eye ellipse{fill:var(--glass-3);stroke:var(--ink-1);stroke-width:2.6;transition:transform .25s ease;transform-origin:center;transform-box:fill-box}
.eyes .pup{fill:var(--ink-1);transition:transform .18s ease,opacity .15s}
.eyes .hand{fill:var(--glass-solid);stroke:var(--ink-1);stroke-width:2.4;stroke-linejoin:round;transform:translateY(46px);opacity:0;transition:transform .32s cubic-bezier(.3,1.4,.5,1),opacity .2s}
.eyes:not(.look):not(.closed) .eye ellipse{animation:blink 5s infinite}
@keyframes blink{0%,94%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
.eyes.closed .eye ellipse{transform:scaleY(.2)}
.eyes.closed .pup{opacity:0}
.eyes.closed .hand{transform:translateY(-8px);opacity:1}
.wrule{max-width:640px;margin:0 auto 16px;padding:12px 14px;border-radius:14px;background:var(--glass-2);border:1px solid var(--line-2);color:var(--ink-2);font-size:13px;line-height:1.5;text-align:center}
.wrule b{color:var(--ink-1)}
.wchip b{font-weight:600}
.wacu{max-width:640px;margin-left:auto;margin-right:auto;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--glass-1)}
.wacu summary{cursor:pointer;font-weight:600;font-size:13.5px}
.wbox .wstage{max-height:62vh;overflow:auto;padding-right:4px}

/* ---------- Modo claro mate: vidrio esmerilado, sin brillo blanco ---------- */
:root[data-theme="light"]{
  --bg:#E4E5E8;
  --bg-grad:
    radial-gradient(900px 640px at 6% -8%,rgba(246,246,248,.75),transparent 60%),
    radial-gradient(820px 600px at 100% 4%,rgba(23,81,59,.06),transparent 62%),
    radial-gradient(760px 600px at 72% 112%,rgba(0,198,94,.06),transparent 62%),
    radial-gradient(640px 520px at 0% 100%,rgba(176,182,180,.38),transparent 66%),
    linear-gradient(180deg,#E8E9EC,#DFE0E3);
  --glass-1:rgba(244,245,247,.46);
  --glass-2:rgba(246,247,249,.6);
  --glass-3:rgba(250,250,251,.74);
  --glass-solid:rgba(238,239,242,.88);
  --input:rgba(248,248,250,.62);
  --line:rgba(30,32,36,.09);
  --line-2:rgba(30,32,36,.15);
  --shine:inset 0 1px 0 rgba(255,255,255,.5),inset 0 0 0 1px rgba(255,255,255,.12);
  --shadow:0 18px 40px -26px rgba(28,34,40,.32);
  --overlay:rgba(48,52,58,.26);
}
/* Grano fino para que el vidrio se vea esmerilado y no brillante */
:root[data-theme="light"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.35;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5  0 0 0 0 .5  0 0 0 0 .5  0 0 0 .08 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
:root[data-theme="light"] #root{position:relative;z-index:1}
:root[data-theme="light"] .glass,:root[data-theme="light"] .card{-webkit-backdrop-filter:blur(28px) saturate(115%);backdrop-filter:blur(28px) saturate(115%)}
:root[data-theme="light"] .card.raised,:root[data-theme="light"] .kpi{background:var(--glass-2)}
:root[data-theme="light"] .side,:root[data-theme="light"] .topbar{background:rgba(240,241,244,.55)}

/* Barras de desplazamiento finas y discretas */
*{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:99px}
*::-webkit-scrollbar-thumb:hover{background:var(--ink-4)}
*::-webkit-scrollbar-button{display:none;width:0;height:0}
*::-webkit-scrollbar-corner{background:transparent}

/* ---------- Contraste WCAG 2.1 AA: texto 4,5:1, texto grande e íconos 3:1 ---------- */
:root[data-theme="light"]{
  --ink-1:#1C1D20; --ink-2:#3F4249; --ink-3:#55585F; --ink-4:rgba(30,32,36,.38);
  --warn:#7A4D00; --danger:#A02D22; --info:#24508F; --accent-text:#17513B; --good:#17513B;
  --on-warn:#fff; --on-danger:#fff; --on-idea:#fff}
:root,:root[data-theme="dark"]{--on-warn:#111; --on-danger:#111; --on-idea:#111}
/* Números sobre color: el texto siempre del color que contrasta */
.kpl li::before{background:var(--warn);color:var(--on-warn)}
.kpl li.sev-alta::before{background:var(--danger);color:var(--on-danger)}
.iconbtn .badge{color:var(--on-danger)}
.bdi.warn,.bd.warn text{color:var(--on-warn);fill:var(--on-warn)}
/* Texto que antes usaba el gris más claro */
.navlabel{color:var(--ink-3)}
.crumbs i,.marrow,.arrow,.codeanat>i{color:var(--ink-3)}
.chip[aria-pressed="true"] .cnum{color:inherit;opacity:.85}
.ichip[aria-pressed="false"]{opacity:1;color:var(--ink-3)}
.in.off{opacity:.62}
.rnum{color:#17513B!important;opacity:1!important}
[data-theme="light"] .qmark{opacity:1}
.dec{font-weight:600}
:root,:root[data-theme="dark"]{--ink-3:rgba(243,243,245,.6)}
:root[data-theme="light"]{--n-idea:#7E6200;--p-montaje:#A85400;--p-medicion:#B0286A;--p-urdimbre:#1F4FD1;--p-hilos:#0B7480;--k-plazo:#A85400;--k-cobro:#7E6200;--k-pub:#0E7A3E;--k-informe:#1F6E93;--k-tarea:#B0286A;--k-rec:#5C5F66;--m-mitad:#A85400;--m-anudar:#B0286A;--m-tejer:#0B7480}
[data-theme="light"] .wrap .card .over{color:color-mix(in srgb,var(--pc,var(--ink-3)) 55%,var(--ink-1))}
.chip i{opacity:.85}
.chain .arrow{color:var(--ink-3)}
.rfoot{color:#5f5f5f}
.in.off{opacity:.7}

/* Aviso en la tabla de clientes como botón */
.avbtn{all:unset;display:inline-flex;align-items:center;gap:6px;cursor:pointer;border-radius:99px;padding:2px 4px 2px 0}
.avbtn svg{width:14px;height:14px;opacity:0;transform:translateX(-4px);transition:.18s;stroke:currentColor;fill:none;stroke-width:2}
.avbtn:hover svg,.avbtn:focus-visible svg{opacity:1;transform:none}
.avbtn:hover .pill{filter:brightness(1.08);box-shadow:0 0 0 3px var(--glass-3)}
.avbtn:focus-visible{outline:2px solid var(--ink-2);outline-offset:2px}
.rfocus{margin:10px 0 0;font-size:13.5px;color:var(--ink-2)}

/* Movimiento reducido: sin animaciones ni transiciones */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
html.rm *,html.rm *::before,html.rm *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.rm .kbtn.urgent::before{opacity:1}
html.rm .kbtn.urgent{box-shadow:var(--shine),0 0 0 3px var(--kglow)}
html.rm .wcircle{transform:scale(.8)!important}

/* ---------- Incidencias ---------- */
.inctipos{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}
.inctipos .wchip{align-items:flex-start;text-align:left;padding:12px 14px}
.inctipos .wchip small{line-height:1.4;margin-top:2px}
.incrow.late{box-shadow:inset 3px 0 0 var(--danger)}
.flexnote{align-items:center}
/* ---------- Acción rápida ---------- */
.nextstep{display:inline-flex;align-items:center;gap:10px;max-width:420px;height:auto;min-height:40px;padding:8px 14px;text-align:left}
.nextstep .ns-l{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;opacity:.75;white-space:nowrap}
.nextstep .ns-t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nextstep svg{flex:none;width:16px;height:16px}
.tdone{flex:none;width:18px;height:18px;margin-top:2px;border-radius:50%;border:1.6px solid var(--ink-3);background:none;cursor:pointer;padding:0}
.tdone:hover{border-color:var(--good);background:color-mix(in srgb,var(--good) 18%,transparent)}
td.ck,th.ck{width:36px}td.ck input,th.ck input{width:16px;height:16px}
.bulkbar{position:sticky;bottom:16px;z-index:20;margin-top:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-radius:16px;background:var(--glass-solid);box-shadow:var(--shadow)}
.kk{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:6px;border:1px solid var(--line-2);background:var(--glass-2);font:600 11.5px/1 var(--font);color:var(--ink-1)}
/* ---------- Modo compacto ---------- */
html.compact .card{padding:16px}
html.compact .card[style*="padding:30px"]{padding:20px!important}
html.compact .kpi{padding:14px}
html.compact .phead{margin-bottom:14px}
html.compact .li{padding-top:8px;padding-bottom:8px}
html.compact .tbl td,html.compact .tbl th{padding-top:8px;padding-bottom:8px}
html.compact .sub,html.compact .sechead .sub{font-size:13px;margin-top:3px}
html.compact .wrap .hint:not(.keep){display:none}
html.compact .hello{padding:20px 24px}
html.compact .stack{gap:12px}
html.compact .mt-l{margin-top:14px}
html.compact .hcard{padding:10px 12px}
.mmstate{margin-left:auto;font-size:11.5px;color:var(--ink-3)}

/* ---------- Portal simple ---------- */
.cnt.hot{background:var(--accent-text);color:var(--bg);font-weight:700}
.phello{padding:6px 2px 4px}
.phello .h1{font-size:clamp(28px,3vw,38px);margin-top:6px}
.plead{font-size:17px;line-height:1.5;color:var(--ink-2);margin:10px 0 0;max-width:60ch}
.plead b{color:var(--ink-1)}
.pstatus{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:20px 0 22px;padding:12px 18px;border-radius:14px;background:var(--glass-1);border:1px solid var(--line);font-size:13.5px;color:var(--ink-2)}
.pstatus b{color:var(--ink-1)}
.pbar{flex:1;min-width:120px;height:6px;border-radius:9px;background:var(--glass-3);overflow:hidden}.pbar i{display:block;height:100%;background:var(--accent-text);border-radius:9px}
.ptasks{display:flex;flex-direction:column;gap:12px}
.ptask{display:flex;align-items:center;gap:18px;padding:20px 22px;border-radius:var(--r-lg);background:var(--glass-1);border:1px solid var(--line);box-shadow:inset 4px 0 0 var(--pc),var(--shine)}
.ptask.first{background:var(--glass-2);border-color:var(--line-2)}
.ptask b{font-size:16.5px;line-height:1.35;display:block}
.ptask p{margin:4px 0 0;color:var(--ink-2);font-size:14px;line-height:1.45}
.pmin{display:inline-block;margin-top:8px;font-size:12px;font-weight:600;color:var(--ink-3)}
.ptask>.btn{flex:none;height:44px;padding:0 20px;font-size:14.5px}
.ptic{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--glass-3);color:var(--pc)}
.ptic svg{width:22px;height:22px}.ptic.big{width:60px;height:60px;margin-bottom:12px}
.pinline{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.pih{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--glass-2);border:1px solid var(--line);font-size:14px;line-height:1.4}
.pdone{text-align:center;padding:40px 24px;display:flex;flex-direction:column;align-items:center}
.pmini{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:22px;padding:14px 20px;border-radius:14px;border:1px solid var(--line);background:var(--glass-1);text-decoration:none;color:inherit}
.pmini span{display:flex;flex-direction:column}.pmini small{font-size:12px;color:var(--ink-3)}.pmini b{font-size:20px}
.pmini .pml{margin-left:auto;flex-direction:row;align-items:center;gap:6px;font-size:13.5px;font-weight:600}.pmini .pml svg{width:15px;height:15px}
.pmini:hover{background:var(--glass-2)}
@media (max-width:760px){.ptask{flex-wrap:wrap}.ptask>.btn{width:100%}.pmini .pml{margin-left:0}}
.ptask>.grow{flex:1;min-width:0}
.ptic svg,.pml svg,.pmini svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cnt.hot{min-width:20px;height:20px;padding:0 6px;border-radius:99px;display:inline-grid;place-items:center;font-size:11px;margin-left:auto}
@media (max-width:760px){.pih{flex-wrap:wrap}.pih .grow{flex-basis:calc(100% - 40px)}.pih .btn{width:100%}.pstatus{flex-direction:column;align-items:stretch;gap:10px}}

/* ---------- Portal en el teléfono ---------- */
.mtop,.mtabs,.msheet,.msheetbg{display:none}
@media (max-width:760px){
  .app.portal{display:block}
  .app.portal>.side{display:none}
  .app.portal .main{padding:0 16px calc(84px + env(safe-area-inset-bottom));margin:0;width:100%}
  .app.portal main.wrap{padding-top:14px!important;max-width:100%}
  .mtop{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:30;margin:0 -16px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:var(--glass-solid);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
  .mbrand{display:flex;align-items:center;gap:8px}.mbrand svg{width:22px;height:22px}.mbrand b{font-size:16px}
  .mclient{flex:1;min-width:0;text-align:right;font-size:13px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mtop .iconbtn{width:40px;height:40px}
  .mtabs{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--glass-solid);border-top:1px solid var(--line-2);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
  .mtabs a,.mtabs button{all:unset;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;border-radius:12px;font-size:11px;font-weight:600;color:var(--ink-3);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .mtabs [aria-current="page"]{color:var(--ink-1);background:var(--glass-3)}
  .mtabs a:focus-visible,.mtabs button:focus-visible{outline:2px solid var(--ink-2);outline-offset:-2px}
  .mti{position:relative;display:grid;place-items:center}
  .mti svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mti i{position:absolute;top:-6px;right:-10px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;display:grid;place-items:center;font:700 10.5px/1 var(--font);font-style:normal;background:var(--accent-text);color:var(--bg)}
  .msheetbg{display:block;position:fixed;inset:0;z-index:45;background:var(--overlay)}
  .msheet{display:block;position:fixed;left:0;right:0;bottom:0;z-index:46;max-height:80vh;overflow:auto;padding:10px 16px calc(20px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:var(--bg);background-image:linear-gradient(var(--glass-2),var(--glass-2));border-top:1px solid var(--line-2);box-shadow:var(--shadow);animation:sheetup .25s ease}
  @keyframes sheetup{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
  .mgrab{display:block;width:40px;height:5px;border-radius:9px;background:var(--line-2);margin:0 auto 14px}
  .msheet .over{display:block;margin:12px 4px 8px}
  .mgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .mgrid a,.mgrid button{all:unset;display:flex;align-items:center;gap:10px;min-height:52px;padding:0 14px;border-radius:14px;background:var(--glass-1);border:1px solid var(--line);font-size:14.5px;font-weight:600;color:var(--ink-1);cursor:pointer}
  .mgrid svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mfoot{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
  /* Contenido del portal cómodo con el dedo */
  .app.portal .phead{flex-direction:column;align-items:stretch;gap:12px}
  .app.portal .phead .btn{width:100%;justify-content:center;min-height:46px}
  .app.portal .h1{font-size:26px}
  .app.portal .btn{min-height:44px}
  .app.portal .btn.sm{min-height:40px}
  .app.portal .chips{flex-wrap:nowrap;overflow-x:auto;margin-left:-16px;margin-right:-16px;padding:0 16px 4px;scrollbar-width:none}
  .app.portal .chips::-webkit-scrollbar{display:none}
  .app.portal .chip{flex:none;min-height:38px}
  .app.portal .card{padding:18px}
  .app.portal article.card[style*="padding:30px"]{padding:18px!important}
  .app.portal .grid2,.app.portal .grid3,.app.portal .kpis{grid-template-columns:minmax(0,1fr)!important}
  .app.portal .kpis.two,.app.portal .kpis.three{grid-template-columns:1fr 1fr!important}
  .app.portal .tblbox{overflow-x:auto}
  .app.portal input,.app.portal select,.app.portal textarea{font-size:16px}
  .app.portal .ptask{padding:16px;gap:12px}
  .app.portal .ptic{width:40px;height:40px}
  .app.portal .ptask b{font-size:16px}
  .app.portal .plead{font-size:16px}
  .app.portal .portal-note{flex-direction:column;align-items:stretch;gap:8px;margin:10px 0 0}
  .app.portal .rpages{overflow-x:auto}
  .app.portal .codeanat>i{display:none}
  .app.portal .hstep{flex-wrap:wrap}.app.portal .hstep .btn{width:100%}
  /* Paneles y ventanas a pantalla completa en el teléfono */
  .drawer{top:auto!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;max-height:92vh;border-radius:22px 22px 0 0!important}
  .modal{left:0!important;right:0!important;bottom:0!important;top:auto!important;transform:none!important;width:100%!important;max-width:none!important;max-height:92vh;border-radius:22px 22px 0 0!important;padding:20px 16px calc(20px + env(safe-area-inset-bottom))!important}
  .toast{bottom:calc(92px + env(safe-area-inset-bottom))!important}
}
@media (max-width:760px){
  .app.portal .pstatus .pbar{flex:none;width:100%}
  .app.portal .ptask{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:start}
  .app.portal .ptask>.btn{grid-column:1/-1;width:100%}
  .app.portal .ptask .pinline .pih{background:var(--glass-1)}
  .app.portal .pvtbl thead{display:none}
  .app.portal .pvtbl,.app.portal .pvtbl tbody{display:block}
  .app.portal .pvtbl tr{display:grid;grid-template-columns:auto 1fr 1fr;gap:10px 12px;padding:14px 16px;border-bottom:1px solid var(--line)}
  .app.portal .pvtbl td{display:block;padding:0!important;border:0!important;text-align:left!important}
  .app.portal .pvtbl td:nth-child(1){grid-column:1;align-self:start}
  .app.portal .pvtbl td:nth-child(2){grid-column:2/-1}
  .app.portal .pvtbl td:nth-child(3),.app.portal .pvtbl td:nth-child(4){grid-row:2}
  .app.portal .pvtbl td:nth-child(3){grid-column:1/3}.app.portal .pvtbl td:nth-child(4){grid-column:3}
  .app.portal .pvtbl td:nth-child(3)::before{content:"Conversaciones ";font-size:12px;color:var(--ink-3);font-weight:500}
  .app.portal .pvtbl td:nth-child(4)::before{content:"Ventas ";font-size:12px;color:var(--ink-3);font-weight:500}
  .app.portal .pvtbl td:nth-child(5){grid-column:1/-1}
  .app.portal .pvtbl td:nth-child(5) .btn{width:100%;min-height:44px}
  .app.portal .li .btn.sm{min-height:40px}
}
@media (max-width:760px){
  .app.portal .pvtbl td:nth-child(5) .btn{background:var(--glass-2);color:var(--ink-1);border:1px solid var(--line-2)}
  .app.portal a.link,.app.portal .link.small{display:inline-flex;align-items:center;min-height:40px}
}
.pmeets{margin-top:22px}
.pmeet{display:flex;align-items:center;gap:16px;padding:16px 18px;margin-bottom:10px;border-radius:var(--r-lg);background:var(--glass-1);border:1px solid var(--line);box-shadow:inset 4px 0 0 var(--k-reunion)}
.pmeet b{font-size:15.5px}.pmeet p{margin:3px 0 0;color:var(--ink-2);font-size:14px}
.pmeet .ptic{color:var(--k-reunion)}
@media (max-width:760px){.pmeet{flex-wrap:wrap}.pmeet>.btn{width:100%;min-height:44px}}
.wbcard.joseflee{position:relative}
.wbcard.joseflee [data-act="wSkip"]{transition:left .18s ease,top .18s ease}
.josemsg{position:fixed;left:50%;top:22px;transform:translateX(-50%);z-index:200;max-width:min(560px,calc(100vw - 32px));padding:14px 20px;border-radius:16px;background:var(--danger);color:var(--on-danger);font-weight:700;font-size:15px;text-align:center;box-shadow:var(--shadow);animation:wup .25s ease}
.josemsg.sly{background:var(--ink-1);color:var(--bg)}
.modal.shake{animation:jshake .4s ease}
@keyframes jshake{0%,100%{transform:translateX(0)}20%{transform:translateX(-10px)}40%{transform:translateX(10px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}
.wbleaf svg,.wleaf svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}[data-theme="light"] .wbleaf{color:#17513B}
.agmore>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--glass-1);font-weight:600;font-size:13.5px}.agmore>summary::-webkit-details-marker{display:none}.agmore>summary:hover{background:var(--glass-2)}

/* Opciones de las listas desplegables siempre legibles */
select option,select optgroup{background:var(--bg);color:var(--ink-1)}
:root[data-theme="dark"] select option{background:#17181b;color:#F3F3F5}
:root[data-theme="light"] select option{background:#fff;color:#1C1D20}
/* Colores de cliente */
.ccolors{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}
.ccol{width:32px;height:32px;border-radius:50%;border:2px solid transparent;background:var(--cc);cursor:pointer;padding:0;box-shadow:inset 0 0 0 2px var(--bg);position:relative}
.ccol.on{border-color:var(--ink-1)}
.ccol.taken{opacity:.35;cursor:not-allowed}
.ccol.taken::after{content:"";position:absolute;left:50%;top:3px;bottom:3px;width:2px;background:var(--ink-1);transform:translateX(-50%) rotate(45deg);border-radius:2px}
.ccol:focus-visible{outline:2px solid var(--ink-2);outline-offset:2px}
.ccustom{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px 0 4px;border-radius:99px;border:1px dashed var(--line-2);cursor:pointer;font-size:12.5px;color:var(--ink-2)}
.ccustom input{width:24px;height:24px;border:0;padding:0;background:none;cursor:pointer}
.cdot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:12px;vertical-align:middle;position:relative;top:-3px}
.cdot.sm{width:9px;height:9px;margin-right:8px;top:-1px}
.ncmeet{margin-top:16px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--glass-1)}

/* Listas desplegables legibles en ambos modos (incluye el menú nativo de Windows) */
:root[data-theme="dark"] select{color-scheme:dark;color:#F3F3F5}
:root[data-theme="light"] select{color-scheme:light;color:#1C1D20}
:root[data-theme="dark"] select option,:root[data-theme="dark"] select optgroup{background-color:#1b1c1f!important;color:#F3F3F5!important}
:root[data-theme="light"] select option,:root[data-theme="light"] select optgroup{background-color:#ffffff!important;color:#1C1D20!important}

/* Columnas de tableros: una línea corta en vez de un punto */
.colhead .pdot{width:14px;height:3px;border-radius:2px}
/* Clientes en el menú: un cuadradito en vez de un punto */
.navbtn .dot{width:8px;height:8px;border-radius:2px}

/* ---------- Pausa activa v2 ---------- */
.modal.still,.overlay.still{animation:none!important}
.modal:has(.wbox){height:min(780px,calc(100vh - 48px));display:flex;flex-direction:column}
.modal:has(.wbox) .wbox{flex:1;min-height:0;overflow:auto;display:block;padding:4px 2px}
.wbox .wstage{max-height:none;overflow:visible}
.wst{max-width:720px;margin:0 auto;padding:6px 0 10px}
.wq{text-align:center;font-size:24px;margin:8px 0 6px}
.wqs{text-align:center;margin:0 auto 20px}
.wfeel{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.wfeelc{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-radius:16px;border:1px solid var(--line);background:var(--glass-1);cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.wfeelc b{font-size:15px;font-weight:600;color:var(--ink-1);line-height:1.35}
.wfeelc span{font-size:12.5px;color:var(--ink-3);line-height:1.4}
.wfeelc:hover{background:var(--glass-2);border-color:var(--line-2);transform:translateY(-1px)}
.wfeelc.on{border-color:var(--accent-text);background:var(--glass-3)}
.wfeelc:focus-visible,.wseriec:focus-visible{outline:2px solid var(--ink-2);outline-offset:2px}
.wsep{display:block;text-align:center;margin:26px 0 10px}
.wseries{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.wseriec{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:14px;border:1px dashed var(--line-2);cursor:pointer;text-align:center}
.wseriec b{font-size:13.5px;font-weight:600}.wseriec span{font-size:11.5px;color:var(--ink-3)}
.wseriec:hover{border-style:solid;background:var(--glass-1)}
.wback{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px}.wback svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
.wstsum{text-align:center;margin-bottom:18px}.wstsum .h2{font-size:24px;margin:6px 0}
.wsteps{list-style:none;margin:0 auto;padding:0;max-width:520px;display:flex;flex-direction:column;gap:8px}
.wsteps li{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:14px;background:var(--glass-1);border:1px solid var(--line)}
.wsteps .n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;background:var(--glass-3)}
.wsteps b{display:block;font-size:14.5px}.wsteps small{display:block;font-size:12px;color:var(--ink-3)}
.wstart{text-align:center;margin-top:22px}
.btn.lg{height:50px;padding:0 28px;font-size:15.5px}
.wsthead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.wsthead .wdots{margin:0}
.wstgrid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}
.wfigbox.lg{width:220px;height:220px}.wfigbox.lg .wfig{width:170px;height:170px}
.wstinfo .h2{font-size:24px;margin:8px 0 10px}
.wsthow{font-size:16px;line-height:1.6;color:var(--ink-1);margin:0}
.wtag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);padding:3px 10px;border-radius:99px;background:var(--accent-soft)}
.wwhen{margin-top:16px;padding:12px 14px;border-radius:12px;background:var(--glass-2);border:1px solid var(--line);display:flex;flex-direction:column;gap:3px;font-size:13.5px;color:var(--ink-2)}
.wwhen b{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.wsttime{display:flex;align-items:center;gap:14px;margin:22px 0 18px}.wsttime .wbar{flex:1}.wsttime .num{font-weight:700;min-width:70px;text-align:right}
.wmedrun{text-align:center}
.wclosed{display:grid;place-items:center;opacity:.8}.wclosed svg{width:42px;height:42px;fill:none;stroke:var(--ink-1);stroke-width:1.4}
.wmedtxt{min-height:48px;max-width:460px;margin:18px auto 6px;font-size:15px;line-height:1.55;color:var(--ink-2);text-align:center}
@media (max-width:700px){.wseries{grid-template-columns:1fr 1fr}.wstgrid{grid-template-columns:1fr}.wfigbox.lg{margin:0 auto}}
/* José: lluvia de mensajes */
.nope{position:fixed;z-index:210;padding:12px 18px;border-radius:14px;background:var(--ink-1);color:var(--bg);font-weight:800;font-size:18px;letter-spacing:.02em;box-shadow:var(--shadow);transform:rotate(var(--rot,0deg));animation:nopein .3s cubic-bezier(.3,1.5,.5,1),nopeout .4s ease 2.2s forwards;pointer-events:none;max-width:80vw}
@keyframes nopein{from{transform:scale(.4) rotate(var(--rot,0deg));opacity:0}}
@keyframes nopeout{to{opacity:0;transform:translateY(-10px) rotate(var(--rot,0deg))}}
@keyframes jshake{0%,100%{transform:translate(-50%,-50%)}20%{transform:translate(calc(-50% - 10px),-50%)}40%{transform:translate(calc(-50% + 10px),-50%)}60%{transform:translate(calc(-50% - 6px),-50%)}80%{transform:translate(calc(-50% + 6px),-50%)}}
.modal.still.shake{animation:jshake .4s ease!important}

/* ---------- Pausa activa inmersiva ---------- */
.modal.wellfs{left:0!important;top:0!important;right:0;bottom:0;transform:none!important;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;border-radius:0!important;padding:0!important;border:0;overflow:hidden;background:#141518;animation:fade .25s}
.modal.wellfs.still{animation:none}
.modal.wellfs.shake{animation:jshake3 .4s ease!important}
@keyframes jshake3{0%,100%{transform:none}25%{transform:translateX(-10px)}50%{transform:translateX(10px)}75%{transform:translateX(-6px)}}
.wair{--bg:#141518;--glass-1:rgba(255,255,255,.04);--glass-2:rgba(255,255,255,.07);--glass-3:rgba(255,255,255,.11);--glass-solid:rgba(32,33,37,.92);--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.15);
  --ink-1:#F3F3F5;--ink-2:rgba(243,243,245,.78);--ink-3:rgba(243,243,245,.62);--ink-4:rgba(243,243,245,.3);--accent:#00FF66;--accent-soft:rgba(0,255,102,.12);--accent-text:#7dffb0;--good:#74e3a6;--warn:#e9b65c;--danger:#f08174;--input:rgba(255,255,255,.05);--shine:inset 0 1px 0 rgba(255,255,255,.06);
  color-scheme:dark;position:relative;height:100%;display:flex;flex-direction:column;color:var(--ink-1);background:radial-gradient(1100px 700px at 50% 35%,#24262b,#141518 70%)}
.wair .btn{background:var(--glass-2);color:var(--ink-1);border-color:var(--line-2)}
.wair .btn.primary{background:#F3F3F5;color:#141518;border-color:#F3F3F5}
.wair .btn.ghost{background:transparent;border-color:transparent}
.whd{position:relative;z-index:3;display:flex;align-items:center;gap:12px;padding:18px 26px;margin:0}
.whdt{flex:1;display:flex;flex-direction:column;line-height:1.25}.whdt b{font-size:15px}.whdt span{font-size:13px;color:var(--ink-3)}
.whd .iconbtn svg{stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wair .wbox{position:relative;z-index:2;flex:1;min-height:0;overflow:auto;padding:0 26px 30px}
.modal.wellfs .wbox{height:auto}
.wpage{max-width:1040px;margin:0 auto}
.whero{text-align:center;margin:6px 0 28px}
.wtitle{font-size:28px;font-weight:600;letter-spacing:-.02em;margin:0;text-align:center;display:flex;align-items:center;justify-content:center;gap:10px}
.wtitle .wart svg{width:36px;height:36px}
.wsub{color:var(--ink-2);margin:8px 0 0;text-align:center}
.wcats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.wcat{all:unset;box-sizing:border-box;grid-column:span 2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;padding:22px;border-radius:22px;background:var(--glass-2);border:1px solid var(--line);cursor:pointer;text-align:center;transition:background .2s,transform .2s}
.wcat.big{grid-column:span 3;min-height:300px}
.wcat:hover{background:var(--glass-3);transform:translateY(-2px)}
.wcat:focus-visible{outline:2px solid var(--ink-2);outline-offset:3px}
.wcat b{font-size:18px;font-weight:600}.wcat span:not(.wart){font-size:13px;color:var(--ink-3)}
.wart{display:grid;place-items:center}
.wart svg{width:84px;height:84px;fill:none;stroke:rgba(243,243,245,.72);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}
.wcat.big .wart svg{width:130px;height:130px}
.wart svg .soft{stroke:rgba(243,243,245,.3);stroke-width:3}
.whint{text-align:center;color:var(--ink-3);font-size:13px;margin:22px auto 0;max-width:620px}
.wdetail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;margin-top:24px;align-items:start}
.wlab{font-size:14px;font-weight:600;margin:4px 0 12px}
.wleft .wlab:not(:first-child){margin-top:24px}
.wopts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wopt{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:3px;padding:16px 18px;border-radius:18px;background:var(--glass-1);border:1px solid var(--line);cursor:pointer;transition:background .15s}
.wopt b{font-size:14.5px;font-weight:600;line-height:1.3}.wopt span{font-size:13px;color:var(--ink-3)}
.wopt:hover{background:var(--glass-2)}.wopt.on{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.25)}
.wopt:focus-visible{outline:2px solid var(--ink-2);outline-offset:2px}
.wdurs,.wvseg{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--glass-1);border:1px solid var(--line)}
.wdurs button,.wvseg button{all:unset;flex:1;text-align:center;padding:10px 12px;border-radius:10px;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wdurs button[aria-pressed="true"],.wvseg button[aria-pressed="true"]{background:rgba(255,255,255,.18);color:var(--ink-1)}
.wdurs button:focus-visible,.wvseg button:focus-visible{outline:2px solid var(--ink-2)}
.winfo{padding:26px 28px;border-radius:24px;background:var(--glass-2);border:1px solid var(--line);position:sticky;top:0}
.winfo h3{font-size:22px;margin:0 0 8px}.winfo>p{color:var(--ink-2);line-height:1.55;margin:0 0 6px}
.wben{border-top:1px solid var(--line);margin-top:18px;padding-top:18px;display:flex;flex-direction:column;gap:16px}
.wben>div{display:flex;gap:14px;align-items:flex-start}.wben b{display:block;font-size:14px;margin-bottom:2px}.wben span span,.wben>div>span:last-child{color:var(--ink-2);font-size:14px;line-height:1.45}
.wbic{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--glass-3)}.wbic svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7}
.wsteps2{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.wsteps2 span{font-size:12.5px;padding:5px 10px;border-radius:99px;background:var(--glass-1);border:1px solid var(--line);color:var(--ink-2)}
.wlist{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.wlist li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--glass-1)}
.wlist .n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--glass-3)}
.wlist b{display:block;font-size:14px}.wlist small{display:block;font-size:12px;color:var(--ink-3);line-height:1.35}
.winfo .wacu{margin-top:14px;max-width:none;background:var(--glass-1)}
.winfo .hint{margin-top:10px}
.wgo{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:22px}
.wgo .btn svg{width:16px;height:16px}
.wair .wchips{justify-content:flex-start}
.wcfgx{margin-top:6px}
.wair .list .li{border-color:var(--line)}
/* Sesión */
.wair.sess{background:radial-gradient(900px 600px at 50% 45%,#2a2c31,#141518 72%)}
.wparts{position:absolute;inset:0;overflow:hidden;z-index:1;pointer-events:none}
.wparts i{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.9),rgba(255,255,255,.15) 60%,transparent 70%);animation:drift linear infinite}
@keyframes drift{0%{transform:translate(0,0)}25%{transform:translate(30px,-40px)}50%{transform:translate(-20px,-80px)}75%{transform:translate(-40px,-30px)}100%{transform:translate(0,0)}}
.wsess{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;gap:18px;padding-bottom:10px}
.wstagec{position:relative;width:min(440px,70vw);aspect-ratio:1;display:grid;place-items:center}
.wstagec.st{width:min(360px,60vw)}.wstagec.small{width:200px;margin:0 auto 10px}
.lotus{position:absolute;inset:0;width:100%;height:100%;transform:scale(.8);transition:transform 4s ease-in-out;overflow:visible}
.lotus circle{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.35);stroke-width:1}
.lotus .p2 circle{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.28)}
.wsess.med .lotus,.wstagec.st .lotus,.wdone .lotus{animation:lotusb 8s ease-in-out infinite}
@keyframes lotusb{0%,100%{transform:scale(.72) rotate(0)}50%{transform:scale(.95) rotate(22deg)}}
.wcore{position:relative;z-index:2;width:42%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;text-align:center;padding:10px;background:radial-gradient(circle at 40% 35%,#fff,#d9dadd 70%,#b9bbc0);box-shadow:0 0 40px rgba(255,255,255,.25),inset 0 0 0 3px rgba(255,255,255,.7)}
.wcore span{color:#141518;font-weight:600;font-size:16px;line-height:1.25}
.wcore.fig{width:62%;background:rgba(255,255,255,.92)}.wcore.fig .wfig{width:80%;height:80%;stroke:#141518}.wcore.fig .wfig .arw{stroke:#17513B}.wcore.fig .wfig .chair{stroke:#6d7480}
.wsinfo{max-width:620px;text-align:center}.wsinfo h3{font-size:22px;margin:8px 0}.wsinfo p{color:var(--ink-2);line-height:1.55;margin:0 0 6px;font-size:15.5px}
.wtag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);padding:3px 10px;border-radius:99px;background:var(--accent-soft)}
.wmedline{min-height:48px;max-width:560px;text-align:center;font-size:17px;line-height:1.5;color:var(--ink-1);margin:0}
.whint2{font-size:13px;color:var(--ink-3);margin:0}
.wctrl{display:flex;gap:10px}
.wplay{height:48px;padding:0 22px;border-radius:99px!important;background:#F3F3F5!important;color:#141518!important;font-weight:600;display:inline-flex;align-items:center;gap:8px}
.wplay svg{width:16px;height:16px}.pz{display:inline-block;width:12px;height:14px;border-left:4px solid #141518;border-right:4px solid #141518}
.wprog{display:flex;align-items:center;gap:14px;width:min(620px,86vw);font-size:14px;color:var(--ink-2)}
.wprog .wbar{flex:1;height:4px;background:rgba(255,255,255,.12)}.wprog .wbar i{display:block;height:100%;background:#F3F3F5;border-radius:9px;transition:width .2s linear}
.wdone{text-align:center;padding-top:30px}.wdone .wcore span{font-size:30px}
@media (max-width:820px){.wcats{grid-template-columns:1fr 1fr}.wcat,.wcat.big{grid-column:span 1;min-height:160px}.wcat.big .wart svg{width:90px;height:90px}.wdetail{grid-template-columns:1fr}.winfo{position:static}.wopts{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.wparts i,.lotus{animation:none!important;transition:none!important}}
html.rm .wparts i{animation:none!important}
.wcore.fig{width:46%}
.wcore.eyes2 svg{width:46%;fill:none;stroke:#141518;stroke-width:1.5;stroke-linecap:round}
.whd .btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}
@media (max-width:820px){.wcat:last-child:nth-child(odd){grid-column:1/-1;min-height:120px}}
.nope{background:#F3F3F5!important;color:#141518!important;box-shadow:0 12px 30px rgba(0,0,0,.45)}

/* ---------- Figuras de ejercicios más claras ---------- */
.wfig .floor{stroke:var(--ink-4);stroke-width:2;stroke-dasharray:none}
.wfig .prop{stroke:var(--ink-3);stroke-width:3;fill:none;opacity:.7}
.wfig .hd{fill:none}
.wfig .ahd{fill:var(--accent-text);stroke:none}
.wfig .arw{stroke:var(--accent-text);stroke-width:3;stroke-dasharray:none;fill:none}
.wcore.fig .wfig .floor,.wcore.fig .wfig .prop{stroke:#8A8F98}
.wcore.fig .wfig .arw{stroke:#17513B}.wcore.fig .wfig .ahd{fill:#17513B}
/* ---------- Música: ambientes y volumen ---------- */
.wmus{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.wtracks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.wtrack{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--ink-2);cursor:pointer;font:inherit;font-size:13px;transition:border-color .2s,background .2s}
.wtrack:hover{border-color:var(--ink-4)}
.wtrack[aria-pressed=true]{border-color:var(--accent-text);background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--ink)}
.wti svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.wvol{display:flex;align-items:center;gap:10px}
.wvol svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.wvol input[type=range]{flex:1;-webkit-appearance:none;appearance:none;height:4px;border-radius:4px;background:var(--line);padding:0;border:0;min-height:0;accent-color:var(--accent-text)}
.wvol input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent-text);border:2px solid var(--bg,#fff);cursor:pointer}
.wvol input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent-text);border:2px solid #fff}
.wvol .num{min-width:40px;text-align:right;font-size:13px;color:var(--ink-2)}
.wsndwrap{position:relative}
.wmus.pop{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:300px;padding:16px;border-radius:16px;background:rgba(20,22,26,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#F2F3F5;border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 40px rgba(0,0,0,.35);text-align:left}
.wmus.pop .wtrack{color:#D5D8DD;border-color:rgba(255,255,255,.18)}
.wmus.pop .wtrack[aria-pressed=true]{border-color:#7FE0B0;color:#fff;background:rgba(127,224,176,.14)}
.wmus.pop .wvol .num{color:#D5D8DD}
.wmus.pop input[type=range]{background:rgba(255,255,255,.2);accent-color:#7FE0B0}
.wmus.pop input[type=range]::-webkit-slider-thumb{background:#7FE0B0;border-color:#14161A}
/* Contraste AA: subtítulos del plan y categoría del mensaje del día en modo claro */
html.light .kpl .d,[data-theme=light] .kpl .d{color:var(--ink-2)}
.kpl .d{color:var(--ink-2)}
.qcard .over{filter:none}
html.light .qcard .over,[data-theme=light] .qcard .over{color:color-mix(in srgb,var(--pc) 60%,#000)!important}
.wvoz{display:flex;align-items:center;gap:10px;margin-top:10px}
.wvoz label{font-size:13px;color:var(--ink-2);white-space:nowrap}
.wvoz select{flex:1;min-width:0}
.wair .wvoz select,.modal.wellfs .wvoz select{color:#F2F3F5;background-color:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18)}
.wair .wvoz select option,.modal.wellfs .wvoz select option{color:#111;background:#fff}
.wair .wvoz label,.modal.wellfs .wvoz label{color:#C9CDD3}
