:root{
  --bg: #f6f7fb;
  --card: #ffffff;
  --text: #111827;
  --muted: #6b7280;
  --border: rgba(17,24,39,.12);
  --primary: #2563eb;
  --shadow: 0 10px 30px rgba(17,24,39,.08);
}
[data-theme="dark"]{
  --bg: #0b1220;
  /* --card: #0f1b33; */
  --card: #2b4476;
  --text: #e5e7eb;
  --muted: #9ca3af;
  --border: rgba(229,231,235,.14);
  --primary: #60a5fa;
  --shadow: 0 10px 30px rgba(0,0,0,.45);
}

html, body{height:100%;}
body{background: var(--bg); color: var(--text);}

a{color: var(--primary);} 
a:hover{opacity:.9;}

.navbar, .sidebar{background: var(--card) !important; border-bottom: 1px solid var(--border);}
.card{background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow); border-radius: 16px;}
.table{color: var(--text);} 
.table thead th{color: var(--muted);} 

/* Bootstrap tables in dark/light using CSS vars */
.table > :not(caption) > * > *{
  background-color: transparent !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}

.table-striped > tbody > tr:nth-of-type(odd) > *{
  background-color: rgba(17,24,39,.02) !important;
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > *{
  background-color: rgba(255,255,255,.04) !important;
}

.table-hover > tbody > tr:hover > *{
  background-color: rgba(37,99,235,.08) !important;
}

/* dropdowns & modals */
.dropdown-menu, .modal-content{
  background: var(--card) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
.dropdown-item{color: var(--text) !important;}
.dropdown-item:hover{background: rgba(37,99,235,.10) !important;}
.text-muted{color: var(--muted) !important;}
.form-control, .form-select{background: transparent; color: var(--text); border-color: var(--border);} 
.form-control::placeholder{color: var(--muted);} 

/* Accordion (allocations grouping) */
.accordion-item{border: 1px solid var(--border); background: var(--card);} 
.accordion-button{background: var(--card) !important; color: var(--text) !important;}
.accordion-button::after{filter: invert(0.6);} 
[data-theme="dark"] .accordion-button::after{filter: invert(1);} 
.accordion-button:focus{box-shadow: 0 0 0 .2rem rgba(96,165,250,.25) !important;}
.accordion-body{background: var(--card) !important; color: var(--text) !important;}

/* Bootstrap alerts */
.alert{border-color: var(--border);} 
[data-theme="dark"] .alert-info{background: rgba(96,165,250,.12); color: var(--text);} 
[data-theme="dark"] .alert-danger{background: rgba(239,68,68,.12); color: var(--text);} 

/* Make sure badge text stays readable */
.badge{color:#fff;}

.sidebar{
  min-height: calc(100vh - 56px);
  border-right: 1px solid var(--border);
}
.sidebar a{color: var(--text); text-decoration:none;}
.sidebar a.active{color: var(--primary); font-weight: 600;}

.badge-crit-URGENTE{background:#ef4444;}
.badge-crit-CRITICO{background:#f97316;}
.badge-crit-ALTO{background:#f59e0b; color:#111827;}
.badge-crit-MEDIO{background:#3b82f6;}
.badge-crit-BAIXO{background:#10b981;}

.badge-status-BACKLOG{background:#6b7280;}
.badge-status-TODO{background:#3b82f6;}
.badge-status-DOING{background:#8b5cf6;}
.badge-status-BLOCKED{background:#ef4444;}
.badge-status-DONE{background:#10b981;}

.small-help{font-size:.9rem; color: var(--muted);}

/* =====================
   Organograma
   ===================== */
.orgchart-wrapper { border: 1px solid var(--border); overflow: hidden; }
.orgchart-toolbar { border-bottom: 1px solid var(--border); background: var(--card); }
.orgchart-canvas {
  position: relative;
  height: 72vh;
  min-height: 520px;
  background:
    radial-gradient(circle at 1px 1px, rgba(127,127,127,.18) 1px, transparent 0);
  background-size: 22px 22px;
}
.orgchart-lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.orgchart-nodes { position: absolute; inset: 0; }
.org-node {
  position: absolute;
  min-width: 200px;
  min-height: 90px;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: var(--card);
  box-shadow: 0 8px 22px rgba(0,0,0,.08);
  user-select: none;
}
[data-theme="dark"] .org-node { box-shadow: 0 10px 26px rgba(0,0,0,.35); }
.org-node.selected { outline: 2px solid rgba(37, 99, 235, .55); }
.org-node-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
}
.org-avatar {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 700;
}
.org-node-body { padding: 0 12px 12px 12px; }
.org-name { font-weight: 700; line-height: 1.2; white-space: nowrap; }
.org-meta { font-size: .88rem; color: var(--muted); white-space: nowrap; }
.org-actions {
  display: flex;
  gap: 6px;
  margin-left: auto;
}
.org-actions .btn { padding: 2px 8px; }
.org-handle {
  position: absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  width: 24px;
  height: 24px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--card);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: crosshair;
}
.org-handle::before { content: ""; width: 10px; height: 10px; border-radius: 999px; background: var(--border); }

.org-resize {
  position: absolute;
  right: 6px;
  bottom: 6px;
  width: 14px;
  height: 14px;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: rgba(127,127,127,.12);
  cursor: nwse-resize;
}

.org-person:active { cursor: grabbing; }
