/* ==========================================================
   Pinky v2 · Mission control
   ========================================================== */
:root{
  --font:"Space Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Consolas,monospace;
  --radius:18px;--radius-sm:12px;
  --sidebar:258px;
}
:root,[data-theme="dark"]{
  color-scheme:dark;
  --bg:#05070f;--bg2:#0a0e1c;
  --panel:rgba(16,22,42,.62);--panel-solid:#0f1528;--panel2:rgba(28,37,66,.55);
  --line:rgba(120,150,255,.14);--line-strong:rgba(120,170,255,.28);
  --text:#eef2ff;--text2:#b6c0dc;--muted:#7f8aab;
  --accent:#3ee6ff;--accent2:#8b7bff;--pink:#ff5a91;
  --accent-soft:rgba(62,230,255,.12);--accent-glow:0 0 24px rgba(62,230,255,.35);
  --grid-line:rgba(120,150,255,.06);
  --chart-grid:#1e2742;--chart-axis:#2f3a5c;
  /* ordinal ramp (pipeline stages / tiers) — validated blue ramp, dark steps */
  --s1:#184f95;--s2:#256abf;--s3:#3987e5;--s4:#6da7ec;--s5:#9ec5f4;
  /* status (fixed) */
  --good:#0ca30c;--warning:#fab219;--serious:#ec835a;--critical:#d03b3b;
  --good-ink:#3fd66a;
  --heat0:rgba(120,150,255,.07);
  --shadow:0 20px 60px rgba(0,0,0,.45);
}
[data-theme="light"]{
  color-scheme:light;
  --bg:#f3f5fb;--bg2:#e9edf8;
  --panel:rgba(255,255,255,.78);--panel-solid:#ffffff;--panel2:rgba(236,240,252,.9);
  --line:rgba(40,60,120,.12);--line-strong:rgba(40,80,200,.25);
  --text:#0b1024;--text2:#3d4666;--muted:#6b7392;
  --accent:#0a8fb3;--accent2:#5b4bd6;--pink:#d63a72;
  --accent-soft:rgba(10,143,179,.1);--accent-glow:0 0 0 transparent;
  --grid-line:rgba(40,60,120,.05);
  --chart-grid:#e1e4ef;--chart-axis:#c3c8da;
  --s1:#86b6ef;--s2:#5598e7;--s3:#2a78d6;--s4:#1c5cab;--s5:#104281;
  --good-ink:#006300;
  --heat0:rgba(40,60,120,.07);
  --shadow:0 18px 50px rgba(20,30,70,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.bg-grid{position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at 60% 0%,#000 30%,transparent 80%)}
.bg-aurora{position:fixed;inset:-20% -10% auto auto;width:90vw;height:70vh;pointer-events:none;z-index:0;background:radial-gradient(closest-side at 70% 30%,rgba(139,123,255,.20),transparent),radial-gradient(closest-side at 40% 10%,rgba(62,230,255,.14),transparent),radial-gradient(closest-side at 90% 60%,rgba(255,90,145,.10),transparent);filter:blur(20px);animation:drift 18s ease-in-out infinite alternate}
[data-theme="light"] .bg-aurora{opacity:.55}
@keyframes drift{to{transform:translate(-4vw,4vh) scale(1.08)}}
button,input,select,textarea{font:inherit;color:inherit}
kbd{font-family:var(--mono);font-size:.68rem;padding:2px 6px;border-radius:6px;border:1px solid var(--line-strong);background:var(--panel2);color:var(--text2)}
code{font-family:var(--mono);font-size:.85em;background:var(--accent-soft);color:var(--accent);padding:1px 6px;border-radius:6px}
.muted{color:var(--muted)}
.mono{font-family:var(--mono)}
i[data-icon]{display:inline-grid;place-items:center;width:18px;height:18px;flex:none}
i[data-icon] svg{width:100%;height:100%}

/* ---------- Sidebar ---------- */
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);padding:22px 16px;background:linear-gradient(180deg,rgba(10,14,30,.85),rgba(6,9,20,.92));border-right:1px solid var(--line);backdrop-filter:blur(18px);display:flex;flex-direction:column;z-index:30;transition:transform .3s ease}
[data-theme="light"] .sidebar{background:rgba(255,255,255,.85)}
.brand{display:flex;gap:12px;align-items:center;padding:0 8px 22px}
.mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--pink),var(--accent2) 55%,var(--accent));color:#fff;box-shadow:0 8px 30px rgba(139,123,255,.35)}
.mark svg{width:26px;height:26px}
.brand div{display:grid}
.brand strong{font-size:1.05rem;letter-spacing:.22em}
.brand small{color:var(--muted);font-size:.7rem;font-family:var(--mono)}
.nav-label{margin:16px 12px 6px;font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.sidebar nav{display:grid;gap:3px;overflow:auto}
.nav{position:relative;appearance:none;border:0;background:transparent;color:var(--text2);padding:10px 12px;border-radius:12px;text-align:left;cursor:pointer;display:flex;gap:11px;align-items:center;transition:background .2s,color .2s}
.nav b{font-weight:500;flex:1;font-size:.9rem}
.nav:hover{background:var(--panel2);color:var(--text)}
.nav.active{background:linear-gradient(90deg,var(--accent-soft),transparent);color:var(--text)}
.nav.active::before{content:"";position:absolute;left:-16px;top:8px;bottom:8px;width:3px;border-radius:0 4px 4px 0;background:var(--accent);box-shadow:var(--accent-glow)}
.nav.active i{color:var(--accent)}
.nav span{font-family:var(--mono);font-size:.7rem;background:var(--panel2);border:1px solid var(--line);padding:1px 7px;border-radius:99px;color:var(--text2)}
.cmdk-hint{margin-top:auto;display:flex;align-items:center;gap:10px;border:1px dashed var(--line-strong);background:transparent;color:var(--muted);border-radius:12px;padding:10px 12px;cursor:pointer}
.cmdk-hint span{flex:1;text-align:left;font-size:.85rem}
.cmdk-hint:hover{color:var(--text);border-color:var(--accent)}
.sync{margin-top:14px;padding:14px 8px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:10px 1fr;gap:12px;align-items:center}
.sync .dot{width:9px;height:9px;background:var(--good);border-radius:99px;box-shadow:0 0 12px var(--good);animation:pulse 2.4s infinite}
.sync .dot.off{background:var(--warning);box-shadow:0 0 12px var(--warning)}
.sync .dot.err{background:var(--critical);box-shadow:0 0 12px var(--critical)}
@keyframes pulse{50%{opacity:.4}}
.sync div{display:grid;gap:2px}
.sync small{color:var(--muted);font-size:.68rem}
.sync strong{font-size:.78rem;font-family:var(--mono)}
.sync .mode{font-family:var(--mono)}

/* ---------- Layout ---------- */
main{position:relative;z-index:1;margin-left:var(--sidebar);padding:26px 34px 70px;max-width:1640px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}
.title-block{min-width:0}
.eyebrow{margin:0 0 6px;color:var(--accent);font-family:var(--mono);font-weight:500;font-size:.68rem;text-transform:uppercase;letter-spacing:.2em}
h1{margin:0;font-size:clamp(1.7rem,2.8vw,2.5rem);letter-spacing:-.03em;font-weight:700;background:linear-gradient(90deg,var(--text),var(--text2));-webkit-background-clip:text;background-clip:text;color:transparent}
h2,h3{margin:0;letter-spacing:-.02em}
.header-actions{display:flex;gap:10px;align-items:center}
.search{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--panel);padding:0 10px 0 13px;border-radius:12px;min-width:min(320px,30vw);backdrop-filter:blur(10px);transition:border-color .2s,box-shadow .2s}
.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.search i{color:var(--muted)}
.search input{border:0;outline:0;background:transparent;width:100%;height:42px}
.icon-btn{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:var(--panel);cursor:pointer;color:var(--text2)}
.icon-btn:hover{color:var(--accent);border-color:var(--accent)}
.menu-btn{display:none}
.primary-btn,.ghost-btn,.danger-btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border-radius:12px;cursor:pointer;font-weight:600;font-size:.88rem;white-space:nowrap;transition:transform .15s,box-shadow .2s,border-color .2s,background .2s}
.primary-btn{border:0;color:#04121a;background:linear-gradient(135deg,var(--accent),#7dd3ff 60%,var(--accent2));box-shadow:0 6px 24px rgba(62,230,255,.25)}
[data-theme="light"] .primary-btn{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent2))}
.primary-btn:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(62,230,255,.35)}
.primary-btn:disabled{opacity:.6;cursor:progress;transform:none}
.primary-btn.syncing i{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ghost-btn{border:1px solid var(--line-strong);background:var(--panel);color:var(--text)}
.ghost-btn:hover{border-color:var(--accent);color:var(--accent)}
.ghost-btn:disabled{opacity:.4;cursor:not-allowed}
.danger-btn{border:1px solid rgba(208,59,59,.5);background:rgba(208,59,59,.1);color:#ff8a8a}
[data-theme="light"] .danger-btn{color:#a11}
.danger-btn:hover{background:rgba(208,59,59,.2)}
.mini{border:1px solid var(--line);background:var(--panel2);color:var(--text2);border-radius:8px;padding:5px 9px;font-size:.74rem;cursor:pointer}
.mini:hover{color:var(--accent);border-color:var(--accent)}
.mini.danger:hover{color:#ff7b7b;border-color:#ff7b7b}
.mini.ok:hover{color:var(--good-ink);border-color:var(--good)}
body.read-only .requires-write{display:none!important}

/* ---------- Panels ---------- */
.panel{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;backdrop-filter:blur(14px);box-shadow:var(--shadow)}
.panel::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(62,230,255,.35),transparent 35%,transparent 70%,rgba(139,123,255,.3));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.7}
[data-theme="light"] .panel::before{opacity:.35}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}
.panel-head h3{font-size:1.02rem;font-weight:600}
.panel-head .eyebrow{margin-bottom:4px}
.panel-head .count{font-family:var(--mono);font-size:.75rem;color:var(--text2);border:1px solid var(--line);border-radius:99px;padding:3px 9px}
.panel-sub{margin:-8px 0 14px;color:var(--muted);font-size:.82rem}
.grid{display:grid;gap:16px}
.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-dash{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
.span-2{grid-column:span 2}
.stack{display:grid;gap:16px;align-content:start}
.fade-in>*{animation:rise .45s ease both}
.fade-in>*:nth-child(2){animation-delay:.04s}.fade-in>*:nth-child(3){animation-delay:.08s}.fade-in>*:nth-child(4){animation-delay:.12s}.fade-in>*:nth-child(5){animation-delay:.16s}
@keyframes rise{from{opacity:0;transform:translateY(8px)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- KPI tiles ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:14px;margin-bottom:16px}
.kpi{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;backdrop-filter:blur(14px);min-height:124px;display:flex;flex-direction:column}
.kpi::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,var(--accent-soft),transparent 70%)}
.kpi .label{display:flex;align-items:center;gap:8px;color:var(--text2);font-size:.78rem}
.kpi .label i{color:var(--accent);width:16px;height:16px}
.kpi .value{margin-top:8px;font-size:2rem;font-weight:700;letter-spacing:-.04em;line-height:1}
.kpi .value small{font-size:.9rem;color:var(--muted);font-weight:500;margin-left:3px;letter-spacing:0}
.kpi .foot{margin-top:auto;padding-top:8px;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;font-size:.74rem;color:var(--muted)}
.kpi .spark{width:90px;height:28px;flex:none}
.delta{font-family:var(--mono);font-size:.72rem}
.delta.up{color:var(--good-ink)}.delta.down{color:#ff8a7a}

/* ---------- Health ---------- */
.health{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.72rem;padding:3px 9px 3px 7px;border-radius:99px;border:1px solid currentColor;white-space:nowrap}
.health::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.health.good{color:var(--good-ink)}.health.warning{color:var(--warning)}.health.serious{color:var(--serious)}.health.critical{color:#ff6b6b}
[data-theme="light"] .health.warning{color:#9a6700}[data-theme="light"] .health.serious{color:#b4471b}[data-theme="light"] .health.critical{color:#b42323}
.ring{position:relative;display:grid;place-items:center;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring .ring-val{position:absolute;text-align:center;line-height:1}
.ring .ring-val b{display:block;font-size:1.5rem;letter-spacing:-.03em}
.ring .ring-val small{font-family:var(--mono);font-size:.6rem;color:var(--muted);letter-spacing:.1em}

/* ---------- Status & chips ---------- */
.status{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-family:var(--mono);padding:4px 10px;border-radius:99px;border:1px solid var(--line-strong);background:var(--panel2);color:var(--text);white-space:nowrap}
.status::before{content:"";flex:none;width:8px;height:8px;border-radius:2px;background:var(--stage)}
.status:not([class*="st-"])::before{display:none}
.st-concepto{--stage:var(--s1)}.st-documental{--stage:var(--s2)}.st-prototipo{--stage:var(--s3)}.st-validacion{--stage:var(--s4)}.st-en-desarrollo{--stage:var(--s5)}
.tag{display:inline-block;font-family:var(--mono);font-size:.68rem;color:var(--accent2);background:rgba(139,123,255,.12);border:1px solid rgba(139,123,255,.3);padding:2px 8px;border-radius:6px}
[data-theme="light"] .tag{color:#4a3aa7}
.tier{font-family:var(--mono);font-size:.72rem;color:var(--text2)}
.tier b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;margin-right:4px;background:var(--panel2);border:1px solid var(--line-strong);color:var(--text)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);background:var(--panel);color:var(--text2);border-radius:99px;padding:6px 12px;font-size:.78rem;cursor:pointer;transition:all .15s}
.chip:hover{border-color:var(--line-strong);color:var(--text)}
.chip.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px}
.toolbar .left{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.select{height:36px;border-radius:10px;border:1px solid var(--line);background:var(--panel);padding:0 10px;font-size:.8rem;color:var(--text)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}
.seg button{border:0;background:transparent;padding:8px 12px;cursor:pointer;color:var(--muted);font-size:.78rem}
.seg button.on{background:var(--accent-soft);color:var(--accent)}
.progress{height:6px;border-radius:99px;background:var(--heat0);overflow:hidden}
.progress>span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent2),var(--accent))}

/* ---------- Portfolio list ---------- */
.project-list{display:grid;gap:8px}
.project-row{display:grid;grid-template-columns:22px 34px minmax(180px,1.6fr) minmax(140px,1.2fr) 124px 132px 90px 64px;gap:14px;align-items:center;padding:13px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel);backdrop-filter:blur(10px);cursor:pointer;transition:border-color .15s,transform .15s,background .15s}
.project-row:hover{border-color:var(--line-strong);background:var(--panel2);transform:translateX(2px)}
.project-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.project-row.dragging{opacity:.4}
.project-row.drop-before{border-color:var(--accent);box-shadow:0 -3px 0 var(--accent)}
.project-row.drop-after{border-color:var(--accent);box-shadow:0 3px 0 var(--accent)}
.drag{color:var(--muted);cursor:grab;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;touch-action:none;font-size:1.1rem;text-align:center}
.drag:active,.project-reordering .drag{cursor:grabbing}
.project-reordering{cursor:grabbing}
.drag[hidden]{display:block;visibility:hidden}
.priority-number{font-family:var(--mono);font-size:.8rem;color:var(--accent)}
.pname{min-width:0}
.pname strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pname small{color:var(--muted);font-size:.74rem}
.pphase{min-width:0;font-size:.8rem;color:var(--text2)}
.pphase span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pphase small{font-family:var(--mono);font-size:.68rem;color:var(--muted)}
.row-spark{width:90px;height:24px}
.list-head{display:grid;grid-template-columns:22px 34px minmax(180px,1.6fr) minmax(140px,1.2fr) 124px 132px 90px 64px;gap:14px;padding:0 16px 4px;font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hint{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:.8rem;margin-bottom:12px}
.hint i{color:var(--accent)}
/* cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.pcard{display:flex;flex-direction:column;gap:12px;cursor:pointer;transition:transform .2s,border-color .2s}
.pcard:hover{transform:translateY(-3px);border-color:var(--line-strong)}
.pcard .top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.pcard h3{font-size:1.08rem}
.pcard .vision{margin:0;color:var(--text2);font-size:.84rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pcard .meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pcard .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:12px;border-top:1px solid var(--line);margin-top:auto}
.pcard .stats div{display:grid;gap:2px}
.pcard .stats small{font-size:.66rem;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em}
.pcard .stats b{font-size:.95rem}

/* ---------- Kanban ---------- */
.kanban{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:14px;overflow-x:auto;padding-bottom:10px}
.kcol{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px;min-height:420px;display:flex;flex-direction:column;gap:10px;transition:border-color .2s,background .2s}
.kcol.over{border-color:var(--accent);background:var(--accent-soft)}
.kcol-head{display:flex;justify-content:space-between;align-items:center;padding:4px 4px 8px;border-bottom:1px solid var(--line)}
.kcol-head b{display:flex;align-items:center;gap:8px;font-size:.88rem}
.kcol-head b::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--stage)}
.kcol-head span{font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.kcard{background:var(--panel-solid);border:1px solid var(--line);border-radius:12px;padding:12px;cursor:grab;display:grid;gap:8px;transition:transform .15s,border-color .15s}
.kcard:hover{border-color:var(--line-strong);transform:translateY(-1px)}
.kcard.dragging{opacity:.4}
.kcard strong{font-size:.9rem}
.kcard small{color:var(--muted);font-size:.74rem}
.kcard .row{display:flex;justify-content:space-between;align-items:center;gap:6px}
.kcard .movers{display:none}
@media (hover:none),(max-width:900px){.kcard .movers{display:flex}}
.kcard .next{font-size:.76rem;color:var(--text2);border-left:2px solid var(--accent);padding-left:8px;line-height:1.35}

/* ---------- Tasks ---------- */
.task-group{margin-bottom:14px}
.task-group-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;cursor:pointer}
.task-group-head h3{font-size:.98rem;display:flex;gap:10px;align-items:center}
.task-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.task{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.task .checkbox{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--line-strong);background:transparent;cursor:pointer;display:grid;place-items:center;color:transparent;transition:all .15s}
.task .checkbox:hover{border-color:var(--good);color:var(--good-ink)}
.task .checkbox.done{background:var(--good);border-color:var(--good);color:#fff}
.task .txt{min-width:0}
.task .txt span{display:block;font-size:.88rem;line-height:1.4}
.task .txt small{font-family:var(--mono);font-size:.68rem;color:var(--muted)}
.task .tid{font-family:var(--mono);font-size:.7rem;color:var(--accent);margin-right:6px}
.task .actions{display:flex;gap:6px;opacity:.55;transition:opacity .15s}
.task:hover .actions{opacity:1}
.task-add{display:flex;gap:8px;margin-bottom:12px}
.task-add input{flex:1;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);padding:0 12px;outline:0}
.task-add input:focus{border-color:var(--accent)}
.task-add .primary-btn{height:40px}

/* ---------- Dashboard ---------- */
.hero{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center;margin-bottom:16px}
.hero h2{font-size:1.45rem}
.hero p{margin:6px 0 0;color:var(--text2);font-size:.9rem;line-height:1.5}
.hero .bars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}
.hero .bars div{display:grid;gap:6px}
.hero .bars small{font-size:.72rem;color:var(--muted);display:flex;justify-content:space-between}
.hero .bars small b{font-family:var(--mono);color:var(--text)}
.focus-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);cursor:pointer}
.focus-item:hover{border-color:var(--line-strong)}
.focus-item .rank{font-family:var(--mono);font-size:1.1rem;color:var(--accent);text-align:center}
.focus-item strong{display:block;font-size:.92rem}
.focus-item p{margin:3px 0 0;font-size:.8rem;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alerts{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.alert{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);cursor:pointer}
.alert:hover{border-color:var(--line-strong)}
.alert .ico{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-weight:700;font-family:var(--mono);font-size:.8rem}
.alert.critical .ico{background:rgba(208,59,59,.18);color:#ff7070}
.alert.serious .ico{background:rgba(236,131,90,.18);color:var(--serious)}
.alert.warning .ico{background:rgba(250,178,25,.16);color:var(--warning)}
.alert strong{font-size:.84rem;display:block}
.alert small{color:var(--muted);font-size:.76rem}
.pipe-bar{display:flex;gap:2px;height:14px;border-radius:99px;overflow:hidden;margin:4px 0 12px}
.pipe-bar span{background:var(--stage);min-width:4px}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.76rem;color:var(--text2)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend span::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--stage)}
.legend b{font-family:var(--mono);color:var(--text)}
.feed{list-style:none;margin:0;padding:0;display:grid}
.feed li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);align-items:start;cursor:pointer}
.feed li:last-child{border-bottom:0}
.feed .node{width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--accent);box-shadow:0 0 10px var(--accent)}
.feed strong{font-size:.84rem;display:block}
.feed span{font-size:.8rem;color:var(--text2);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.feed span.task-evidence{display:inline;font-size:.66rem;color:var(--good-ink)}
.feed strong .task-evidence{font-weight:500}
.feed time,.feed .sha{font-family:var(--mono);font-size:.68rem;color:var(--muted);white-space:nowrap}
.task-evidence{font-family:var(--mono);font-size:.66rem;color:var(--good-ink);border:1px solid var(--good);border-radius:6px;padding:1px 6px;margin-right:6px}
.milestones{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.milestones li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);cursor:pointer;font-size:.85rem}
.milestones .when{font-family:var(--mono);font-size:.72rem;color:var(--text2)}
.milestones .when.late{color:#ff7b7b}.milestones .when.soon{color:var(--warning)}
.empty{display:grid;place-items:center;gap:6px;text-align:center;padding:36px 20px;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--radius)}
.empty strong{color:var(--text)}
.empty.small{padding:18px}

/* ---------- Charts ---------- */
.chart{width:100%;display:block;overflow:visible}
.chart text{fill:var(--muted);font-family:var(--mono);font-size:10px}
.chart .grid-line{stroke:var(--chart-grid);stroke-width:1}
.chart .axis{stroke:var(--chart-axis);stroke-width:1}
.chart .bar{fill:var(--accent);transition:opacity .15s}
.chart .bar:hover,.chart .hit:hover+.bar{opacity:.75}
.chart .hit{fill:transparent;cursor:crosshair}
.chart .lbl{fill:var(--text2);font-family:var(--font);font-size:11px}
.chart .val{fill:var(--text);font-size:10.5px}
.chart .quad{fill:var(--muted);font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.chart .dot{stroke:var(--panel-solid);stroke-width:2}
.heat{display:grid;gap:3px}
.heat-row{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:center}
.heat-row>span{font-size:.76rem;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.heat-cells{display:grid;grid-template-columns:repeat(84,1fr);gap:2px}
.heat-cells i{display:block;aspect-ratio:1;border-radius:2px;background:var(--heat0);min-width:3px}
.heat-scale{display:flex;align-items:center;gap:4px;justify-content:flex-end;font-size:.7rem;color:var(--muted);margin-top:10px}
.heat-scale i{width:12px;height:12px;border-radius:2px}
.hbars{display:grid;gap:10px}
.hbar{display:grid;grid-template-columns:130px minmax(0,1fr) 42px;gap:10px;align-items:center;font-size:.8rem}
.hbar>span:first-child{color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hbar .track{height:12px;background:var(--heat0);border-radius:4px;overflow:hidden}
.hbar .fill{display:block;height:100%;border-radius:0 4px 4px 0;background:var(--stage,var(--accent))}
.hbar b{font-family:var(--mono);font-size:.78rem;text-align:right}
.table{width:100%;border-collapse:collapse;font-size:.82rem}
.table th{text-align:left;font-family:var(--mono);font-weight:500;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap}
.table th:hover{color:var(--accent)}
.table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr{cursor:pointer}
.table tbody tr:hover td{background:var(--panel2)}
.table .num{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums}
.table-wrap{overflow-x:auto}
.cov{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;font-size:.72rem}
.cov.y{background:rgba(12,163,12,.18);color:var(--good-ink)}
.cov.n{background:var(--heat0);color:var(--muted)}
.mini-bar{display:inline-block;width:60px;height:6px;border-radius:99px;background:var(--heat0);vertical-align:middle;margin-right:8px;overflow:hidden}
.mini-bar span{display:block;height:100%;background:var(--hc,var(--accent))}
.note{font-size:.76rem;color:var(--muted);margin:10px 0 0}

/* ---------- Project workspace ---------- */
.project-toolbar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.project-toolbar>div{display:flex;gap:8px;flex-wrap:wrap}
.project-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;margin-bottom:16px}
.project-hero h2{font-size:clamp(1.6rem,2.6vw,2.3rem)}
.project-hero p.vision{margin:10px 0 14px;color:var(--text2);line-height:1.55;max-width:820px}
.project-hero .meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.breakdown{display:grid;gap:9px}
.breakdown .hbar{grid-template-columns:120px minmax(0,1fr) 36px}
.source-list{display:grid;gap:10px;margin:0}
.source-list div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px;font-size:.82rem}
.source-list dt{color:var(--muted)}
.source-list dd{margin:0;overflow-wrap:anywhere;font-family:var(--mono);font-size:.76rem}
.source-list a{color:var(--accent)}
.notes-area{width:100%;min-height:150px;resize:vertical;border-radius:12px;border:1px solid var(--line);background:var(--panel2);padding:12px;outline:0;line-height:1.5}
.notes-area:focus{border-color:var(--accent)}
.plan-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.plan-stats div{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.plan-stats small{display:block;font-size:.64rem;color:var(--muted);font-family:var(--mono);text-transform:uppercase}
.plan-stats b{font-size:1.05rem}
.list-plain{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.commercial-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.obj{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.86rem;line-height:1.45}
.obj:last-child{border-bottom:0}
.obj span{font-family:var(--mono);font-size:.72rem;color:var(--accent);padding-top:2px}
.workflow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
.workflow-step{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);display:grid;gap:8px;font-size:.84rem;color:var(--text2);line-height:1.5}
.workflow-step b{color:var(--text);font-family:var(--mono);font-size:.8rem}
.shortcut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:10px;font-size:.84rem;color:var(--text2)}
.shortcut-grid div{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px}

/* ---------- Dialogs ---------- */
.modal{width:min(760px,calc(100vw - 32px));border:1px solid var(--line-strong);border-radius:22px;background:var(--panel-solid);color:var(--text);padding:26px;box-shadow:var(--shadow)}
.modal.small{width:min(520px,calc(100vw - 32px))}
dialog::backdrop{background:rgba(3,5,12,.7);backdrop-filter:blur(6px)}
.modal h2{margin-bottom:16px}
.modal .close{position:absolute;right:16px;top:14px;border:0;background:transparent;font-size:1.6rem;color:var(--muted);cursor:pointer}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.form-grid label{display:grid;gap:6px;font-size:.76rem;color:var(--text2)}
.form-grid .wide{grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea,#askInput{width:100%;border-radius:10px;border:1px solid var(--line);background:var(--panel2);padding:10px 12px;outline:0;font-size:.9rem;color:var(--text)}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,#askInput:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
#askInput{resize:vertical}
#askInput[hidden]{display:none}
.palette{width:min(640px,calc(100vw - 24px));margin-top:12vh;border:1px solid var(--line-strong);border-radius:18px;background:var(--panel-solid);color:var(--text);padding:0;box-shadow:var(--shadow)}
.palette-input{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.palette-input i{color:var(--accent)}
.palette-input input{flex:1;border:0;outline:0;background:transparent;font-size:1rem}
#paletteList{list-style:none;margin:0;padding:8px;max-height:52vh;overflow:auto}
#paletteList li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;cursor:pointer;font-size:.9rem}
#paletteList li small{color:var(--muted);font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}
#paletteList li.sel{background:var(--accent-soft);color:var(--accent)}
.palette-foot{display:flex;gap:14px;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--line);font-size:.72rem;color:var(--muted)}
.tooltip{position:fixed;z-index:100;pointer-events:none;background:var(--panel-solid);border:1px solid var(--line-strong);border-radius:10px;padding:8px 10px;font-size:.76rem;box-shadow:var(--shadow);opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s;max-width:260px}
.tooltip.show{opacity:1;transform:none}
.tooltip b{display:block;font-size:.95rem;font-family:var(--mono)}
.tooltip span{color:var(--text2)}
.toast{position:fixed;right:24px;bottom:24px;z-index:90;max-width:min(420px,calc(100vw - 32px));padding:13px 16px;border:1px solid var(--accent);background:var(--panel-solid);color:var(--text);border-radius:14px;box-shadow:var(--shadow),var(--accent-glow);transform:translateY(20px);opacity:0;pointer-events:none;transition:all .25s;font-size:.86rem}
.toast.show{transform:none;opacity:1}
.toast.error{border-color:var(--critical);box-shadow:var(--shadow)}

/* ---------- Responsive ---------- */
@media (max-width:1280px){
  .project-row,.list-head{grid-template-columns:22px 30px minmax(160px,1.5fr) minmax(120px,1fr) 124px 132px 64px}
  .project-row>.row-spark,.list-head>.h-spark{display:none}
  .g-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1080px){
  .g-dash,.g-2{grid-template-columns:1fr}
  .span-2{grid-column:auto}
  .workflow-grid{grid-template-columns:repeat(2,1fr)}
  .search{min-width:200px}
}
@media (max-width:900px){
  .sidebar{transform:translateX(-100%);box-shadow:var(--shadow)}
  body.nav-open .sidebar{transform:none}
  .scrim{position:fixed;inset:0;background:rgba(3,5,12,.6);z-index:25;display:none}
  body.nav-open .scrim{display:block}
  main{margin-left:0;padding:16px 16px 60px}
  .menu-btn{display:grid}
  .topbar{flex-wrap:wrap}
  .title-block{flex:1}
  .header-actions{width:100%;flex-wrap:wrap}
  .search{flex:1;min-width:0}
  .search kbd{display:none}
  #newProject span,#refresh span{display:none}
  #newProject,#refresh{padding:0 12px}
  .list-head{display:none}
  .project-row{grid-template-columns:22px 28px minmax(0,1fr) auto;row-gap:8px}
  .project-row .pphase,.project-row .tier{display:none}
  .project-row .health{grid-column:3}
  .g-3{grid-template-columns:1fr}
  .hero{grid-template-columns:1fr;justify-items:start}
  .hero .bars{grid-template-columns:repeat(2,1fr)}
  .project-hero{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .kanban{grid-template-columns:repeat(5,minmax(240px,82vw));scroll-snap-type:x mandatory}
  .kcol{scroll-snap-align:start}
  .heat-row{grid-template-columns:80px 1fr}
  .hbar{grid-template-columns:96px minmax(0,1fr) 38px}
  .plan-stats{grid-template-columns:repeat(2,1fr)}
  .workflow-grid{grid-template-columns:1fr}
  .source-list div{grid-template-columns:1fr;gap:2px}
  .task{grid-template-columns:26px minmax(0,1fr)}
  .task .actions{grid-column:2;opacity:1}
}
@media print{
  .sidebar,.topbar .header-actions,.bg-grid,.bg-aurora,.menu-btn,.toast{display:none!important}
  main{margin:0;padding:0}
  body{background:#fff;color:#000}
  .panel,.kpi{box-shadow:none;backdrop-filter:none;break-inside:avoid}
}

a.ghost-btn,a.primary-btn{text-decoration:none}
.kcard .row small{white-space:nowrap}
.kcol-head b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid>*,.stack>*,.kpis>*{min-width:0}
.heat-cells i{min-width:0}
@media (max-width:900px){.heat-cells{gap:1px}.heat-cells i{border-radius:1px}.kpi .spark{width:64px}}
.task .txt{grid-column:2;grid-row:1}.task>.checkbox,.task>.tid{grid-column:1;grid-row:1}.task .actions{grid-column:3;grid-row:1}
@media (max-width:900px){.task .actions{grid-column:2;grid-row:2}}
.task-group-head h3{flex-wrap:wrap}
@media (max-width:900px){.task-group-head .count{display:none}}

/* ---------- v2.1 · selector de tareas y orden manual ---------- */
.drag{display:inline-grid;place-items:center;width:22px;height:30px;border-radius:7px;color:var(--text2);font-size:1.15rem;line-height:1;transition:background .15s,color .15s}
.drag:hover{background:var(--accent-soft);color:var(--accent)}
.drag.locked{opacity:.35;cursor:pointer}
.drag.locked:hover{opacity:.9}
.drag-inline{color:var(--accent);font-size:1rem}
.hint .mini{margin-left:6px}
.card-title{display:flex;gap:8px;align-items:flex-start;min-width:0}
.pcard .drag{margin-top:-2px}
.pcard.dragging{opacity:.4}
.pcard.drop-before{border-color:var(--accent);box-shadow:-3px 0 0 var(--accent),var(--shadow)}
.pcard.drop-after{border-color:var(--accent);box-shadow:3px 0 0 var(--accent),var(--shadow)}
.sel-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:.68rem;padding:3px 9px;border-radius:99px;border:1px solid var(--line-strong);color:var(--text2);white-space:nowrap}
.sel-chip i{width:12px;height:12px}
.sel-chip.manual{border-color:var(--accent2);color:var(--accent2);background:rgba(139,123,255,.1)}
[data-theme="light"] .sel-chip.manual{color:#4a3aa7}
.group-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.pick-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.pick-bar .ghost-btn{height:36px;font-size:.8rem}
.tstatus{display:inline-block;margin-left:8px;font-style:normal;font-family:var(--mono);font-size:.64rem;padding:1px 7px;border-radius:6px;border:1px solid var(--line-strong);color:var(--text2);vertical-align:middle;white-space:nowrap}
.tstatus.inProgress{color:var(--warning);border-color:rgba(250,178,25,.5)}
.tstatus.blocked{color:#ff7b7b;border-color:rgba(208,59,59,.55)}
.tstatus.done{color:var(--good-ink);border-color:rgba(12,163,12,.5)}
[data-theme="light"] .tstatus.inProgress{color:#9a6700}[data-theme="light"] .tstatus.blocked{color:#b42323}
.task .checkbox.locked{cursor:not-allowed;font-size:.7rem;border-style:dashed}
.task.blocked{border-color:rgba(208,59,59,.35)}
.modal.wide{width:min(900px,calc(100vw - 32px));max-height:88vh;display:none;flex-direction:column}
.modal.wide[open]{display:flex}
.modal.wide h2{margin-bottom:6px}
.picker-help{font-size:.84rem;line-height:1.5;margin:0 0 14px}
.picker-tools{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px}
.picker-tools .search{flex:1;min-width:220px}
.picker-bulk{display:flex;gap:6px}
#pickerFilters{margin-bottom:12px}
#pickerFilters b{margin-left:4px;opacity:.8}
.picker-list{overflow:auto;flex:1;min-height:200px;display:grid;gap:14px;align-content:start;padding-right:4px}
.pick-section header{display:flex;gap:10px;align-items:center;padding:6px 2px;border-bottom:1px solid var(--line);margin-bottom:6px;position:sticky;top:0;background:var(--panel-solid);z-index:1}
.pick-section header b{flex:1;font-size:.88rem}
.pick-section header span{font-size:.72rem}
.pick-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;cursor:pointer;border:1px solid transparent;font-size:.86rem;line-height:1.4}
.pick-row:hover{background:var(--panel2)}
.pick-row.on{border-color:var(--accent);background:var(--accent-soft)}
.pick-row input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer}
.pick-row.done{opacity:.55;cursor:default}
.pick-row.done .pick-txt{text-decoration:line-through}
.pick-row .tstatus{margin-left:0}
.pick-row .tid{font-family:var(--mono);font-size:.72rem;color:var(--accent);margin-right:6px}
/* Prioridad en el mapa del plan */
#pickerPrio{margin:-4px 0 12px;align-items:center}
#pickerPrio[hidden],.picker-order[hidden]{display:none}
#pickerPrio b{margin-left:4px;opacity:.8}
.prio-label{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text2);margin-right:2px}
.prio-chip.p0.on{border-color:var(--critical);color:#ff7b7b;background:rgba(208,59,59,.14)}
.prio-chip.p1.on{border-color:var(--serious);color:var(--serious);background:rgba(236,131,90,.14)}
.prio-chip.p2.on{border-color:var(--warning);color:var(--warning);background:rgba(250,178,25,.13)}
.prio-chip.p3.on,.prio-chip.none.on{border-color:var(--line-strong);color:var(--text);background:var(--panel2)}
.picker-order{min-width:190px}
.pick-meta{display:flex;align-items:center;gap:6px;justify-content:flex-end}
.prio-pill{font-size:.64rem;font-family:var(--mono);padding:1px 7px;border-radius:6px;border:1px solid var(--line);color:var(--text2);white-space:nowrap}
.prio-pill.p0{color:#ff7b7b;border-color:rgba(208,59,59,.55)}
.prio-pill.p1{color:var(--serious);border-color:rgba(236,131,90,.5)}
.prio-pill.p2{color:var(--warning);border-color:rgba(250,178,25,.45)}
[data-theme="light"] .prio-pill.p0,[data-theme="light"] .prio-chip.p0.on{color:#b42323}
[data-theme="light"] .prio-pill.p2,[data-theme="light"] .prio-chip.p2.on{color:#9a6700}
.pick-sec{display:block;font-size:.7rem;color:var(--text2);margin-top:1px}
.prio-group header b{font-size:.92rem}
.prio-group.p0 header{box-shadow:inset 3px 0 0 var(--critical);padding-left:10px}
.prio-group.p1 header{box-shadow:inset 3px 0 0 var(--serious);padding-left:10px}
.prio-group.p2 header{box-shadow:inset 3px 0 0 var(--warning);padding-left:10px}
.prio-group.p3 header,.prio-group.none header{box-shadow:inset 3px 0 0 var(--line-strong);padding-left:10px}
@media (max-width:900px){.picker-order{flex:1;min-width:0}.pick-row{grid-template-columns:22px minmax(0,1fr)}.pick-meta{grid-column:2;justify-content:flex-start}}
.picker-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:.84rem}
.picker-foot b{color:var(--text)}
@media (max-width:900px){.picker-foot .form-actions{width:100%;flex-wrap:wrap}.picker-foot .form-actions button{flex:1}}
.task .txt span.tid{display:inline}
.task-table-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel2);scrollbar-width:thin}
.task-table-head,.task-grid .task{display:grid;grid-template-columns:26px minmax(245px,1.2fr) 112px minmax(370px,1.8fr) 80px;gap:12px;align-items:center;min-width:920px;padding:8px 12px}
.task-table-head{border-bottom:1px solid var(--line-strong);color:var(--muted);font-family:var(--mono);font-size:.67rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.task-grid{display:block}
.task-grid .task{min-height:44px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.task-grid .task:last-child{border-bottom:0}
.task-grid .task:hover{background:var(--accent-soft)}
.task-grid .task.blocked{background:rgba(208,59,59,.04)}
.task-grid .task .checkbox{grid-column:1;grid-row:1}
.task-grid .task-title{grid-column:2;grid-row:1;display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;font-size:.82rem}
.task-grid .task-title .tid{flex:none;margin-right:0}
.task-grid .task-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-grid .task-title .tstatus{flex:none;margin-left:0}
.task-grid .task-linked{flex:none;color:var(--good-ink);font-family:var(--mono);font-size:.67rem}
.task-grid .task-priority{grid-column:3;grid-row:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2);font-size:.76rem}
.task-grid .task-deliverable{grid-column:4;grid-row:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2);font-size:.76rem}
.task-grid .task .actions{grid-column:5;grid-row:1;justify-content:flex-end;opacity:1}
.mini{display:inline-flex;align-items:center;gap:5px}
.mini i{width:14px;height:14px}
@media (max-width:900px){.modal.wide{padding:18px;max-height:92vh}.modal.wide h2{font-size:1.15rem}.picker-help{display:none}.picker-list{min-height:120px}.picker-foot{margin-top:10px;padding-top:10px}.picker-foot .form-actions .primary-btn{flex-basis:100%}}
/* Menú lateral plegable (escritorio) */
.nav-collapse{margin-left:auto;width:30px;height:30px;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none}
.nav-collapse:hover{border-color:var(--line);color:var(--text);background:var(--panel)}
.nav-collapse svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
main{transition:margin-left .3s ease}
@media (min-width:901px){
  body.nav-collapsed .sidebar{transform:translateX(-100%)}
  body.nav-collapsed main{margin-left:0}
  body.nav-collapsed .menu-btn{display:grid}
}
@media (max-width:900px){.nav-collapse{display:none}}
