﻿/* ─── DESIGN TOKENS ─────────────────────────────── */
  :root {
    --paper:   #f0f0ed; --paper-2: #e8e8e4; --paper-3: #dcdcd8;
    --ink:     #0a0a0a; --ink-2:   #2a2a2a; --ink-3:   #555555;
    --rule:    #c4c4c4; --rule-dark: #888888;
    --s-crit:  #d32f2f; --s-warn:  #f57c00; --s-ok:    #2e7d32;
    --s-blue:  #1565c0; --s-purple:#6a1b9a; --s-ai:    #00bfa5; --s-google:#4285F4; --s-microsoft:#2563eb;
    --bg-crit: rgba(211,47,47,0.06); --bg-warn: rgba(245,124,0,0.06);
    --bg-ok:   rgba(46,125,50,0.06); --bg-blue: rgba(21,101,192,0.06);
    --bg-ai:   rgba(0,191,165,0.1);
    --bg-surface: #ffffff;
    --transition: 0.25s ease;
  }
  /* DARK MODE TOKENS */
  [data-theme="dark"] {
    --paper:   #1a1a1a; --paper-2: #222222; --paper-3: #2a2a2a;
    --ink:     #f0f0ed; --ink-2:   #d0d0cc; --ink-3:   #999999;
    --rule:    #3a3a3a; --rule-dark: #555555;
    --s-ok:    #4caf50; --s-blue: #42a5f5; --s-crit: #ef5350;
    --s-warn:  #ffa726; --s-purple: #ab47bc;
    --bg-crit: rgba(239,83,80,0.10); --bg-warn: rgba(255,167,38,0.10);
    --bg-ok:   rgba(76,175,80,0.10); --bg-blue: rgba(66,165,245,0.10);
    --bg-ai:   rgba(0,191,165,0.15);
    --bg-surface: #141414;
  }

  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { background: radial-gradient(circle at top, rgba(21,101,192,0.07), transparent 38%), var(--paper); color: var(--ink); font-family: 'IBM Plex Sans Condensed', sans-serif; line-height: 1.25; font-size: 12px; padding: 18px; transition: background var(--transition), color var(--transition); }
  .container { width: min(1720px, 100%); margin: 0 auto; background: var(--bg-surface); box-shadow: 0 18px 48px rgba(0,0,0,0.12); border: 1px solid var(--rule-dark); border-radius: 18px; overflow: hidden; transition: background var(--transition), box-shadow var(--transition); }
  .font-mono { font-family: 'IBM Plex Mono', monospace; }

  .site-switcher { width: min(1720px, 100%); margin: 0 auto 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border: 1px solid var(--rule-dark); border-radius: 18px; background: var(--bg-surface); box-shadow: 0 10px 24px rgba(0,0,0,0.08); }
  .site-switcher__title { display: flex; flex-direction: column; gap: 2px; }
  .site-switcher__eyebrow { color: var(--ink-3); font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; }
  .site-switcher__heading { color: var(--ink); font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
  .dashboard-menu { position: relative; }
  .dashboard-menu[open] { z-index: 50; }
  .dashboard-menu__trigger { list-style: none; display: inline-flex; align-items: center; gap: 10px; min-height: 38px; padding: 0 14px; border: 1px solid var(--rule-dark); border-radius: 999px; background: var(--paper-2); color: var(--ink); cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
  .dashboard-menu__trigger::-webkit-details-marker { display: none; }
  .dashboard-menu__current { color: var(--s-blue); }
  .dashboard-menu__panel { position: absolute; right: 0; top: calc(100% + 8px); min-width: 220px; padding: 8px; border: 1px solid var(--rule-dark); border-radius: 14px; background: var(--bg-surface); box-shadow: 0 18px 32px rgba(0,0,0,0.14); display: grid; gap: 6px; }
  .dashboard-menu__item { display: flex; align-items: center; min-height: 38px; padding: 0 12px; border: 1px solid transparent; border-radius: 10px; color: var(--ink-2); text-decoration: none; font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
  .dashboard-menu__item:hover { border-color: var(--s-blue); color: var(--ink); background: rgba(21,101,192,0.06); }
  .dashboard-menu__item.current { border-color: var(--s-blue); color: var(--s-blue); background: rgba(21,101,192,0.10); }

  body[data-runtime="web"] [data-desktop-only="true"],
  body[data-runtime="web"] [data-action="open-google-tasks-modal"],
  body[data-runtime="web"] [data-action="open-task-sync-modal"],
  body[data-runtime="web"] [data-action="add-google-task"],
  body[data-runtime="web"] [data-action="add-synced-task"],
  body[data-runtime="web"] [data-action="send-to-agenda"],
  body[data-runtime="web"] [data-action="open-google-task-link"],
  body[data-runtime="web"] [data-action="open-synced-task-link"],
  body[data-runtime="web"] [data-action="complete-google-task"],
  body[data-runtime="web"] [data-action="complete-synced-task"] {
    display: none !important;
  }

  /* ─── MASTHEAD ──────────────────────────────────── */
  .status-band { height: 6px; background: linear-gradient(90deg, var(--s-crit) 0%, var(--s-warn) 24%, var(--s-blue) 56%, var(--s-ai) 100%); box-shadow: inset 0 -1px 0 rgba(0,0,0,0.08); }
  .masthead {
    padding: 24px;
    border-bottom: 1px solid var(--rule-dark);
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(420px, 0.88fr);
    gap: 24px;
    align-items: stretch;
    background:
      radial-gradient(circle at top right, rgba(0,191,165,0.10), transparent 30%),
      radial-gradient(circle at top left, rgba(21,101,192,0.10), transparent 38%),
      linear-gradient(180deg, var(--bg-surface) 0%, var(--paper) 100%);
    transition: background var(--transition);
  }
  .masthead-copy { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
  .masthead-eyebrow {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--s-blue);
  }
  .mh-title { font-size: clamp(28px, 3vw, 40px); font-weight: 700; text-transform: uppercase; line-height: 0.96; letter-spacing: -0.03em; max-width: 18ch; }
  .mh-meta  {
    width: fit-content;
    max-width: 100%;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border: 1px solid rgba(21,101,192,0.18);
    border-radius: 999px;
    background: rgba(255,255,255,0.72);
    font-size: 11px;
    color: var(--ink-3);
    text-transform: uppercase;
    font-weight: 600;
  }
  .masthead-highlights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .masthead-highlight {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 120px;
    padding: 16px 16px 18px;
    border: 1px solid rgba(10,10,10,0.08);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(240,240,237,0.88) 100%);
    box-shadow: 0 18px 28px rgba(0,0,0,0.07);
    overflow: hidden;
  }
  .masthead-highlight::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, var(--s-blue) 0%, var(--s-ai) 100%);
    opacity: 0.9;
  }
  .masthead-highlight__eyebrow {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink-3);
  }
  .masthead-highlight strong { font-size: 16px; line-height: 1.08; color: var(--ink); }
  .masthead-highlight__text { font-size: 12px; line-height: 1.55; color: var(--ink-2); }
  .badge { padding: 6px 14px; font-size: 12px; font-weight: 700; text-transform: uppercase; color: #fff; background: var(--s-crit); transition: background 0.3s, color 0.3s; }
  .masthead-console {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 18px;
    border: 1px solid rgba(10,10,10,0.09);
    border-radius: 22px;
    background: linear-gradient(160deg, rgba(232,232,228,0.92) 0%, rgba(255,255,255,0.98) 72%);
    box-shadow: 0 20px 30px rgba(0,0,0,0.10);
  }
  .masthead-console__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(10,10,10,0.08);
  }
  .masthead-console__eyebrow {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--s-ai);
    margin-bottom: 6px;
  }
  .masthead-console__title { font-size: 19px; font-weight: 700; color: var(--ink); line-height: 1.05; }
  .masthead-console__note { max-width: 240px; font-size: 11px; line-height: 1.55; color: var(--ink-3); text-align: right; }
  .integration-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 0;
    align-items: stretch;
  }
  .integration-panel > * { min-width: 0; }
  .btn-import {
    color: #fff;
    min-height: 48px;
    padding: 10px 14px;
    font-size: 10.5px;
    font-family: 'IBM Plex Mono', monospace;
    font-weight: 700;
    letter-spacing: 0.06em;
    cursor: pointer;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: transform 0.18s ease, box-shadow 0.18s ease, opacity 0.2s, background 0.2s, border-color 0.2s;
    border: 1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.15), 0 14px 24px rgba(0,0,0,0.10);
    text-align: center;
  }
  .btn-import:hover { opacity: 0.96; transform: translateY(-1px); }
  .btn-import.pmp    { background: linear-gradient(135deg, #11151c 0%, #2a2f37 100%); }
  .btn-import.sup    { background: linear-gradient(135deg, #1565c0 0%, #1f7ae5 100%); }
  .btn-import.pls    { background: linear-gradient(135deg, #6a1b9a 0%, #8b2fc6 100%); }
  .btn-import.planning { background: linear-gradient(135deg, #c77f28 0%, #e7a744 100%); color: #1b1206; box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 16px 24px rgba(199,127,40,0.18); }
  .btn-import.ai     { background: linear-gradient(135deg, #00bfa5 0%, #14d3b9 100%); color: var(--ink); box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 16px 28px rgba(0,191,165,0.20); animation: none; }
  .btn-import.risk-ai { background: linear-gradient(135deg, #d32f2f 0%, #f05f48 100%); }
  .btn-import.dark-toggle { background: linear-gradient(135deg, #4c5660 0%, #21262d 100%); font-size: 13px; }
  .btn-import.preview-toggle { background: rgba(21,101,192,0.06); color: var(--s-blue); border: 1px solid rgba(21,101,192,0.28); box-shadow: none; }
  .btn-import.preview-toggle.active { background: linear-gradient(135deg, #1565c0 0%, #2a84ed 100%); color: #fff; box-shadow: 0 0 0 3px rgba(21,101,192,0.14), 0 16px 24px rgba(21,101,192,0.18); }
  @keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(0,191,165,0.32)}70%{box-shadow:0 0 0 8px rgba(0,191,165,0)}100%{box-shadow:0 0 0 0 rgba(0,191,165,0)} }
  .masthead-console .api-key-status {
    width: 100%;
    min-height: 48px;
    justify-content: center;
    padding: 10px 14px;
    border-radius: 14px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 14px 24px rgba(0,0,0,0.08);
  }
  .masthead-status-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    align-items: stretch;
  }
  .masthead-status-strip > * { min-width: 0; }
  .update-marker {
    width: 100%;
    min-height: 48px;
    justify-content: center;
    background: var(--bg-crit);
    color: var(--s-crit);
    border: 1px solid rgba(211,47,47,0.28);
    padding: 8px 12px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-align: center;
    line-height: 1.4;
  }
  .update-marker.synced { background: var(--bg-ok); color: var(--s-ok); border-color: rgba(46,125,50,0.26); }

  body.preview-mobile {
    background:
      radial-gradient(circle at top, rgba(21,101,192,0.12), transparent 30%),
      linear-gradient(180deg, #dbe3eb 0%, #eef1f4 100%);
  }
  body.preview-mobile .container {
    width: min(430px, calc(100vw - 24px));
    border-radius: 28px;
    box-shadow:
      0 0 0 10px #0d1115,
      0 0 0 12px #2b3138,
      0 30px 80px rgba(0,0,0,0.32);
  }
  body.preview-mobile .status-band { height: 4px; }
  body.preview-mobile .layout { grid-template-columns: 1fr; }
  body.preview-mobile .sidebar {
    position: static;
    max-height: none;
    overflow: visible;
    border-right: none;
    border-bottom: 1px solid var(--rule-dark);
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 14px;
  }
  body.preview-mobile .main { padding: 14px; gap: 14px; }
  body.preview-mobile .masthead { padding: 18px 16px; grid-template-columns: 1fr; gap: 16px; }
  body.preview-mobile .mh-title { font-size: 20px; line-height: 1.1; }
  body.preview-mobile .mh-meta { width: 100%; border-radius: 16px; }
  body.preview-mobile .masthead-highlights { grid-template-columns: 1fr; }
  body.preview-mobile .masthead-console { padding: 16px; }
  body.preview-mobile .masthead-console__head { flex-direction: column; }
  body.preview-mobile .masthead-console__note { max-width: none; text-align: left; }
  body.preview-mobile .integration-panel { width: 100%; grid-template-columns: 1fr; }
  body.preview-mobile .masthead-status-strip { grid-template-columns: 1fr; }
  body.preview-mobile .btn-import,
  body.preview-mobile .update-marker,
  body.preview-mobile .api-key-status { width: 100%; justify-content: center; }
  body.preview-mobile .filters-bar { padding: 10px 12px; gap: 8px; }
  body.preview-mobile #filterPeriod { width: 100% !important; }
  body.preview-mobile .table-wrapper { max-height: none; }
  body.preview-mobile .ai-kanban-input-wrap,
  body.preview-mobile .calc-row,
  body.preview-mobile .btn-calc-group { flex-direction: column; align-items: stretch; }
  body.preview-mobile .ai-kanban-grid,
  body.preview-mobile .calc-grid,
  body.preview-mobile .ai-chat-wrap,
  body.preview-mobile .evm-grid { grid-template-columns: 1fr; }
  body.preview-mobile .ai-kanban-grid { padding: 14px; }
  body.preview-mobile .ai-chat-controls { border-left: none; border-top: 1px solid var(--rule); }
  body.preview-mobile .sec-head { flex-direction: column; align-items: flex-start; gap: 8px; }
  body.preview-mobile .footer { flex-direction: column; gap: 8px; padding: 14px 16px; }

  @media (max-width: 720px) {
    .site-switcher { margin-bottom: 10px; padding: 10px 12px; gap: 8px; flex-wrap: wrap; border-radius: 14px; }
    .site-switcher__heading { font-size: 13px; }
    .dashboard-menu { width: 100%; }
    .dashboard-menu__trigger { width: 100%; justify-content: space-between; }
    .dashboard-menu__panel { left: 0; right: 0; min-width: 0; }
  }

  /* ─── LAYOUT ────────────────────────────────────── */
  .layout { display: grid; grid-template-columns: minmax(320px, 360px) minmax(0, 1fr); min-height: 85vh; align-items: start; }
  .sidebar { background: linear-gradient(180deg, var(--paper-2), var(--paper)); border-right: 1px solid var(--rule-dark); padding: 20px; display: flex; flex-direction: column; gap: 20px; transition: background var(--transition); position: sticky; top: 18px; max-height: calc(100vh - 36px); overflow-y: auto; }
  .sb-group { display: flex; flex-direction: column; }
  .sb-label { font-size: 13px; text-transform: uppercase; color: var(--ink); font-weight: 700; margin-bottom: 10px; border-bottom: 2px solid var(--ink); padding-bottom: 4px; display: flex; justify-content: space-between; align-items: center; }
  .sb-data-row { display: flex; justify-content: space-between; margin-bottom: 6px; font-size: 12.5px; align-items: baseline; }
  .sb-data-val { font-weight: 700; font-size: 14px; font-family: 'IBM Plex Mono', monospace; }
  .pg-bar-wrap { width: 100%; height: 10px; background: var(--rule); margin: 6px 0 12px 0; position: relative; border: 1px solid var(--rule-dark); }
  .pg-bar-fill { height: 100%; background: var(--s-crit); width: 49.01%; transition: width 0.5s; }
  .pg-bar-target { position: absolute; top: -4px; bottom: -4px; width: 3px; background: var(--ink); z-index: 2; }
  .fin-box { background: var(--bg-surface); border: 1px solid var(--rule); padding: 10px; margin-bottom: 8px; border-left: 5px solid var(--rule); position: relative; }
  .fin-box.total { border-left-color: var(--s-blue); }
  .fin-box.gap   { border-left-color: var(--s-crit); background: var(--bg-crit); }
  .fin-box.target { border-left-color: var(--s-ok); background: var(--bg-ok); }
  .fin-box.hist  { border-left-color: var(--s-purple); background: rgba(106,27,154,0.04); }
  .fin-title { font-weight: 700; font-size: 10.5px; text-transform: uppercase; margin-bottom: 2px; color: var(--ink-2); }
  .fin-val   { font-family: 'IBM Plex Mono', monospace; font-size: 18px; font-weight: 700; margin-bottom: 2px; color: var(--ink); transition: color 0.3s; }
  .fin-box.gap .fin-val    { color: var(--s-crit); }
  .fin-box.target .fin-val { color: var(--s-ok); }
  .fin-box.hist .fin-val   { color: var(--s-purple); }
  .history-selector { position: absolute; top: 10px; right: 10px; font-size: 9px; padding: 2px; border: 1px solid var(--s-purple); color: var(--s-purple); outline: none; border-radius: 2px; font-weight: 700; background: var(--bg-surface); }

  /* ─── SIDEBAR PANELS ────────────────────────────── */
  .planner-container { background: var(--bg-surface); border: 1px solid var(--rule); padding: 12px; border-radius: 2px; }
  .planner-input { width: 100%; padding: 8px 10px; margin-bottom: 8px; font-size: 11.5px; font-family: 'IBM Plex Sans Condensed', sans-serif; border: 1px solid var(--rule-dark); outline: none; border-radius: 2px; background: var(--paper); color: var(--ink); }
  .planner-row { display: flex; gap: 8px; }
  .planner-select { padding: 6px; font-size: 11px; border: 1px solid var(--rule-dark); font-family: 'IBM Plex Sans Condensed', sans-serif; border-radius: 2px; outline: none; background: var(--bg-surface); color: var(--ink); font-weight: 600; }
  .planner-btn { flex: 1; background: var(--ink); color: var(--paper); border: none; padding: 6px; font-weight: 700; cursor: pointer; font-size: 11px; border-radius: 2px; text-transform: uppercase; }
  .planner-item { background: var(--bg-surface); padding: 10px; font-size: 11px; display: flex; justify-content: space-between; align-items: center; border-radius: 0 2px 2px 0; border: 1px solid var(--rule); border-left-width: 4px; margin-bottom: 6px; }
  .planner-item.alta  { border-left-color: var(--s-crit); }
  .planner-item.media { border-left-color: var(--s-warn); }
  .planner-item.baixa { border-left-color: var(--s-ok); }
  .planner-item.done  { opacity: 0.5; background: var(--paper-2); border-left-color: var(--rule-dark); text-decoration: line-through; }
  .gtask-container { background: var(--bg-surface); border: 1px solid var(--rule); padding: 10px; }
  .task-sync-provider-row { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
  .task-sync-provider-row label { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--ink-3); }
  .task-sync-provider-select { flex: 1; padding: 6px 8px; font-size: 10px; border: 1px solid var(--rule-dark); font-family: 'IBM Plex Mono', monospace; border-radius: 2px; background: var(--paper); color: var(--ink); }
  .gtask-input { width: 100%; padding: 6px; margin-bottom: 6px; font-size: 11px; font-family: 'IBM Plex Sans Condensed', sans-serif; border: 1px solid var(--rule-dark); outline: none; border-radius: 2px; background: var(--paper); color: var(--ink); }
  .gtask-row { display: flex; gap: 6px; margin-bottom: 6px; }
  .gtask-row input { flex: 1; padding: 4px 6px; font-size: 10px; border: 1px solid var(--rule-dark); font-family: 'IBM Plex Mono', monospace; border-radius: 2px; background: var(--paper); color: var(--ink); }
  .gtask-btn { width: 100%; background: var(--s-blue); color: #fff; border: none; padding: 8px; font-weight: 700; cursor: pointer; font-size: 10px; border-radius: 2px; font-family: 'IBM Plex Sans Condensed', sans-serif; text-transform: uppercase; }
  .gtask-btn.secondary { background: var(--ink-2); }
  .google-tasks-inline-actions { display: flex; gap: 6px; }
  .google-tasks-hint { margin-top: 8px; font-size: 10px; color: var(--ink-3); line-height: 1.45; }
  .google-tasks-list { min-height: 24px; }
  .google-tasks-badge { display: inline-flex; align-items: center; gap: 6px; font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 700; padding: 3px 8px; border-radius: 999px; cursor: pointer; border: 1px solid var(--rule-dark); }
  .google-tasks-badge.connected { background: var(--bg-ok); color: var(--s-ok); border-color: var(--s-ok); }
  .google-tasks-badge.partial { background: var(--bg-warn); color: #8a5a00; border-color: var(--s-warn); }
  .google-tasks-badge.not-set { background: var(--bg-crit); color: var(--s-crit); border-color: var(--s-crit); }
  .task-item { background: var(--paper); border-left: 3px solid var(--s-blue); padding: 8px; font-size: 10px; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--rule); border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); margin-bottom: 6px; gap: 10px; }
  .task-item-meta { color: var(--ink-3); line-height: 1.4; margin-top: 2px; }

  /* ─── RISK PANEL (SIDEBAR) ──────────────────────── */
  .risk-panel { background: var(--bg-surface); border: 1px solid var(--rule-dark); padding: 12px; border-radius: 2px; }
  .risk-item { display: flex; gap: 8px; align-items: flex-start; padding: 8px 0; border-bottom: 1px solid var(--rule); font-size: 11px; }
  .risk-item:last-child { border-bottom: none; }
  .risk-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; margin-top: 2px; }
  .risk-dot.crit { background: var(--s-crit); }
  .risk-dot.warn { background: var(--s-warn); }
  .risk-dot.ok   { background: var(--s-ok); }
  .risk-text { color: var(--ink-2); line-height: 1.4; }
  .risk-load { display: flex; align-items: center; gap: 8px; padding: 8px; background: var(--bg-ai); border: 1px solid var(--s-ai); border-radius: 2px; font-size: 11px; color: var(--s-ai); font-weight: 700; cursor: pointer; }

  /* ─── MAIN AREA ─────────────────────────────────── */
  .main { padding: 24px; display: flex; flex-direction: column; gap: 24px; background: var(--bg-surface); overflow-x: hidden; }
  section { border: 1px solid var(--rule-dark); box-shadow: 0 10px 28px rgba(0,0,0,0.05); border-radius: 14px; overflow: hidden; }
  .sec-head { font-size: 14px; font-weight: 700; text-transform: uppercase; border-bottom: 1px solid var(--rule-dark); padding: 10px 16px; color: var(--paper); background: var(--ink); display: flex; justify-content: space-between; align-items: center; }
  .tag { font-size: 10.5px; padding: 3px 6px; font-weight: 700; text-transform: uppercase; color: #fff; font-family: 'IBM Plex Mono', monospace; letter-spacing: 0.5px; }
  .tag.crit   { background: var(--s-crit); }
  .tag.warn   { background: var(--s-warn); }
  .tag.ok     { background: var(--s-ok); }
  .tag.blue   { background: var(--s-blue); }
  .tag.purple { background: var(--s-purple); }
  .gantt-brief { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 16px; background: linear-gradient(180deg, color-mix(in srgb, var(--s-blue) 7%, white), transparent); border-bottom: 1px solid var(--rule); }
  .gantt-brief-card { position: relative; overflow: hidden; min-height: 108px; padding: 16px; border: 1px solid var(--rule); border-radius: 14px; background: linear-gradient(180deg, var(--bg-surface), var(--paper)); box-shadow: inset 0 1px 0 rgba(255,255,255,0.6); }
  .gantt-brief-card::after { content: ""; position: absolute; inset: auto -20% -38px auto; width: 90px; height: 90px; border-radius: 50%; opacity: 0.15; }
  .gantt-brief-card.primary { border-top: 4px solid var(--s-blue); }
  .gantt-brief-card.primary::after { background: var(--s-blue); }
  .gantt-brief-card.critical { border-top: 4px solid var(--s-crit); }
  .gantt-brief-card.critical::after { background: var(--s-crit); }
  .gantt-brief-card.money { border-top: 4px solid var(--s-ok); }
  .gantt-brief-card.money::after { background: var(--s-ok); }
  .gantt-brief-card.sync { border-top: 4px solid var(--s-purple); }
  .gantt-brief-card.sync::after { background: var(--s-purple); }
  .gantt-brief-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-3); margin-bottom: 10px; font-family: 'IBM Plex Mono', monospace; }
  .gantt-brief-value { position: relative; z-index: 1; font-family: 'IBM Plex Mono', monospace; font-size: 26px; font-weight: 700; color: var(--ink); line-height: 1; }
  .gantt-brief-sub { position: relative; z-index: 1; margin-top: 10px; font-size: 11px; color: var(--ink-2); line-height: 1.4; max-width: 24ch; }
  .gantt-command-strip { display: grid; grid-template-columns: 1.2fr 1fr 1.1fr; gap: 10px; padding: 0 16px 16px; background: linear-gradient(180deg, color-mix(in srgb, var(--s-blue) 7%, white), transparent); border-bottom: 1px solid var(--rule); }
.gantt-command-item { padding: 14px 16px; border: 1px solid var(--rule); border-radius: 12px; background: var(--bg-surface); display: flex; flex-direction: column; gap: 6px; box-shadow: 0 6px 16px rgba(0,0,0,0.04); }
.gantt-command-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-3); font-family: 'IBM Plex Mono', monospace; }
.gantt-command-item strong { font-size: 13px; color: var(--ink); line-height: 1.35; }
.gantt-audit { margin: 0 16px 16px; padding: 16px; border: 1px solid rgba(21,101,192,0.18); border-radius: 14px; background: linear-gradient(180deg, rgba(243,248,255,0.98), rgba(255,255,255,0.98)); box-shadow: 0 8px 20px rgba(21,101,192,0.06); }
.gantt-audit__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.gantt-audit__eyebrow { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--s-blue); font-family: 'IBM Plex Mono', monospace; margin-bottom: 4px; }
.gantt-audit__title { font-size: 15px; font-weight: 800; color: var(--ink); }
.gantt-audit__badge { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 999px; background: rgba(21,101,192,0.08); color: var(--s-blue); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; white-space: nowrap; }
.gantt-audit__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.gantt-audit-card { min-height: 110px; padding: 12px 14px; border: 1px solid rgba(21,101,192,0.12); border-radius: 12px; background: rgba(255,255,255,0.92); }
.gantt-audit-card__label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-3); font-family: 'IBM Plex Mono', monospace; margin-bottom: 8px; }
.gantt-audit-card__value { font-size: 24px; font-weight: 800; line-height: 1; color: var(--ink); }
.gantt-audit-card__sub { margin-top: 8px; font-size: 11px; color: var(--ink-2); line-height: 1.45; }
.gantt-audit__findings { display: grid; gap: 10px; margin-top: 12px; }
.gantt-audit__empty { padding: 12px 14px; border: 1px dashed rgba(21,101,192,0.22); border-radius: 12px; background: rgba(255,255,255,0.72); color: var(--ink-2); font-size: 12px; line-height: 1.5; }
.gantt-audit-finding { display: grid; gap: 6px; padding: 12px 14px; border: 1px solid rgba(21,101,192,0.12); border-left: 4px solid var(--s-blue); border-radius: 12px; background: rgba(255,255,255,0.96); }
.gantt-audit-finding.is-crit { border-left-color: var(--s-crit); }
.gantt-audit-finding.is-warn { border-left-color: var(--s-warn); }
.gantt-audit-finding.is-ok { border-left-color: var(--s-ok); }
.gantt-audit-finding.is-blocked { border-left-color: var(--ink-3); }
.gantt-audit-finding__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.gantt-audit-finding__title { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink); }
.gantt-audit-finding__flag { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border-radius: 999px; background: rgba(21,101,192,0.08); color: var(--s-blue); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; }
.gantt-audit-finding__flag.is-crit { background: rgba(198,40,40,0.08); color: var(--s-crit); }
.gantt-audit-finding__flag.is-warn { background: rgba(245,124,0,0.08); color: var(--s-warn); }
.gantt-audit-finding__flag.is-ok { background: rgba(46,125,50,0.08); color: var(--s-ok); }
.gantt-audit-finding__flag.is-blocked { background: rgba(66,66,66,0.08); color: var(--ink-3); }
.gantt-audit-finding__body { font-size: 12px; color: var(--ink-2); line-height: 1.5; }
.gantt-audit-finding__evidence { font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--ink-3); line-height: 1.45; }

/* ─── SUPPLY INTELLIGENCE ───────────────────────── */
.supply-shell { background: linear-gradient(180deg, color-mix(in srgb, var(--s-blue) 5%, white), color-mix(in srgb, var(--s-warn) 4%, white)); }
.supply-brief { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 16px; border-bottom: 1px solid var(--rule); }
.supply-brief-card { position: relative; overflow: hidden; min-height: 112px; padding: 16px; border: 1px solid var(--rule); border-radius: 14px; background: linear-gradient(180deg, var(--bg-surface), var(--paper)); box-shadow: inset 0 1px 0 rgba(255,255,255,0.6); }
.supply-brief-card::after { content: ""; position: absolute; inset: auto -18% -42px auto; width: 94px; height: 94px; border-radius: 50%; opacity: 0.14; }
.supply-brief-card.urgent { border-top: 4px solid var(--s-warn); }
.supply-brief-card.urgent::after { background: var(--s-warn); }
.supply-brief-card.critical { border-top: 4px solid var(--s-crit); }
.supply-brief-card.critical::after { background: var(--s-crit); }
.supply-brief-card.money { border-top: 4px solid var(--s-blue); }
.supply-brief-card.money::after { background: var(--s-blue); }
.supply-brief-card.chain { border-top: 4px solid var(--s-purple); }
.supply-brief-card.chain::after { background: var(--s-purple); }
.supply-brief-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-3); margin-bottom: 10px; font-family: 'IBM Plex Mono', monospace; }
.supply-brief-value { position: relative; z-index: 1; font-family: 'IBM Plex Mono', monospace; font-size: 24px; font-weight: 700; color: var(--ink); line-height: 1.05; }
.supply-brief-sub { position: relative; z-index: 1; margin-top: 10px; font-size: 11px; color: var(--ink-2); line-height: 1.45; max-width: 28ch; }
.supply-command-strip,
.supply-meta-strip { display: grid; gap: 10px; padding: 0 16px 16px; }
.supply-command-strip { grid-template-columns: 1.1fr 1fr 1.2fr; border-bottom: 1px solid var(--rule); }
.supply-meta-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.supply-command-item,
.supply-meta-item { padding: 14px 16px; border: 1px solid var(--rule); border-radius: 12px; background: var(--bg-surface); display: flex; flex-direction: column; gap: 6px; box-shadow: 0 6px 16px rgba(0,0,0,0.04); }
.supply-command-item strong,
.supply-meta-item strong { font-size: 13px; color: var(--ink); line-height: 1.4; }
.supply-tabs { display: flex; flex-wrap: wrap; gap: 10px; padding: 0 16px 16px; }
.supply-tab { min-height: 38px; padding: 0 14px; border: 1px solid var(--rule-dark); border-radius: 999px; background: rgba(255,255,255,0.68); color: var(--ink-2); cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease; }
.supply-tab:hover { transform: translateY(-1px); border-color: var(--s-blue); color: var(--ink); }
.supply-tab.is-active { background: linear-gradient(135deg, #0f172a 0%, #1f5fbf 100%); border-color: rgba(15,23,42,0.82); color: #fff; box-shadow: 0 10px 18px rgba(21,101,192,0.16); }
.supply-view { padding: 0 16px 16px; }
.supply-view-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 12px; }
.supply-view-grid-chain { grid-template-columns: 1fr 0.9fr; }
.supply-panel { border: 1px solid var(--rule); border-radius: 14px; background: var(--bg-surface); overflow: hidden; box-shadow: 0 10px 24px rgba(0,0,0,0.05); }
.supply-panel-full { width: 100%; }
.supply-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--rule); background: linear-gradient(180deg, var(--paper-2), var(--bg-surface)); font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--ink); }
.supply-empty-state { padding: 18px 16px; font-size: 12px; color: var(--ink-3); line-height: 1.6; }
.supply-alert-list,
.supply-strategy-list,
.supply-chain-list,
.supply-unlinked-list { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px 16px; }
.supply-alert-item,
.supply-strategy-item,
.supply-chain-card,
.supply-unlinked-item,
.supply-risk-card { border: 1px solid var(--rule); border-radius: 12px; padding: 12px 14px; background: linear-gradient(180deg, var(--bg-surface), var(--paper)); box-shadow: inset 0 1px 0 rgba(255,255,255,0.55); }
.supply-alert-item { border-left: 4px solid var(--s-blue); }
.supply-alert-item.tone-crit,
.supply-risk-card.tone-crit { border-left-color: var(--s-crit); background: linear-gradient(180deg, color-mix(in srgb, var(--s-crit) 8%, white), var(--bg-surface)); }
.supply-alert-item.tone-warn,
.supply-risk-card.tone-warn { border-left-color: var(--s-warn); background: linear-gradient(180deg, color-mix(in srgb, var(--s-warn) 10%, white), var(--bg-surface)); }
.supply-alert-item.tone-ok,
.supply-risk-card.tone-ok { border-left-color: var(--s-ok); }
.supply-alert-top,
.supply-risk-top { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.supply-alert-title,
.supply-risk-title { font-size: 13px; font-weight: 700; color: var(--ink); line-height: 1.35; }
.supply-alert-meta,
.supply-alert-impact,
.supply-risk-meta,
.supply-unlinked-item span { margin-top: 6px; font-size: 11px; color: var(--ink-2); line-height: 1.55; }
.supply-alert-badge,
.supply-pill { white-space: nowrap; padding: 4px 8px; border-radius: 999px; font-size: 9px; font-family: 'IBM Plex Mono', monospace; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; border: 1px solid transparent; }
.supply-alert-badge.tone-crit,
.supply-pill.tone-crit { background: color-mix(in srgb, var(--s-crit) 16%, white); color: var(--s-crit); border-color: rgba(211,47,47,0.2); }
.supply-alert-badge.tone-warn,
.supply-pill.tone-warn { background: color-mix(in srgb, var(--s-warn) 16%, white); color: #8a5a00; border-color: rgba(245,124,0,0.22); }
.supply-alert-badge.tone-ok,
.supply-pill.tone-ok { background: color-mix(in srgb, var(--s-ok) 14%, white); color: var(--s-ok); border-color: rgba(46,125,50,0.18); }
.supply-alert-badge.tone-info,
.supply-pill.tone-info { background: color-mix(in srgb, var(--s-blue) 14%, white); color: var(--s-blue); border-color: rgba(21,101,192,0.18); }
.supply-strategy-item strong,
.supply-chain-card strong,
.supply-unlinked-item strong { font-size: 12px; color: var(--ink); display: block; margin-bottom: 4px; }
.supply-strategy-item p,
.supply-chain-card p,
.supply-unlinked-item p { margin: 0; font-size: 11px; color: var(--ink-2); line-height: 1.55; }
.supply-strategy-tag-row,
.supply-chain-stats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.supply-chain-stats .supply-pill { background: var(--paper-2); color: var(--ink-2); border-color: var(--rule); }
.supply-table-wrap { overflow-x: auto; background: var(--paper); }
.supply-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 11px; }
.supply-table th { position: sticky; top: 0; z-index: 4; text-align: left; padding: 10px 8px; border-bottom: 2px solid var(--ink); font-size: 10px; color: var(--ink-2); text-transform: uppercase; letter-spacing: 0.05em; font-weight: 700; background: var(--paper-3); white-space: nowrap; }
.supply-table td { padding: 10px 8px; border-bottom: 1px solid var(--rule); vertical-align: top; background: var(--bg-surface); color: var(--ink); }
.supply-table tr:hover td { background: var(--paper-2); }
.supply-table-empty { text-align: center; color: var(--ink-3); padding: 18px 12px !important; }
.supply-cell-title { font-size: 12px; font-weight: 700; color: var(--ink); line-height: 1.35; }
.supply-cell-sub { display: block; margin-top: 4px; font-size: 10px; color: var(--ink-3); line-height: 1.45; }
.supply-cell-impact { font-size: 11px; color: var(--ink-2); line-height: 1.5; }
.supply-risk-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0 16px 16px; }
.supply-risk-card { border-left: 4px solid var(--s-blue); }
.supply-risk-impact { margin-top: 10px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.supply-impact-box { padding: 10px; border: 1px solid var(--rule); border-radius: 10px; background: rgba(255,255,255,0.7); }
.supply-impact-box span { display: block; font-size: 9px; color: var(--ink-3); text-transform: uppercase; font-family: 'IBM Plex Mono', monospace; letter-spacing: 0.08em; margin-bottom: 4px; }
.supply-impact-box strong { font-size: 13px; color: var(--ink); line-height: 1.25; }

/* ─── AI KANBAN ─────────────────────────────────── */
.ai-kanban-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; padding: 16px; background: var(--paper-2); }
.ai-kanban-input-wrap { background: var(--bg-surface); padding: 16px; border-bottom: 1px solid var(--rule); display: flex; gap: 12px; align-items: center; }
.ai-kanban-hint { display: flex; align-items: center; gap: 8px; padding: 0 16px 14px; background: var(--bg-surface); border-bottom: 1px solid var(--rule); font-size: 11px; color: var(--ink-3); }
.kanban-alerts { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; background: color-mix(in srgb, var(--s-blue) 10%, white); border-bottom: 1px solid var(--rule); }
.kanban-alerts.is-clear { background: color-mix(in srgb, var(--s-ok) 10%, white); }
.kanban-alerts.is-active { background: color-mix(in srgb, var(--s-warn) 12%, white); }
.kanban-alerts.is-overdue { background: color-mix(in srgb, var(--s-crit) 12%, white); }
.kanban-alerts-summary { display: flex; align-items: flex-start; gap: 10px; }
.kanban-alerts-summary i { font-size: 16px; margin-top: 2px; color: var(--ink); }
.kanban-alerts-summary strong { display: block; font-size: 12px; text-transform: uppercase; color: var(--ink); }
.kanban-alerts-summary span { display: block; margin-top: 2px; font-size: 11px; color: var(--ink-2); }
.kanban-alert-items { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; }
.kanban-alert-item { display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; border: 1px solid var(--rule-dark); background: rgba(255,255,255,0.8); border-radius: 6px; }
.kanban-alert-item-main { min-width: 0; }
.kanban-alert-item-main strong { display: block; font-size: 11px; color: var(--ink); line-height: 1.35; }
.kanban-alert-item-main span { display: block; margin-top: 4px; font-size: 10px; color: var(--ink-3); }
.kanban-alert-item-tag { white-space: nowrap; align-self: center; padding: 4px 8px; border-radius: 999px; font-size: 9px; font-family: 'IBM Plex Mono', monospace; font-weight: 700; text-transform: uppercase; }
.kanban-alert-item.is-overdue .kanban-alert-item-tag { background: color-mix(in srgb, var(--s-crit) 18%, white); color: var(--s-crit); }
.kanban-alert-item.is-today .kanban-alert-item-tag { background: color-mix(in srgb, var(--s-warn) 20%, white); color: #8a5a00; }
.kanban-alert-item.is-soon .kanban-alert-item-tag { background: color-mix(in srgb, var(--s-blue) 18%, white); color: var(--s-blue); }
.ai-input { flex: 1; padding: 12px; font-size: 14px; border: 2px solid var(--rule); border-radius: 4px; outline: none; font-family: 'IBM Plex Sans Condensed', sans-serif; background: var(--paper); color: var(--ink); transition: border-color 0.2s; }
.ai-input:focus,
.ai-date-input:focus { border-color: var(--s-ai); }
.ai-date-input { min-width: 168px; padding: 11px 12px; font-size: 13px; border: 2px solid var(--rule); border-radius: 4px; outline: none; font-family: 'IBM Plex Mono', monospace; background: var(--paper); color: var(--ink); transition: border-color 0.2s; }
.ai-btn-add { background: var(--s-ai); color: var(--ink); border: none; padding: 12px 24px; font-weight: 700; font-size: 13px; cursor: pointer; border-radius: 4px; display: flex; align-items: center; gap: 8px; transition: 0.2s; text-transform: uppercase; }
.ai-btn-add:hover { background: #009688; color: #fff; }
.ai-btn-add.loading { opacity: 0.7; cursor: wait; }
.ai-col { background: var(--paper); border: 1px solid var(--rule); display: flex; flex-direction: column; min-height: 200px; border-radius: 4px; overflow: hidden; }
.ai-col-head { padding: 10px; font-size: 12px; font-weight: 700; text-transform: uppercase; color: #fff; text-align: center; }
  .ai-col-log   .ai-col-head { background: var(--s-warn); }
  .ai-col-campo .ai-col-head { background: var(--s-blue); }
.ai-col-qual  .ai-col-head { background: var(--s-ok); }
.ai-col-adm   .ai-col-head { background: var(--ink-3); }
.ai-col-body { padding: 10px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.ai-task-card { background: var(--bg-surface); border: 1px solid var(--rule); padding: 10px; font-size: 12px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); border-radius: 2px; position: relative; padding-left: 12px; display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; transition: opacity 0.2s; }
.ai-col-log   .ai-task-card { border-left: 4px solid var(--s-warn); }
.ai-col-campo .ai-task-card { border-left: 4px solid var(--s-blue); }
.ai-col-qual  .ai-task-card { border-left: 4px solid var(--s-ok); }
.ai-col-adm   .ai-task-card { border-left: 4px solid var(--ink-3); }
.ai-task-main { flex: 1; min-width: 0; }
.ai-task-text { font-weight: 600; line-height: 1.3; }
.ai-task-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ai-task-deadline { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 999px; font-size: 10px; font-family: 'IBM Plex Mono', monospace; font-weight: 700; border: 1px solid var(--rule-dark); color: var(--ink-3); background: var(--paper-3); }
.ai-task-criticality { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 999px; font-size: 10px; font-family: 'IBM Plex Mono', monospace; font-weight: 700; border: 1px solid var(--rule-dark); color: var(--ink-3); background: rgba(255,255,255,0.72); }
.ai-task-deadline.is-empty { opacity: 0.78; }
.ai-task-deadline.is-ok { color: var(--s-ok); border-color: color-mix(in srgb, var(--s-ok) 55%, white); background: color-mix(in srgb, var(--s-ok) 12%, white); }
.ai-task-deadline.is-soon { color: #8a5a00; border-color: color-mix(in srgb, var(--s-warn) 55%, white); background: color-mix(in srgb, var(--s-warn) 20%, white); }
.ai-task-deadline.is-overdue { color: var(--s-crit); border-color: color-mix(in srgb, var(--s-crit) 55%, white); background: color-mix(in srgb, var(--s-crit) 14%, white); }
.ai-task-criticality.is-neutral { color: var(--ink-3); }
.ai-task-criticality.is-soon { color: var(--s-blue); border-color: color-mix(in srgb, var(--s-blue) 55%, white); background: color-mix(in srgb, var(--s-blue) 12%, white); }
.ai-task-criticality.is-today { color: #8a5a00; border-color: color-mix(in srgb, var(--s-warn) 55%, white); background: color-mix(in srgb, var(--s-warn) 20%, white); }
.ai-task-criticality.is-overdue { color: var(--s-crit); border-color: color-mix(in srgb, var(--s-crit) 55%, white); background: color-mix(in srgb, var(--s-crit) 14%, white); }
.ai-task-criticality.is-done { color: var(--s-ok); border-color: color-mix(in srgb, var(--s-ok) 55%, white); background: color-mix(in srgb, var(--s-ok) 12%, white); }
.ai-task-card.is-done .ai-task-deadline { opacity: 0.72; }
.ai-task-card.is-done .ai-task-criticality { opacity: 0.72; }
.ai-task-actions { display: flex; gap: 8px; }
.ai-task-actions i { font-size: 14px; }
.action-icon { cursor: pointer; opacity: 0.72; transition: opacity 0.18s ease, transform 0.18s ease; }
.action-icon:hover { opacity: 1; transform: translateY(-1px); }
.kanban-save-indicator {
  width: 100%;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 10px;
  color: var(--s-ok);
  background: var(--bg-ok);
  font-family: 'IBM Plex Mono', monospace;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 8px 12px;
  border: 1px solid rgba(46,125,50,0.26);
  border-radius: 14px;
  opacity: 0;
  transition: opacity 0.5s;
}
  .kanban-save-indicator.visible { opacity: 1; }

  /* ─── FILTER / TABLE ─────────────────────────────── */
  .filters-bar { display: flex; gap: 12px; padding: 12px 16px; background: var(--paper-2); border-bottom: 1px solid var(--rule); align-items: center; flex-wrap: wrap; }
  .filter-input  { padding: 6px 10px; border: 1px solid var(--rule-dark); font-family: 'IBM Plex Sans Condensed', sans-serif; font-size: 12px; outline: none; background: var(--bg-surface); color: var(--ink); }
  .filter-select { padding: 6px 10px; border: 1px solid var(--rule-dark); font-family: 'IBM Plex Sans Condensed', sans-serif; font-size: 12px; outline: none; background: var(--bg-surface); color: var(--ink); cursor: pointer; }
  .btn-filter { background: var(--ink-2); color: var(--paper); border: none; padding: 6px 12px; font-weight: 600; cursor: pointer; font-family: 'IBM Plex Sans Condensed', sans-serif; display: flex; align-items: center; gap: 6px; }
  .btn-filter.active { background: var(--s-warn); color: #fff; }
  .table-wrapper { overflow-x: auto; max-height: 55vh; overflow-y: auto; background: var(--paper); }
  table.sched-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 11px; }
  table.sched-table th { text-align: left; padding: 8px 6px; border-bottom: 2px solid var(--ink); font-size: 10.5px; color: var(--ink-2); text-transform: uppercase; font-weight: 700; background: var(--paper-3); white-space: nowrap; position: sticky; top: 0; z-index: 10; }
  table.sched-table td { padding: 5px 6px; border-bottom: 1px solid var(--rule); vertical-align: middle; background: var(--bg-surface); }
  table.sched-table tr:hover td { background: var(--paper-2); }
  .row-crit td { background: var(--bg-crit); }
  .row-done td { background: var(--paper-3) !important; color: var(--ink-3) !important; }
  .row-done .td-ativ { text-decoration: line-through; opacity: 0.7; }
  .macro-row { cursor: pointer; }
  .macro-row:hover td { background: var(--bg-blue) !important; }
  .macro-row td { background: var(--paper-2); font-weight: 700; color: var(--s-blue); border-bottom: 2px solid var(--rule); }
  .macro-icon { width: 22px; text-align: center; color: var(--s-blue); transition: transform 0.2s; }
  .child-row .td-id { position: relative; padding-left: 20px; font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; color: var(--ink-3); font-weight: 600; width: 60px; }
  .child-row .td-id::before { content: "└"; position: absolute; left: 6px; top: 5px; color: var(--rule-dark); font-size: 12px; }
  .macro-collapsed { display: none !important; }
  .td-pls  { font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--s-purple); font-weight: 700; background: rgba(106,27,154,0.08); padding: 2px 4px; border-radius: 2px; text-align: center; }
  .td-ativ { font-weight: 600; color: var(--ink); min-width: 260px; line-height: 1.2; }
  .th-sync,
  .td-sync { width: 68px; min-width: 68px; text-align: center !important; }
  .gantt-sync-btn { width: 34px; height: 28px; border: 1px solid var(--rule-dark); border-radius: 8px; background: var(--paper); color: var(--s-blue); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease, color 0.18s ease; }
  .gantt-sync-btn:hover { transform: translateY(-1px); border-color: currentColor; background: var(--bg-blue); }
  .gantt-sync-btn i { font-size: 14px; }
  .td-fin  { font-family: 'IBM Plex Mono', monospace; font-weight: 700; color: var(--s-ok); text-align: right; min-width: 90px; font-size: 11.5px; }
  .td-ptl  { font-size: 10px; color: var(--ink-3); font-weight: 600; min-width: 160px; line-height: 1.1; border-left: 2px solid var(--rule); }
  .th-week { text-align: center !important; font-size: 10px !important; width: 45px; padding: 4px 2px !important; border-left: 1px dotted var(--rule-dark); }
  .td-week { width: 45px; padding: 2px !important; border-left: 1px dotted var(--rule); text-align: center; }

  /* ─── DAY VIEW ───────────────────────────────────── */
  .th-day { text-align: center !important; font-size: 9px !important; width: 22px; min-width: 22px; padding: 2px 1px !important; border-left: 1px dotted var(--rule); color: var(--ink-3); font-weight: 600; white-space: nowrap; }
  .th-day.weekend { background: var(--paper-3) !important; color: var(--rule-dark) !important; }
  .th-day.today   { background: #fffde7 !important; color: var(--s-warn) !important; font-weight: 700 !important; border-left: 2px solid var(--s-warn) !important; }
  .td-day { width: 22px; min-width: 22px; padding: 1px !important; border-left: 1px dotted var(--rule); text-align: center; }
  .td-day.weekend { background: var(--paper-3) !important; }
  .td-day.today   { background: #fffde7 !important; border-left: 2px solid var(--s-warn) !important; }
  .td-day.bar-start { border-radius: 3px 0 0 3px; }
  .td-day.bar-end   { border-radius: 0 3px 3px 0; }
  .day-bar { height: 16px; border-radius: 3px; background: var(--s-blue); display: block; width: 100%; }
  .day-bar.crit  { background: var(--s-crit); }
  .day-bar.ok    { background: var(--s-ok); }
  .btn-dayview { background: var(--ink-3); color: #fff; border: none; padding: 6px 12px; font-weight: 600; cursor: pointer; font-family: 'IBM Plex Sans Condensed', sans-serif; display: flex; align-items: center; gap: 6px; opacity: 0.4; pointer-events: none; transition: 0.2s; }
  .btn-dayview.enabled { opacity: 1; pointer-events: all; }
  .btn-dayview.active  { background: var(--s-blue); color: #fff; }
  .gantt-day-info { font-size: 10px; color: var(--s-blue); font-weight: 700; font-family: 'IBM Plex Mono', monospace; padding: 2px 6px; border: 1px solid var(--s-blue); border-radius: 2px; display: none; }
  .gantt-day-info.visible { display: inline-flex; align-items: center; gap: 4px; }
  .bar { height: 18px; border-radius: 2px; width: 100%; display: flex; align-items: center; justify-content: center; font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 700; color: #fff; }
  .bar.crit { background: var(--s-crit); }
  .bar.plan { background: var(--s-blue); }
  .bar.ok   { background: var(--s-ok); }
  .month-divider td { background: var(--ink-2) !important; color: #fff !important; font-weight: 700 !important; font-size: 11.5px !important; padding: 6px 10px !important; position: sticky; top: 41px; z-index: 9; }

  /* ─── CALCULADORA ───────────────────────────────── */
  .calc-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 20px; padding: 16px; background: var(--bg-surface); }
  .calc-panel { background: var(--paper-2); padding: 16px; border: 1px solid var(--rule); border-radius: 2px; }
  .calc-group { margin-bottom: 12px; }
  .calc-group label { display: block; font-size: 10.5px; font-weight: 700; color: var(--ink-2); margin-bottom: 4px; text-transform: uppercase; }
  .calc-group input { width: 100%; padding: 8px; border: 1px solid var(--rule-dark); font-family: 'IBM Plex Mono', monospace; font-size: 12px; outline: none; background: var(--bg-surface); color: var(--ink); }
  .calc-row { display: flex; gap: 12px; }
  .calc-row .calc-group { flex: 1; }
  .calc-btn-calc { background: var(--ink); color: var(--paper); border: none; padding: 10px 16px; font-weight: 700; cursor: pointer; width: 100%; font-family: 'IBM Plex Sans Condensed', sans-serif; text-transform: uppercase; margin-top: 12px; }
  .btn-calc-group { display: flex; gap: 10px; margin-top: 8px; }
  .calc-btn-export, .calc-btn-pdf { color: #fff; border: none; padding: 10px 16px; font-weight: 700; cursor: pointer; flex: 1; text-transform: uppercase; }
  .calc-btn-export { background: var(--s-ok); }
  .calc-btn-pdf    { background: #b71c1c; }
  .res-box { background: var(--bg-surface); border: 1px solid var(--rule); padding: 12px; margin-bottom: 12px; border-left: 4px solid var(--rule); display: flex; flex-direction: column; justify-content: center; }
  .res-box.proprio { border-left-color: var(--s-warn); }
  .res-box.terc    { border-left-color: var(--s-blue); }
  .res-box.saving  { border-left-color: var(--s-ok); background: var(--bg-ok); }
  .res-box.loss    { border-left-color: var(--s-crit); background: var(--bg-crit); }
  .res-title { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--ink-3); margin-bottom: 4px; }
  .res-val { font-family: 'IBM Plex Mono', monospace; font-size: 20px; font-weight: 700; color: var(--ink); }
  .res-sub { font-size: 10px; color: var(--ink-3); margin-top: 4px; }

  /* ─── EVM ───────────────────────────────────────── */
  .evm-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 280px; gap: 20px; padding: 16px; background: var(--bg-surface); }
  .chart-wrapper { position: relative; height: 260px; width: 100%; border: 1px solid var(--rule); padding: 12px; background: var(--paper); border-radius: 4px; }
  .evm-kpis { display: flex; flex-direction: column; gap: 10px; }
  .evm-kpi-card { background: var(--paper-2); border: 1px solid var(--rule); padding: 12px; border-left: 4px solid var(--ink); flex: 1; }
  .evm-kpi-card.bad  { border-left-color: var(--s-crit); }
  .evm-kpi-card.good { border-left-color: var(--s-ok); }
  .evm-kpi-title { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--ink-3); margin-bottom: 4px; }
  .evm-kpi-val   { font-family: 'IBM Plex Mono', monospace; font-size: 20px; font-weight: 700; color: var(--ink); }
  .evm-kpi-sub   { font-size: 10px; color: var(--ink-3); margin-top: 4px; }

  /* ─── AI CONSULTOR ──────────────────────────────── */
  .ai-chat-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 0; background: var(--bg-surface); border: 1px solid var(--rule); }
  .ai-chat-main { min-width: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); background: linear-gradient(180deg, rgba(0,150,136,0.08), rgba(255,255,255,0)); }
  .ai-chat-feed-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 16px 18px 0; }
  .ai-chat-feed-title { font-size: 13px; font-weight: 700; text-transform: uppercase; color: var(--ink); letter-spacing: 0.03em; }
  .ai-chat-feed-subtitle { margin-top: 6px; color: var(--ink-3); font-size: 11px; line-height: 1.55; max-width: 720px; }
  .ai-chat-feed { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 10px; max-height: 460px; overflow-y: auto; background: linear-gradient(180deg, rgba(255,255,255,0.7), rgba(245,247,250,0.95)); }
  .chat-msg { max-width: 88%; padding: 10px 14px; border-radius: 4px; font-size: 12px; line-height: 1.5; }
  .chat-msg.user { background: var(--ink); color: var(--paper); align-self: flex-end; border-radius: 4px 4px 0 4px; }
  .chat-msg.assistant { background: var(--bg-surface); border: 1px solid var(--rule); color: var(--ink); align-self: flex-start; border-radius: 4px 4px 4px 0; border-left: 4px solid var(--s-ai); }
  .chat-msg.thinking { background: var(--bg-ai); border: 1px solid var(--s-ai); color: var(--s-ai); font-style: italic; align-self: flex-start; }
  .ai-chat-controls { padding: 16px; border-left: 1px solid var(--rule); display: flex; flex-direction: column; gap: 12px; background: var(--paper); }
  .ai-context-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .ai-context-card { border: 1px solid var(--rule); background: var(--paper-2); padding: 10px 12px; display: grid; gap: 6px; min-height: 88px; }
  .ai-context-card strong { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-3); }
  .ai-context-card b { font-size: 18px; color: var(--ink); line-height: 1; }
  .ai-context-card span { font-size: 10.5px; line-height: 1.45; color: var(--ink-2); }
  .ai-context-card.is-alert { border-left: 4px solid var(--s-crit); }
  .ai-context-card.is-focus { border-left: 4px solid var(--s-blue); }
  .ai-context-card.is-ok { border-left: 4px solid var(--s-ok); }
  .ai-context-card.is-ai { border-left: 4px solid var(--s-ai); }
  .ai-context-summary { padding: 12px 14px; background: linear-gradient(135deg, rgba(0,150,136,0.1), rgba(21,101,192,0.08)); border: 1px solid rgba(0,150,136,0.22); color: var(--ink); font-size: 11px; line-height: 1.6; }
  .ai-chat-input { width: 100%; resize: none; padding: 10px; font-size: 12px; font-family: 'IBM Plex Sans Condensed', sans-serif; border: 2px solid var(--rule); border-radius: 2px; outline: none; background: var(--paper); color: var(--ink); height: 90px; transition: border-color 0.2s; }
  .ai-chat-input:focus { border-color: var(--s-ai); }
  .ai-chat-send { background: var(--s-ai); color: var(--ink); border: none; padding: 10px; font-weight: 700; font-size: 12px; cursor: pointer; border-radius: 2px; text-transform: uppercase; width: 100%; }
  .ai-chat-send:hover { background: #009688; color: #fff; }
  .ai-chat-send:disabled { opacity: 0.5; cursor: wait; }
  .ai-quick-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--ink-3); letter-spacing: 0.05em; }
  .ai-quick-head small { font-size: 9px; color: var(--ink-3); text-transform: none; letter-spacing: 0; }
  .ai-quick-list { display: grid; gap: 8px; }
  .ai-quick-btn { background: linear-gradient(180deg, var(--paper-2), var(--paper)); border: 1px solid var(--rule-dark); color: var(--ink-2); padding: 9px 11px; font-size: 10.5px; font-family: 'IBM Plex Sans Condensed', sans-serif; font-weight: 600; cursor: pointer; border-radius: 2px; text-align: left; transition: background 0.15s, border-color 0.15s, transform 0.15s; display: grid; gap: 4px; }
  .ai-quick-btn:hover { background: var(--bg-ai); border-color: var(--s-ai); color: var(--s-ai); transform: translateY(-1px); }
  .ai-quick-btn__label { font-size: 11px; font-weight: 700; color: var(--ink); text-transform: uppercase; letter-spacing: 0.04em; }
  .ai-quick-btn__sub { color: var(--ink-3); line-height: 1.45; }
  .ai-context-badge { background: var(--bg-ai); border: 1px solid var(--s-ai); color: var(--s-ai); padding: 6px 10px; font-size: 10px; font-weight: 700; border-radius: 2px; font-family: 'IBM Plex Mono', monospace; white-space: nowrap; }
  .ai-context-badge.is-warn { background: var(--bg-warn); border-color: var(--s-warn); color: var(--s-warn); }
  .ai-context-badge.is-ok { background: var(--bg-ok); border-color: var(--s-ok); color: var(--s-ok); }
  .thinking-dots::after { content: '...'; animation: dots 1.2s steps(3, end) infinite; }
  @keyframes dots { 0%{content:'.'} 33%{content:'..'} 66%{content:'...'} }

  /* ─── TOOLTIP & TOASTS ──────────────────────────── */
  .ultra-tooltip { position: fixed; background: var(--bg-surface); border: 1px solid var(--rule-dark); box-shadow: 0 12px 32px rgba(0,0,0,0.25); padding: 16px; width: 360px; z-index: 10000; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity 0.2s; display: flex; flex-direction: column; gap: 10px; border-top: 4px solid var(--ink); border-radius: 2px; }
  .ultra-tooltip.visible { opacity: 1; visibility: visible; }
  .tt-header { display: flex; justify-content: space-between; border-bottom: 1px solid var(--rule); padding-bottom: 6px; }
  .tt-id     { font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; color: var(--ink-3); }
  .tt-status { font-size: 9px; font-weight: 700; color: #fff; padding: 2px 6px; border-radius: 2px; }
  .tt-title  { font-size: 14px; font-weight: 700; color: var(--ink); line-height: 1.2; }
  .tt-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; background: var(--paper-2); padding: 8px; border: 1px solid var(--rule); }
  .tt-tasks  { background: var(--paper); padding: 10px; border: 1px solid var(--rule); border-left: 3px solid var(--ink-3); }
  .tt-ai-match { background: var(--bg-ai); border: 1px solid var(--s-ai); padding: 8px; font-size: 10px; color: var(--s-ai); font-weight: 700; display: flex; align-items: center; gap: 8px; border-radius: 2px; }
  #toast-container { position: fixed; bottom: 20px; right: 20px; z-index: 9999; display: flex; flex-direction: column; gap: 10px; }
  .toast { background: var(--bg-surface); border-left: 4px solid var(--s-blue); box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 12px 16px; display: flex; align-items: center; gap: 12px; font-weight: 600; font-size: 12px; min-width: 250px; animation: slideIn 0.3s ease-out forwards; color: var(--ink); }
  @keyframes slideIn { from{transform:translateX(100%);opacity:0} to{transform:translateX(0);opacity:1} }

  /* ─── FOOTER ────────────────────────────────────── */
  .footer { border-top: 1px solid var(--rule-dark); padding: 16px 24px; font-size: 11.5px; color: var(--ink-3); display: flex; justify-content: space-between; background: var(--paper-2); font-weight: 600; }

  /* ─── PCP / PLANEJAMENTO ────────────────────────── */
  .pcp-shell { display: grid; gap: 18px; padding: 16px; background: var(--bg-surface); }
  .pcp-brief { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
  .pcp-brief-card {
    background: var(--paper);
    border: 1px solid var(--rule);
    border-left: 4px solid var(--ink);
    padding: 14px 16px;
    display: grid;
    gap: 6px;
    min-height: 120px;
  }
  .pcp-brief-card.primary { border-left-color: var(--s-blue); background: rgba(43, 76, 126, 0.06); }
  .pcp-brief-card.info    { border-left-color: var(--s-ai); background: rgba(0, 150, 136, 0.06); }
  .pcp-brief-card.success { border-left-color: var(--s-ok); background: rgba(53, 122, 72, 0.08); }
  .pcp-brief-card.warn    { border-left-color: var(--s-warn); background: rgba(199, 127, 40, 0.09); }
  .pcp-brief-label { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--ink-3); letter-spacing: 0.08em; }
  .pcp-brief-value { font-family: 'IBM Plex Mono', monospace; font-size: 28px; font-weight: 700; color: var(--ink); line-height: 1; }
  .pcp-brief-sub { font-size: 11px; color: var(--ink-3); line-height: 1.45; }
  .pcp-toolbar {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 220px)) 1fr;
    gap: 12px;
    align-items: end;
    padding: 14px 16px;
    background: var(--paper);
    border: 1px solid var(--rule);
  }
  .pcp-filter-group { display: grid; gap: 6px; }
  .pcp-filter-group label { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--ink-3); letter-spacing: 0.08em; }
  .pcp-filter-note {
    justify-self: end;
    align-self: center;
    font-size: 10px;
    font-weight: 700;
    color: var(--s-blue);
    border: 1px solid rgba(43, 76, 126, 0.25);
    background: rgba(43, 76, 126, 0.06);
    padding: 10px 12px;
    border-radius: 2px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }
  .pcp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .pcp-grid-bottom { align-items: start; }
  .pcp-panel { background: var(--paper); border: 1px solid var(--rule); display: grid; min-height: 100%; }
  .pcp-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--rule);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ink-2);
    letter-spacing: 0.08em;
  }
  .pcp-panel-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
  }
  .pcp-export-range {
    display: grid;
    grid-template-columns: auto minmax(150px, 1fr) auto minmax(150px, 1fr);
    align-items: center;
    gap: 8px 10px;
    flex-wrap: wrap;
    padding: 10px 12px;
    border: 1px solid rgba(43, 76, 126, 0.18);
    background: linear-gradient(180deg, rgba(43, 76, 126, 0.08), rgba(43, 76, 126, 0.03));
    border-radius: 10px;
  }
  .pcp-export-range__label,
  .pcp-export-range__sep {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-3);
  }
  .pcp-export-range__select {
    min-width: 150px;
    padding: 8px 10px;
    border: 1px solid rgba(43, 76, 126, 0.22);
    background: var(--paper);
    color: var(--ink);
    font-family: 'IBM Plex Sans Condensed', sans-serif;
    font-size: 11px;
    border-radius: 8px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
  }
  .pcp-panel-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid rgba(183, 28, 28, 0.22);
    background: rgba(183, 28, 28, 0.08);
    color: #8b1d1d;
    font-family: 'IBM Plex Sans Condensed', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: 0.2s ease;
  }
  .pcp-panel-btn:hover {
    background: rgba(183, 28, 28, 0.14);
    border-color: rgba(183, 28, 28, 0.4);
    transform: translateY(-1px);
  }
  .pcp-panel-btn i { font-size: 12px; }
  .pcp-grid-editor { grid-template-columns: 1fr; }
  .pcp-panel-full { min-width: 0; }
  .pcp-editor-week {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(18,32,47,0.06);
    color: var(--ink-2);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
  }
  .pcp-daily-editor {
    display: grid;
    gap: 12px;
    padding: 12px;
    background: linear-gradient(180deg, rgba(248,246,240,0.86) 0%, rgba(255,255,255,0.98) 100%);
  }
  .pcp-editor-card {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid rgba(18,32,47,0.1);
    background: rgba(255,255,255,0.98);
    box-shadow: 0 8px 24px rgba(18,32,47,0.06);
  }
  .pcp-editor-card.is-crit { border-color: rgba(176, 54, 42, 0.28); }
  .pcp-editor-card.is-warn { border-color: rgba(199, 127, 40, 0.28); }
  .pcp-editor-card.is-ok,
  .pcp-editor-card.is-ahead { border-color: rgba(53, 122, 72, 0.24); }
  .pcp-editor-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .pcp-editor-title-wrap { display: grid; gap: 4px; }
  .pcp-editor-title { font-size: 15px; font-weight: 700; color: var(--ink); line-height: 1.35; }
  .pcp-editor-sub { font-size: 11px; color: var(--ink-3); line-height: 1.45; }
  .pcp-editor-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
  }
  .pcp-editor-metrics span {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(18,32,47,0.05);
    color: var(--ink-2);
    font-size: 11px;
    font-weight: 600;
  }
  .pcp-editor-metrics strong { font-family: 'IBM Plex Mono', monospace; color: var(--ink); }
  .pcp-editor-days {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
  }
  .pcp-editor-day {
    display: grid;
    gap: 6px;
    padding: 12px;
    border: 1px solid rgba(18,32,47,0.1);
    background: rgba(248,246,240,0.88);
  }
  .pcp-editor-day.is-idle { opacity: 0.72; }
  .pcp-editor-dayname {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ink-3);
  }
  .pcp-editor-daymeta,
  .pcp-editor-inputlabel {
    font-size: 10px;
    font-weight: 700;
    color: var(--ink-3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .pcp-editor-day strong {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 18px;
    color: var(--ink);
    line-height: 1;
  }
  .pcp-editor-input,
  .pcp-editor-reason-input {
    width: 100%;
    border: 1px solid rgba(18,32,47,0.14);
    background: #fff;
    color: var(--ink);
    padding: 9px 10px;
    font-size: 13px;
    line-height: 1.35;
    outline: none;
  }
  .pcp-editor-input:focus,
  .pcp-editor-reason-input:focus {
    border-color: rgba(43, 76, 126, 0.42);
    box-shadow: 0 0 0 3px rgba(43, 76, 126, 0.12);
  }
  .pcp-editor-footer {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
    gap: 12px;
    align-items: start;
  }
  .pcp-editor-guidance {
    padding: 11px 12px;
    border: 1px dashed rgba(43, 76, 126, 0.18);
    background: rgba(43, 76, 126, 0.04);
    color: var(--ink-2);
    font-size: 12px;
    line-height: 1.55;
  }
  .pcp-editor-reason { display: grid; gap: 6px; }
  .pcp-editor-reason label {
    font-size: 10px;
    font-weight: 700;
    color: var(--ink-3);
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }
  .pcp-chart-wrap { position: relative; min-height: 270px; padding: 12px; }
  .pcp-heatmap { display: grid; gap: 12px; padding: 12px; }
  .pcp-heat-row {
    display: grid;
    grid-template-columns: minmax(250px, 320px) 1fr;
    gap: 14px;
    align-items: stretch;
    padding: 14px;
    border: 1px solid var(--rule);
    background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(244,247,251,0.9));
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(18,32,47,0.06);
  }
  .pcp-heat-row.is-crit { border-color: rgba(176, 54, 42, 0.25); }
  .pcp-heat-row.is-warn { border-color: rgba(199, 127, 40, 0.25); }
  .pcp-heat-row.is-ok,
  .pcp-heat-row.is-ahead { border-color: rgba(53, 122, 72, 0.22); }
  .pcp-heat-summary { display: grid; gap: 8px; }
  .pcp-heat-headline { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
  .pcp-heat-status {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .pcp-heat-status.crit { background: rgba(176, 54, 42, 0.12); color: var(--s-crit); }
  .pcp-heat-status.warn { background: rgba(199, 127, 40, 0.14); color: var(--s-warn); }
  .pcp-heat-status.ok,
  .pcp-heat-status.ahead { background: rgba(53, 122, 72, 0.12); color: var(--s-ok); }
  .pcp-heat-status.neutral { background: rgba(18,32,47,0.08); color: var(--ink-2); }
  .pcp-heat-period { font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); }
  .pcp-heat-title { font-size: 15px; font-weight: 700; color: var(--ink); line-height: 1.3; }
  .pcp-heat-sub { font-size: 11px; color: var(--ink-3); line-height: 1.45; }
  .pcp-heat-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }
  .pcp-heat-summary-grid span {
    padding: 8px 10px;
    border: 1px solid var(--rule);
    background: var(--paper);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ink-3);
  }
  .pcp-heat-summary-grid strong {
    display: block;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 16px;
    color: var(--ink);
    line-height: 1;
    margin-bottom: 4px;
  }
  .pcp-heat-guidance {
    padding: 10px 12px;
    border-left: 3px solid var(--s-blue);
    background: rgba(43, 76, 126, 0.06);
    font-size: 11px;
    line-height: 1.5;
    color: var(--ink-2);
  }
  .pcp-heat-track { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; }
  .pcp-heat-cell {
    min-height: 82px;
    border: 1px solid var(--rule);
    background: var(--paper);
    padding: 8px;
    display: grid;
    align-content: start;
    gap: 4px;
    border-radius: 10px;
  }
  .pcp-heat-cell.ghost { opacity: 0.55; background: var(--paper-2); }
  .pcp-heat-cell.neutral { border-color: rgba(18,32,47,0.14); background: rgba(18,32,47,0.03); }
  .pcp-heat-cell.ok { border-color: rgba(53, 122, 72, 0.4); background: rgba(53, 122, 72, 0.08); }
  .pcp-heat-cell.warn { border-color: rgba(199, 127, 40, 0.4); background: rgba(199, 127, 40, 0.09); }
  .pcp-heat-cell.crit { border-color: rgba(176, 54, 42, 0.45); background: rgba(176, 54, 42, 0.08); }
  .pcp-heat-cell strong { font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--ink); }
  .pcp-heat-cell em { font-size: 9px; color: var(--ink-3); line-height: 1.3; font-style: normal; }
  .pcp-heat-cell span { font-size: 10px; color: var(--ink-3); line-height: 1.35; }
  .pcp-table-wrap { padding: 0 12px 12px; overflow: auto; }
  .pcp-table { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 1220px; }
  .pcp-table th,
  .pcp-table td {
    border-bottom: 1px solid var(--rule);
    padding: 12px 10px;
    text-align: left;
    vertical-align: top;
    font-size: 11px;
  }
  .pcp-table th {
    position: sticky;
    top: 0;
    background: var(--paper-2);
    text-transform: uppercase;
    color: var(--ink-3);
    font-size: 9px;
    letter-spacing: 0.08em;
    z-index: 1;
  }
  .pcp-activity-row.is-crit { background: rgba(176, 54, 42, 0.03); }
  .pcp-activity-row.is-warn { background: rgba(199, 127, 40, 0.04); }
  .pcp-activity-row:hover { background: rgba(43, 76, 126, 0.04); }
  .pcp-activity-main,
  .pcp-schedule-cell,
  .pcp-week-cell,
  .pcp-reason-cell { display: grid; gap: 4px; }
  .pcp-activity-main strong,
  .pcp-schedule-cell strong,
  .pcp-week-cell strong,
  .pcp-reason-cell strong {
    font-size: 12px;
    color: var(--ink);
    line-height: 1.4;
  }
  .pcp-activity-main span,
  .pcp-schedule-cell span,
  .pcp-week-cell span,
  .pcp-reason-cell span {
    font-size: 10px;
    line-height: 1.45;
    color: var(--ink-3);
  }
  .pcp-pr-badge,
  .pcp-ppc-badge,
  .pcp-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 8px 10px;
    border-radius: 999px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
  }
  .pcp-pr-badge { background: rgba(43, 76, 126, 0.08); color: var(--s-blue); border: 1px solid rgba(43, 76, 126, 0.18); }
  .pcp-ppc-badge.ok,
  .pcp-status-pill.ok,
  .pcp-ppc-badge.ahead,
  .pcp-status-pill.ahead { background: rgba(53, 122, 72, 0.1); color: var(--s-ok); border: 1px solid rgba(53, 122, 72, 0.2); }
  .pcp-ppc-badge.warn,
  .pcp-status-pill.warn { background: rgba(199, 127, 40, 0.12); color: var(--s-warn); border: 1px solid rgba(199, 127, 40, 0.22); }
  .pcp-ppc-badge.crit,
  .pcp-status-pill.crit { background: rgba(176, 54, 42, 0.1); color: var(--s-crit); border: 1px solid rgba(176, 54, 42, 0.22); }
  .pcp-ppc-badge.neutral,
  .pcp-status-pill.neutral { background: rgba(18, 32, 47, 0.08); color: var(--ink-2); border: 1px solid rgba(18, 32, 47, 0.12); }
  .pcp-guidance-cell {
    min-width: 220px;
    padding: 10px 12px;
    border-left: 3px solid var(--s-blue);
    background: rgba(43, 76, 126, 0.06);
    font-size: 11px;
    line-height: 1.5;
    color: var(--ink-2);
  }
  .pcp-table-empty,
  .pcp-empty-state {
    padding: 18px;
    border: 1px dashed var(--rule-dark);
    background: var(--paper-2);
    color: var(--ink-3);
    font-size: 11px;
    line-height: 1.5;
  }

  /* ─── RESPONSIVE LAYOUT ─────────────────────────── */
  @media (max-width: 1280px) {
    .layout { grid-template-columns: 1fr; }
    .sidebar {
      position: static;
      max-height: none;
      overflow: visible;
      border-right: none;
      border-bottom: 1px solid var(--rule-dark);
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }
    .sb-group { min-width: 0; }
    .evm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .evm-kpis { grid-column: span 2; }
    .gantt-brief { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gantt-command-strip { grid-template-columns: 1fr; }
    .gantt-audit__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pcp-brief { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pcp-toolbar,
    .pcp-grid,
    .pcp-grid-bottom { grid-template-columns: 1fr; }
    .supply-brief { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .supply-command-strip,
    .supply-meta-strip,
    .supply-view-grid,
    .supply-view-grid-chain,
    .supply-risk-grid { grid-template-columns: 1fr; }
  }

  @media (max-width: 960px) {
    body { padding: 12px; }
    .masthead { grid-template-columns: 1fr; gap: 18px; }
    .masthead-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .masthead-console__head { flex-direction: column; }
    .masthead-console__note { max-width: none; text-align: left; }
    .masthead-status-strip { grid-template-columns: 1fr; }
    .main { padding: 18px; gap: 18px; }
    .sidebar { grid-template-columns: 1fr; padding: 18px; }
    .ai-kanban-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .calc-grid,
    .ai-chat-wrap,
    .evm-grid { grid-template-columns: 1fr; }
    .ai-context-grid { grid-template-columns: 1fr 1fr; }
    .ai-chat-controls { border-left: none; border-top: 1px solid var(--rule); }
    .evm-kpis { grid-column: auto; }
    .sec-head { flex-direction: column; align-items: flex-start; gap: 8px; }
    .gantt-brief { grid-template-columns: 1fr; }
    .gantt-audit__grid { grid-template-columns: 1fr; }
    .pcp-brief { grid-template-columns: 1fr; }
    .pcp-toolbar { grid-template-columns: 1fr; }
    .pcp-filter-note { justify-self: stretch; }
    .pcp-heat-row { grid-template-columns: 1fr; }
    .pcp-panel-head { align-items: flex-start; }
    .pcp-panel-actions { width: 100%; justify-content: space-between; }
    .pcp-export-range { width: 100%; }
    .pcp-export-range { grid-template-columns: 1fr; }
    .pcp-export-range__select { flex: 1 1 180px; min-width: 0; }
    .pcp-panel-btn { width: 100%; justify-content: center; }
    .pcp-editor-metrics { justify-content: flex-start; }
    .pcp-editor-footer { grid-template-columns: 1fr; }
    .supply-brief { grid-template-columns: 1fr; }
    .task-sync-modal-grid { grid-template-columns: 1fr; }
  }

  @media (max-width: 720px) {
    body { padding: 0; background: var(--paper); }
    .container { width: 100%; border-radius: 0; border: none; box-shadow: none; }
    .masthead { padding: 18px 16px; gap: 16px; }
    .mh-title { font-size: 20px; line-height: 1.1; }
    .mh-meta { width: 100%; border-radius: 16px; }
    .masthead-highlights { grid-template-columns: 1fr; }
    .masthead-console { padding: 16px; border-radius: 18px; }
    .integration-panel,
    .masthead-status-strip { width: 100%; grid-template-columns: 1fr; }
    .btn-import,
    .update-marker,
    .api-key-status { width: 100%; justify-content: center; }
    .sidebar, .main { padding: 14px; }
    .filters-bar { padding: 10px 12px; gap: 8px; }
    .gantt-brief,
    .gantt-command-strip,
    .gantt-audit,
    .pcp-shell { padding-left: 14px; padding-right: 14px; }
    .supply-brief,
    .supply-command-strip,
    .supply-meta-strip,
    .supply-view,
    .supply-risk-grid { padding-left: 14px; padding-right: 14px; }
    .supply-tabs { padding: 0 14px 14px; }
    #filterPeriod { width: 100% !important; }
    .table-wrapper { max-height: none; }
    .ai-kanban-input-wrap,
    .calc-row,
    .btn-calc-group { flex-direction: column; align-items: stretch; }
    .ai-kanban-grid { grid-template-columns: 1fr; padding: 14px; }
    .ai-context-grid { grid-template-columns: 1fr; }
    .ai-chat-feed-head,
    .ai-quick-head { flex-direction: column; align-items: flex-start; }
    .supply-risk-impact { grid-template-columns: 1fr; }
    .task-sync-provider-row,
    .google-tasks-inline-actions { flex-direction: column; align-items: stretch; }
    .footer { flex-direction: column; gap: 8px; padding: 14px 16px; }
    #toast-container { left: 12px; right: 12px; bottom: 12px; }
    .toast { min-width: 0; width: 100%; }
  }

  /* ─── API KEY MODAL ──────────────────────────────── */
  .api-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 20000; display: flex; align-items: center; justify-content: center; }
  .api-modal-overlay.hidden { display: none; }
  .api-modal { background: var(--bg-surface); border: 2px solid var(--s-ai); border-top: 5px solid var(--s-ai); padding: 28px; width: 480px; max-width: 95vw; border-radius: 4px; box-shadow: 0 20px 60px rgba(0,0,0,0.4); }
  .google-tasks-modal { border-color: var(--s-google); border-top-color: var(--s-google); }
  .microsoft-todo-modal { border-color: var(--s-microsoft); border-top-color: var(--s-microsoft); }
  .api-modal h2 { font-size: 16px; font-weight: 700; text-transform: uppercase; margin-bottom: 6px; color: var(--ink); }
  .api-modal p  { font-size: 12px; color: var(--ink-3); margin-bottom: 16px; line-height: 1.5; }
  .api-key-input { width: 100%; padding: 10px 12px; font-family: 'IBM Plex Mono', monospace; font-size: 12px; border: 2px solid var(--rule-dark); border-radius: 2px; outline: none; background: var(--paper); color: var(--ink); letter-spacing: 1px; }
  .api-key-input:focus { border-color: var(--s-ai); }
  .api-modal-btns { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
  .api-modal-save { flex: 1; background: var(--s-ai); color: var(--ink); border: none; padding: 10px; font-weight: 700; font-size: 13px; cursor: pointer; border-radius: 2px; text-transform: uppercase; }
  .api-modal-cancel { background: var(--paper-2); color: var(--ink-3); border: 1px solid var(--rule-dark); padding: 10px 16px; font-weight: 600; font-size: 12px; cursor: pointer; border-radius: 2px; }
  .google-tasks-actions { display: flex; gap: 10px; flex-wrap: wrap; }
  .google-tasks-state { margin-bottom: 14px; padding: 10px 12px; background: var(--paper-2); border: 1px solid var(--rule); font-size: 11px; color: var(--ink-2); line-height: 1.5; border-radius: 4px; }
  .task-sync-modal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
  .task-sync-modal-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 10px; font-weight: 700; color: var(--ink-3); text-transform: uppercase; }
  .task-sync-modal-grid--full { grid-column: 1 / -1; }
  .task-sync-modal-input { width: 100%; padding: 10px 12px; font-family: 'IBM Plex Mono', monospace; font-size: 12px; border: 1px solid var(--rule-dark); border-radius: 2px; outline: none; background: var(--paper); color: var(--ink); }
  .task-sync-modal-input:focus { border-color: var(--s-blue); }
  .gemini-health-message { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--rule-dark); border-radius: 2px; font-size: 11px; line-height: 1.45; font-family: 'IBM Plex Sans Condensed', sans-serif; }
  .gemini-health-message.neutral { background: var(--paper); color: var(--ink-3); }
  .gemini-health-message.info { background: var(--bg-ai); color: var(--s-ai); border-color: var(--s-ai); }
  .gemini-health-message.success { background: var(--bg-ok); color: var(--s-ok); border-color: var(--s-ok); }
  .gemini-health-message.error { background: var(--bg-crit); color: var(--s-crit); border-color: var(--s-crit); }
  .api-key-status { display: inline-flex; align-items: center; gap: 8px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 700; padding: 10px 14px; border-radius: 14px; cursor: pointer; transition: 0.2s; letter-spacing: 0.05em; }
  .api-key-status.set     { background: var(--bg-ok);   color: var(--s-ok);   border: 1px solid var(--s-ok); }
  .api-key-status.not-set { background: var(--bg-crit); color: var(--s-crit); border: 1px solid var(--s-crit); animation: pulse 2s infinite; }

  /* ─── PDF PRINT ──────────────────────────────────── */
  #calc-pdf-report { display: none; }
  @media print {
    body { background: #fff !important; margin: 0; padding: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .container { display: none !important; }
    #calc-pdf-report { display: block !important; position: absolute; top: 0; left: 0; width: 100%; background: #fff; padding: 20px 40px; }
    .pdf-header { border-bottom: 2px solid #000; padding-bottom: 10px; margin-bottom: 20px; display: flex; justify-content: space-between; }
    .pdf-title  { font-size: 22px; font-weight: 700; margin: 0; }
    .pdf-section-title { font-size: 14px; font-weight: 700; background: #eee; padding: 6px 10px; margin-bottom: 15px; border-left: 4px solid #000; text-transform: uppercase; }
    .pdf-table { width: 100%; border-collapse: collapse; margin-bottom: 25px; font-size: 12px; }
    .pdf-table th { background: #f5f5f5; border: 1px solid #ccc; padding: 8px; text-align: left; }
    .pdf-table td { border: 1px solid #ccc; padding: 8px; font-family: 'IBM Plex Mono', monospace; }
    .pdf-charts-row { display: flex; gap: 20px; margin-bottom: 25px; height: 280px; align-items: center; }
    .pdf-chart-container { flex: 1; border: 1px solid #eee; padding: 15px; height: 100%; display: flex; flex-direction: column; justify-content: center; }
    .pdf-conclusion { padding: 15px; border: 2px solid #000; background: #fafafa; font-size: 14px; line-height: 1.5; }
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  }
