/* ── KPI row: 4 cols ── */
    .kpi-row{grid-template-columns:repeat(4,1fr)}

    /* ── Conflict alert banner ── */
    .conflict-banner{
      background:rgba(245,158,11,0.08);
      border:1px solid rgba(245,158,11,0.3);
      border-radius:8px;
      padding:0.625rem 1rem;
      display:flex;
      align-items:center;
      gap:0.625rem;
      font-size:0.75rem;
      color:#92400E;
      flex-wrap:wrap;
    }
    .conflict-banner-icon{
      font-size:14px;color:var(--orange);flex-shrink:0;
    }
    .conflict-banner-label{font-weight:700;flex-shrink:0;}
    .conflict-chip{
      padding:0.15rem 0.5rem;
      border-radius:5px;
      background:rgba(245,158,11,0.15);
      border:1px solid rgba(245,158,11,0.3);
      font-size:0.6875rem;font-weight:600;
      cursor:pointer;
      transition:background 0.15s;
    }
    .conflict-chip:hover{background:rgba(245,158,11,0.28);}
    .conflict-see-all{
      margin-left:auto;
      font-size:0.6875rem;
      color:var(--kai-blue);
      cursor:pointer;font-weight:600;
      white-space:nowrap;
    }
    .conflict-see-all:hover{text-decoration:underline;}

    /* ── Gantt ── */
    .gantt-wrap{
      background:var(--card);
      border:1px solid var(--border);
      border-radius:10px;
      overflow:hidden;
    }
    .gantt-hdr{
      padding:0.625rem 1rem;
      border-bottom:1px solid var(--border);
      display:flex;align-items:center;justify-content:space-between;
    }
    .gantt-title{font-size:0.8125rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:0.5rem;}

    .gantt-scroll{overflow-x:auto;}
    .gantt-table{
      width:100%;
      border-collapse:collapse;
      min-width:900px;
    }
    .gantt-table th{
      font-size:10px;text-transform:uppercase;letter-spacing:0.05em;
      color:var(--muted);font-weight:700;
      padding:0.5rem 0.25rem;
      text-align:center;
      border-bottom:1px solid var(--border);
      white-space:nowrap;
    }
    .gantt-table th.unit-col{
      text-align:left;padding-left:0.875rem;min-width:110px;
    }
    .gantt-table th.date-col{
      background:rgba(0,48,130,0.03);
      border-left:1px solid rgba(0,0,0,0.06);
    }
    .gantt-table th.today-col{
      background:rgba(0,48,130,0.08);color:var(--kai-blue);
    }
    .gantt-sub-row th{
      font-size:9px;color:var(--muted);font-weight:600;
      padding:0.25rem 0.25rem;
      border-bottom:1px solid var(--border);
      text-align:center;
    }
    .gantt-table tbody tr{transition:background 0.12s;}
    .gantt-table tbody tr:hover{background:rgba(0,48,130,0.025);}
    .gantt-table td{
      padding:5px 3px;
      border-top:1px solid rgba(0,0,0,0.04);
      text-align:center;
      vertical-align:middle;
    }
    .gantt-table td.unit-cell{
      text-align:left;
      padding-left:0.875rem;
      font-size:0.75rem;font-weight:700;
      font-family:'JetBrains Mono',monospace;
      color:var(--text);
      white-space:nowrap;
    }
    .gantt-table td.today-bg{
      background:rgba(0,48,130,0.04);
    }

    /* ── Cell styles ── */
    .gantt-cell{
      padding:4px 6px;
      border-radius:5px;
      font-size:10px;font-weight:600;
      text-align:center;
      white-space:nowrap;
      cursor:pointer;
      display:inline-block;
      min-width:56px;
      line-height:1.4;
      transition:box-shadow 0.12s;
    }
    .gantt-cell:hover{box-shadow:0 2px 8px rgba(0,0,0,0.15);}
    .cell-empty{background:transparent;color:var(--muted);font-weight:400;cursor:default;}
    .cell-empty:hover{box-shadow:none;}
    .cell-trip{background:rgba(37,99,235,0.12);color:#1e40af;border:1px solid rgba(37,99,235,0.3);}
    .cell-pm{background:rgba(217,119,6,0.12);color:#92400e;border:1px solid rgba(217,119,6,0.3);}
    .cell-wo{background:rgba(220,38,38,0.1);color:#991b1b;border:1px solid rgba(220,38,38,0.3);}
    .cell-conflict{
      background:rgba(234,88,12,0.15);color:#9a3412;
      border:2px solid #f97316;
      animation:pulse-border 1.5s infinite;
    }
    @keyframes pulse-border{
      0%,100%{box-shadow:0 0 0 0 rgba(249,115,22,0.4);}
      50%{box-shadow:0 0 0 4px rgba(249,115,22,0);}
    }

    /* ── Bottom section ── */
    .bottom-section{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:1rem;
    }

    /* ── Availability table ── */
    .avail-row{
      display:grid;
      grid-template-columns:80px 50px 50px 60px 70px;
      gap:0;
      padding:0.4rem 0.875rem;
      border-bottom:1px solid rgba(0,0,0,0.04);
      font-size:0.75rem;
      align-items:center;
    }
    .avail-row:last-child{border-bottom:none;}
    .avail-row.header{
      background:rgba(0,48,130,0.03);
      font-size:10px;text-transform:uppercase;letter-spacing:0.05em;
      color:var(--muted);font-weight:700;
      padding-top:0.5rem;padding-bottom:0.5rem;
    }
    .avail-row.amber-row{background:rgba(217,119,6,0.06);}
    .avail-row.best-row{background:rgba(22,163,74,0.05);}
    .avail-pct{
      font-family:'JetBrains Mono',monospace;font-weight:700;font-size:0.75rem;
    }

    /* ── Conflict summary ── */
    .conflict-summary-item{
      display:flex;align-items:center;gap:0.75rem;
      padding:0.625rem 1rem;
      border-bottom:1px solid rgba(0,0,0,0.04);
      font-size:0.75rem;
    }
    .conflict-summary-item:last-child{border-bottom:none;}
    .conflict-sev-dot{
      width:8px;height:8px;border-radius:50%;flex-shrink:0;
    }
    .conflict-summary-unit{font-weight:700;font-family:'JetBrains Mono',monospace;color:var(--text);flex-shrink:0;}
    .conflict-summary-desc{color:var(--muted);flex:1;}
    .conflict-summary-link{color:var(--kai-blue);cursor:pointer;font-size:0.6875rem;white-space:nowrap;}
    .conflict-summary-link:hover{text-decoration:underline;}

    /* ── Conflict modal ── */
    .modal-overlay{
      position:fixed;inset:0;
      background:rgba(0,0,0,0.4);
      z-index:300;
      display:none;align-items:center;justify-content:center;
    }
    .modal-overlay.open{display:flex;}
    .modal{
      background:var(--card);
      border:1px solid var(--border);
      border-radius:12px;
      width:520px;
      max-width:95vw;
      box-shadow:0 20px 60px rgba(0,0,0,0.2);
      overflow:hidden;
    }
    .modal-hdr{
      padding:1rem 1.25rem;
      border-bottom:1px solid var(--border);
      display:flex;align-items:center;gap:0.625rem;
    }
    .modal-icon{font-size:18px;}
    .modal-title{font-size:0.875rem;font-weight:800;color:var(--text);}
    .modal-subtitle{font-size:0.75rem;color:var(--muted);margin-top:2px;}
    .modal-close{
      margin-left:auto;width:28px;height:28px;
      background:none;border:1px solid var(--border);
      border-radius:6px;cursor:pointer;
      display:flex;align-items:center;justify-content:center;
      font-size:12px;color:var(--muted);
      transition:all 0.15s;font-family:inherit;
    }
    .modal-close:hover{border-color:var(--red);color:var(--red);}
    .modal-body{padding:1.25rem;}
    .conflict-detail-row{
      padding:0.625rem 0.875rem;
      background:var(--card2);
      border:1px solid var(--border);
      border-radius:7px;
      margin-bottom:0.625rem;
      font-size:0.75rem;
    }
    .conflict-detail-label{font-size:0.625rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted);font-weight:700;margin-bottom:4px;}
    .conflict-overlap{
      background:rgba(220,38,38,0.08);
      border:1px solid rgba(220,38,38,0.2);
      border-radius:6px;
      padding:0.5rem 0.75rem;
      font-size:0.75rem;
      color:#991B1B;
      margin-bottom:0.75rem;
    }
    .modal-hr{border:none;border-top:1px solid var(--border);margin:0.75rem 0;}
    .modal-footer{
      padding:0.875rem 1.25rem;
      border-top:1px solid var(--border);
      display:flex;gap:0.5rem;flex-wrap:wrap;
    }

    /* Selected row */
    .gantt-table tbody tr.selected{background:rgba(0,48,130,0.06)!important;}
