  :root {
    --blue: #1F4E79; --blue-light: #D6E4F0; --blue-mid: #2E75B6;
    --green: #375623; --green-light: #E2EFDA; --green-mid: #639922;
    --amber: #633806; --amber-light: #FAEEDA; --amber-mid: #EF9F27;
    --red: #7B0000; --red-light: #FCEBEB; --red-mid: #E24B4A;
    --purple: #3C3489; --purple-light: #EEEDFE;
    --gray: #595959; --gray-light: #F2F2F2; --gray-mid: #D9D9D9;
    --text: #1a1a1a; --text-sec: #595959; --text-ter: #888888;
    --border: #E0E0E0; --bg: #FAFAFA; --surface: #FFFFFF;
    --radius: 8px; --radius-lg: 12px;
  }

  /* ─── DARK THEME (refined enterprise palette) ────────────────────── */
  [data-theme="dark"] {
    --blue: #7EB8DC; --blue-light: #161A24; --blue-mid: #6AADDB;
    --green: #3FBF7F; --green-light: #111D16; --green-mid: #3FBF7F;
    --amber: #E6B85C; --amber-light: #1D1810; --amber-mid: #E6B85C;
    --red: #E05A5A; --red-light: #1D1212; --red-mid: #E05A5A;
    --purple: #7A6FF0; --purple-light: #16142A;
    --gray: #8B91A1; --gray-light: #191C24; --gray-mid: #2A2F3A;
    --text: #E6E8EE; --text-sec: #C9CDD6; --text-ter: #5E6472;
    --border: rgba(255,255,255,0.06); --bg: #0F1115; --surface: #151821;
  }

  /* Dark theme accent overrides */
  [data-theme="dark"] .sidebar-logo .logo-title { color: #7A6FF0; }
  [data-theme="dark"] .nav-item.active { color: #7A6FF0; border-left-color: #7A6FF0; background: rgba(122,111,240,.12); }
  [data-theme="dark"] .nav-item:hover { background: rgba(255,255,255,.04); }
  [data-theme="dark"] .tbl th { background: #1B2030; color: #8B91A1; }
  [data-theme="dark"] .tbl tr:nth-child(even) td { background: #13161E; }
  [data-theme="dark"] .ev-storage-github { background: #1B2030; color: #C9CDD6; }
  [data-theme="dark"] .card:hover { border-color: rgba(255,255,255,.1); }
  [data-theme="dark"] .lg-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.25); border-color: rgba(255,255,255,.1); }
  [data-theme="dark"] .infra-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.25); }
  [data-theme="dark"] .ev-card-rich:hover { border-color: rgba(255,255,255,.1); box-shadow: 0 2px 8px rgba(0,0,0,.2); }
  [data-theme="dark"] .ev-modal-overlay { background: rgba(0,0,0,.6); }
  [data-theme="dark"] .ev-modal { box-shadow: 0 12px 40px rgba(0,0,0,.5); }
  [data-theme="dark"] .mt-node { border-color: var(--surface); }
  [data-theme="dark"] .mt-popup { box-shadow: 0 8px 24px rgba(0,0,0,.4); }
  [data-theme="dark"] .gs-results { box-shadow: 0 4px 16px rgba(0,0,0,.4); }
  [data-theme="dark"] .gs-result-title mark { background: rgba(230,184,92,.15); color: #E6B85C; }
  [data-theme="dark"] .fb:hover { border-color: rgba(255,255,255,.1); }
  [data-theme="dark"] .fb.on { background: rgba(122,111,240,.12); color: #7A6FF0; border-color: #7A6FF0; }
  [data-theme="dark"] .gantt-bar-label { color: #E6E8EE; }
  [data-theme="dark"] .kpi-tile { border-color: rgba(255,255,255,.04); }
  [data-theme="dark"] .ov-card { border-color: rgba(255,255,255,.04); }
  [data-theme="dark"] .badge { opacity: .9; }
  [data-theme="dark"] .sidebar { background: #12141A; }
  [data-theme="dark"] .prog-bg { background: #2A2F3A; }

  /* System action buttons */
  .sys-btn { display:flex; align-items:center; gap:8px; padding:7px 20px; cursor:pointer; font-size:12px; color:var(--text-sec); transition:all .15s; border:none; background:none; width:100%; text-align:left; }
  .sys-btn:hover { color:var(--text); background:var(--gray-light); }
  .sys-btn-icon { font-size:14px; width:20px; text-align:center; flex-shrink:0; }
  .sys-btn-logout { color:var(--red); opacity:0.7; }
  .sys-btn-logout:hover { opacity:1; color:var(--red); }

  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg); color: var(--text); font-size: 14px; }

  /* LAYOUT */
  .shell { display: flex; min-height: 100vh; }
  .sidebar { width: 220px; background: var(--surface); border-right: 1px solid var(--border); padding: 16px 0; position: fixed; top: 0; left: 0; height: 100vh; overflow-y: auto; z-index: 10; display:flex; flex-direction:column; transition: transform .2s ease, box-shadow .2s ease; }
  .main { margin-left: 220px; padding: 32px 28px; flex: 1; min-width: 0; transition: margin-left .2s ease; }

  /* Sidebar collapse/expand */
  .sidebar-toggle { position:fixed; top:12px; left:224px; z-index:11; width:28px; height:28px; border-radius:50%; border:1px solid var(--border); background:var(--surface); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:12px; color:var(--text-ter); transition: left .2s ease, background .15s; box-shadow:0 1px 4px rgba(0,0,0,.08); }
  .sidebar-toggle:hover { background:var(--gray-light); color:var(--text); }
  body.sidebar-collapsed .sidebar { transform: translateX(-220px); }
  body.sidebar-collapsed .main { margin-left: 0; }
  body.sidebar-collapsed .sidebar-toggle { left: 12px; }
  body.sidebar-collapsed .sidebar:hover { transform: translateX(0); box-shadow: 4px 0 20px rgba(0,0,0,.15); }
  body.sidebar-collapsed .sidebar:hover ~ .sidebar-toggle { left: 224px; }

  /* SIDEBAR */
  .sidebar-logo { padding: 0 20px 12px; border-bottom: 1px solid var(--border); margin-bottom: 8px; }
  .sidebar-logo .logo-title { font-size: 16px; font-weight: 600; color: var(--blue); }
  .sidebar-logo .logo-sub { font-size: 11px; color: var(--text-ter); margin-top: 2px; }
  .sidebar-updated { font-size: 10px; color: var(--text-ter); padding: 0 20px 8px; }
  .nav-section { font-size: 10px; font-weight: 600; color: var(--text-ter); text-transform: uppercase; letter-spacing: .06em; padding: 12px 20px 4px; }
  .nav-section:first-of-type { padding-top: 8px; }
  .sidebar-nav { flex:1; overflow-y:auto; }
  .sidebar-system { border-top:1px solid var(--border); padding-top:8px; margin-top:8px; }
  .nav-item { display: block; padding: 6px 20px; font-size: 13px; color: var(--text-sec); cursor: pointer; border-left: 2px solid transparent; transition: all .12s; text-decoration: none; }
  .nav-item:hover { background: var(--gray-light); color: var(--text); }
  .nav-item.active { color: var(--blue-mid); border-left-color: var(--blue-mid); background: var(--blue-light); font-weight: 500; }
  .nav-badge { float: right; font-size: 10px; padding: 1px 6px; border-radius: 10px; }
  .nb-warn { background: var(--amber-light); color: var(--amber); }
  .nb-crit { background: var(--red-light); color: var(--red); }
  .nb-ok { background: var(--green-light); color: var(--green); }

  /* HEADER */
  .page-header { margin-bottom: 24px; }
  .page-header h1 { font-size: 22px; font-weight: 600; color: var(--text); }
  .page-header p { font-size: 13px; color: var(--text-sec); margin-top: 4px; }

  /* KPI TILES */
  .kpi-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 24px; }
  .kpi-tile { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px 18px; display: flex; align-items: center; gap: 14px; }
  .kpi-visual { flex-shrink: 0; }
  .kpi-icon { width: 48px; height: 48px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 22px; }
  .kpi-data { flex: 1; min-width: 0; }
  .kpi-label { font-size: 11px; color: var(--text-ter); font-weight: 500; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 2px; }
  .kpi-val { font-size: 22px; font-weight: 700; line-height: 1.2; }
  .kpi-sub { font-size: 11px; color: var(--text-ter); margin-top: 2px; }

  /* OVERVIEW ALERTS */
  .ov-split { display: grid; grid-template-columns: 1fr 300px; gap: 16px; margin-bottom: 24px; }
  .ov-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px 18px; }
  .ov-card-title { font-size: 12px; font-weight: 700; color: var(--text-ter); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
  .ov-dtable { width: 100%; border-collapse: collapse; font-size: 12px; }
  .ov-dtable th { text-align: left; font-size: 10px; font-weight: 600; color: var(--text-ter); text-transform: uppercase; padding: 4px 8px 6px; border-bottom: 1px solid var(--border); }
  .ov-dtable td { padding: 7px 8px; border-bottom: 1px solid var(--gray-light); vertical-align: top; }
  .ov-dtable tr:hover { background: var(--gray-light); }
  .ov-urg { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px; }
  .ov-urg-crit { background: var(--red-mid); }
  .ov-urg-med { background: var(--amber-mid); }
  .ov-urg-info { background: var(--blue-mid); }
  .rf-item { display: flex; align-items: flex-start; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--gray-light); font-size: 12px; color: var(--text-sec); cursor: pointer; }
  .rf-item:last-child { border-bottom: none; }
  .rf-item:hover { color: var(--text); }
  .rf-flag { font-size: 14px; flex-shrink: 0; margin-top: 1px; }

  /* OVERVIEW HEALTH */
  .ov-health { margin-bottom: 24px; }
  .ov-proj-bar { display: flex; align-items: center; gap: 14px; padding: 12px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: 8px; }
  .ov-proj-name { font-size: 12px; font-weight: 600; width: 200px; flex-shrink: 0; }
  .ov-proj-track { flex: 1; height: 10px; background: var(--gray-light); border-radius: 5px; overflow: hidden; position: relative; }
  .ov-proj-fill { height: 100%; border-radius: 5px; transition: width .3s; }
  .ov-proj-pct { font-size: 12px; font-weight: 700; width: 44px; text-align: right; }
  .ov-proj-status { font-size: 11px; font-weight: 500; padding: 2px 8px; border-radius: 4px; white-space: nowrap; }

  /* HEATMAP */
  .ov-heatmap { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px 18px; }
  .hm-groups { display: flex; gap: 16px; flex-wrap: wrap; }
  .hm-group { flex: 1; min-width: 140px; }
  .hm-group-title { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px; padding-bottom: 4px; border-bottom: 2px solid; }
  .hm-chips { display: flex; flex-wrap: wrap; gap: 6px; }
  .hm-chip { padding: 5px 10px; border-radius: 6px; font-size: 11px; font-weight: 500; cursor: pointer; transition: all .12s; border: 1px solid transparent; }
  .hm-chip:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0,0,0,.08); }
  @media(max-width:900px){ .kpi-tiles{grid-template-columns:repeat(2,1fr);} .ov-split{grid-template-columns:1fr;} }

  /* LINHAS GRID */
  .lg-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
  @media(max-width:1200px){ .lg-grid { grid-template-columns: repeat(3, 1fr); } }
  @media(max-width:768px){ .lg-grid { grid-template-columns: repeat(2, 1fr); } }
  .lg-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 14px 16px; cursor: pointer; transition: all .15s; border-left: 4px solid var(--gray-mid); position: relative; overflow: hidden; }
  .lg-card:hover { border-color: #AAAAAA; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.08); }
  .lg-card.lc-ok { border-left-color: var(--green-mid); }
  .lg-card.lc-risco { border-left-color: var(--amber-mid); }
  .lg-card.lc-critico { border-left-color: var(--red-mid); }
  .lg-card.lc-av { border-left-color: #7F77DD; }
  .lg-card.lc-futuro { border-left-color: var(--blue-mid); }
  .lg-card-top { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
  .lg-card-icon { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
  .lg-card-title { font-size: 13px; font-weight: 600; line-height: 1.3; flex: 1; min-width: 0; }
  .lg-card-badges { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
  .lg-card-bar { height: 6px; background: var(--gray-light); border-radius: 3px; overflow: hidden; margin-bottom: 6px; }
  .lg-card-bar-fill { height: 100%; border-radius: 3px; transition: width .4s; }
  .lg-card-footer { display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: var(--text-ter); }
  .lg-card-alerts { display: flex; gap: 4px; font-size: 12px; }
  .lg-card-hover { display: none; position: absolute; bottom: 0; left: 0; right: 0; background: var(--surface); border-top: 1px solid var(--border); padding: 10px 16px; font-size: 11px; color: var(--text-sec); line-height: 1.5; }
  .lg-card:hover .lg-card-hover { display: block; }
  @media(max-width:600px){ .lg-grid { grid-template-columns: 1fr; } }

  /* MARCOS TIMELINE */
  .mt-container { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px 24px; margin-bottom: 24px; overflow-x: auto; }
  .mt-title { font-size: 12px; font-weight: 700; color: var(--text-ter); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 16px; }
  .mt-timeline { position: relative; min-height: 200px; }
  .mt-axis { position: relative; height: 1px; background: var(--border); margin: 0 40px; }
  .mt-track { position: relative; height: 80px; margin: 0 40px; }
  .mt-track-label { position: absolute; left: -40px; top: 50%; transform: translateY(-50%); font-size: 10px; font-weight: 700; color: var(--text-ter); writing-mode: vertical-lr; text-orientation: mixed; letter-spacing: .04em; }
  .mt-node { position: absolute; transform: translate(-50%, -50%); top: 50%; border-radius: 50%; border: 3px solid var(--surface); cursor: pointer; transition: all .15s; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; color: #fff; z-index: 5; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
  .mt-node:hover { transform: translate(-50%, -50%) scale(1.2); box-shadow: 0 4px 12px rgba(0,0,0,.25); z-index: 10; }
  .mt-node-label { position: absolute; top: calc(100% + 6px); left: 50%; transform: translateX(-50%); font-size: 9px; font-weight: 600; color: var(--text-sec); white-space: nowrap; pointer-events: none; }
  .mt-today { position: absolute; top: -10px; bottom: -10px; width: 2px; background: var(--red-mid); z-index: 4; opacity: .6; }
  .mt-today-label { position: absolute; top: -18px; left: 50%; transform: translateX(-50%); font-size: 8px; font-weight: 700; color: var(--red-mid); white-space: nowrap; }
  .mt-months { display: flex; margin: 8px 40px 0; }
  .mt-month { flex: 1; text-align: center; font-size: 9px; color: var(--text-ter); }
  .mt-month.is-today { color: var(--red-mid); font-weight: 700; }
  .mt-popup { display: none; position: fixed; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px 20px; width: 320px; box-shadow: 0 8px 24px rgba(0,0,0,.15); z-index: 100; }
  .mt-popup.open { display: block; }
  .mt-popup-title { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
  .mt-popup-meta { font-size: 11px; color: var(--text-sec); margin-bottom: 10px; }
  .mt-popup-close { position: absolute; top: 10px; right: 12px; font-size: 16px; cursor: pointer; color: var(--text-ter); background: none; border: none; }
  .mt-popup-risk { font-size: 11px; color: var(--text-sec); background: var(--gray-light); padding: 8px 10px; border-radius: var(--radius); border-left: 3px solid; margin-top: 8px; line-height: 1.5; }
  .mt-next-deliverables { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px 20px; margin-bottom: 20px; }
  .mt-next-title { font-size: 12px; font-weight: 700; color: var(--text-ter); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 12px; }
  .mt-del-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--gray-light); font-size: 12px; }
  .mt-del-item:last-child { border-bottom: none; }
  .mt-del-badge { font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 4px; white-space: nowrap; }

  /* SECTION */
  .section-title { font-size: 15px; font-weight: 600; color: var(--text); margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
  .proj-label { font-size: 11px; font-weight: 600; color: var(--text-ter); text-transform: uppercase; letter-spacing: .05em; margin: 20px 0 10px; }

  /* MARCOS COLUMNS */
  .marcos-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
  @media(max-width:900px){ .marcos-cols { grid-template-columns: 1fr; } }

  /* CARDS */
  .card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 14px 16px; margin-bottom: 10px; cursor: pointer; transition: border-color .12s; }
  .card:hover { border-color: #AAAAAA; }
  .card.expanded { border-color: var(--blue-mid); }
  .card-header { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
  .card-id { font-size: 11px; font-weight: 600; color: var(--text-ter); min-width: 28px; }
  .card-name { font-size: 14px; font-weight: 500; flex: 1; min-width: 120px; }
  .card-meta { font-size: 12px; color: var(--text-sec); white-space: nowrap; }
  .card-resp { font-size: 11px; color: var(--text-ter); padding: 2px 7px; background: var(--gray-light); border-radius: 4px; }

  /* BADGES */
  .badge { display: inline-block; font-size: 11px; padding: 3px 8px; border-radius: 5px; font-weight: 500; white-space: nowrap; }
  .b-ok { background: var(--green-light); color: var(--green); }
  .b-risco { background: var(--amber-light); color: var(--amber); }
  .b-critico { background: var(--red-light); color: var(--red); }
  .b-nd { background: var(--gray-light); color: var(--gray); }
  .b-av { background: var(--purple-light); color: var(--purple); }
  .b-futuro { background: var(--purple-light); color: var(--purple); }

  /* PROGRESS */
  .prog-wrap { margin-top: 10px; }
  .prog-bg { height: 5px; background: var(--gray-light); border-radius: 3px; overflow: hidden; }
  .prog-fill { height: 100%; border-radius: 3px; transition: width .4s; }
  .f-ok { background: var(--green-mid); }
  .f-risco { background: var(--amber-mid); }
  .f-critico { background: var(--red-mid); }
  .f-nd { background: var(--gray-mid); }
  .f-av { background: #7F77DD; }
  .f-futuro { background: #7F77DD; }
  .prog-label { display: flex; justify-content: space-between; font-size: 10px; color: var(--text-ter); margin-top: 3px; }

  /* DETAIL */
  .detail { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); display: none; }
  .detail.open { display: block; }
  .dl { font-size: 10px; font-weight: 600; color: var(--text-ter); text-transform: uppercase; letter-spacing: .05em; margin: 12px 0 6px; }
  .dl:first-child { margin-top: 0; }

  /* OEs */
  .oe-list { display: flex; flex-direction: column; gap: 4px; }
  .oe-item { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; background: var(--gray-light); padding: 7px 10px; border-radius: var(--radius); }
  .oe-code { font-size: 10px; font-weight: 600; color: var(--text-ter); min-width: 44px; margin-top: 1px; }
  .oe-body { flex: 1; }
  .oe-ev { font-size: 11px; color: var(--text-sec); margin-top: 2px; line-height: 1.5; }
  .oe-tag { font-size: 10px; padding: 2px 6px; border-radius: 4px; white-space: nowrap; margin-left: auto; flex-shrink: 0; }
  .oe-real { background: var(--green-light); color: var(--green); }
  .oe-par { background: var(--amber-light); color: var(--amber); }
  .oe-nd-t { background: var(--gray-light); color: var(--gray); }

  /* EVIDENCES */
  .ev-list { display: flex; flex-direction: column; gap: 3px; }
  .ev-item { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; color: var(--text-sec); padding: 5px 9px; background: var(--gray-light); border-radius: var(--radius); line-height: 1.4; }
  .dot { width: 7px; height: 7px; border-radius: 50%; margin-top: 4px; flex-shrink: 0; }
  .dot-g { background: var(--green-mid); }
  .dot-w { background: var(--amber-mid); }
  .dot-r { background: var(--red-mid); }

  /* MARCO FASE TAG */
  .marco-fase { display: inline-block; font-size: 10px; color: var(--text-ter); background: var(--gray-light); padding: 2px 8px; border-radius: 4px; margin-top: 6px; letter-spacing: .02em; }

  /* ENTREGÁVEIS FORMAIS */
  .ent-list { display: flex; flex-direction: column; gap: 4px; }
  .ent-item { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; padding: 8px 10px; border-radius: var(--radius); background: var(--gray-light); border-left: 3px solid var(--gray-mid); }
  .ent-item.ent-s-ok { border-left-color: var(--green-mid); background: var(--green-light); }
  .ent-item.ent-s-andamento { border-left-color: var(--amber-mid); background: var(--amber-light); }
  .ent-item.ent-s-nd { border-left-color: var(--gray-mid); }
  .ent-num { font-size: 10px; font-weight: 700; color: var(--text-ter); min-width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; background: var(--surface); border-radius: 50%; border: 1px solid var(--border); flex-shrink: 0; margin-top: 1px; }
  .ent-body { flex: 1; color: var(--text-sec); line-height: 1.5; }
  .ent-tag { font-size: 10px; padding: 2px 6px; border-radius: 4px; white-space: nowrap; margin-left: auto; flex-shrink: 0; }
  .ent-ok { background: var(--green-light); color: var(--green); }
  .ent-and { background: var(--amber-light); color: var(--amber); }
  .ent-nd { background: var(--gray-light); color: var(--gray); border: 1px solid var(--gray-mid); }

  /* RISK BOX */
  .risk-box { font-size: 12px; color: var(--text-sec); background: var(--gray-light); padding: 9px 12px; border-radius: var(--radius); border-left: 3px solid; line-height: 1.6; }
  .risk-ok { border-color: var(--green-mid); }
  .risk-risco { border-color: var(--amber-mid); }
  .risk-critico { border-color: var(--red-mid); }
  .risk-nd { border-color: var(--gray-mid); }

  /* ROADMAP TIMELINE */
  .qt { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px; margin-bottom: 4px; }
  .qb { border-radius: var(--radius); padding: 7px 8px; border: 1px solid var(--border); background: var(--gray-light); }
  .qb.cur { border-color: var(--amber-mid); background: var(--amber-light); }
  .qb.done { background: var(--green-light); border-color: var(--green-mid); }
  .qn { font-size: 9px; font-weight: 600; color: var(--text-ter); margin-bottom: 3px; }
  .qb.cur .qn { color: var(--amber); }
  .qb.done .qn { color: var(--green); }
  .qt-txt { font-size: 11px; color: var(--text-sec); line-height: 1.4; }
  .qb.cur .qt-txt { color: var(--amber); }
  .qb.done .qt-txt { color: var(--green); }

  /* AVANCOS */
  .av-list { display: flex; flex-direction: column; gap: 3px; }
  .av-item { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; color: var(--text-sec); padding: 5px 9px; background: var(--gray-light); border-radius: var(--radius); line-height: 1.4; }

  /* PUBS */
  .pub-list { display: flex; flex-direction: column; gap: 4px; }
  .pub-item { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; padding: 6px 10px; background: var(--gray-light); border-radius: var(--radius); color: var(--text-sec); }
  .pub-venue { font-size: 10px; font-weight: 600; color: var(--blue-mid); white-space: nowrap; margin-top: 1px; min-width: 80px; }
  .pub-dl { font-size: 10px; color: var(--text-ter); white-space: nowrap; margin-left: auto; }

  /* FILTERS */
  .filter-bar { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
  .fb { font-size: 12px; padding: 5px 12px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--surface); color: var(--text-sec); cursor: pointer; transition: all .12s; }
  .fb:hover { border-color: #AAAAAA; }
  .fb.on { background: var(--blue-light); color: var(--blue-mid); border-color: var(--blue-mid); font-weight: 500; }

  /* BLOQ */
  .bloq { font-size: 12px; color: var(--text-sec); background: var(--gray-light); padding: 9px 12px; border-radius: var(--radius); border-left: 3px solid var(--amber-mid); line-height: 1.5; }
  .bloq.crit { border-left-color: var(--red-mid); }
  .bloq.ok-b { border-left-color: var(--green-mid); }

  /* TABLE */
  .tbl { width: 100%; border-collapse: collapse; font-size: 12px; margin-bottom: 16px; }
  .tbl th { background: var(--blue-light); color: var(--blue); font-weight: 600; padding: 8px 12px; text-align: left; border: 1px solid var(--border); font-size: 11px; }
  .tbl td { padding: 8px 12px; border: 1px solid var(--border); color: var(--text-sec); vertical-align: top; }
  .tbl tr:nth-child(even) td { background: #FAFAFA; }

  /* BLOQUEIOS SUMMARY */
  .bloq-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px; margin-bottom: 20px; }
  .bloq-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 12px 14px; border-left: 4px solid; }
  .bloq-card.b-crit { border-left-color: var(--red-mid); }
  .bloq-card.b-med { border-left-color: var(--amber-mid); }
  .bloq-card.b-info { border-left-color: var(--blue-mid); }
  .bloq-linha { font-size: 11px; font-weight: 600; color: var(--text-ter); margin-bottom: 4px; }
  .bloq-desc { font-size: 12px; color: var(--text-sec); line-height: 1.5; }
  .bloq-action { font-size: 11px; color: var(--blue-mid); margin-top: 5px; font-weight: 500; }

  @media (max-width: 768px) {
    .sidebar { width: 100%; height: auto; position: relative; transform: none !important; }
    .main { margin-left: 0 !important; padding: 16px; }
    .shell { flex-direction: column; }
    .qt { grid-template-columns: repeat(3, 1fr); }
    .sidebar-toggle { display: none; }
  }
  /* GANTT */
  .gantt-wrap { overflow-x: auto; padding-bottom: 8px; }
  .gantt-month-header { display: flex; margin-left: 200px; border-bottom: 1px solid var(--border); padding-bottom: 6px; margin-bottom: 2px; }
  .gantt-month-col { flex: 1; font-size: 10px; color: var(--text-ter); text-align: center; font-weight: 500; line-height: 1.3; }
  .gantt-month-col.is-cur { color: var(--blue-mid); font-weight: 700; }
  .gantt-row { display: flex; align-items: center; height: 44px; border-bottom: 1px solid var(--gray-light); }
  .gantt-row:hover { background: var(--gray-light); }
  .gantt-row-label { width: 200px; flex-shrink: 0; font-size: 12px; padding-right: 12px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .gantt-row-track { flex: 1; position: relative; height: 24px; border-radius: 4px; overflow: hidden; }
  .gantt-bar { position: absolute; height: 24px; border-radius: 4px; overflow: hidden; display: flex; align-items: center; }
  .gantt-bar-fill { height: 100%; border-radius: 4px 0 0 4px; }
  .gantt-bar-label { position: absolute; left: 6px; font-size: 10px; font-weight: 700; color: #fff; white-space: nowrap; z-index: 2; }
  .gantt-today-line { position: absolute; top: -200px; bottom: -8px; width: 2px; background: var(--red-mid); opacity: .6; z-index: 10; pointer-events: none; }
  .gantt-group-label { font-size: 11px; font-weight: 700; color: var(--text-ter); text-transform: uppercase; letter-spacing: .06em; padding: 16px 0 4px; }
  .gantt-marco-line { position: absolute; top: 0; bottom: 0; width: 0; pointer-events: auto; cursor: help; transition: opacity .2s; }
  .gantt-marco-line:hover { opacity: .8 !important; }
  .gantt-deadline-warn { animation: gantt-pulse 2s ease-in-out infinite; }
  @keyframes gantt-pulse { 0%,100% { opacity:1; } 50% { opacity:.5; } }
  .gtab { padding: 6px 14px; border-radius: 6px; border: 1px solid var(--border); background: var(--surface); font-size: 12px; cursor: pointer; color: var(--text-sec); transition: all .12s; }
  .gtab.active { background: var(--blue); color: #fff; border-color: var(--blue); }
  .gtab:hover:not(.active) { background: var(--gray-light); }
  .gantt-block-icon { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); font-size: 14px; z-index: 5; cursor: help; filter: drop-shadow(0 1px 2px rgba(0,0,0,.3)); }
  .gantt-block-tooltip { display: none; position: absolute; bottom: calc(100% + 6px); right: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 10px; font-size: 11px; color: var(--text-sec); white-space: nowrap; box-shadow: 0 4px 12px rgba(0,0,0,.12); z-index: 20; pointer-events: none; }
  .gantt-block-icon:hover .gantt-block-tooltip { display: block; }

  /* Event markers on timeline */
  .gantt-event-marker { position: absolute; top: 0; transform: translateX(-50%); z-index: 8; cursor: help; }
  .gantt-event-icon { font-size: 14px; filter: drop-shadow(0 1px 2px rgba(0,0,0,.2)); }
  .gantt-event-tooltip { display: none; position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 12px; font-size: 11px; color: var(--text); white-space: nowrap; box-shadow: 0 4px 12px rgba(0,0,0,.12); z-index: 25; pointer-events: none; max-width: 260px; white-space: normal; line-height: 1.4; }
  .gantt-event-marker:hover .gantt-event-tooltip { display: block; }

  /* Event cards list */
  .gantt-events-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
  .gantt-event-card { padding: 12px 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); transition: box-shadow .15s; }
  .gantt-event-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }
  .gantt-event-card.evt-past { opacity: .55; }
  .gantt-event-card.evt-soon { border-left: 3px solid var(--amber-mid); }

  /* LINHA DETAIL */
  .ldet-back { display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--blue-mid);cursor:pointer;margin-bottom:20px;padding:6px 14px;border-radius:6px;border:1px solid var(--border);background:var(--surface);transition:all .12s; }
  .ldet-back:hover { background:var(--blue-light); }
  .ldet-open-btn { font-size:11px;padding:3px 10px;border-radius:5px;border:1px solid var(--blue-mid);color:var(--blue-mid);background:transparent;cursor:pointer;transition:all .12s;white-space:nowrap;margin-left:4px; }
  .ldet-open-btn:hover { background:var(--blue-light); }
  .ldet-hero { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:20px; }
  .ldet-hero .ldet-title { font-size:20px;font-weight:600;margin-bottom:10px; }
  .ldet-hero .ldet-meta { display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px; }
  .ldet-grid { display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px; }
  .ldet-block { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px; }
  .ldet-block-title { font-size:11px;font-weight:700;color:var(--text-ter);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border); }
  .ldet-quarters { display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:20px; }
  .ldet-q { border-radius:var(--radius);padding:10px;border:1px solid var(--border);background:var(--gray-light); }
  .ldet-q.q-done { background:var(--green-light);border-color:var(--green-mid); }
  .ldet-q.q-cur { background:var(--amber-light);border-color:var(--amber-mid); }
  .ldet-q-num { font-size:10px;font-weight:700;color:var(--text-ter);margin-bottom:4px; }
  .ldet-q.q-done .ldet-q-num { color:var(--green); }
  .ldet-q.q-cur .ldet-q-num { color:var(--amber); }
  .ldet-q-txt { font-size:11px;color:var(--text-sec);line-height:1.4; }
  .roadmap-edit-btn { cursor:pointer;font-size:10px;margin-left:4px;opacity:0.4;transition:opacity .2s; }
  .ldet-q:hover .roadmap-edit-btn { opacity:1; }
  .roadmap-edit-area { width:100%;font-size:11px;font-family:inherit;line-height:1.4;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);resize:vertical;color:var(--text);background:var(--bg); }
  .member-list { display:flex;flex-direction:column;gap:8px; }
  .member-item { display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--gray-light);border-radius:var(--radius); }
  .member-avatar { width:32px;height:32px;border-radius:50%;background:var(--blue-light);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--blue-mid);flex-shrink:0; }
  .member-name { font-size:13px;font-weight:500; }
  .member-role { font-size:11px;color:var(--text-ter);margin-top:1px; }
  .ev-empty { border:2px dashed var(--border);border-radius:var(--radius-lg);padding:24px;text-align:center;color:var(--text-ter);font-size:12px;line-height:1.8; }

  /* ─── EVIDENCE SYSTEM ──────────────────────────────────────────────── */
  .ev-pill { display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:500;padding:2px 7px;border-radius:4px;white-space:nowrap; }
  .ev-pill-video        { background:#EEEDFE;color:var(--purple); }
  .ev-pill-demo         { background:var(--amber-light);color:var(--amber); }
  .ev-pill-document     { background:#E0F2F1;color:#1a9988; }
  .ev-pill-repository   { background:var(--gray-light);color:var(--gray); }
  .ev-pill-paper        { background:var(--blue-light);color:var(--blue-mid); }
  .ev-pill-site         { background:#FCE4E4;color:#e06666; }
  .ev-pill-dataset      { background:var(--green-light);color:var(--green-mid); }
  .ev-pill-presentation { background:#FFF3E0;color:#e69138; }

  .ev-storage { display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:500;padding:1px 6px;border-radius:3px;white-space:nowrap; }
  .ev-storage-drive  { background:var(--blue-light);color:var(--blue-mid); }
  .ev-storage-github { background:#E8E8E8;color:#333; }
  .ev-storage-url    { background:#FCE4E4;color:#e06666; }

  .ev-gallery { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px; }
  .ev-card-rich { border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);transition:border-color .12s,box-shadow .12s;display:flex;flex-direction:column; }
  .ev-card-rich:hover { border-color:#AAAAAA;box-shadow:0 2px 8px rgba(0,0,0,.06); }
  .ev-card-rich[data-href] { cursor:pointer; }
  .ev-thumb-rich { width:100%;height:100px;background:var(--gray-light);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:28px;flex-shrink:0; }
  .ev-thumb-rich img { width:100%;height:100%;object-fit:cover; }
  .ev-card-body { padding:10px 12px;flex:1;display:flex;flex-direction:column;gap:4px; }
  .ev-card-title { font-size:12px;font-weight:600;line-height:1.3; }
  .ev-card-desc { font-size:11px;color:var(--text-sec);line-height:1.4; }
  .ev-card-meta { display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:4px; }
  .ev-card-date { font-size:10px;color:var(--text-ter); }
  .ev-card-author { font-size:10px;color:var(--text-ter); }

  .ev-linkage { display:inline-flex;align-items:center;gap:3px;font-size:9px;padding:1px 6px;border-radius:3px;background:var(--blue-light);color:var(--blue-mid);white-space:nowrap; }

  .ev-filter-bar { display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap;align-items:center; }
  .ev-filter-btn { font-size:11px;padding:4px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text-sec);cursor:pointer;transition:all .12s; }
  .ev-filter-btn:hover { border-color:#AAAAAA; }
  .ev-filter-btn.active { background:var(--blue-light);color:var(--blue-mid);border-color:var(--blue-mid);font-weight:500; }
  .ev-filter-count { font-size:9px;font-weight:600;padding:0 4px;border-radius:8px;background:var(--gray-light);color:var(--text-ter);margin-left:2px; }
  .ev-filter-btn.active .ev-filter-count { background:var(--blue-mid);color:#fff; }

  .ev-summary { display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius); }
  .ev-summary-stat { text-align:center;min-width:70px; }
  .ev-summary-val { font-size:18px;font-weight:700; }
  .ev-summary-label { font-size:10px;color:var(--text-ter); }

  .ev-badge-count { display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px;white-space:nowrap; }
  .ev-badge-has { background:var(--green-light);color:var(--green); }
  .ev-badge-none { background:var(--gray-light);color:var(--text-ter);font-style:italic;font-weight:400; }

  .ev-inline-list { margin-top:8px;padding:8px 10px;background:var(--gray-light);border-radius:var(--radius);display:flex;flex-direction:column;gap:6px; }
  .ev-inline-item { display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-sec);padding:4px 8px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);cursor:pointer;transition:border-color .12s; }
  .ev-inline-item:hover { border-color:#AAAAAA; }

  /* Evidence modal */
  .ev-modal-overlay { position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:100;display:flex;align-items:center;justify-content:center; }
  .ev-modal { background:var(--surface);border-radius:var(--radius-lg);width:640px;max-width:90vw;max-height:85vh;overflow-y:auto;padding:24px 28px;box-shadow:0 12px 40px rgba(0,0,0,.2); }
  .ev-modal-title { font-size:16px;font-weight:600;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border); }
  .ev-modal-close { position:absolute;top:12px;right:16px;font-size:22px;cursor:pointer;color:var(--text-ter);background:none;border:none;line-height:1; }
  .ev-modal-close:hover { color:var(--text-pri); }

  /* Evidence form fields */
  .ev-form-group { margin-bottom:14px; }
  .ev-form-label { display:block;font-size:11px;font-weight:600;color:var(--text-ter);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px; }
  .ev-form-input { width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;font-family:inherit;transition:border-color .12s;box-sizing:border-box; }
  .ev-form-input:focus { outline:none;border-color:var(--blue-mid); }
  .ev-form-select { width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;background:var(--surface);cursor:pointer;box-sizing:border-box; }
  .ev-form-textarea { width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;font-family:inherit;min-height:60px;resize:vertical;box-sizing:border-box; }
  .ev-form-detected { display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 8px;border-radius:4px; }
  .ev-form-preview { border:1px dashed var(--border);border-radius:var(--radius);padding:12px;margin:16px 0;background:var(--gray-light); }
  .ev-form-preview-title { font-size:10px;font-weight:600;color:var(--text-ter);text-transform:uppercase;margin-bottom:8px; }

  /* Evidence form buttons */
  .ev-add-btn { font-size:11px;padding:6px 14px;border-radius:var(--radius);border:1px dashed var(--blue-mid);background:transparent;color:var(--blue-mid);cursor:pointer;transition:all .12s;margin-bottom:12px; }
  .ev-add-btn:hover { background:var(--blue-light); }
  .ev-add-btn-disabled { border-color:var(--gray-mid);color:var(--text-ter); }
  .ev-form-submit { padding:10px 24px;border:none;border-radius:var(--radius);background:var(--blue-mid);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s; }
  .ev-form-submit:hover { background:var(--blue); }
  .ev-form-submit:disabled { opacity:.5;cursor:not-allowed; }
  .ev-form-cancel { padding:10px 24px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-sec);font-size:13px;cursor:pointer; }

  /* Evidence empty state */
  .ev-empty { text-align:center;padding:24px 16px;color:var(--text-ter);font-size:12px; }

  /* Auth status in sidebar */
  .nav-auth-status { padding:4px 20px;font-size:11px; }
  .auth-connected { color:var(--green-mid);display:flex;align-items:center;gap:6px;flex-wrap:wrap; }
  .auth-disconnected { color:var(--text-ter);display:flex;align-items:center;gap:6px;flex-wrap:wrap; }
  .auth-btn { font-size:10px;padding:2px 8px;border-radius:4px;border:1px solid var(--border);background:var(--surface);cursor:pointer; }
  .auth-btn-in { border-color:var(--blue-mid);color:var(--blue-mid); }
  .auth-btn-in:hover { background:var(--blue-light); }
  .auth-btn-out { border-color:var(--red-mid);color:var(--red-mid); }


  @media(max-width:768px){ .ldet-grid{grid-template-columns:1fr;} .ldet-quarters{grid-template-columns:repeat(3,1fr);} .ev-gallery{grid-template-columns:1fr;} }

  /* ─── INFRA PAGE ─────────────────────────────────────────────────────── */

  /* Cards (Item 3) */
  .infra-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:14px 16px; border-left:4px solid var(--gray-mid); transition:all .15s; }
  .infra-card:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,.08); }
  .infra-operacional { border-left-color:var(--green-mid); }
  .infra-parcial { border-left-color:var(--amber-mid); }
  .infra-bloqueado { border-left-color:var(--red-mid); }
  .infra-manutencao { border-left-color:var(--amber-mid); }
  .infra-indisponivel { border-left-color:var(--gray-mid); }
  .infra-card-top { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
  .infra-card-icon { font-size:22px; flex-shrink:0; }
  .infra-card-title { font-size:13px; font-weight:600; flex:1; min-width:0; }
  .infra-card-desc { font-size:12px; color:var(--text-sec); margin-bottom:8px; line-height:1.4; }
  .infra-card-meta { display:flex; gap:12px; font-size:11px; color:var(--text-ter); margin-bottom:8px; flex-wrap:wrap; }
  .infra-card-linhas { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:6px; }
  .infra-linha-chip { font-size:10px; padding:2px 6px; border-radius:4px; background:var(--blue-light); color:var(--blue-mid); white-space:nowrap; }
  .infra-card-problems { margin-top:6px; padding-top:6px; border-top:1px solid var(--border); }
  .infra-problem-item { font-size:11px; color:var(--amber); line-height:1.6; }
  .infra-card-image { width:calc(100% + 32px); height:160px; border-radius:var(--radius-lg) var(--radius-lg) 0 0; overflow:hidden; background:var(--gray-light); margin:-14px -16px 10px -16px; display:flex; align-items:center; justify-content:center; }
  .infra-card-image img { width:100%; height:100%; object-fit:cover; }

  /* Multi-select (Item 2) */
  .infra-ms-wrap { display:flex; flex-wrap:wrap; gap:6px; padding:8px; background:var(--gray-light); border-radius:var(--radius); border:1px solid var(--border); max-height:180px; overflow-y:auto; }
  .infra-ms-item { display:flex; align-items:center; gap:5px; font-size:12px; padding:4px 8px; background:var(--surface); border-radius:var(--radius); border:1px solid var(--border); cursor:pointer; transition:all .12s; }
  .infra-ms-item:hover { border-color:var(--blue-mid); }
  .infra-ms-item input { cursor:pointer; accent-color:var(--blue-mid); }

  /* Structured problems form (Item 4) */
  .infra-prob-form-item { border:1px solid var(--border); border-radius:var(--radius); padding:10px; margin-bottom:8px; background:var(--surface); }
  .infra-prob-form-item.prob-resolved { opacity:0.6; background:var(--gray-light); }
  .infra-add-prob-btn { font-size:11px; padding:5px 12px; border:1px dashed var(--border); border-radius:var(--radius); background:none; color:var(--text-ter); cursor:pointer; transition:all .12s; width:100%; text-align:center; margin-top:4px; }
  .infra-add-prob-btn:hover { border-color:var(--blue-mid); color:var(--blue-mid); background:var(--blue-light); }

  /* Detail modal (Item 1) */
  .infra-detail-modal { max-width:800px; width:92vw; max-height:88vh; overflow:hidden; display:flex; flex-direction:column; padding:0; }
  .infra-modal-header { padding:20px 24px; border-bottom:1px solid var(--border); flex-shrink:0; }
  .infra-modal-hero-img { width:100%; height:180px; object-fit:cover; border-radius:var(--radius-lg) var(--radius-lg) 0 0; margin:-20px -24px 12px; width:calc(100% + 48px); display:block; }
  .infra-modal-header-top { display:flex; align-items:center; gap:12px; }
  .infra-modal-title { font-size:18px; font-weight:700; }
  .infra-modal-body { flex:1; overflow-y:auto; padding:0 24px; }
  .infra-modal-section { padding:16px 0; border-bottom:1px solid var(--border); }
  .infra-modal-section:last-child { border-bottom:none; }
  .infra-modal-section-title { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--text-ter); margin-bottom:10px; }
  .infra-modal-footer { padding:14px 24px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; flex-shrink:0; }
  .infra-modal-prob-item { border:1px solid var(--border); border-radius:var(--radius); padding:10px; margin-bottom:6px; background:var(--surface); }
  .infra-modal-prob-item.resolved { opacity:.6; background:var(--gray-light); }
  .infra-modal-exp-item { border:1px solid var(--border); border-radius:var(--radius); padding:10px; margin-bottom:6px; background:var(--surface); }
  .infra-specs-table { width:100%; border-collapse:collapse; font-size:12px; }
  .infra-specs-table tr { border-bottom:1px solid var(--border); }
  .infra-specs-table tr:last-child { border-bottom:none; }
  .infra-specs-table td { padding:5px 8px; }
  .infra-specs-key { font-weight:600; color:var(--text-ter); text-transform:uppercase; font-size:10px; white-space:nowrap; width:1%; padding-right:16px; }

  /* Utilization KPI panel (Item 7) */
  .infra-util-panel { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:16px 20px; margin-bottom:20px; }
  .infra-util-title { font-size:12px; font-weight:700; color:var(--text-ter); text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--border); }
  .infra-util-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  .infra-util-kpi { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:12px 14px; }
  .infra-util-wide { grid-column:span 3; }
  @media(max-width:900px){ .infra-util-grid{grid-template-columns:repeat(2,1fr);} .infra-util-wide{grid-column:span 2;} }
  @media(max-width:600px){ .infra-util-grid{grid-template-columns:1fr;} .infra-util-wide{grid-column:span 1;} }

  /* Infra chip in linhas detail (Item 2+5) */
  .infra-linha-asset-chip { display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); font-size:12px; transition:all .12s; }
  .infra-linha-asset-chip:hover { border-color:var(--blue-mid); background:var(--blue-light); cursor:pointer; }
  .infra-lac-name { font-weight:500; color:var(--text); }

  /* PRODUÇÃO TÉCNICA */
  .prod-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:16px; margin-bottom:24px; }
  .trl-chip { font-size:10px; padding:2px 6px; border-radius:4px; font-weight:600; white-space:nowrap; }
  .trl-low { background:var(--blue-light); color:var(--blue-mid); }
  .trl-mid { background:var(--green-light); color:var(--green); }
  .trl-high { background:var(--purple-light); color:var(--purple); }
  .prod-item { display:flex; align-items:flex-start; gap:8px; font-size:12px; padding:6px 10px; background:var(--gray-light); border-radius:var(--radius); margin-bottom:4px; color:var(--text-sec); }
  .prod-item-dot { width:7px; height:7px; border-radius:50%; margin-top:5px; flex-shrink:0; }

  /* ─── EXECUÇÃO OPERACIONAL ───────────────────────────────────────────── */

  /* Config panel */
  /* Pipeline status */
  .exec-pipeline { display:flex; gap:4px; margin-bottom:16px; }
  .exec-step { flex:1; padding:8px 12px; font-size:11px; border-radius:var(--radius); background:var(--gray-light); color:var(--text-ter); text-align:center; border-left:3px solid var(--gray-mid); transition:all .2s; }
  .exec-step.done { background:var(--green-light); color:var(--green); border-left-color:var(--green-mid); }
  .exec-step.active { background:var(--blue-light); color:var(--blue-mid); border-left-color:var(--blue-mid); font-weight:600; }
  .exec-step.error { background:var(--red-light); color:var(--red); border-left-color:var(--red-mid); }

  /* Spinner */
  .exec-spinner { display:inline-block; width:14px; height:14px; border:2px solid var(--blue-light); border-top-color:var(--blue-mid); border-radius:50%; animation:exec-spin .6s linear infinite; vertical-align:middle; margin-right:6px; }
  @keyframes exec-spin { to { transform:rotate(360deg); } }

  /* Comparison table */
  .exec-tbl tr.exec-row { cursor:pointer; transition:background .12s; }
  .exec-tbl tr.exec-row:hover { background:var(--blue-light); }
  .exec-tbl tr.exec-row.expanded { background:var(--blue-light); font-weight:500; }

  /* Expanded detail */
  .exec-detail-row td { padding:0 !important; border:none !important; }
  .exec-detail-content { padding:16px 20px; background:var(--surface); border:1px solid var(--border); border-top:none; margin-bottom:8px; }
  .exec-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }

  /* Chart container */
  .exec-chart-wrap { position:relative; height:200px; margin-bottom:16px; }

  /* Task list */
  .exec-task { display:flex; align-items:flex-start; gap:8px; font-size:12px; padding:5px 9px; background:var(--gray-light); border-radius:var(--radius); margin-bottom:3px; color:var(--text-sec); border-left:3px solid transparent; }
  .exec-task-icon { flex-shrink:0; font-size:13px; margin-top:1px; }
  .exec-task-completed { border-left-color:var(--green-mid); }
  .exec-task-carryover { border-left-color:var(--amber-mid); }
  .exec-task-new { border-left-color:var(--blue-mid); }
  .exec-task-abandoned { border-left-color:var(--gray-mid); opacity:.6; }

  /* Trend indicators */
  .exec-trend { display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:600; padding:2px 8px; border-radius:4px; }
  .exec-trend-up { background:var(--green-light); color:var(--green); }
  .exec-trend-stable { background:var(--gray-light); color:var(--gray); }
  .exec-trend-down { background:var(--red-light); color:var(--red); }

  /* KPI value colors */
  .exec-val-green { color:var(--green-mid); }
  .exec-val-amber { color:var(--amber-mid); }
  .exec-val-red { color:var(--red-mid); }

  /* Mini KPI grid */
  .exec-mini-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:12px; }
  .exec-mini-kpi { text-align:center; padding:8px; background:var(--gray-light); border-radius:var(--radius); }
  .exec-mini-kpi-label { font-size:10px; color:var(--text-ter); }
  .exec-mini-kpi-val { font-size:18px; font-weight:700; line-height:1.3; }

  /* Blocker timeline */
  .exec-blocker { font-size:12px; padding:6px 10px; background:var(--gray-light); border-radius:var(--radius); margin-bottom:4px; border-left:3px solid var(--amber-mid); color:var(--text-sec); }
  .exec-blocker-resolved { border-left-color:var(--green-mid); opacity:.7; }

  /* Status message */
  .exec-status-msg { padding:12px 16px; border-radius:var(--radius); font-size:12px; margin-bottom:16px; }
  .exec-status-info { background:var(--blue-light); color:var(--blue); }
  .exec-status-error { background:var(--red-light); color:var(--red); }
  .exec-status-success { background:var(--green-light); color:var(--green); }

  /* Weekly history timeline */
  .exec-week-history { margin-top:20px; border-top:1px solid var(--border); padding-top:16px; }
  .exec-week-history-title { font-size:12px; font-weight:700; color:var(--text-ter); text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px; }
  .exec-week-card { border:1px solid var(--border); border-radius:var(--radius); margin-bottom:6px; background:var(--surface); transition:all .15s; }
  .exec-week-card.exec-week-latest { border-color:var(--blue-mid); }
  .exec-week-card.exec-week-open { border-color:var(--blue-mid); box-shadow:0 1px 4px rgba(0,0,0,.06); }
  .exec-week-header { display:flex; align-items:center; gap:10px; padding:10px 14px; cursor:pointer; user-select:none; }
  .exec-week-header:hover { background:var(--gray-light); border-radius:var(--radius); }
  .exec-week-dot { display:inline-block; width:8px; height:8px; border-radius:50%; flex-shrink:0; }
  .exec-week-date { font-size:13px; font-weight:600; color:var(--text); flex-shrink:0; display:flex; align-items:center; gap:6px; }
  .exec-week-badges { flex:1; display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; }
  .exec-week-badge { font-size:11px; font-weight:500; }
  .exec-week-chevron { font-size:12px; color:var(--text-ter); flex-shrink:0; transition:transform .15s; }
  .exec-week-body { padding:0 14px 14px; }
  .exec-week-section { margin-bottom:10px; }
  .exec-week-section:last-child { margin-bottom:0; }
  .exec-week-section-title { font-size:10px; font-weight:600; color:var(--text-ter); text-transform:uppercase; letter-spacing:.04em; margin-bottom:5px; padding-top:6px; border-top:1px dashed var(--gray-mid); }
  .exec-week-section:first-child .exec-week-section-title { border-top:none; padding-top:0; }

  /* Responsive */
  @media(max-width:768px) {
    .exec-pipeline { flex-direction:column; }
    .exec-input-group { flex-direction:column; }
    .exec-detail-grid { grid-template-columns:1fr; }
    .exec-mini-kpis { grid-template-columns:repeat(2,1fr); }
  }

  /* ─── AUDITORIA ──────────────────────────────────────────────────────── */
  .audit-tbl td { font-size:12px; }
  .audit-ts { white-space:nowrap; font-size:11px; color:var(--text-ter); font-variant-numeric:tabular-nums; }
  .audit-row.audit-expandable { cursor:pointer; }
  .audit-row.audit-expandable:hover { background:var(--blue-light); }
  .audit-expand-icon { color:var(--text-ter); font-size:10px; }
  .audit-acao-badge { display:inline-block; font-size:10px; font-weight:600; padding:2px 8px; border-radius:4px; white-space:nowrap; }
  .audit-acao-criar { background:var(--green-light); color:var(--green); }
  .audit-acao-editar { background:var(--amber-light); color:var(--amber); }
  .audit-acao-excluir { background:var(--red-light); color:var(--red); }
  .audit-acao-default { background:var(--gray-light); color:var(--gray); }
  .audit-module-badge { display:inline-block; font-size:10px; font-weight:500; padding:2px 7px; border-radius:4px; background:var(--blue-light); color:var(--blue-mid); }
  .audit-detail-content { padding:12px 16px; background:var(--gray-light); border-radius:var(--radius); }
  .audit-diff-section { margin-bottom:8px; }
  .audit-diff-section:last-child { margin-bottom:0; }
  .audit-diff-label { font-size:10px; font-weight:700; color:var(--text-ter); text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px; }
  .audit-json { font-size:11px; color:var(--text-sec); background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:8px 12px; overflow-x:auto; white-space:pre; line-height:1.5; margin:0; font-family:'SF Mono','Fira Code',monospace; }
  .btn-export-csv { margin-top:8px; font-size:12px; padding:6px 14px; border-radius:var(--radius); border:1px solid var(--border); background:var(--surface); color:var(--text-sec); cursor:pointer; transition:all .12s; }
  .btn-export-csv:hover { border-color:var(--blue-mid); color:var(--blue-mid); background:var(--blue-light); }

  /* ─── ORCAMENTO LEGEND ──────────────────────────────────────────── */
  .orc-legend { display:flex; gap:16px; font-size:11px; color:var(--text-ter); margin-bottom:10px; flex-wrap:wrap; }
  .orc-legend-item { display:flex; align-items:center; gap:4px; }
  .orc-legend-dot { width:8px; height:8px; border-radius:50%; display:inline-block; }

  /* ─── CHECK-INS & HEALTH ─────────────────────────────────────────── */
  .ck-health-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:14px; margin-bottom:20px; }
  .ck-health-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; transition:box-shadow .15s; }
  .ck-health-card:hover { box-shadow:0 2px 8px rgba(0,0,0,.08); }
  .ck-health-card-header { display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-bottom:1px solid var(--gray-light); }
  .ck-health-card-name { font-size:13px; font-weight:600; color:var(--text); }
  .ck-health-score { width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:#fff; flex-shrink:0; }
  .ck-health-card-body { padding:10px 14px; }
  .ck-health-card-footer { display:flex; align-items:center; justify-content:space-between; padding:8px 14px; border-top:1px solid var(--gray-light); background:var(--bg); }
  .ck-checkin-btn { font-size:11px; padding:4px 12px; border:1px solid var(--blue-mid); color:var(--blue-mid); background:transparent; border-radius:4px; cursor:pointer; transition:all .12s; }
  .ck-checkin-btn:hover { background:var(--blue-mid); color:#fff; }
  .ck-mini-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; margin-top:6px; }
  .ck-mini-m { text-align:center; padding:4px; background:var(--gray-light); border-radius:4px; }
  .ck-mini-label { display:block; font-size:8px; color:var(--text-ter); text-transform:uppercase; letter-spacing:.03em; }
  .ck-mini-val { display:block; font-size:14px; font-weight:700; line-height:1.3; }
  .ck-card-alerts { margin-top:6px; }
  .ck-alert { padding:5px 10px; border-radius:4px; font-size:11px; margin-bottom:3px; }
  .ck-alert-crit { background:var(--red-light); color:var(--red); border-left:3px solid var(--red-mid); }
  .ck-alert-med { background:var(--amber-light); color:var(--amber); border-left:3px solid var(--amber-mid); }
  .ck-alert-mini { padding:3px 8px; font-size:10px; }
  .ck-alerts-panel { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:14px 16px; }

  @media(max-width:768px) {
    .ck-health-grid { grid-template-columns:1fr; }
    .ck-mini-metrics { grid-template-columns:repeat(2,1fr); }
  }

  /* ─── GLOBAL SEARCH ──────────────────────────────────────────────── */
  .gs-search-wrap { position:relative; width:280px; }
  .gs-input { width:100%; padding:8px 12px; font-size:13px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); color:var(--text); outline:none; transition:border-color .15s; }
  .gs-input:focus { border-color:var(--blue-mid); box-shadow:0 0 0 2px rgba(46,117,182,.15); }
  .gs-input::placeholder { color:var(--text-ter); }
  .gs-results { position:absolute; top:100%; left:0; right:0; max-height:400px; overflow-y:auto; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:0 4px 16px rgba(0,0,0,.12); z-index:100; margin-top:4px; }
  .gs-category { font-size:10px; font-weight:600; color:var(--text-ter); text-transform:uppercase; letter-spacing:.04em; padding:8px 12px 4px; border-top:1px solid var(--gray-light); }
  .gs-category:first-child { border-top:none; }
  .gs-result-item { display:flex; align-items:flex-start; gap:8px; padding:6px 12px; text-decoration:none; color:var(--text); cursor:pointer; transition:background .1s; }
  .gs-result-item:hover { background:var(--blue-light); }
  .gs-result-icon { font-size:16px; flex-shrink:0; margin-top:1px; }
  .gs-result-body { flex:1; min-width:0; }
  .gs-result-title { font-size:12px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .gs-result-title mark { background:var(--amber-light); color:var(--amber); padding:0 1px; border-radius:2px; }
  .gs-result-sub { font-size:10px; color:var(--text-ter); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .gs-empty { padding:16px; text-align:center; font-size:12px; color:var(--text-ter); }

  @media(max-width:768px) {
    .gs-search-wrap { width:100%; }
  }

  /* ─── ORÇAMENTO DB — DRAWER ─────────────────────────────────────────── */
  .orc-drawer-overlay { position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.35);z-index:150;display:none; }
  .orc-drawer-overlay.open { display:block; }
  .orc-drawer { position:fixed;top:0;right:-500px;bottom:0;width:480px;max-width:95vw;background:var(--surface);box-shadow:-4px 0 24px rgba(0,0,0,.18);z-index:151;display:flex;flex-direction:column;transition:right .3s ease; }
  .orc-drawer.open { right:0; }
  .orc-drawer-head { display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0; }
  .orc-drawer-head-title { font-size:15px;font-weight:600; }
  .orc-drawer-close { background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-ter);line-height:1;padding:2px 6px; }
  .orc-drawer-close:hover { color:var(--text); }
  .orc-drawer-tabs { display:flex;border-bottom:1px solid var(--border);flex-shrink:0; }
  .orc-drawer-tab { padding:10px 20px;font-size:13px;cursor:pointer;border:none;background:none;color:var(--text-sec);border-bottom:2px solid transparent;transition:all .15s; }
  .orc-drawer-tab.active { color:var(--blue-mid);border-bottom-color:var(--blue-mid);font-weight:500; }
  .orc-drawer-body { flex:1;overflow-y:auto;padding:20px; }

  /* ─── ORÇAMENTO DB — MODAIS GENÉRICOS ───────────────────────────────── */
  .orc-modal-overlay { position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:200;display:flex;align-items:center;justify-content:center; }
  .orc-modal { background:var(--surface);border-radius:var(--radius-lg);width:520px;max-width:92vw;max-height:88vh;overflow-y:auto;padding:24px 28px;box-shadow:0 12px 40px rgba(0,0,0,.2); }
  .orc-modal-title { font-size:16px;font-weight:600;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between; }
  .orc-modal-close { background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-ter);line-height:1; }
  .orc-modal-close:hover { color:var(--text); }

  /* ─── FORMULÁRIOS BOLSA ──────────────────────────────────────────────── */
  .orc-form { display:flex;flex-direction:column;gap:14px; }
  .orc-form-row { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
  .orc-form-group { display:flex;flex-direction:column;gap:4px; }
  .orc-form-label { font-size:11px;font-weight:600;color:var(--text-sec);text-transform:uppercase;letter-spacing:.03em; }
  .orc-form-input, .orc-form-select, .orc-form-textarea { padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;background:var(--surface);color:var(--text);outline:none;transition:border-color .15s; }
  .orc-form-input:focus, .orc-form-select:focus, .orc-form-textarea:focus { border-color:var(--blue-mid);box-shadow:0 0 0 2px rgba(46,117,182,.12); }
  .orc-form-textarea { resize:vertical;min-height:70px; }
  .orc-form-actions { display:flex;justify-content:flex-end;gap:8px;margin-top:4px;padding-top:12px;border-top:1px solid var(--border); }
  .orc-btn { padding:8px 18px;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;border:none;transition:opacity .15s; }
  .orc-btn-primary { background:var(--blue-mid);color:#fff; }
  .orc-btn-primary:hover { opacity:.88; }
  .orc-btn-danger  { background:var(--red-mid);color:#fff; }
  .orc-btn-danger:hover  { opacity:.88; }
  .orc-btn-ghost   { background:var(--gray-light);color:var(--text); }
  .orc-btn-ghost:hover   { background:var(--gray-mid); }
  .orc-btn:disabled { opacity:.45;cursor:default; }

  /* ─── SYNC DIFF ──────────────────────────────────────────────────────── */
  .diff-novo      { background:var(--green-light); }
  .diff-updated   { background:var(--blue-light); }
  .diff-unchanged { color:var(--text-ter); }
  .diff-summary   { display:flex;gap:16px;margin-bottom:12px;font-size:12px; }
  .diff-summary-item { padding:6px 12px;border-radius:var(--radius);font-weight:500; }

  /* ─── EVENTOS HISTÓRICO ──────────────────────────────────────────────── */
  .ev-hist-item { display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--gray-light); }
  .ev-hist-item:last-child { border-bottom:none; }
  .ev-hist-dot { width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:3px; }
  .ev-hist-body { flex:1; }
  .ev-hist-tipo { font-size:12px;font-weight:600; }
  .ev-hist-meta { font-size:11px;color:var(--text-ter);margin-top:1px; }
  .ev-hist-motivo { font-size:11px;color:var(--text-sec);margin-top:3px;font-style:italic; }

  /* ─── SIMULAÇÕES ─────────────────────────────────────────────────────── */
  .sim-card { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:12px; }
  .sim-card-head { display:flex;align-items:center;gap:10px;margin-bottom:8px; }
  .sim-card-title { font-size:14px;font-weight:600;flex:1; }
  .sim-card-desc { font-size:12px;color:var(--text-sec);margin-bottom:10px; }
  .sim-badge { font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.04em; }
  .sim-badge-rascunho { background:var(--gray-light);color:var(--gray); }
  .sim-badge-ativa    { background:var(--green-light);color:var(--green); }
  .sim-badge-arquivada{ background:var(--amber-light);color:var(--amber); }
  .sim-card-actions { display:flex;gap:8px;flex-wrap:wrap;margin-top:10px; }
  .sim-eventos-table { margin-top:12px;font-size:12px; }
  .sim-ativa-badge { display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--green-light);color:var(--green);border-radius:20px;font-size:12px;font-weight:500;margin-left:12px; }

  /* ─── TOOLBAR BOLSAS ─────────────────────────────────────────────────── */
  .orc-bolsas-toolbar { display:flex;align-items:center;justify-content:space-between;margin-bottom:12px; }
  .orc-bolsas-toolbar-title { font-size:14px;font-weight:600;color:var(--text); }
  .orc-bolsas-toolbar-actions { display:flex;gap:8px; }
  .orc-tbl-row-clickable { cursor:pointer; }
  .orc-tbl-row-clickable:hover { background:var(--blue-light) !important; }

  /* ─── TIPO EVENTO COLORS ─────────────────────────────────────────────── */
  .ev-dot-contratacao    { background:#639922; }
  .ev-dot-demissao       { background:var(--red-mid); }
  .ev-dot-alteracao      { background:var(--blue-mid); }
  .ev-dot-prolongamento  { background:var(--purple); }
  .ev-dot-suspensao      { background:var(--amber-mid); }
  .ev-dot-reativacao     { background:var(--green-mid); }

  [data-theme="dark"] .orc-drawer { box-shadow:-4px 0 24px rgba(0,0,0,.5); }
  [data-theme="dark"] .orc-modal  { box-shadow:0 12px 40px rgba(0,0,0,.5); }
  [data-theme="dark"] .orc-drawer-overlay { background:rgba(0,0,0,.6); }
  [data-theme="dark"] .orc-modal-overlay  { background:rgba(0,0,0,.6); }

  /* ─── BOLSA STATUS BADGES ────────────────────────────────────────────── */
  .bolsa-badge { display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap; }
  .bolsa-badge-ativo          { background:var(--green-light);color:var(--green); }
  .bolsa-badge-em-contratacao { background:var(--blue-light);color:var(--blue-mid); }
  .bolsa-badge-desligado      { background:var(--gray-light);color:var(--gray); }

  /* ─── IMPACT CARD MODAL ──────────────────────────────────────────────── */
  .orc-impact-overlay { position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);z-index:300;display:none;align-items:center;justify-content:center; }
  .orc-impact-card { background:var(--surface);border-radius:var(--radius-lg);width:400px;max-width:92vw;padding:24px 28px;box-shadow:0 12px 40px rgba(0,0,0,.22);position:relative; }
  .orc-impact-sim-badge { display:inline-block;font-size:10px;font-weight:700;padding:3px 10px;background:var(--amber-light);color:var(--amber);border-radius:4px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px; }
  .orc-impact-nome { font-size:15px;font-weight:700;margin-bottom:4px; }
  .orc-impact-meta { display:flex;gap:10px;font-size:11px;color:var(--text-sec);margin-bottom:12px;flex-wrap:wrap; }
  .orc-impact-row { display:flex;justify-content:space-between;font-size:12px;padding:5px 0;border-bottom:1px solid var(--gray-light); }
  .orc-impact-row:last-of-type { border-bottom:none; }
  .orc-impact-divider { border-top:1px solid var(--border);margin:10px 0; }
  [data-theme="dark"] .orc-impact-card { box-shadow:0 12px 40px rgba(0,0,0,.5); }

  /* ─── BURNDOWN TOGGLE ────────────────────────────────────────────────── */
  .orc-burndown-toggles { display:flex;gap:4px; }
  .orc-burndown-toggle-btn { padding:3px 10px;font-size:11px;font-weight:500;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-sec);cursor:pointer;transition:all .12s; }
  .orc-burndown-toggle-btn:hover { background:var(--gray-light); }
  .orc-burndown-toggle-btn.active { background:var(--blue-mid);color:#fff;border-color:var(--blue-mid); }

  /* ─── SIM CENÁRIO SELECTOR ──────────────────────────────────────────── */
  .sim-cenario-selector { display:flex;flex-direction:column;gap:10px;padding:8px 0; }
  .sim-cenario-btn { display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;transition:all .15s; }
  .sim-cenario-btn:hover { border-color:var(--blue-mid);background:var(--blue-light); }
  .sim-cenario-icon { flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px; }
  .sim-cenario-icon-cancel { background:#fee2e2; }
  .sim-cenario-icon-add    { background:#dcfce7; }
  .sim-cenario-titulo { font-size:13px;font-weight:600;color:var(--text);margin-bottom:2px; }
  .sim-cenario-desc   { font-size:11px;color:var(--text-sec);line-height:1.35; }

  /* ─── RH PAGE ────────────────────────────────────────────────────────── */

  /* Card grid */
  .rh-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; margin-bottom:24px; }

  /* Person card */
  .rh-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:14px 16px; cursor:pointer; transition:all .15s; }
  .rh-card:hover { transform:translateY(-2px); box-shadow:0 4px 14px rgba(0,0,0,.08); border-color:var(--blue-mid); }
  .rh-card-inativo { opacity:.55; }
  .rh-card-inativo:hover { opacity:.8; }
  .rh-card-top { margin-bottom:10px; }
  .rh-card-name { font-size:14px; font-weight:600; color:var(--text); margin-bottom:6px; line-height:1.3; }
  .rh-card-body { display:flex; flex-direction:column; gap:4px; }
  .rh-card-row { display:flex; justify-content:space-between; font-size:12px; color:var(--text-sec); gap:8px; }
  .rh-card-row span:last-child { text-align:right; max-width:60%; }
  .rh-card-label { color:var(--text-ter); flex-shrink:0; }

  /* Shared badge */
  .rh-badge { display:inline-block; font-size:11px; padding:2px 8px; border-radius:4px; font-weight:500; }

  /* Drawer */
  .rh-drawer-overlay { position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:200; opacity:0; pointer-events:none; transition:opacity .2s; }
  .rh-drawer-overlay.open { opacity:1; pointer-events:auto; }
  .rh-drawer { position:fixed; top:0; right:0; width:520px; max-width:95vw; height:100vh; background:var(--surface); border-left:1px solid var(--border); z-index:201; transform:translateX(100%); transition:transform .25s cubic-bezier(.4,0,.2,1); display:flex; flex-direction:column; }
  .rh-drawer.open { transform:translateX(0); }
  .rh-drawer-header { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--border); flex-shrink:0; }
  .rh-drawer-close { background:none; border:none; font-size:16px; color:var(--text-ter); cursor:pointer; padding:4px 8px; border-radius:var(--radius); transition:all .12s; }
  .rh-drawer-close:hover { background:var(--gray-light); color:var(--text); }
  .rh-drawer-body { flex:1; overflow-y:auto; padding:20px; }
  .rh-drawer-label { font-size:10px; font-weight:600; color:var(--text-ter); text-transform:uppercase; letter-spacing:.06em; margin-bottom:4px; }

  [data-theme="dark"] .rh-drawer { box-shadow:-4px 0 24px rgba(0,0,0,.5); }
  [data-theme="dark"] .rh-drawer-overlay { background:rgba(0,0,0,.6); }
  [data-theme="dark"] .rh-card:hover { border-color:var(--blue-mid); box-shadow:0 4px 14px rgba(0,0,0,.25); }
