/* ═══════════════════════════════════════════════════════
   ORION — MÓDULO DEMANDAS v3  |  Comunikativa
   ═══════════════════════════════════════════════════════ */

@keyframes dem-in { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }

/* ── TOPBAR ──────────────────────────────────────── */
.dem-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 22px;
  flex-wrap: wrap;
  gap: 12px;
}
.dem-actions { display: flex; gap: 10px; align-items: center; }
.dem-page-title { font-family:'Syne',sans-serif; font-size:16px; font-weight:700; }
.dem-page-sub   { font-size:11px; color:var(--text2); margin-top:2px; }

/* ── TABS ────────────────────────────────────────── */
.dem-tabs {
  display:flex; gap:0;
  background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:4px;
}
.dem-tab {
  padding:6px 18px; font-size:11px; font-family:'DM Mono',monospace;
  letter-spacing:.5px; cursor:pointer; color:var(--text2); border-radius:5px;
  transition:all .18s; border:none; background:transparent;
}
.dem-tab.active { background:var(--accent); color:var(--bg); font-weight:600; }
.dem-tab:hover:not(.active) { color:var(--text); }

/* ── KPIs ────────────────────────────────────────── */
.dem-kpis {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 14px;
  margin-bottom: 22px;
}
.dem-kpi {
  background:var(--surface); border:1px solid var(--border); border-radius:10px;
  padding:16px 18px; position:relative; overflow:hidden; transition:border-color .18s;
}
.dem-kpi:hover { border-color:rgba(0,212,255,.2); }
.dem-kpi::before { content:''; position:absolute; top:0;left:0;right:0; height:2px; }
.dem-kpi.blue::before   { background:linear-gradient(90deg,var(--accent),transparent); }
.dem-kpi.green::before  { background:linear-gradient(90deg,var(--accent3),transparent); }
.dem-kpi.warn::before   { background:linear-gradient(90deg,var(--warn),transparent); }
.dem-kpi.danger::before { background:linear-gradient(90deg,var(--danger),transparent); }
.dem-kpi.purple::before { background:linear-gradient(90deg,var(--accent2),transparent); }
.dem-kpi-label { font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--text2); margin-bottom:6px; }
.dem-kpi-value { font-family:'Syne',sans-serif; font-size:26px; font-weight:800; line-height:1; }
.dem-kpi-sub   { font-size:10px; color:var(--text2); margin-top:4px; }
.dem-kpi-icon  { position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:22px; opacity:.1; }

/* ── FILTROS ─────────────────────────────────────── */
.dem-filters {
  display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:16px;
}

/* ── TABELA ──────────────────────────────────────── */
.dem-table { width:100%; border-collapse:collapse; }
.dem-table th {
  font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--text2);
  padding:10px 13px; border-bottom:1px solid var(--border); text-align:left; font-weight:500;
}
.dem-table td { padding:10px 13px; border-bottom:1px solid rgba(30,42,54,.5); font-size:12px; vertical-align:middle; }
.dem-table tr:hover td { background:rgba(255,255,255,.02); }
.tc { font-size:11px !important; color:var(--text2); }
.riscado { text-decoration:line-through; color:var(--text2); }

/* ── PROJ GRID ───────────────────────────────────── */
.proj-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
}
.proj-card {
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  padding:20px; cursor:pointer; transition:all .2s; overflow:hidden;
}
.proj-card:hover { border-color:rgba(0,212,255,.3); transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.25); }
.proj-hdr { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:8px; }
.proj-nome { font-family:'Syne',sans-serif; font-size:14px; font-weight:700; margin-bottom:2px; }
.proj-cli  { font-size:11px; color:var(--text2); }
.proj-desc { font-size:11px; color:var(--text2); line-height:1.5; margin-bottom:12px; }
.proj-pw { margin-bottom:10px; }
.proj-pl { display:flex; justify-content:space-between; font-size:10px; color:var(--text2); margin-bottom:5px; }
.proj-pb { height:4px; background:var(--surface2); border-radius:2px; overflow:hidden; }
.proj-meta { display:flex; gap:10px; flex-wrap:wrap; font-size:10px; color:var(--text2); }

/* ── STATUS BADGES ───────────────────────────────── */
.pst { font-size:9px; padding:3px 8px; border-radius:4px; font-weight:600; text-transform:uppercase; letter-spacing:1px; white-space:nowrap; }
.pst.pendente    { background:rgba(245,158,11,.1); color:var(--warn);    border:1px solid rgba(245,158,11,.2); }
.pst.em_execucao { background:rgba(0,212,255,.1);  color:var(--accent);  border:1px solid rgba(0,212,255,.2); }
.pst.concluido   { background:rgba(16,185,129,.1); color:var(--accent3); border:1px solid rgba(16,185,129,.2); }

.sdem { font-size:10px; padding:2px 8px; border-radius:4px; font-weight:500; text-transform:uppercase; letter-spacing:.5px; white-space:nowrap; }
.sdem.nao_iniciado { background:rgba(100,116,139,.1); color:var(--text2);  border:1px solid rgba(100,116,139,.2); }
.sdem.em_execucao  { background:rgba(0,212,255,.1);   color:var(--accent); border:1px solid rgba(0,212,255,.2); }
.sdem.concluida    { background:rgba(16,185,129,.1);  color:var(--accent3);border:1px solid rgba(16,185,129,.2); }

.prio-bdg { font-size:10px; padding:2px 8px; border-radius:4px; font-weight:600; letter-spacing:.5px; white-space:nowrap; }
.prio-bdg.prio-alta  { background:rgba(239,68,68,.12);  color:var(--danger); border:1px solid rgba(239,68,68,.2); }
.prio-bdg.prio-media { background:rgba(245,158,11,.12); color:var(--warn);   border:1px solid rgba(245,158,11,.2); }
.prio-bdg.prio-baixa { background:rgba(100,116,139,.12);color:var(--text2);  border:1px solid rgba(100,116,139,.2); }

.pz-txt { font-size:11px; color:var(--text2); }
.pz-txt.vencido { color:var(--danger); font-weight:600; }
.pz-txt.hoje    { color:var(--warn);   font-weight:600; }

/* ── RESPONSÁVEL ─────────────────────────────────── */
.rsp-chip { display:inline-flex; align-items:center; gap:5px; background:var(--surface2); border:1px solid var(--border); border-radius:20px; padding:2px 9px 2px 3px; font-size:11px; }
.rsp-av   { width:18px; height:18px; border-radius:50%; background:linear-gradient(135deg,var(--accent2),var(--accent)); display:flex; align-items:center; justify-content:center; font-size:8px; font-weight:700; color:white; }

/* ── CHECK ───────────────────────────────────────── */
.chk { width:17px; height:17px; border-radius:4px; border:2px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:10px; transition:all .15s; flex-shrink:0; }
.chk.chk-on { background:var(--accent3); border-color:var(--accent3); color:white; }

/* ── KANBAN ──────────────────────────────────────── */
.dem-sh { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.dem-st { font-family:'Syne',sans-serif; font-size:14px; font-weight:700; }
.dem-ss { font-size:11px; color:var(--text2); margin-top:2px; }

.kanban-board { display:grid; gap:14px; overflow-x:auto; padding-bottom:6px; }
.kanban-col {
  background:var(--surface); border:1px solid var(--border); border-radius:10px;
  overflow:hidden; display:flex; flex-direction:column; min-height:260px;
}
.kanban-col-header {
  padding:11px 14px; display:flex; align-items:center; justify-content:space-between;
  background:var(--surface2); border-bottom:1px solid var(--border);
}
.kanban-col-title { font-size:11px; font-weight:600; letter-spacing:1px; text-transform:uppercase; }
.kanban-col-count { font-size:10px; background:var(--surface); border:1px solid var(--border); color:var(--text2); padding:2px 7px; border-radius:10px; }
.kanban-col-body  { padding:8px; flex:1; display:flex; flex-direction:column; gap:7px; overflow-y:auto; max-height:480px; }
.kanban-card {
  background:var(--surface2); border:1px solid var(--border); border-radius:8px;
  padding:11px 12px; cursor:pointer; transition:all .15s; user-select:none;
}
.kanban-card:hover { border-color:rgba(0,212,255,.3); transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.2); }
.kanban-card-title  { font-size:12px; font-weight:600; margin-bottom:3px; line-height:1.4; }
.kanban-card-proj   { font-size:10px; color:var(--text2); margin-bottom:7px; }
.kanban-card-footer { display:flex; align-items:center; justify-content:space-between; }
.kanban-add-btn {
  margin:8px; padding:7px; border:1px dashed var(--border); border-radius:6px;
  background:transparent; color:var(--text2); font-family:'DM Mono',monospace; font-size:11px;
  cursor:pointer; text-align:center; transition:all .18s; width:calc(100% - 16px);
}
.kanban-add-btn:hover { border-color:var(--accent); color:var(--accent); }

/* ── SEMANA ──────────────────────────────────────── */
.week-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }
.week-day { background:var(--surface); border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.week-hoje { border-color:rgba(0,212,255,.35); }
.week-hdr { padding:8px 10px; background:var(--surface2); border-bottom:1px solid var(--border); }
.week-dname { font-size:9px; color:var(--text2); letter-spacing:1px; text-transform:uppercase; }
.week-dnum  { font-family:'Syne',sans-serif; font-size:18px; font-weight:700; }
.week-dnum.hoje { color:var(--accent); }
.week-body { padding:6px; min-height:80px; }
.week-task {
  border-left:3px solid var(--accent); background:var(--surface2); border-radius:3px;
  padding:4px 6px; font-size:10px; margin-bottom:4px; cursor:pointer; transition:opacity .15s;
}
.week-task:hover { opacity:.78; }
.week-task.prio-alta  { border-left-color:var(--danger); }
.week-task.prio-media { border-left-color:var(--warn); }
.week-task.prio-baixa { border-left-color:var(--text2); }

/* ── MODAL ───────────────────────────────────────── */
.mhdr { font-family:'Syne',sans-serif; font-size:15px; font-weight:700; margin-bottom:18px; display:flex; align-items:center; justify-content:space-between; }
.mclose { cursor:pointer; color:var(--text2); font-size:20px; line-height:1; transition:color .15s; }
.mclose:hover { color:var(--text); }

.meta-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px;
  background:var(--surface2); border:1px solid var(--border); border-radius:8px;
  padding:14px; margin-bottom:14px;
}
.mg-item {}
.mg-l { font-size:9px; color:var(--text2); letter-spacing:1px; text-transform:uppercase; margin-bottom:4px; }

.info-box {
  background:var(--surface2); border:1px solid var(--border); border-radius:8px;
  padding:12px 14px; font-size:12px; color:var(--text3); line-height:1.7;
  margin-bottom:14px; white-space:pre-wrap;
}

.form-hint {
  font-size:10px; color:var(--text2); padding:8px 12px;
  background:rgba(0,212,255,.04); border:1px solid rgba(0,212,255,.1);
  border-radius:6px; margin-top:4px;
}

/* ── EMPTY ───────────────────────────────────────── */
.dem-empty { text-align:center; padding:60px 24px; color:var(--text2); }
.dem-ei  { font-size:44px; margin-bottom:12px; opacity:.35; }
.dem-et  { font-family:'Syne',sans-serif; font-size:15px; font-weight:700; margin-bottom:5px; color:var(--text3); }
.dem-es  { font-size:12px; }
