@import url('https://fonts.googleapis.com/css2?family=Titillium+Web:wght@300;400;600;700;900&family=JetBrains+Mono:wght@400;500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@300;400;500;600;700&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0b0d12;--sur:#11141c;--sur2:#181c27;--sur3:#1e2230;
  --bd:rgba(255,255,255,.06);--bd2:rgba(255,255,255,.11);--bd3:rgba(255,255,255,.18);
  --txt:#e4e8f0;--txt2:#8890a4;--txt3:#505668;
  --acc:#4f8ef7;--acc-d:rgba(79,142,247,.12);
  --grn:#4ade80;--grn-d:rgba(74,222,128,.1);
  --amb:#fbbf24;--amb-d:rgba(251,191,36,.1);
  --red:#f87171;--red-d:rgba(248,113,113,.1);
  --blu:#60a5fa;--blu-d:rgba(96,165,250,.1);
  --pur:#a78bfa;--tel:#2dd4bf;
  --mono:'DM Mono',monospace;--sans:'DM Sans',sans-serif;
  --r:8px;--rl:14px;--rxl:20px;
}
html{font-size:14px;scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--txt);min-height:100vh;line-height:1.55}
a{color:var(--acc);text-decoration:none}
button,input,select,textarea{font-family:var(--sans);font-size:inherit}

/* ── App ── */
.app{display:flex;min-height:100vh}

/* ── Sidebar ── */
.sidebar{width:216px;flex-shrink:0;background:var(--sur);border-right:1px solid var(--bd);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.sb-top{padding:1.2rem;border-bottom:1px solid var(--bd)}
.sb-logo{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;color:var(--acc);text-transform:uppercase;margin-bottom:.2rem}
.sb-title{font-size:.95rem;font-weight:600}
.sb-user{margin-top:.5rem;display:flex;align-items:center;gap:.4rem}
.sb-av{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;flex-shrink:0}
.sb-uname{font-size:.78rem;color:var(--txt2)}
.sb-prog{padding:.85rem 1.2rem;border-bottom:1px solid var(--bd)}
.sb-prog-lbl{font-size:.62rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.45rem}
.pb-wrap{background:var(--sur3);border-radius:99px;height:5px;margin-bottom:.3rem}
.pb-fill{border-radius:99px;height:5px;transition:width .5s ease}
.pb-fill.c0{background:var(--txt3)}.pb-fill.c25{background:var(--red)}.pb-fill.c50{background:var(--amb)}.pb-fill.c75{background:var(--acc)}.pb-fill.c100{background:var(--grn)}
.pb-nums{font-family:var(--mono);font-size:.7rem;color:var(--txt2)}
.pb-nums b{color:var(--txt)}
.sb-review{margin:.7rem 1.2rem;background:rgba(167,139,250,.08);border:1px solid rgba(167,139,250,.2);border-radius:var(--r);padding:.55rem .8rem}
.sb-rev-lbl{font-size:.6rem;color:var(--pur);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.1rem}
.sb-rev-days{font-family:var(--mono);font-size:1.05rem;font-weight:500;color:var(--pur)}
.sb-rev-date{font-size:.68rem;color:var(--txt3);margin-top:1px}
.sb-nav{padding:.55rem .7rem;flex:1}
.sb-sec{font-size:.6rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.1em;padding:.55rem .45rem .25rem}
.nb{display:flex;align-items:center;gap:.5rem;padding:.46rem .55rem;border-radius:var(--r);font-size:.82rem;color:var(--txt2);transition:background .12s,color .12s;margin-bottom:1px}
.nb:hover{background:var(--sur2);color:var(--txt)}
.nb.active{background:var(--acc-d);color:var(--acc)}
.ni{font-size:.9rem;flex-shrink:0}
.nl{flex:1}
.nbadge{font-family:var(--mono);font-size:.65rem;color:var(--txt3)}
.nbadge.g{color:var(--grn)}
.sb-foot{padding:.85rem 1.2rem;border-top:1px solid var(--bd);font-size:.72rem;color:var(--txt3)}
.sb-foot a{color:var(--txt3);transition:color .15s}
.sb-foot a:hover{color:var(--red)}

/* ── Main ── */
.main{flex:1;overflow-x:hidden}
.ph{padding:1.4rem 1.75rem .9rem;border-bottom:1px solid var(--bd)}
.pt{font-size:1.15rem;font-weight:600;margin-bottom:.2rem}
.pd{font-size:.8rem;color:var(--txt2)}
.pb{padding:1.4rem 1.75rem 4rem}

/* ── Section header ── */
.sec-hd{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.85rem;margin-top:1.6rem}
.sec-hd:first-child{margin-top:0}
.sec-hd h2{font-size:.9rem;font-weight:600}
.sec-sub{font-size:.72rem;color:var(--txt3)}

/* ── Metric cards ── */
.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px;margin-bottom:1.25rem}
.mc{background:var(--sur);border:1px solid var(--bd2);border-radius:var(--rl);padding:.9rem 1rem}
.mc-lbl{font-size:.65rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.3rem}
.mc-val{font-family:var(--mono);font-size:1.55rem;font-weight:500;line-height:1.1}
.mc-sub{font-size:.7rem;color:var(--txt3);margin-top:.2rem}
.mc-bar-w{background:var(--sur3);border-radius:99px;height:4px;margin-top:.5rem}
.mc-bar{height:4px;border-radius:99px;transition:width .5s}
.c-green{color:var(--grn)}.c-red{color:var(--red)}.c-amber{color:var(--amb)}.c-accent{color:var(--acc)}.c-purple{color:var(--pur)}.c-teal{color:var(--tel)}
.delta{font-family:var(--mono);font-size:.7rem;padding:1px 5px;border-radius:3px}
.delta.up{color:var(--grn);background:var(--grn-d)}
.delta.dn{color:var(--red);background:var(--red-d)}
.delta.neutral{color:var(--txt3)}

/* ── Sheet progress cards ── */
.sp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px;margin-bottom:1.25rem}
.sp-card{background:var(--sur);border:1px solid var(--bd2);border-radius:var(--rl);padding:.85rem 1rem;transition:border-color .15s;display:block;color:inherit}
.sp-card:hover{border-color:var(--bd3)}
.sp-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.55rem}
.sp-title{font-size:.82rem;font-weight:500}
.sp-pct{font-family:var(--mono);font-size:.82rem;font-weight:500}
.sp-bf{border-radius:99px;height:5px;transition:width .5s}
.sp-sub{font-size:.68rem;color:var(--txt3);margin-top:.35rem}

/* ── Activity feed ── */
.activity-list{display:flex;flex-direction:column;gap:4px}
.act-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;background:var(--sur);border:1px solid var(--bd);border-radius:var(--r);font-size:.8rem}
.act-ic{font-size:.85rem;flex-shrink:0}
.act-sheet{font-weight:500;flex-shrink:0}
.act-tid{color:var(--txt3);font-family:var(--mono);font-size:.72rem}
.act-by{font-size:.75rem;font-weight:500;margin-left:auto}
.act-at{font-size:.7rem;color:var(--txt3);font-family:var(--mono);flex-shrink:0}
.empty-tip{font-size:.82rem;color:var(--txt3);padding:1.5rem 0}

/* ── Charts ── */
.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:1.25rem}
.chart-box{background:var(--sur);border:1px solid var(--bd2);border-radius:var(--rl);padding:.9rem 1rem}
.chart-title{font-size:.75rem;color:var(--txt2);margin-bottom:.65rem;font-weight:500}

/* ── Issues list ── */
.issues-list{display:flex;flex-direction:column;gap:8px;margin-bottom:1.25rem}
.issue-row{display:flex;gap:.9rem;align-items:flex-start;background:var(--sur);border:1px solid var(--bd2);border-radius:var(--rl);padding:.85rem 1rem}
.issue-left{display:flex;flex-direction:column;align-items:center;gap:.35rem;flex-shrink:0;width:56px}
.ib{display:inline-block;font-family:var(--mono);font-size:.62rem;font-weight:500;padding:2px 7px;border-radius:99px;white-space:nowrap;text-align:center}
.b-critico{background:var(--red-d);color:var(--red);border:1px solid rgba(248,113,113,.3)}
.b-alto{background:var(--amb-d);color:var(--amb);border:1px solid rgba(251,191,36,.3)}
.b-info{background:var(--blu-d);color:var(--blu);border:1px solid rgba(96,165,250,.3)}
.issue-num{font-family:var(--mono);font-size:1.4rem;font-weight:500}
.issue-title{font-size:.86rem;font-weight:600;margin-bottom:.25rem}
.issue-desc{font-size:.78rem;color:var(--txt2);line-height:1.55}

/* ── KW columns ── */
.kw-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kw-card{background:var(--sur);border:1px solid var(--bd2);border-radius:var(--rl);padding:.9rem 1rem}
.kw-card h3{font-size:.7rem;color:var(--txt2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.65rem;font-weight:600}
.kw-row{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--bd)}
.kw-row:last-child{border-bottom:none}
.kw-name{flex:1;font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kw-bw{width:70px;height:4px;background:var(--sur3);border-radius:99px;flex-shrink:0}
.kw-bf{height:4px;background:var(--acc);border-radius:99px}
.kw-imp{font-family:var(--mono);font-size:.68rem;color:var(--txt2);width:36px;text-align:right;flex-shrink:0}
.kw-pos{font-family:var(--mono);font-size:.7rem;font-weight:500;width:30px;text-align:right;flex-shrink:0}

/* ── Sheet tabs ── */
.sheet-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:1rem}
.stab{display:flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:99px;font-size:.8rem;color:var(--txt2);background:var(--sur);border:1px solid var(--bd2);transition:all .15s}
.stab:hover{background:var(--sur2);color:var(--txt)}
.stab.active{background:var(--acc-d);color:var(--acc);border-color:rgba(79,142,247,.3)}
.stab-badge{font-family:var(--mono);font-size:.65rem;color:var(--txt3);background:var(--sur3);padding:1px 5px;border-radius:99px}
.stab-badge.g{color:var(--grn)}
.sheet-prog-bar{background:var(--sur);border:1px solid var(--bd2);border-radius:var(--rl);padding:.75rem 1rem;margin-bottom:1rem}
.spb-top{display:flex;justify-content:space-between;font-size:.8rem;font-weight:500;margin-bottom:.5rem}

/* ── Task table ── */
.tbl-wrap{overflow-x:auto}
table.tasks{width:100%;border-collapse:collapse}
table.tasks th{font-family:var(--mono);font-size:.62rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.1em;padding:.45rem .65rem;text-align:left;border-bottom:1px solid var(--bd);font-weight:400}
table.tasks td{padding:.6rem .65rem;border-bottom:1px solid var(--bd);vertical-align:top;font-size:.8rem}
table.tasks tr.t-done td{opacity:.38}
table.tasks tr.t-done .status-pill,.status-pill{opacity:1!important}
table.tasks tr:hover td{background:rgba(255,255,255,.014)}
.det-row td{padding:0 .65rem .55rem;border-bottom:1px solid var(--bd)}

/* ── Inline detail ── */
.idet{display:none}
.idet.open{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;background:var(--sur2);border:1px solid var(--bd2);border-radius:var(--r);padding:.8rem .9rem}
.fg{display:flex;flex-direction:column;gap:3px}
.fg label{font-size:.6rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em}
.fg select,.fg input[type=date],.fg textarea{background:var(--bg);border:1px solid var(--bd2);border-radius:var(--r);color:var(--txt);padding:.35rem .55rem;font-size:.78rem;outline:none;transition:border-color .15s}
.fg select:focus,.fg input:focus,.fg textarea:focus{border-color:var(--acc)}
.fg textarea{min-height:48px;resize:vertical}
.fw textarea{width:240px}
.bsave{padding:.36rem .85rem;background:var(--acc);border:none;border-radius:var(--r);color:#fff;font-weight:600;font-size:.78rem;cursor:pointer;transition:opacity .15s;align-self:flex-end}
.bsave:hover{opacity:.82}
.smsg{font-size:.72rem;color:var(--grn);align-self:center;opacity:0;transition:opacity .2s}
.smsg.show{opacity:1}
.sat{font-size:.65rem;color:var(--txt3);align-self:center}

/* ── Badges ── */
.status-pill{display:inline-flex;align-items:center;gap:.25rem;font-size:.74rem;padding:3px 9px;border-radius:99px;white-space:nowrap;cursor:pointer;user-select:none;border:1px solid var(--bd2);background:var(--sur2);color:var(--txt2);transition:border-color .15s}
.status-pill:hover{border-color:var(--acc)}
.s-en_proceso{background:var(--amb-d);color:var(--amb);border-color:rgba(251,191,36,.3)}
.s-en_revision{background:var(--blu-d);color:var(--blu);border-color:rgba(96,165,250,.3)}
.s-listo{background:var(--grn-d);color:var(--grn);border-color:rgba(74,222,128,.3)}
.s-bloqueado{background:var(--red-d);color:var(--red);border-color:rgba(248,113,113,.3)}
.prio{display:inline-block;font-family:var(--mono);font-size:.65rem;padding:2px 7px;border-radius:99px}
.prio-alta{background:var(--red-d);color:var(--red);border:1px solid rgba(248,113,113,.25)}
.prio-media{background:var(--amb-d);color:var(--amb);border:1px solid rgba(251,191,36,.25)}
.prio-baja{background:var(--grn-d);color:var(--grn);border:1px solid rgba(74,222,128,.2)}
.accion-tag{font-family:var(--mono);font-size:.7rem;color:var(--txt2);background:var(--sur2);border:1px solid var(--bd2);padding:2px 6px;border-radius:4px;white-space:nowrap}
.tag-mono{font-family:var(--mono);font-size:.72rem;color:var(--txt3)}
.url-mono{font-family:var(--mono);font-size:.7rem;color:var(--txt2);word-break:break-all;max-width:280px}
.dest-mono{font-family:var(--mono);font-size:.68rem;color:var(--acc);word-break:break-all;max-width:260px}
.code-mono{font-family:var(--mono);font-size:.74rem;color:var(--tel)}
.ruta-txt{font-size:.76rem;color:var(--acc)}
.desc-txt{font-size:.78rem;color:var(--txt2);max-width:300px}

/* ── Metrics form ── */
.metrics-form{background:var(--sur);border:1px solid var(--bd2);border-radius:var(--rl);padding:1.1rem 1.25rem;margin-bottom:.5rem}
.mf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.75rem;margin-bottom:1rem}
.mf-field{display:flex;flex-direction:column;gap:4px}
.mf-field label{font-size:.63rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em}
.mf-field input{background:var(--bg);border:1px solid var(--bd2);border-radius:var(--r);color:var(--txt);padding:.38rem .6rem;outline:none;transition:border-color .15s}
.mf-field input:focus{border-color:var(--acc)}
.mf-tip{font-size:.65rem;color:var(--txt3)}

/* ── Login ── */
.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse at 55% 45%,#15233a 0%,var(--bg) 65%)}
.login-box{background:var(--sur);border:1px solid var(--bd2);border-radius:var(--rxl);padding:2.4rem 2rem;width:330px}
.login-logo{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;color:var(--acc);text-transform:uppercase;margin-bottom:.25rem}
.login-box h1{font-size:1.3rem;font-weight:600;margin-bottom:.2rem}
.login-box p{font-size:.8rem;color:var(--txt2);margin-bottom:1.4rem}
.lf{margin-bottom:.7rem}
.lf label{display:block;font-size:.65rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.3rem}
.lf input,.lf select{width:100%;padding:.55rem .85rem;background:var(--sur2);border:1px solid var(--bd2);border-radius:var(--r);color:var(--txt);outline:none;transition:border-color .15s}
.lf input:focus,.lf select:focus{border-color:var(--acc)}
.login-box button{width:100%;padding:.58rem;background:var(--acc);border:none;border-radius:var(--r);color:#fff;font-weight:600;cursor:pointer;transition:opacity .15s;margin-top:.2rem}
.login-box button:hover{opacity:.85}
.lerr{color:var(--red);font-size:.75rem;margin-top:.45rem;text-align:center}

/* ── Responsive ── */
@media(max-width:820px){
  .sidebar{width:52px}
  .sb-logo,.sb-title,.sb-uname,.sb-prog,.sb-review,.sb-sec,.nl,.nbadge,.sb-foot{display:none}
  .nb{justify-content:center;padding:.5rem}
  .ni{font-size:1rem}
  .pb{padding:1rem 1rem 4rem}
  .charts-row,.kw-2col{grid-template-columns:1fr}
}

/* ──────────────────────────────────────────────────────────────
   TIBOX SEO PANEL — Tema claro 19 mayo 2026
   Fondo blanco / texto oscuro solicitado por Wladimick
   ────────────────────────────────────────────────────────────── */
:root{
  --bg:#ffffff;
  --sur:#ffffff;
  --sur2:#f8fafc;
  --sur3:#eef2f7;
  --bd:rgba(15,23,42,.08);
  --bd2:rgba(15,23,42,.12);
  --bd3:rgba(15,23,42,.22);
  --txt:#0f172a;
  --txt2:#475569;
  --txt3:#94a3b8;
  --acc:#2563eb;
  --acc-d:rgba(37,99,235,.10);
  --grn:#16a34a;
  --grn-d:rgba(22,163,74,.10);
  --amb:#d97706;
  --amb-d:rgba(217,119,6,.12);
  --red:#dc2626;
  --red-d:rgba(220,38,38,.10);
  --blu:#2563eb;
  --blu-d:rgba(37,99,235,.10);
  --pur:#7c3aed;
  --tel:#0891b2;
}
html,body{background:#ffffff;color:var(--txt)}
.app{background:#ffffff}
.sidebar{background:#ffffff;border-right:1px solid var(--bd2);box-shadow:8px 0 30px rgba(15,23,42,.03)}
.sb-top,.sb-foot{border-color:var(--bd)}
.sb-logo{color:#2563eb}.sb-title,.sb-uname{color:var(--txt)}
.sb-sec,.sb-prog-lbl,.sb-rev-lbl,.mc-lbl,.chart-title{color:var(--txt3)}
.nb{color:var(--txt2)}
.nb:hover{background:#f1f5f9;color:var(--txt)}
.nb.active{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.nbadge,.stab-badge{background:#eef2f7;color:#64748b}
.sb-review{background:#f8fafc;border-color:var(--bd2)}
.pb-wrap,.mc-bar-w,.kw-bw{background:#e5e7eb}
.main{background:#ffffff}.ph{background:#ffffff;border-bottom:1px solid var(--bd)}
.pt{color:var(--txt)}.pd{color:var(--txt2)}.pb{background:#ffffff}
.mc,.sp-card,.chart-box,.issue-row,.kw-card,.sheet-prog-bar,.metrics-form,.act-row{background:#ffffff;border-color:var(--bd2);box-shadow:0 10px 24px rgba(15,23,42,.035)}
.mc-sub,.sp-sub,.act-tid,.act-at,.issue-desc,.kw-imp,.url-mono,.dest-mono,.desc-txt,.tag-mono{color:var(--txt2)}
.sp-card:hover,.mc:hover{border-color:#cbd5e1}
.sheet-tabs .stab,.stab{background:#ffffff;border-color:var(--bd2);color:var(--txt2)}
.stab.active{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.tbl-wrap{background:#ffffff;border-radius:14px}
table.tasks th{color:#64748b;border-color:var(--bd);background:#f8fafc}
table.tasks td{border-color:var(--bd);color:var(--txt)}
table.tasks tr:hover td{background:#f8fafc}
table.tasks tr.t-done td{opacity:.55}
.det-row td{background:#ffffff}.idet.open{background:#f8fafc;border-color:var(--bd2)}
.fg select,.fg input[type=date],.fg textarea,.mf-field input{background:#ffffff;color:var(--txt);border-color:#dbe3ed}
.status-pill{background:#f8fafc;color:var(--txt2);border-color:#dbe3ed}
.accion-tag{background:#eef2f7;color:#334155;border-color:#dbe3ed}
.code-mono{color:#0e7490}.ruta-txt{color:#1d4ed8}
.prio-alta{background:#fef2f2;color:#dc2626;border-color:#fecaca}
.prio-media{background:#fffbeb;color:#d97706;border-color:#fde68a}
.prio-baja{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}
.login-page{background:radial-gradient(ellipse at 50% 30%,#dbeafe 0%,#ffffff 55%,#f8fafc 100%)}
.login-box{background:#ffffff;border-color:#e2e8f0;box-shadow:0 24px 80px rgba(15,23,42,.12)}
.login-box h1{color:var(--txt)}.login-box p{color:var(--txt2)}
.lf input,.lf select{background:#ffffff;border-color:#dbe3ed;color:var(--txt)}
.login-box button,.bsave{background:#111827;color:#fff}
.empty-tip{color:var(--txt2)}
a{color:#2563eb}


/* ============================================================
   TIBOX SEO PANEL · Refresh UI 2026
   Aplica branding Tibox, login con logo y dashboard dark SaaS
   ============================================================ */
:root{
  --azul-tibox-dark:#0026bb;
  --azul-light-tibox:#00D1FF;
  --naranjo-tibox:#FF4222;
  --naranjo-light-tibox:#EA7E18;
  --degradado-naranjo:linear-gradient(0deg,#FF4222 0%,#EA7E18 100%);
  --font-sans:'Titillium Web','DM Sans',system-ui,-apple-system,sans-serif;
  --font-mono:'JetBrains Mono','DM Mono',ui-monospace,monospace;
  --bg:#060812;
  --sur:#0F1320;
  --sur2:#161A28;
  --sur3:#1B2030;
  --bd:rgba(255,255,255,.06);
  --bd2:rgba(255,255,255,.11);
  --bd3:rgba(255,255,255,.18);
  --txt:#E6E9F2;
  --txt2:#9099AE;
  --txt3:#6A7184;
  --acc:#00D1FF;
  --acc-d:rgba(0,209,255,.12);
  --grn:#1FA971;
  --grn-d:rgba(31,169,113,.12);
  --amb:#FFB200;
  --amb-d:rgba(255,178,0,.14);
  --red:#FF4222;
  --red-d:rgba(255,66,34,.12);
  --blu:#60a5fa;
  --blu-d:rgba(96,165,250,.12);
  --pur:#a78bfa;
  --tel:#2dd4bf;
  --r:8px;
  --rl:14px;
  --rxl:20px;
}
html,body{background:#060812!important;color:var(--txt)!important;font-family:var(--font-sans)!important}
body{min-height:100vh;background:
  radial-gradient(ellipse 55% 45% at 50% 0%,rgba(0,209,255,.10),transparent 65%),
  radial-gradient(ellipse 55% 45% at 90% 20%,rgba(255,66,34,.08),transparent 60%),
  #060812!important;}
a{color:var(--acc)}
button,input,select,textarea{font-family:var(--font-sans)!important}

/* Login nuevo */
.auth{min-height:100vh;display:grid;place-items:center;padding:2rem;position:relative;overflow:hidden;background:#060812}
.auth__bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.auth__bg--monitor{background:
  radial-gradient(ellipse 60% 50% at 50% 45%,rgba(0,38,187,.28) 0%,transparent 60%),
  radial-gradient(ellipse 80% 40% at 50% 100%,rgba(255,66,34,.12) 0%,transparent 60%),
  linear-gradient(180deg,#060812 0%,#0B0F1E 100%)}
.auth__bg--monitor:before{content:"";position:absolute;inset:0;background-image:
  linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse at center,#000 40%,transparent 80%)}
.auth__card{position:relative;z-index:1;width:100%;max-width:420px;background:#0F1320;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:2.5rem 2rem;box-shadow:0 20px 70px rgba(0,0,0,.55)}
.auth__brand{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:2rem}
.auth__brand-mark{width:163px;height:44px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:900;font-size:0;box-shadow:none;background-image:url(https://tiboxlab.cl/logo-tibox-ok.png);background-position:center;background-size:contain;background-repeat:no-repeat}
.auth__eyebrow{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--azul-light-tibox)}
.auth__title{font-size:1.75rem;font-weight:700;letter-spacing:-.01em;color:var(--txt);margin:.2rem 0 0}
.auth__subtitle{color:var(--txt2);font-size:.9rem;margin-top:.25rem}
.auth__footer{text-align:center;margin-top:1.5rem;font-size:.78rem;color:var(--txt3)}
.auth__footer strong{color:var(--txt2);font-weight:600}
.field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}
.field__label{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--txt2)}
.input,.select,.textarea{width:100%;height:44px;padding:0 1rem;background:#161A28;border:1px solid #2A3045;border-radius:10px;font-size:.9rem;color:var(--txt);transition:all .14s;outline:0}
.input:focus,.select:focus,.textarea:focus{border-color:var(--azul-light-tibox);box-shadow:0 0 0 4px rgba(0,209,255,.18)}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239099AE' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:0 1.25rem;height:40px;border-radius:10px;font-weight:700;font-size:.9rem;white-space:nowrap;transition:all .14s;border:1px solid transparent;text-decoration:none;cursor:pointer}
.btn--lg{height:48px;padding:0 1.5rem;font-size:1rem}.btn--block{width:100%}.btn--brand{background:var(--degradado-naranjo);color:#fff;box-shadow:0 8px 22px rgba(255,66,34,.25)}.btn--brand:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(255,66,34,.35)}
.lerr{color:var(--red);font-size:.78rem;margin-top:.8rem;text-align:center}

/* App interior */
.app{display:flex;min-height:100vh;background:#060812!important;color:var(--txt)}
.sidebar{width:248px;flex-shrink:0;background:#0F1320!important;border-right:1px solid rgba(255,255,255,.06)!important;box-shadow:none!important;position:sticky;top:0;height:100vh;overflow-y:auto}
.sb-top{padding:1.15rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.06)!important;background:linear-gradient(180deg,rgba(255,255,255,.015),transparent)}
.sb-logo{width:150px;height:40px;font-size:0!important;letter-spacing:0!important;margin-bottom:.65rem;background-image:url(https://tiboxlab.cl/logo-tibox-ok.png);background-position:left center;background-size:contain;background-repeat:no-repeat;color:transparent!important}
.sb-title{font-size:1rem;font-weight:700;color:var(--txt)!important;letter-spacing:-.01em}
.sb-user{margin-top:.7rem}.sb-uname{color:var(--txt2)!important}.sb-av{border:1px solid rgba(255,255,255,.12)}
.sb-prog,.sb-foot{border-color:rgba(255,255,255,.06)!important}.sb-prog{padding:.95rem 1.25rem}.sb-prog-lbl,.sb-sec,.sb-rev-lbl{font-family:var(--font-mono);font-size:.62rem;color:var(--txt3)!important;letter-spacing:.12em;text-transform:uppercase}.pb-wrap{background:#1B2030!important}.pb-fill{background:linear-gradient(90deg,var(--azul-tibox-dark),var(--azul-light-tibox))!important}.pb-nums{font-family:var(--font-mono);color:var(--txt2)!important}.pb-nums b{color:var(--txt)!important}
.sb-review{margin:.8rem 1.25rem;background:rgba(255,66,34,.08)!important;border:1px solid rgba(255,66,34,.20)!important;border-radius:14px!important}.sb-rev-lbl,.sb-rev-days{color:#ff8c76!important}.sb-rev-date{color:var(--txt3)!important}
.sb-nav{padding:.65rem .75rem}.sb-sec{padding:.7rem .45rem .3rem}.nb{display:flex;align-items:center;gap:.65rem;padding:.55rem .65rem;border-radius:10px;font-size:.9rem;color:var(--txt2)!important;margin-bottom:2px;border:1px solid transparent}.nb:hover{background:#161A28!important;color:var(--txt)!important;opacity:1}.nb.active{background:rgba(0,209,255,.10)!important;color:var(--azul-light-tibox)!important;border-color:rgba(0,209,255,.20)}.nbadge{background:#1B2030!important;color:var(--txt3)!important}.nbadge.g{color:var(--grn)!important}.sb-foot a{color:var(--txt3)!important}.sb-foot a:hover{color:var(--red)!important;opacity:1}
.main{flex:1;background:#060812!important;overflow-x:hidden}.ph{padding:1.45rem 1.75rem 1rem!important;border-bottom:1px solid rgba(255,255,255,.06)!important;background:rgba(15,19,32,.82)!important;backdrop-filter:blur(12px);position:sticky;top:0;z-index:5}.pt{font-size:1.25rem!important;font-weight:700!important;color:var(--txt)!important}.pd{font-size:.86rem!important;color:var(--txt2)!important}.pb{padding:1.6rem 1.75rem 4rem!important;background:transparent!important}.sec-hd{display:flex;align-items:baseline;gap:.65rem;margin:1.7rem 0 .9rem}.sec-hd:first-child{margin-top:0}.sec-hd h2{font-size:.98rem!important;font-weight:700!important;color:var(--txt)!important}.sec-sub{font-size:.78rem;color:var(--txt3)!important}

/* Cards */
.mc,.sp-card,.chart-box,.issue-row,.kw-card,.sheet-prog-bar,.metrics-form{background:#0F1320!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:16px!important;box-shadow:0 8px 30px rgba(0,0,0,.18)}
.mc{padding:1rem 1.1rem!important}.mc-lbl,.chart-title,.mf-field label{font-family:var(--font-mono);font-size:.66rem!important;color:var(--txt3)!important;text-transform:uppercase;letter-spacing:.08em}.mc-val{font-family:var(--font-mono);font-size:1.65rem!important;font-weight:600}.mc-sub{color:var(--txt3)!important}.mc-bar-w{background:#1B2030!important}.sp-card{color:inherit!important}.sp-card:hover,.kw-card:hover,.mc:hover{border-color:rgba(0,209,255,.22)!important}.sp-title{font-weight:700;color:var(--txt)!important}.sp-pct{font-family:var(--font-mono);color:var(--azul-light-tibox)!important}.sp-sub{color:var(--txt3)!important}
.activity-list{gap:6px}.act-row{background:#0F1320!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:10px!important}.act-sheet{color:var(--txt)!important}.act-tid,.act-at{color:var(--txt3)!important}.empty-tip{color:var(--txt3)!important}
.kw-row{border-color:rgba(255,255,255,.06)!important}.kw-name{color:var(--txt)!important}.kw-bw{background:#1B2030!important}.kw-bf{background:linear-gradient(90deg,var(--azul-tibox-dark),var(--azul-light-tibox))!important}.kw-imp,.kw-pos{color:var(--txt2)!important}

/* Tabs, tablas y formularios */
.stab{background:#0F1320!important;border:1px solid rgba(255,255,255,.10)!important;color:var(--txt2)!important}.stab:hover{background:#161A28!important;color:var(--txt)!important}.stab.active{background:rgba(0,209,255,.10)!important;color:var(--azul-light-tibox)!important;border-color:rgba(0,209,255,.25)!important}.stab-badge{background:#1B2030!important;color:var(--txt3)!important}.stab-badge.g{color:var(--grn)!important}
.tbl-wrap{background:#0F1320;border:1px solid rgba(255,255,255,.08);border-radius:16px;overflow:auto}table.tasks{border-collapse:collapse!important}table.tasks th{background:#161A28!important;color:var(--txt3)!important;border-bottom:1px solid rgba(255,255,255,.07)!important;padding:.65rem .75rem!important}table.tasks td{border-bottom:1px solid rgba(255,255,255,.06)!important;color:var(--txt)!important;padding:.72rem .75rem!important}table.tasks tr:hover td{background:rgba(255,255,255,.025)!important}.det-row td{background:#0b0f1b!important}.idet.open{background:#161A28!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:12px!important}.fg label{color:var(--txt3)!important}.fg select,.fg input[type=date],.fg textarea,.mf-field input{background:#060812!important;border:1px solid rgba(255,255,255,.12)!important;color:var(--txt)!important}.fg select:focus,.fg input:focus,.fg textarea:focus,.mf-field input:focus{border-color:var(--azul-light-tibox)!important;box-shadow:0 0 0 4px rgba(0,209,255,.12)}.bsave{background:var(--degradado-naranjo)!important;border-radius:10px!important;color:#fff!important;font-weight:700!important}.smsg{color:var(--grn)!important}.sat{color:var(--txt3)!important}
.status-pill{background:#161A28!important;border:1px solid rgba(255,255,255,.11)!important;color:var(--txt2)!important}.s-en_proceso{background:var(--amb-d)!important;color:var(--amb)!important;border-color:rgba(255,178,0,.30)!important}.s-en_revision{background:var(--blu-d)!important;color:var(--blu)!important;border-color:rgba(96,165,250,.30)!important}.s-listo{background:var(--grn-d)!important;color:var(--grn)!important;border-color:rgba(31,169,113,.28)!important}.s-bloqueado{background:var(--red-d)!important;color:var(--red)!important;border-color:rgba(255,66,34,.28)!important}.prio-alta{background:var(--red-d)!important;color:var(--red)!important}.prio-media{background:var(--amb-d)!important;color:var(--amb)!important}.prio-baja{background:var(--grn-d)!important;color:var(--grn)!important}.tag-mono,.url-mono,.dest-mono,.desc-txt{color:var(--txt2)!important}.code-mono,.ruta-txt{color:var(--azul-light-tibox)!important}
.c-green{color:var(--grn)!important}.c-red{color:var(--red)!important}.c-amber{color:var(--amb)!important}.c-accent{color:var(--azul-light-tibox)!important}.c-purple{color:var(--pur)!important}.c-teal{color:var(--tel)!important}

/* Compatibilidad con login anterior si aparece cacheado */
.login-page{display:grid!important;place-items:center!important;min-height:100vh!important;background:radial-gradient(ellipse at 55% 45%,#15233a 0%,#060812 65%)!important}.login-box{background:#0F1320!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:20px!important;box-shadow:0 20px 70px rgba(0,0,0,.55)!important}.login-logo{width:163px;height:44px;font-size:0!important;background-image:url(https://tiboxlab.cl/logo-tibox-ok.png);background-position:center;background-size:contain;background-repeat:no-repeat;color:transparent!important;margin-bottom:1rem!important}.login-box h1{color:var(--txt)!important}.login-box p{color:var(--txt2)!important}.lf label{color:var(--txt3)!important}.lf input,.lf select{background:#161A28!important;border:1px solid #2A3045!important;color:var(--txt)!important}.login-box button{background:var(--degradado-naranjo)!important;border-radius:10px!important;color:#fff!important}
@media(max-width:820px){.sidebar{width:60px}.sb-logo{width:32px;background-size:cover}.ph{position:static}.pb{padding:1rem 1rem 4rem!important}.charts-row,.kw-2col{grid-template-columns:1fr!important}}
