/* ===========================================================
   Eskena Workspace — app propia (sin WordPress)
   Diseño mobile-first: barra lateral en escritorio,
   menú inferior + cajón deslizante en celular.
   =========================================================== */

:root{
  --bg:#0b0c0f; --bg-soft:#111318; --card:#181b21; --card-2:#1f232b;
  --border:#262b34; --border-strong:#333947;
  --text:#f4f5f7; --text-dim:#9aa1ad; --text-faint:#6b7280;
  --orange:#e8641c; --orange-soft:rgba(232,100,33,.15);
  --green:#2ecc71; --red:#e74c3c; --blue:#3498db; --purple:#9b59b6; --yellow:#f1c40f;
  --radius:14px; --radius-sm:8px;
  --font-ui:'Poppins',system-ui,sans-serif;
  --font-display:'Righteous','Poppins',sans-serif;
  --sidebar-w:250px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}
body[data-theme="eskena-light"]{
  --bg:#f5f5f4; --bg-soft:#ffffff; --card:#ffffff; --card-2:#f0f0ef;
  --border:#e3e2df; --border-strong:#cfceca;
  --text:#17181a; --text-dim:#5b5f66; --text-faint:#8a8e94;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--text); font-family:var(--font-ui);
  height:100vh; overflow:hidden; -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}

/* ---------- Loader ---------- */
#loader{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:9999;}
#loader.hidden{display:none;}
.loader-mark{font-family:var(--font-display);font-size:1.5rem;color:var(--orange);animation:pulse 1.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:.4;}50%{opacity:1;}}

/* ---------- Vistas de autenticación ---------- */
.auth-view{
  display:none; min-height:100vh; align-items:center; justify-content:center;
  padding:24px; overflow-y:auto;
}
.auth-view.active{display:flex;}
.auth-card{
  width:100%; max-width:380px; background:var(--card); border:1px solid var(--border);
  border-radius:var(--radius); padding:32px 28px;
}
.auth-logo{font-family:var(--font-display);font-size:1.6rem;color:var(--orange);text-align:center;margin-bottom:6px;}
.auth-sub{text-align:center;color:var(--text-dim);font-size:.85rem;margin-bottom:24px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:.8rem;color:var(--text-dim);margin-bottom:6px;}
.field input,.field select,.field textarea{
  width:100%;padding:11px 13px;background:var(--bg-soft);border:1px solid var(--border);
  border-radius:var(--radius-sm);color:var(--text);font-size:.92rem;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--orange);}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 20px;border-radius:999px;border:1px solid transparent;font-size:.9rem;font-weight:600;
  transition:.2s;
}
.btn-primary{background:var(--orange);color:#fff;}
.btn-primary:hover{filter:brightness(1.08);}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.btn-ghost{background:transparent;border-color:var(--border-strong);color:var(--text);}
.btn-ghost:hover{border-color:var(--orange);}
.btn-block{width:100%;}
.btn-sm{padding:7px 14px;font-size:.8rem;}
.btn-danger{background:var(--red);color:#fff;}
.auth-links{display:flex;justify-content:space-between;margin-top:16px;font-size:.82rem;}
.auth-links a{color:var(--orange);}
.auth-error{background:rgba(231,76,60,.12);border:1px solid var(--red);color:var(--red);
  padding:10px 12px;border-radius:var(--radius-sm);font-size:.82rem;margin-bottom:14px;display:none;}
.auth-error.show{display:block;}
.auth-ok{background:rgba(46,204,113,.12);border:1px solid var(--green);color:var(--green);
  padding:10px 12px;border-radius:var(--radius-sm);font-size:.82rem;margin-bottom:14px;display:none;}
.auth-ok.show{display:block;}

/* ---------- Layout de la app ---------- */
.app-layout{display:none;height:100vh;width:100vw;}
.app-layout.active{display:flex;}

.sidebar{
  width:var(--sidebar-w); flex-shrink:0; background:var(--bg-soft); border-right:1px solid var(--border);
  display:flex; flex-direction:column; padding:20px 14px; overflow-y:auto;
}
.sidebar-logo{font-family:var(--font-display);color:var(--orange);font-size:1.3rem;padding:0 8px 20px;}
.nav-item{
  display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--radius-sm);
  color:var(--text-dim);font-size:.88rem;font-weight:500;margin-bottom:2px;
}
.nav-item:hover{background:var(--card);color:var(--text);}
.nav-item.active{background:var(--orange-soft);color:var(--orange);}
.nav-item .ic{width:18px;text-align:center;flex-shrink:0;}
.nav-spacer{flex:1;}
.nav-user{display:flex;align-items:center;gap:10px;padding:10px 8px;border-top:1px solid var(--border);margin-top:10px;}
.nav-user img,.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--card-2);}
.nav-user-info{flex:1;min-width:0;}
.nav-user-name{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nav-user-role{font-size:.72rem;color:var(--text-faint);}
.logout-btn{background:none;border:none;color:var(--text-faint);font-size:1.1rem;padding:4px;}

.main-area{flex:1;display:flex;flex-direction:column;min-width:0;}
.topbar{
  display:flex;align-items:center;justify-content:space-between;padding:14px 22px;
  border-bottom:1px solid var(--border);flex-shrink:0;
}
.topbar h1{font-size:1.15rem;margin:0;font-family:var(--font-display);font-weight:normal;}
.hamburger{display:none;background:none;border:none;color:var(--text);font-size:1.3rem;padding:6px;}
.content-scroll{flex:1;overflow-y:auto;padding:22px;padding-bottom:calc(22px + var(--safe-bottom));}

.esk-view{display:none;}
.esk-view.active{display:block;}

/* ---------- Componentes genéricos ---------- */
.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;}
.grid{display:grid;gap:16px;}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.metric-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;}
.metric-card .label{font-size:.75rem;color:var(--text-dim);margin-bottom:6px;}
.metric-card .value{font-size:1.5rem;font-weight:700;font-family:var(--font-display);}
.metric-card .value.orange{color:var(--orange);}
.metric-card .value.green{color:var(--green);}
.metric-card .value.red{color:var(--red);}

.section-title{font-size:1rem;font-weight:600;margin:0 0 14px;}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:600;}
.badge-normal{background:rgba(52,152,219,.15);color:var(--blue);}
.badge-alta{background:rgba(241,196,15,.15);color:var(--yellow);}
.badge-muyalta{background:rgba(231,76,60,.15);color:var(--red);}
.badge-director{background:var(--orange-soft);color:var(--orange);}
.badge-worker{background:var(--card-2);color:var(--text-dim);}

/* Kanban */
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start;}
.kanban-col{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);padding:12px;min-height:200px;}
.kanban-col h3{font-size:.85rem;margin:4px 6px 10px;color:var(--text-dim);}
.task-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;margin-bottom:10px;cursor:pointer;}
.task-card:hover{border-color:var(--orange);}
.task-card .t-title{font-size:.88rem;font-weight:600;margin-bottom:6px;}
.task-card .t-meta{display:flex;gap:6px;flex-wrap:wrap;font-size:.72rem;color:var(--text-faint);}

/* Tarjetas de directorio */
.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;}
.person-card,.client-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px;text-align:center;cursor:pointer;}
.person-card:hover,.client-card:hover{border-color:var(--orange);}
.person-card .avatar{width:56px;height:56px;margin:0 auto 10px;font-size:1.4rem;display:flex;align-items:center;justify-content:center;background:var(--card-2);}
.person-card .p-name{font-size:.88rem;font-weight:600;}
.person-card .p-role{font-size:.72rem;color:var(--text-faint);margin-top:2px;}

/* Metas / KPIs */
.goal-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;min-width:220px;}
.goal-bar{height:8px;border-radius:999px;background:var(--border);overflow:hidden;margin:10px 0;}
.goal-bar-fill{height:100%;background:var(--orange);border-radius:999px;transition:width .4s;}
.goals-scroll{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;
  z-index:1000;padding:16px;}
.modal-overlay.active{display:flex;}
.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:520px;
  max-height:90vh;overflow-y:auto;padding:24px;}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.modal-header h2{font-size:1.05rem;margin:0;font-family:var(--font-display);font-weight:normal;}
.modal-close{background:none;border:none;color:var(--text-dim);font-size:1.3rem;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;}

.empty-state{text-align:center;padding:40px 20px;color:var(--text-faint);}

.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--card-2);
  border:1px solid var(--border-strong);color:var(--text);padding:12px 20px;border-radius:999px;
  font-size:.85rem;z-index:2000;opacity:0;transition:.3s;pointer-events:none;}
.toast.show{opacity:1;bottom:30px;}
.toast.error{border-color:var(--red);color:var(--red);}

/* ---------- Menú inferior / hamburguesa en celular ---------- */
.mobile-tabbar{display:none;}

@media (max-width: 860px){
  .hamburger{display:block;}
  .sidebar{
    position:fixed; left:0; top:0; bottom:0; z-index:900;
    transform:translateX(-100%); transition:transform .25s ease; box-shadow:0 0 40px rgba(0,0,0,.5);
  }
  .sidebar.open{transform:translateX(0);}
  .sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:890;}
  .sidebar-backdrop.show{display:block;}

  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr 1fr;}
  .kanban{grid-template-columns:1fr;}
  .content-scroll{padding:16px;padding-bottom:calc(78px + var(--safe-bottom));}
  .topbar{padding:12px 16px;}
}
@media (max-width: 480px){
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr;}
  .auth-card{padding:26px 20px;}
  .people-grid{grid-template-columns:repeat(2,1fr);}
}

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