/* styles/core/00-00-tokens-reset.css */
/* ══════════════════════════════════════════════════════════════════════
   APPLICATION SHELL METRICS — single source of truth
   Every header/content offset in the app derives from these tokens.
   Never hard-code a header height or a content top offset again: use
   var(--app-header-height) / var(--app-content-top) / var(--app-sticky-top).

     --app-header-top      gap between the viewport top and the header bar
     --app-header-height   height of the header bar itself
     --app-header-band     height of the fixed chrome strip behind the header
                           (header-top + header-height + a little breathing)
     --app-content-top     top padding of .body — where page content starts
     --app-sticky-top      top offset for in-page sticky toolbars so they
                           park just under the header band
     --app-logo-h/-w       header brand mark box (background-size: contain,
                           so the aspect ratio is always preserved)
     --app-hdr-control     height of header controls (search, icon buttons,
                           profile) — keeps them optically centred in the bar
   ══════════════════════════════════════════════════════════════════════ */
:root {
      --app-header-top: 12px;
      --app-header-height: 52px;
      --app-header-band: 68px;
      --app-content-top: 80px;
      --app-sticky-top: calc(var(--app-content-top) + 4px);
      --app-logo-h: 46px;
      --app-logo-w: 180px;
      --app-hdr-control: 42px;
    }

    /* Narrow desktop / tablet landscape */
    @media (max-width: 1320px) {
      :root {
        --app-header-top: 10px;
        --app-header-height: 50px;
        --app-header-band: 64px;
        --app-content-top: 74px;
        --app-logo-h: 42px;
        --app-logo-w: 164px;
        --app-hdr-control: 40px;
      }
    }

    /* Tablet (drawer shell) */
    @media (max-width: 1024px) {
      :root {
        --app-header-top: 8px;
        --app-header-height: 52px;
        --app-header-band: 64px;
        --app-content-top: 72px;
        --app-logo-h: 40px;
        --app-logo-w: 156px;
        --app-hdr-control: 40px;
      }
    }

    /* Phone */
    @media (max-width: 600px) {
      :root {
        --app-header-top: 6px;
        --app-header-height: 50px;
        --app-header-band: 60px;
        --app-content-top: 68px;
        --app-logo-h: 38px;
        --app-logo-w: 148px;
        --app-hdr-control: 38px;
      }
    }

:root {
      --bg: #FBF7F1;
      --bg2: #F3E9DA;
      --p: #FBF7F1;
      --p2: #F3E9DA;
      --sk: rgba(15, 27, 46, .14);
      --sk2: rgba(42, 47, 54, .11);
      --mu: #4D6E91;
      --so: #2A2F36;
      --tx: #2A2F36;
      --st: #0F1B2E;
      --bl: #0F1B2E;
      --cy: #4D6E91;
      --gn: #4D6E91;
      --am: #24B47E;
      --rd: #8B3A1F;
      --vi: #B8693E;
      --pk: #188D68;
      --tl: #4A6B3A;
      --r: 16px;
      --r2: 12px;
      --r3: 8px;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html,
    body {
      min-height: 100vh;
      background: var(--bg);
      color: var(--tx);
      font-family: 'DM Sans', system-ui, sans-serif;
      font-size: 14px;
    }

    html.docai-preinit body {
      opacity: 0;
    }

    html:not(.docai-preinit) body {
      opacity: 1;
      transition: opacity .12s ease;
    }

    .app {
      min-height: 100vh;
      overflow-x: hidden;
      background:
        linear-gradient(180deg, #FBF7F1 0%, #F3E9DA 54%, #FBF7F1 100%);
    }

    .app::before {
      content: '';
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: 0;
      background: linear-gradient(rgba(15, 27, 46, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(15, 27, 46, .035) 1px, transparent 1px);
      background-size: 44px 44px;
      mask-image: radial-gradient(ellipse 80% 60% at 50% 20%, black, transparent 80%);
      opacity: .18;
    }

/* styles/core/00-01-header.css */
/* HEADER */
    .hdr {
      position: sticky;
      top: 0;
      z-index: 100;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 0 28px;
      height: var(--app-header-height);
      min-height: var(--app-header-height);
      background: rgba(1, 6, 15, .9);
      border-bottom: 1px solid var(--sk);
      backdrop-filter: blur(20px);
      box-shadow: 0 1px 0 rgba(59, 130, 246, .06), 0 6px 32px rgba(0, 0, 0, .3);
    }

    .logo {
      display: flex;
      align-items: center;
      gap: 12px;
    }

    .logo-ico {
      width: 38px;
      height: 38px;
      flex: 0 0 38px;
      border-radius: 11px;
      background: linear-gradient(135deg, #1a56db, #0891b2);
      display: grid;
      place-items: center;
      font-size: 19px;
      box-shadow: 0 0 20px rgba(59, 130, 246, .3);
    }

    .logo-name {
      font-family: 'Syne', sans-serif;
      font-size: 16px;
      font-weight: 800;
      color: var(--st);
    }

    .logo-sub {
      font-size: 10px;
      color: var(--mu);
      letter-spacing: 1.2px;
      text-transform: uppercase;
      margin-top: 2px;
    }

    .ai-pill {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 6px 13px;
      border-radius: 999px;
      background: linear-gradient(90deg, rgba(139, 92, 246, .045), rgba(59, 130, 246, .035));
      border: 1px solid rgba(139, 92, 246, .10);
      font-size: 11px;
      font-weight: 700;
      color: rgba(196, 181, 253, .56);
    }

    .ai-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: rgba(139, 92, 246, .58);
      box-shadow: 0 0 5px rgba(139, 92, 246, .22);
      animation: blink 2.4s ease infinite;
    }

    @keyframes blink {

      0%,
      100% {
        opacity: 1
      }

      50% {
        opacity: .35
      }
    }

    .api-st {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 12px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 700;
      border: 1px solid rgba(74, 96, 128, .10);
      color: rgba(74, 96, 128, .70);
      background: rgba(4, 10, 24, .22);
      transition: all .3s;
    }

    .hbtns {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .hbtn {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 8px 15px;
      border-radius: 10px;
      border: 1px solid rgba(148, 163, 184, .08);
      background: rgba(9, 20, 40, .20);
      color: rgba(122, 154, 184, .54);
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      transition: all .18s;
      font-family: inherit;
    }

    .hbtn:hover {
      border-color: rgba(96, 165, 250, .18);
      background: rgba(9, 20, 40, .30);
      color: rgba(200, 221, 240, .84);
    }

    .hbtn.primary {
      background: linear-gradient(135deg, #1a56db, #0891b2);
      border-color: transparent;
      color: #fff;
      font-weight: 700;
      box-shadow: 0 4px 16px rgba(59, 130, 246, .28);
    }

    .hbtn.primary:hover {
      box-shadow: 0 6px 24px rgba(59, 130, 246, .42);
      transform: translateY(-1px);
    }

    .hbtn:disabled {
      opacity: .4;
      cursor: not-allowed;
      transform: none !important;
    }

/* styles/core/00-02-tabs.css */
/* TABS */
    .tabs {
      position: sticky;
      top: var(--app-header-height);
      z-index: 90;
      display: flex;
      gap: 4px;
      padding: 12px 28px 0;
      background: rgba(1, 6, 15, .94);
      border-bottom: 1px solid rgba(26, 51, 86, .5);
      backdrop-filter: blur(16px);
      overflow-x: auto;
    }

    .tab {
      position: relative;
      padding: 10px 17px;
      border-radius: 10px 10px 0 0;
      border: 1px solid transparent;
      border-bottom: none;
      font-size: 12px;
      font-weight: 700;
      color: var(--mu);
      background: rgba(7, 15, 32, .5);
      cursor: pointer;
      user-select: none;
      margin-bottom: -1px;
      transition: all .18s;
      white-space: nowrap;
    }

    .tab:hover:not(.active) {
      color: var(--so);
      background: rgba(59, 130, 246, .06);
    }

    .tab.active {
      color: #93c5fd;
      font-weight: 800;
      background: linear-gradient(180deg, rgba(18, 38, 76, .85), rgba(7, 15, 32, .98));
      border-color: rgba(59, 130, 246, .58);
    }

    .tab.active::after {
      content: '';
      position: absolute;
      bottom: -1px;
      left: 0;
      right: 0;
      height: 2px;
      border-radius: 2px 2px 0 0;
      background: linear-gradient(90deg, #3b82f6, #06b6d4);
    }

    .tbadge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 17px;
      height: 17px;
      padding: 0 5px;
      border-radius: 999px;
      background: rgba(59, 130, 246, .18);
      color: #60a5fa;
      font-size: 10px;
      font-weight: 800;
      margin-left: 5px;
    }

/* styles/core/00-03-body.css */
/* BODY */
    .body {
      padding: 22px 28px 60px;
      position: relative;
      z-index: 1;
    }

/* styles/core/00-04-tab-switch-animation.css */
/* Tab switch animation */
    @keyframes slideDown {
      from {
        opacity: 0;
        transform: translateY(-22px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .tp {
      display: none;
    }

    .tp.active {
      display: block;
      animation: slideDown 0.32s cubic-bezier(.22, 1, .36, 1) forwards;
    }

/* styles/core/00-05-panel.css */
/* PANEL */
    .panel {
      position: relative;
      overflow: hidden;
      background: rgba(255, 255, 255, .92);
      border: 1px solid rgba(232, 236, 239, .94);
      border-radius: var(--r);
      padding: 20px 22px;
      box-shadow: 0 18px 36px rgba(15, 27, 46, .08);
    }

    .panel::before {
      content: '';
      position: absolute;
      inset: 0 auto auto 0;
      width: 100%;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(96, 165, 250, .26), transparent);
      pointer-events: none;
    }

    .ptitle {
      display: flex;
      align-items: center;
      gap: 9px;
      font-size: 10.5px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 1.2px;
      color: var(--mu);
      margin-bottom: 16px;
    }

    .ptitle .dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--bl);
      box-shadow: 0 0 8px var(--bl);
      flex-shrink: 0;
    }

/* styles/core/00-06-form.css */
/* FORM */
    .grid2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-bottom: 16px;
    }

    .fg3 {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
    }

    .fg {
      display: flex;
      flex-direction: column;
      gap: 5px;
    }

    .fg.s2 {
      grid-column: span 2;
    }

    .fg.s3 {
      grid-column: span 3;
    }

    .lbl {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .9px;
      color: var(--mu);
    }

    .inp {
      background: rgba(4, 10, 24, .9);
      border: 1px solid rgba(148, 163, 184, .15);
      border-radius: var(--r3);
      padding: 10px 13px;
      color: var(--tx);
      font-size: 13px;
      font-family: inherit;
      outline: none;
      transition: all .18s;
      width: 100%;
    }

    .inp:focus {
      border-color: rgba(96, 165, 250, .48);
      box-shadow: 0 0 0 3px rgba(59, 130, 246, .1);
    }

    .inp::placeholder {
      color: var(--mu);
    }

    select.inp option {
      background: #060f1e;
    }

    textarea.inp {
      resize: vertical;
      min-height: 80px;
      line-height: 1.5;
    }

/* styles/core/00-07-upload.css */
/* UPLOAD */
    .upload-zone {
      border: 2px dashed rgba(59, 130, 246, .22);
      border-radius: var(--r);
      padding: 32px 20px;
      text-align: center;
      background: rgba(3, 10, 24, .6);
      cursor: pointer;
      transition: all .22s;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
      min-height: 170px;
    }

    .upload-zone:hover,
    .upload-zone.drag {
      border-color: rgba(59, 130, 246, .56);
      background: rgba(10, 24, 52, .6);
      box-shadow: 0 0 0 6px rgba(59, 130, 246, .07);
    }

    .upload-icon {
      font-size: 36px;
      filter: drop-shadow(0 0 14px rgba(59, 130, 246, .4));
    }

    .upload-title {
      font-family: 'Syne', sans-serif;
      font-size: 14px;
      font-weight: 700;
      color: var(--st);
    }

    .upload-sub {
      font-size: 12px;
      color: var(--mu);
    }

    .type-pills {
      display: flex;
      gap: 7px;
      flex-wrap: wrap;
      justify-content: center;
      margin-top: 4px;
    }

    .type-pill {
      padding: 3px 10px;
      border-radius: 999px;
      border: 1px solid var(--sk2);
      background: rgba(15, 28, 52, .8);
      color: var(--so);
      font-size: 10px;
      font-weight: 700;
    }

    input[type=file] {
      display: none;
    }

/* styles/core/00-08-file-rows.css */
/* FILE ROWS */
    .files-list {
      display: grid;
      gap: 7px;
      margin-top: 12px;
    }

    .file-row {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      padding: 12px 15px;
      border-radius: var(--r2);
      background: rgba(6, 14, 30, .85);
      border: 1px solid var(--sk2);
    }

    .file-emoji {
      font-size: 20px;
      flex-shrink: 0;
      padding-top: 2px;
    }

    .file-info {
      flex: 1;
      min-width: 0;
    }

    .file-name {
      font-size: 12.5px;
      font-weight: 700;
      color: var(--tx);
      word-break: break-all;
    }

    .file-meta {
      font-size: 10.5px;
      color: var(--mu);
      margin-top: 2px;
    }

    .file-prev {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10.5px;
      color: #cbd5e1;
      line-height: 1.6;
      margin-top: 7px;
      max-height: 400px;
      overflow: auto;
      white-space: pre;
      background: rgba(2, 6, 18, .5);
      border-radius: 6px;
      padding: 12px;
      border: 1px solid rgba(59, 130, 246, 0.1);
      scrollbar-width: thin;
      scrollbar-color: #3b82f6 #0f172a;
    }

    .file-prev::-webkit-scrollbar {
      width: 6px;
      height: 6px;
    }

    .file-prev::-webkit-scrollbar-thumb {
      background-color: #3b82f6;
      border-radius: 10px;
    }

    .file-prev::-webkit-scrollbar-track {
      background: #0f172a;
    }

    .file-st {
      font-size: 11px;
      font-weight: 700;
      white-space: nowrap;
      flex-shrink: 0;
    }

/* styles/core/00-09-sheet-selector-injected.css */
/* ── Sheet Selector (injected) ── */

/* styles/core/00-10-sheet-selector-inline-trigger.css */
/* ── Sheet Selector (inline trigger) ── */
    .sheet-sel-wrap {
      margin-top: 8px;
      padding: 10px 14px;
      border-radius: 10px;
      background: rgba(3, 10, 28, .88);
      border: 1px solid rgba(59, 130, 246, .14);
      display: none;
    }

    .sheet-sel-wrap.active {
      display: block;
    }

    .sheet-sel-trigger {
      display: flex;
      align-items: center;
      gap: 8px;
      cursor: pointer;
      font-size: 11px;
      font-weight: 600;
      color: #4a7090;
    }

    .sheet-sel-trigger:hover .sst-label {
      color: #7dd3fc;
    }

    .sst-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 3px 9px;
      border-radius: 999px;
      background: rgba(59, 130, 246, .1);
      border: 1px solid rgba(59, 130, 246, .22);
      font-size: 10px;
      font-weight: 700;
      color: #60a5fa;
    }

    .sst-chips {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      margin-top: 8px;
    }

    .sst-chips .sst-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 3px 10px;
      border-radius: 999px;
      font-size: 10px;
      font-weight: 700;
      cursor: pointer;
      border: 1px solid rgba(59, 130, 246, .14);
      background: rgba(4, 10, 28, .8);
      color: #2a4a6a;
      transition: all .15s;
      user-select: none;
    }

    .sst-chips .sst-btn:hover {
      border-color: rgba(59, 130, 246, .35);
      color: #7dd3fc;
    }

    .sst-chips .sst-btn.on {
      border-color: rgba(59, 130, 246, .42);
      color: #93c5fd;
      background: rgba(10, 28, 72, .85);
    }

    .sst-chips .sst-btn.on::before {
      content: '✓ ';
      font-size: 8px;
      color: #22c55e;
    }

/* styles/core/00-11-sheet-picker-modal.css */
/* ── Sheet Picker Modal ── */
    .spm-overlay {
      position: fixed;
      inset: 0;
      z-index: 9990;
      background: rgba(0, 4, 14, .82);
      backdrop-filter: blur(8px);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity .22s ease;
    }

    .spm-overlay.open {
      opacity: 1;
      pointer-events: all;
    }

    .spm-modal {
      width: min(900px, 94vw);
      max-height: 88vh;
      background: linear-gradient(160deg, rgba(5, 12, 32, .99), rgba(3, 8, 24, .99));
      border: 1px solid rgba(59, 130, 246, .22);
      border-radius: 16px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      box-shadow: 0 24px 80px rgba(0, 0, 0, .9);
      transform: translateY(16px);
      transition: transform .22s cubic-bezier(.2, 1, .3, 1);
    }

    .spm-overlay.open .spm-modal {
      transform: none;
    }

/* styles/core/00-12-modal-header.css */
/* modal header */
    .spm-hdr {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 14px 18px;
      background: rgba(3, 8, 24, .98);
      border-bottom: 1px solid rgba(59, 130, 246, .1);
      flex-shrink: 0;
    }

    .spm-title {
      font-family: 'Syne', sans-serif;
      font-size: 14px;
      font-weight: 800;
      color: #dbeafe;
      flex: 1;
    }

    .spm-subtitle {
      font-size: 10px;
      color: #2a4a6a;
      font-family: 'JetBrains Mono', monospace;
    }

    .spm-close {
      width: 28px;
      height: 28px;
      border-radius: 8px;
      border: 1px solid rgba(148, 163, 184, .12);
      background: rgba(4, 10, 24, .8);
      color: #4a6080;
      font-size: 14px;
      cursor: pointer;
      display: grid;
      place-items: center;
      transition: all .15s;
      flex-shrink: 0;
    }

    .spm-close:hover {
      border-color: rgba(239, 68, 68, .3);
      color: #f87171;
    }

/* styles/core/00-13-two-column-layout.css */
/* two-column layout */
    .spm-body {
      display: grid;
      grid-template-columns: 220px 1fr;
      flex: 1;
      overflow: hidden;
      min-height: 0;
    }

/* styles/core/00-14-left-sheet-list.css */
/* left: sheet list */
    .spm-list {
      border-right: 1px solid rgba(59, 130, 246, .08);
      overflow-y: auto;
      padding: 10px 8px;
      display: flex;
      flex-direction: column;
      gap: 4px;
      scrollbar-width: thin;
      scrollbar-color: rgba(59, 130, 246, .15) transparent;
    }

    .spm-list::-webkit-scrollbar {
      width: 3px;
    }

    .spm-list::-webkit-scrollbar-thumb {
      background: rgba(59, 130, 246, .18);
      border-radius: 2px;
    }

    .spm-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 10px;
      border-radius: 9px;
      cursor: pointer;
      user-select: none;
      border: 1px solid transparent;
      transition: all .14s;
    }

    .spm-item:hover {
      background: rgba(59, 130, 246, .06);
      border-color: rgba(59, 130, 246, .12);
    }

    .spm-item.active {
      background: rgba(10, 28, 72, .85);
      border-color: rgba(59, 130, 246, .28);
    }

    .spm-item-chk {
      width: 16px;
      height: 16px;
      border-radius: 4px;
      flex-shrink: 0;
      border: 1.5px solid rgba(59, 130, 246, .25);
      background: rgba(4, 10, 24, .8);
      display: grid;
      place-items: center;
      font-size: 9px;
      color: transparent;
      transition: all .14s;
    }

    .spm-item.sel .spm-item-chk {
      background: rgba(34, 197, 94, .15);
      border-color: #22c55e;
      color: #22c55e;
    }

    .spm-item-name {
      font-size: 11px;
      font-weight: 600;
      color: #3a6080;
      flex: 1;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .spm-item.active .spm-item-name {
      color: #93c5fd;
    }

    .spm-item.sel .spm-item-name {
      color: #7dd3fc;
    }

    .spm-item-rows {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px;
      color: #1a3050;
      flex-shrink: 0;
    }

/* styles/core/00-15-right-preview.css */
/* right: preview */
    .spm-preview {
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }

    .spm-preview-hdr {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 14px;
      background: rgba(3, 8, 24, .95);
      border-bottom: 1px solid rgba(59, 130, 246, .07);
      flex-shrink: 0;
    }

    .spm-preview-name {
      font-size: 11px;
      font-weight: 700;
      color: #4a7090;
    }

    .spm-preview-meta {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      color: #1a3050;
    }

    .spm-table-wrap {
      flex: 1;
      overflow: auto;
      padding: 0;
      scrollbar-width: thin;
      scrollbar-color: rgba(59, 130, 246, .15) transparent;
    }

    .spm-table-wrap::-webkit-scrollbar {
      width: 4px;
      height: 4px;
    }

    .spm-table-wrap::-webkit-scrollbar-thumb {
      background: rgba(59, 130, 246, .16);
      border-radius: 2px;
    }

    .spm-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 11px;
      min-width: 500px;
    }

    .spm-table th {
      position: sticky;
      top: 0;
      z-index: 2;
      padding: 7px 10px;
      background: rgba(4, 10, 28, .99);
      font-size: 9px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .7px;
      color: #2a4a6a;
      border-bottom: 2px solid rgba(59, 130, 246, .12);
      white-space: nowrap;
      text-align: left;
    }

    .spm-table td {
      padding: 5px 10px;
      border-bottom: 1px solid rgba(255, 255, 255, .025);
      color: #2a4a6a;
      white-space: nowrap;
      max-width: 240px;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .spm-table tr:hover td {
      background: rgba(59, 130, 246, .04);
    }

    .spm-table tr.spm-section td {
      background: rgba(59, 130, 246, .04);
      color: #3a6090;
      font-weight: 700;
      font-size: 10px;
      border-top: 1px solid rgba(59, 130, 246, .08);
    }

    .spm-table .spm-num {
      color: #1a4a6a;
      font-family: 'JetBrains Mono', monospace;
    }

    .spm-empty {
      padding: 40px;
      text-align: center;
      color: #1a3050;
      font-size: 12px;
    }

/* styles/core/00-16-modal-footer.css */
/* modal footer */
    .spm-footer {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 16px;
      background: rgba(3, 8, 24, .98);
      border-top: 1px solid rgba(59, 130, 246, .08);
      flex-shrink: 0;
    }

    .spm-stat {
      font-size: 10px;
      font-family: 'JetBrains Mono', monospace;
      color: #1e3050;
    }

    .spm-stat b {
      color: #60a5fa;
    }

    .spm-fbtn {
      padding: 7px 16px;
      border-radius: 9px;
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      font-family: inherit;
      border: 1px solid;
      transition: all .15s;
    }

    .spm-fbtn.sec {
      border-color: rgba(148, 163, 184, .12);
      background: rgba(4, 10, 24, .8);
      color: #3a6080;
    }

    .spm-fbtn.sec:hover {
      border-color: rgba(96, 165, 250, .3);
      color: #7dd3fc;
    }

    .spm-fbtn.pri {
      border-color: rgba(59, 130, 246, .38);
      background: linear-gradient(135deg, rgba(26, 86, 219, .8), rgba(8, 145, 178, .8));
      color: #dbeafe;
      box-shadow: 0 4px 14px rgba(59, 130, 246, .2);
    }

    .spm-fbtn.pri:hover {
      box-shadow: 0 6px 20px rgba(59, 130, 246, .35);
      transform: translateY(-1px);
    }

    .spm-fbtn.all-none {
      border-color: rgba(148, 163, 184, .1);
      background: rgba(4, 10, 24, .7);
      color: #2a4060;
      font-size: 10px;
    }

    .spm-fbtn.all-none:hover {
      color: #7dd3fc;
      border-color: rgba(96, 165, 250, .28);
    }

    .file-st.ok {
      color: var(--gn);
    }

    .file-st.loading {
      color: var(--am);
    }

    .del-btn {
      background: none;
      border: none;
      color: var(--mu);
      cursor: pointer;
      padding: 4px 6px;
      border-radius: 6px;
      font-size: 13px;
      transition: .14s;
      flex-shrink: 0;
    }

    .del-btn:hover {
      color: var(--rd);
      background: rgba(239, 68, 68, .1);
    }

/* styles/core/00-17-chat.css */
/* CHAT */
    .chat-box {
      background: rgba(2, 8, 20, .8);
      border: 1px solid var(--sk2);
      border-radius: var(--r2);
      padding: 16px;
      min-height: 160px;
      max-height: 280px;
      overflow-y: auto;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .msg {
      display: flex;
      gap: 10px;
      align-items: flex-start;
    }

    .msg.usr {
      flex-direction: row-reverse;
    }

    .av {
      width: 30px;
      height: 30px;
      border-radius: 9px;
      display: grid;
      place-items: center;
      font-size: 13px;
      flex-shrink: 0;
    }

    .msg.ai .av {
      background: linear-gradient(135deg, #1a56db, #06b6d4);
      box-shadow: 0 0 12px rgba(59, 130, 246, .28);
    }

    .msg.usr .av {
      background: rgba(30, 50, 90, .8);
      border: 1px solid rgba(148, 163, 184, .18);
    }

    .bubble {
      max-width: 85%;
      padding: 10px 14px;
      border-radius: 12px;
      font-size: 12.5px;
      line-height: 1.6;
    }

    .msg.ai .bubble {
      background: rgba(12, 24, 50, .9);
      border: 1px solid rgba(59, 130, 246, .15);
      color: var(--tx);
    }

    .msg.usr .bubble {
      background: rgba(26, 50, 90, .8);
      border: 1px solid rgba(59, 130, 246, .2);
      color: #dbeafe;
    }

    .bubble b {
      color: #93c5fd;
    }

    .chat-row {
      display: flex;
      gap: 9px;
      margin-top: 10px;
    }

    .chat-inp {
      flex: 1;
      background: rgba(4, 10, 24, .9);
      border: 1px solid rgba(148, 163, 184, .15);
      border-radius: var(--r3);
      padding: 10px 14px;
      color: var(--tx);
      font-size: 13px;
      font-family: inherit;
      outline: none;
      transition: all .18s;
    }

    .chat-inp:focus {
      border-color: rgba(96, 165, 250, .44);
    }

    .chat-inp::placeholder {
      color: var(--mu);
    }

    .send-btn {
      padding: 10px 18px;
      border-radius: var(--r3);
      border: none;
      background: linear-gradient(135deg, #1a56db, #0891b2);
      color: #fff;
      font-size: 12.5px;
      font-weight: 700;
      cursor: pointer;
      transition: all .18s;
      font-family: inherit;
      white-space: nowrap;
    }

    .send-btn:hover {
      box-shadow: 0 4px 16px rgba(59, 130, 246, .38);
      transform: translateY(-1px);
    }

    .send-btn:disabled {
      opacity: .4;
      cursor: not-allowed;
      transform: none;
    }

    .gen-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      flex-wrap: wrap;
      margin-top: 16px;
      padding-top: 16px;
      border-top: 1px solid var(--sk2);
    }

    .gen-note {
      font-size: 12px;
      color: var(--mu);
    }

    .gen-btn {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 13px 26px;
      border-radius: var(--r2);
      border: none;
      background: linear-gradient(135deg, #1a56db 0%, #0891b2 55%, #06b6d4 100%);
      color: #fff;
      font-family: 'Syne', sans-serif;
      font-size: 14px;
      font-weight: 700;
      cursor: pointer;
      box-shadow: 0 6px 24px rgba(59, 130, 246, .34);
      transition: all .22s;
    }

    .gen-btn:hover {
      box-shadow: 0 10px 34px rgba(59, 130, 246, .48);
      transform: translateY(-2px);
    }

    .gen-btn:disabled {
      opacity: .4;
      cursor: not-allowed;
      transform: none;
      box-shadow: none;
    }

/* styles/tabs/00-18-project-calendar.css */
/* ══════════════════════════════════════════
   PROJECT CALENDAR
   Dark navy sidebar + Light editor panel
   ══════════════════════════════════════════ */

/* ── Tab Panel ── */
#tp-calendar {
  background: #F8F9FA;
  min-height: 100%;
  color: #1B1A17;
}

/* ── Stats Strip (4 large-number cards) — LIGHT ── */
.pcal-stats-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-bottom: 1px solid #E5E7EB;
  background: #FFFFFF;
}

.pcal-stat-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 22px 12px;
  border-right: 1px solid #E5E7EB;
  text-align: center;
}

.pcal-stat-card:last-child {
  border-right: none;
}

.pcal-stat-icon {
  font-size: 20px;
  opacity: .55;
  margin-bottom: 2px;
}

.pcal-sum-val {
  font-family: 'Syne', sans-serif;
  font-size: 34px;
  font-weight: 800;
  color: #1B1A17;
  line-height: 1;
}

.pcal-sum-lbl {
  font-size: 10px;
  font-weight: 600;
  color: #9CA3AF;
  text-transform: none;
  letter-spacing: 0;
}

/* ── Sync bar ── */
.pcal-sync-bar {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 8px 18px;
  background: rgba(5, 150, 105, .06);
  border-bottom: 1px solid rgba(5, 150, 105, .2);
  font-size: 11px;
  font-weight: 700;
  color: #059669;
}

.pcal-sync-bar.visible {
  display: flex;
}

/* ── Applied Years chips ── */
.pcal-applied-years {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  margin-top: 10px;
  flex-wrap: wrap;
}

.pcal-applied-years-label {
  font-size: 11px;
  font-weight: 700;
  color: #6B7280;
  margin-right: 2px;
}

.pcal-year-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(37, 99, 235, .3);
  background: rgba(37, 99, 235, .06);
  font-size: 11px;
  font-weight: 700;
  color: #2563EB;
  font-family: 'JetBrains Mono', monospace;
}

/* ── Two-column layout ── */
.pcal-wrap {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 16px;
  padding: 16px;
  min-height: calc(100vh - var(--app-content-top) - 86px);
}

/* ── Calendar List Column — DARK NAVY (stays dark) ── */
.pcal-list-col {
  background: linear-gradient(160deg, #0D1829 0%, #0A1525 100%);
  border: 1px solid rgba(59, 130, 246, .18);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.pcal-list-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 15px;
  border-bottom: 1px solid rgba(59, 130, 246, .18);
  background: rgba(4, 10, 28, .9);
  font-size: 12px;
  font-weight: 800;
  color: #E2E8F0;
  flex-shrink: 0;
}

.pcal-list {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(59, 130, 246, .2) transparent;
}

.pcal-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 13px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: rgba(255,255,255,.04);
  cursor: pointer;
  transition: all .15s;
}

.pcal-item:hover {
  border-color: rgba(59, 130, 246, .25);
  background: rgba(59, 130, 246, .08);
}

.pcal-item.active {
  border-color: rgba(59, 130, 246, .5);
  background: rgba(15, 32, 72, .95);
}

.pcal-item-ico {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(59, 130, 246, .12);
  border: 1px solid rgba(59, 130, 246, .2);
  display: grid;
  place-items: center;
  font-size: 16px;
  flex-shrink: 0;
}

.pcal-item-info {
  flex: 1;
  min-width: 0;
}

.pcal-item-name {
  font-size: 12px;
  font-weight: 700;
  color: #E2E8F0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pcal-item-meta {
  font-size: 10px;
  color: #64748B;
  margin-top: 2px;
  font-family: 'JetBrains Mono', monospace;
}

.pcal-item-badge {
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 800;
  border: 1px solid;
}

.pcal-item-badge.default {
  color: #4ADE80;
  background: rgba(34, 197, 94, .1);
  border-color: rgba(34, 197, 94, .25);
}

.pcal-item-badge.custom {
  color: #60A5FA;
  background: rgba(59, 130, 246, .1);
  border-color: rgba(59, 130, 246, .25);
}

/* ── Editor Panel — WHITE/LIGHT ── */
.pcal-editor {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.pcal-editor-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: 48px;
  text-align: center;
  color: #9CA3AF;
}

.pcal-editor-body {
  flex: 1;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #E5E7EB transparent;
}

.pcal-editor-hdr {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  background: #FFFFFF;
  border-bottom: 1px solid #E5E7EB;
  flex-shrink: 0;
}

.pcal-editor-hdr-title {
  flex: 1;
  min-width: 0;
}

.pcal-name-inp {
  background: transparent;
  border: none;
  outline: none;
  font-family: 'Syne', sans-serif;
  font-size: 20px;
  font-weight: 800;
  color: #1B1A17;
  width: 100%;
  padding-bottom: 2px;
  transition: border .18s;
}

.pcal-name-inp::placeholder {
  color: #D1D5DB;
}

.pcal-editor-meta {
  font-size: 10px;
  color: #9CA3AF;
  margin-top: 2px;
  font-family: 'JetBrains Mono', monospace;
}

/* ── Buttons: Delete ── */
.pcal-del-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 8px;
  border: 1px solid rgba(220, 38, 38, .35);
  background: transparent;
  color: #DC2626;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .15s;
}

.pcal-del-btn:hover {
  border-color: rgba(220, 38, 38, .6);
  background: rgba(220, 38, 38, .06);
}

/* ── Buttons: Save & Apply ── */
.pcal-save-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: 8px;
  border: 1px solid #0D1829;
  background: #0D1829;
  color: #FFFFFF;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .15s;
}

.pcal-save-btn:hover {
  background: #162033;
  border-color: #1E3A5F;
  box-shadow: 0 4px 14px rgba(13, 24, 41, .25);
}

/* ── Sections ── */
.pcal-section {
  padding: 20px 22px;
  border-bottom: 1px solid #F0F0F0;
  background: #FFFFFF;
}

.pcal-section:last-child {
  border-bottom: none;
}

.pcal-section-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Syne', sans-serif;
  font-size: 14px;
  font-weight: 800;
  color: #1B1A17;
  margin-bottom: 16px;
}

.pcal-section-num {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #1B1A17;
  color: #FFFFFF;
  font-size: 11px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ── Work week row ── */
.pcal-workweek-row {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  flex-wrap: wrap;
}

.pcal-days-wrap {
  flex-shrink: 0;
}

.pcal-days-label {
  font-size: 11px;
  font-weight: 600;
  color: #6B7280;
  margin-bottom: 10px;
}

.pcal-days-row {
  display: flex;
  gap: 5px;
}

/* Day toggle buttons */
.pcal-day-btn {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  border: 1.5px solid #D1D5DB;
  background: #FFFFFF;
  color: #6B7280;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
  transition: all .18s;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pcal-day-btn:hover {
  border-color: #9CA3AF;
  color: #374151;
}

/* Active/selected day — dark navy */
.pcal-day-btn.on {
  border-color: #0D1829;
  background: #0D1829;
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(13, 24, 41, .2);
}

.pcal-day-btn.weekend-day.on {
  border-color: #D97706;
  background: #92400E;
  color: #FDE68A;
}

.pcal-hours-wrap {
  flex: 1;
  min-width: 280px;
}

.pcal-hours-label {
  font-size: 11px;
  font-weight: 600;
  color: #6B7280;
  margin-bottom: 10px;
}

.pcal-hours-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* ── Input fields inside calendar — light ── */
#tp-calendar input[type="text"],
#tp-calendar input[type="number"],
#tp-calendar input[type="date"],
#tp-calendar input[type="time"],
#tp-calendar select {
  background: #FFFFFF;
  border: 1.5px solid #D1D5DB;
  border-radius: 8px;
  color: #1B1A17;
  padding: 8px 12px;
  font-size: 13px;
  font-family: inherit;
  outline: none;
  transition: border .15s;
}

#tp-calendar input:focus,
#tp-calendar select:focus {
  border-color: #93C5FD;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .08);
}

#tp-calendar select option {
  background: #FFFFFF;
  color: #1B1A17;
}

/* ── Labels inside calendar ── */
#tp-calendar label {
  color: #6B7280;
  font-size: 11px;
  font-weight: 600;
}

/* ── Summary box ── */
.pcal-summary-box {
  margin-top: 12px;
  padding: 12px 16px;
  border-radius: 10px;
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.pcal-sum-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pcal-sum-item .pcal-sum-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 18px;
  color: #2563EB;
}

.pcal-sum-item .pcal-sum-lbl {
  font-size: 10px;
  color: #9CA3AF;
}

/* ── Preset buttons ── */
.pcal-preset-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.pcal-preset-label {
  font-size: 11px;
  font-weight: 700;
  color: #6B7280;
  white-space: nowrap;
}

.pcal-preset {
  padding: 6px 14px;
  border-radius: 999px;
  border: 1.5px solid #D1D5DB;
  background: #FFFFFF;
  color: #374151;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
  white-space: nowrap;
}

.pcal-preset:hover {
  border-color: #9CA3AF;
  color: #1F2937;
  background: #F1F5F9;
}

/* Selected/applied preset — dark navy filled */
.pcal-preset.applied {
  border-color: #0D1829;
  background: #0D1829;
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(13, 24, 41, .2);
}

/* ── Exceptions / Holidays ── */
.pcal-exc-top {
  margin-bottom: 12px;
}

.pcal-exc-add-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 10px;
}

.pcal-exc-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 200px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #E5E7EB transparent;
}

.pcal-exc-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #FFFBF0;
  border: 1px solid rgba(245, 158, 11, .2);
  transition: border-color .15s;
}

.pcal-exc-item:hover {
  border-color: rgba(245, 158, 11, .4);
}

.pcal-exc-date {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: #D97706;
  min-width: 90px;
}

.pcal-exc-desc {
  flex: 1;
  font-size: 11px;
  color: #374151;
}

.pcal-exc-del {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  border: 1px solid rgba(220, 38, 38, .25);
  background: transparent;
  color: #DC2626;
  font-size: 13px;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: all .14s;
  flex-shrink: 0;
}

.pcal-exc-del:hover {
  background: rgba(220, 38, 38, .08);
  border-color: rgba(220, 38, 38, .5);
}

/* ── Holiday section buttons ── */
.pcal-holidays-section {
  margin-top: 12px;
}

.pcal-holidays-label {
  font-size: 11px;
  font-weight: 700;
  color: #6B7280;
  margin-bottom: 8px;
}

.pcal-country-select-row {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
}

.pcal-islamic-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.pcal-islamic-label {
  font-size: 11px;
  font-weight: 700;
  color: #6B7280;
}

/* Islamic holiday pill buttons */
.pcal-islamic-btn {
  padding: 6px 14px;
  border-radius: 999px;
  border: 1.5px solid #D1D5DB;
  background: #FFFFFF;
  color: #374151;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .14s;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.pcal-islamic-btn:hover {
  border-color: #9CA3AF;
  background: #F1F5F9;
  color: #1F2937;
}

/* Add For All Years — dark navy filled */
.pcal-add-years-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: 8px;
  border: 1px solid #0D1829;
  background: #0D1829;
  color: #FFFFFF;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .15s;
  white-space: nowrap;
}

.pcal-add-years-btn:hover {
  background: #162033;
  box-shadow: 0 4px 12px rgba(13, 24, 41, .25);
}

/* Add Manually — amber/gold filled */
.pcal-add-manual-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 8px;
  border: 1px solid #B45309;
  background: #B45309;
  color: #FFFFFF;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .15s;
  white-space: nowrap;
}

.pcal-add-manual-btn:hover {
  background: #92400E;
  box-shadow: 0 4px 12px rgba(180, 83, 9, .25);
}

/* Delete All — outlined red */
.pcal-del-all-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid rgba(220, 38, 38, .35);
  background: transparent;
  color: #DC2626;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .15s;
}

.pcal-del-all-btn:hover {
  background: rgba(220, 38, 38, .06);
  border-color: rgba(220, 38, 38, .55);
}

/* ── Annual Preview / month grid ── */
.pcal-annual-section {
  padding: 20px 22px;
  background: #FFFFFF;
}

.pcal-year-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}

.pcal-month-card {
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  overflow: hidden;
  background: #FFFFFF;
}

.pcal-month-card-hdr {
  padding: 8px 12px;
  background: #F9FAFB;
  border-bottom: 1px solid #E5E7EB;
  font-size: 11px;
  font-weight: 800;
  color: #374151;
}

.pcal-mday {
  font-size: 10px;
  padding: 3px;
  text-align: center;
}

.pcal-mday.work {
  background: rgba(37, 99, 235, .06);
  color: #2563EB;
}

.pcal-mday.off {
  background: rgba(220, 38, 38, .04);
  color: #DC2626;
}

.pcal-mday.holiday {
  background: rgba(245, 158, 11, .1);
  color: #D97706;
  font-weight: 700;
}

.pcal-mday.today {
  background: rgba(245, 158, 11, .18);
  color: #B45309;
  border-radius: 50%;
  font-weight: 800;
}

/* ── Legend ── */
.pcal-legend {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  padding: 10px 22px;
  border-top: 1px solid #E5E7EB;
  background: #F9FAFB;
  font-size: 10px;
}

.pcal-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #6B7280;
  font-weight: 600;
}

.pcal-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
}

/* ── Activity Override Section ── */
.pcal-override-section {
  padding: 20px 22px;
  border-top: 1px solid #E5E7EB;
  background: #FFFFFF;
}

/* ── Country buttons ── */
.pcal-country-btn {
  padding: 6px 12px;
  border-radius: 7px;
  border: 1.5px solid #D1D5DB;
  background: #FFFFFF;
  color: #374151;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .14s;
  white-space: nowrap;
}

.pcal-country-btn:hover {
  border-color: #9CA3AF;
  background: #F1F5F9;
  color: #1F2937;
}

/* ── Empty state ── */
#tp-calendar .empty {
  padding: 60px 20px;
  text-align: center;
}

#tp-calendar .empty-t {
  font-size: 14px;
  font-weight: 700;
  color: #6B7280;
}

/* ── Nav buttons ── */
.pcal-nav-sm {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1px solid #E2E8F0;
  background: #FFFFFF;
  color: #6B7280;
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 13px;
  transition: all .14s;
}

.pcal-nav-sm:hover {
  border-color: #CBD5E1;
  color: #374151;
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE / MOBILE — Accordion cards + dropdown
   ═══════════════════════════════════════════════════════ */

/* ── Section title SVGs — keep from stretching in flex layout ── */
.pcal-section-title svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* ── Mobile calendar dropdown (hidden on desktop) ── */
.pcal-mob-cal-select-wrap {
  display: none;
}

/* ── Accordion elements (hidden on desktop) ── */
.pcal-acc-summary,
.pcal-acc-arrow {
  display: none !important;
}

/* ── Tablet: ≤1024px ── */
@media (max-width: 1024px) {
  #tp-calendar .pcal-wrap {
    gap: 10px;
    padding: 10px;
  }
  #tp-calendar .pcal-section {
    padding: 12px 14px;
  }
  #tp-calendar [data-section] .pcal-year-grid {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important;
    gap: 8px !important;
  }
}

/* ── Small tablet: ≤900px ── */
@media (max-width: 900px) {
  #tp-calendar .pcal-list-col {
    width: 200px;
  }
  #tp-calendar .pcal-stats-strip {
    grid-template-columns: repeat(2, 1fr);
  }
  #tp-calendar .pcal-stat-card {
    padding: 10px 8px;
  }
  #tp-calendar .pcal-sum-val {
    font-size: 22px;
  }
  #tp-calendar .pcal-workweek-row {
    flex-direction: column;
    gap: 12px;
  }
  #tp-calendar .pcal-hours-wrap {
    min-width: 0;
    width: 100%;
  }
  #tp-calendar .pcal-hours-row {
    flex-wrap: wrap;
  }
  #tp-calendar .pcal-day-btn {
    width: 34px;
    height: 34px;
    font-size: 9px;
  }
  #tp-calendar .pcal-preset {
    font-size: 10px;
    padding: 4px 10px;
  }
  #tp-calendar [data-section] .pcal-year-grid {
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important;
    gap: 6px !important;
  }
  #tp-calendar .pcal-editor-hdr {
    padding: 10px 12px;
    flex-wrap: wrap;
    gap: 8px;
  }
  #tp-calendar .pcal-name-inp {
    font-size: 15px;
  }
}

/* ═══════════════════════════════════════════════════════
   MOBILE: ≤640px — Accordion card layout
   ═══════════════════════════════════════════════════════ */
@media (max-width: 640px) {

  /* ── Layout ── */
  #tp-calendar .pcal-wrap {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
    min-height: calc(100vh - var(--app-content-top) - 76px);
  }

  /* Sidebar hidden on mobile (calendar list via dropdown) */
  #tp-calendar .pcal-list-col {
    display: none;
  }

  /* Editor full width */
  #tp-calendar .pcal-editor {
    border-radius: 0;
    min-height: calc(100vh - 50px);
    border-left: none;
    border-right: none;
  }

  #tp-calendar .pcal-editor-empty {
    min-height: 60vh;
    padding: 32px 20px;
  }

  /* ── Editor header ── */
  #tp-calendar .pcal-editor-hdr {
    padding: 10px 12px;
    flex-wrap: wrap;
    gap: 8px;
    position: sticky;
    top: 0;
    z-index: 10;
  }

  /* Show calendar dropdown instead of sidebar */
  #tp-calendar .pcal-mob-cal-select-wrap {
    display: flex;
    flex: 1;
    min-width: 0;
  }

  #tp-calendar .pcal-mob-cal-select {
    width: 100%;
    padding: 6px 8px;
    border-radius: 8px;
    border: 1.5px solid #D1D5DB;
    background: #FFFFFF;
    color: #1B1A17;
    font-size: 13px;
    font-weight: 700;
    font-family: inherit;
    outline: none;
    cursor: pointer;
    appearance: auto;
    -webkit-appearance: auto;
  }

  #tp-calendar .pcal-title-wrap {
    display: none;
  }

  #tp-calendar .pcal-header-actions {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
  }

  #tp-calendar .pcal-header-actions .hbtn {
    padding: 6px 10px;
    font-size: 11px;
    justify-content: center;
    min-width: 36px;
  }

  #tp-calendar .pcal-header-actions .hbtn span {
    display: none;
  }

  #tp-calendar .pcal-header-actions .hbtn svg {
    width: 16px;
    height: 16px;
  }

  #tp-calendar .pcal-editor-meta {
    display: none;
  }

  /* ── Sync bar ── */
  #tp-calendar .pcal-sync-bar {
    padding: 6px 10px;
    font-size: 10px;
  }

  /* ── Stats strip — compact 2×2 grid ── */
  #tp-calendar section.pcal-stats-strip {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0 !important;
    border-bottom: 1px solid #E5E7EB !important;
    background: #FFFFFF !important;
  }

  /* div.pcal-stat-card beats 141's min-height:118px */
  #tp-calendar div.pcal-stat-card {
    min-height: auto !important;
    padding: 6px 4px !important;
    gap: 1px !important;
    border-right: none !important;
  }

  #tp-calendar .pcal-stat-icon {
    font-size: 12px;
    margin-bottom: 0;
  }

  #tp-calendar .pcal-sum-val {
    font-size: 14px;
  }

  #tp-calendar .pcal-sum-lbl {
    font-size: 8px;
  }

  /* ══════════════════════════════════════
     ACCORDION SECTIONS
     ══════════════════════════════════════ */

  /* Each section is a card with no border-radius at top/bottom */
  #tp-calendar .pcal-section {
    padding: 0;
    border-bottom: 4px solid #F0F0F0;
    background: #FFFFFF;
  }

  #tp-calendar .pcal-section:last-child {
    border-bottom: none;
  }

  /* Accordion header — always visible, tap target */
  /* Use CSS variable fallbacks so premium colors still work */
  #tp-calendar [data-section] .pcal-section-title {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    margin: 0 !important;
    min-height: auto !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    line-height: 1.3 !important;
    background: var(--cal-navy, #0D1829) !important;
    color: #fffdf8 !important;
    border-bottom: 1px solid var(--cal-line, rgba(36,180,126,.42)) !important;
  }

  /* Summary text between title and arrow */
  #tp-calendar [data-section] .pcal-acc-summary {
    display: inline !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    margin-left: auto !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 90px;
  }

  /* Chevron arrow — let premium control color via SVG inherit */
  #tp-calendar [data-section] .pcal-acc-arrow {
    display: block !important;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    transition: transform .2s;
  }

  #tp-calendar [data-section].pcal-acc-open .pcal-acc-arrow {
    transform: rotate(180deg);
  }

  /* Accordion body — collapsible */
  #tp-calendar [data-section] .pcal-acc-body {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height .35s ease, opacity .25s ease, padding .25s ease;
    padding: 0 12px;
  }

  #tp-calendar [data-section].pcal-acc-open .pcal-acc-body {
    max-height: 4000px;
    opacity: 1;
    padding: 12px;
  }

  /* Hide the old badge/delete-all that are in the title bar on desktop */
  #tp-calendar [data-section] .pcal-section-title .tbadge,
  #tp-calendar [data-section] .pcal-section-title .pcal-clear-btn,
  #tp-calendar [data-section] .pcal-section-title .pcal-year-nav {
    display: none !important;
  }

  /* ══════════════════════════════════════
     141 THEME REFRESH OVERRIDES
     [data-section] beats 141's !important
     ══════════════════════════════════════ */

  /* Workweek: 141 forces grid → collapse to column */
  #tp-calendar [data-section] .pcal-workweek-row {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    padding: 0 !important;
    background: transparent !important;
    border-bottom: none !important;
  }

  /* Day buttons: 141 forces 46px → use 38px mobile */
  #tp-calendar [data-section] .pcal-day-btn {
    width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    font-size: 10px !important;
    border-radius: 10px !important;
    border: 1.5px solid var(--cal-line, #D1D5DB) !important;
  }

  #tp-calendar [data-section] .pcal-day-btn.on {
    background: var(--cal-navy, #0D1829) !important;
    border-color: var(--cal-navy, #0D1829) !important;
    color: #FFFFFF !important;
  }

  /* Holiday manual: 141 forces grid → stack */
  #tp-calendar [data-section] .pcal-holiday-manual {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 10px !important;
    border: 1px solid var(--cal-line, #E5E7EB) !important;
    border-radius: 12px !important;
    margin-bottom: 16px !important;
    background: var(--cal-soft, #F9FAFB) !important;
  }

  /* Holiday presets: 141 forces desktop padding/border */
  #tp-calendar [data-section] .pcal-holiday-presets {
    padding: 10px !important;
    border: 1px solid var(--cal-line, #E5E7EB) !important;
    border-radius: 12px !important;
    margin-top: 16px !important;
    background: var(--cal-soft, #F9FAFB) !important;
  }

  /* Region row: 141 forces grid → stack */
  #tp-calendar [data-section] .pcal-region-row {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
  }

  /* Presets row: 141 forces desktop padding */
  #tp-calendar [data-section] .pcal-presets-row {
    padding: 6px 0 2px !important;
    background: transparent !important;
  }

  /* Exception list: 141 forces desktop padding */
  #tp-calendar [data-section] .pcal-exc-list {
    padding: 0 !important;
    background: transparent !important;
  }

  /* Exception item: 141 forces grid → flex */
  #tp-calendar [data-section] .pcal-exc-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 10px !important;
  }

  /* Override form: 141 forces grid → stack */
  #tp-calendar [data-section] .pcal-override-form {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 10px !important;
    border: 1px solid var(--cal-line, #E5E7EB) !important;
    border-radius: 12px !important;
    background: var(--cal-soft, #F9FAFB) !important;
  }

  /* Inputs: 141 forces 42px height → auto */
  #tp-calendar [data-section] .inp,
  #tp-calendar [data-section] input:not(.pcal-name-inp),
  #tp-calendar [data-section] select {
    height: auto !important;
    min-height: auto !important;
    padding: 8px 10px !important;
    font-size: 13px !important;
  }

  /* Labels: 141 overrides font-size/color */
  #tp-calendar [data-section] .pcal-days-label,
  #tp-calendar [data-section] .pcal-field-label {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #6B7280 !important;
  }

  /* Month dow: 141 forces desktop padding/color */
  #tp-calendar [data-section] .pcal-month-dow {
    padding: 2px 0 !important;
    color: #9CA3AF !important;
  }
  #tp-calendar [data-section] .pcal-month-dow span {
    color: #9CA3AF !important;
  }

  /* Month days: 141 forces height 22px → aspect-ratio squares */
  #tp-calendar [data-section] .pcal-mday {
    height: auto !important;
    font-size: 10px !important;
    padding: 3px 1px !important;
    border-radius: 3px !important;
    aspect-ratio: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  #tp-calendar [data-section] .pcal-mday.work {
    background: rgba(37, 99, 235, .06) !important;
    color: #2563EB !important;
  }
  #tp-calendar [data-section] .pcal-mday.off {
    background: rgba(220, 38, 38, .04) !important;
    color: #DC2626 !important;
  }
  #tp-calendar [data-section] .pcal-mday.holiday {
    background: rgba(245, 158, 11, .1) !important;
    color: #D97706 !important;
    border: none !important;
  }
  #tp-calendar [data-section] .pcal-mday.today-d {
    background: rgba(245, 158, 11, .18) !important;
    color: #B45309 !important;
    border-radius: 50% !important;
  }

  /* Legend: 141 forces desktop padding */
  #tp-calendar [data-section] .pcal-legend {
    padding: 6px 8px !important;
    gap: 6px !important;
    background: #F9FAFB !important;
    border-top: 1px solid #E5E7EB !important;
  }
  #tp-calendar [data-section] .pcal-leg-item {
    min-height: auto !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    font-size: 10px !important;
    color: #6B7280 !important;
  }
  #tp-calendar [data-section] .pcal-leg-item.work { color: #2563EB !important; background: transparent !important; }
  #tp-calendar [data-section] .pcal-leg-item.off { color: #DC2626 !important; background: transparent !important; }
  #tp-calendar [data-section] .pcal-leg-item.hol { color: #D97706 !important; background: transparent !important; }
  #tp-calendar [data-section] .pcal-leg-item.today { color: #B45309 !important; background: transparent !important; }

  /* Planner button: 141 forces desktop width/margin */
  #tp-calendar [data-section] .pcal-open-planner-btn {
    width: 100% !important;
    margin: 0 0 8px 0 !important;
  }

  /* Override details: 141 forces desktop margins */
  #tp-calendar [data-section] .pcal-override-details {
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
  }
  #tp-calendar [data-section] .pcal-override-details summary {
    min-height: auto !important;
    padding: 6px 0 !important;
    background: transparent !important;
    font-size: 12px !important;
  }

  /* Editor header: 141 forces 104px min-height → collapse */
  #tp-calendar header.pcal-editor-hdr {
    min-height: auto !important;
    padding: 8px 10px !important;
    gap: 6px !important;
  }

  /* ── Section 1: Working Days ── */
  #tp-calendar .pcal-workweek-row {
    flex-direction: column;
    gap: 12px;
  }

  #tp-calendar .pcal-days-wrap {
    width: 100%;
  }

  #tp-calendar .pcal-days-label {
    font-size: 11px;
    font-weight: 700;
    color: #6B7280;
    margin-bottom: 8px;
  }

  #tp-calendar .pcal-days-row {
    gap: 4px;
    justify-content: flex-start;
  }

  #tp-calendar .pcal-day-btn {
    width: 38px;
    height: 38px;
    font-size: 10px;
    border-radius: 8px;
    border: 1.5px solid #D1D5DB;
  }

  #tp-calendar .pcal-hours-label {
    font-size: 11px;
    font-weight: 700;
    color: #6B7280;
    margin-bottom: 8px;
  }

  #tp-calendar .pcal-hours-wrap {
    min-width: 0;
    width: 100%;
  }

  #tp-calendar .pcal-hours-row {
    flex-direction: column;
    gap: 8px;
  }

  #tp-calendar .pcal-hours-row .fg {
    width: 100%;
  }

  #tp-calendar .pcal-hours-row .fg label {
    font-size: 11px;
    font-weight: 600;
    color: #6B7280;
    margin-bottom: 3px;
    display: block;
  }

  #tp-calendar .pcal-hours-row .fg .inp,
  #tp-calendar .pcal-hours-row .fg input {
    width: 100%;
    padding: 8px 10px;
    font-size: 13px;
    border-radius: 8px;
    border: 1.5px solid #D1D5DB;
  }

  #tp-calendar .pcal-input-affix {
    display: flex;
    align-items: center;
    gap: 6px;
  }

  #tp-calendar .pcal-input-affix span {
    font-size: 12px;
    font-weight: 600;
    color: #6B7280;
  }

  /* Presets — horizontal scroll */
  #tp-calendar .pcal-presets-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 6px;
    padding: 6px 0 2px;
    -webkit-overflow-scrolling: touch;
    margin-top: 6px;
  }

  #tp-calendar .pcal-preset-label {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 700;
    color: #6B7280;
  }

  #tp-calendar .pcal-preset {
    flex-shrink: 0;
    font-size: 10px;
    padding: 6px 10px;
    white-space: nowrap;
    border-radius: 999px;
    border: 1.5px solid #D1D5DB;
    background: #FFFFFF;
    color: #374151;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
  }

  #tp-calendar .pcal-preset.applied {
    border-color: #0D1829;
    background: #0D1829;
    color: #FFFFFF;
  }

  /* ── Section 2: Holidays & Shutdowns ── */

  /* Inline manual add form */
  #tp-calendar .pcal-holiday-manual {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
    background: #F9FAFB;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
    padding: 10px;
  }

  #tp-calendar .pcal-field-label {
    font-size: 11px;
    font-weight: 700;
    color: #6B7280;
    margin-bottom: 3px;
  }

  #tp-calendar .pcal-holiday-manual .inp {
    width: 100%;
    padding: 8px 10px;
    font-size: 13px;
    border-radius: 8px;
    border: 1.5px solid #D1D5DB;
    font-family: inherit;
  }

  #tp-calendar .pcal-holiday-manual button {
    width: 100%;
    justify-content: center;
    padding: 8px;
    font-size: 12px;
  }

  /* Regional / recurring holidays section */
  #tp-calendar .pcal-holiday-presets {
    margin-top: 12px;
    background: #F9FAFB;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
    padding: 10px;
  }

  #tp-calendar .pcal-region-row {
    flex-direction: column;
    gap: 8px;
  }

  #tp-calendar .pcal-region-row > div {
    width: 100%;
  }

  #tp-calendar .pcal-region-row select,
  #tp-calendar .pcal-region-row .inp {
    width: 100%;
    padding: 8px 10px;
    font-size: 13px;
    border-radius: 8px;
    border: 1.5px solid #D1D5DB;
    font-family: inherit;
  }

  #tp-calendar .pcal-holiday-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }

  #tp-calendar .pcal-holiday-btns .hbtn {
    font-size: 10px;
    padding: 6px 10px;
    flex: 1;
    min-width: 0;
    justify-content: center;
    border-radius: 8px;
    border: 1.5px solid #D1D5DB;
    background: #FFFFFF;
    color: #374151;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
  }

  #tp-calendar .pcal-islamic-row {
    flex-direction: column;
    align-items: stretch;
  }

  #tp-calendar .pcal-islamic-btn {
    justify-content: center;
    width: 100%;
  }

  #tp-calendar .pcal-country-select-row {
    flex-direction: column;
    align-items: stretch;
  }

  #tp-calendar .pcal-add-years-btn,
  #tp-calendar .pcal-add-manual-btn {
    width: 100%;
    justify-content: center;
    padding: 8px;
  }

  #tp-calendar .pcal-country-note-row {
    font-size: 10px;
    color: #9CA3AF;
    margin-top: 6px;
  }

  #tp-calendar .pcal-exc-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 200px;
    overflow-y: auto;
  }

  #tp-calendar .pcal-exc-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    background: #FFFBF0;
    border: 1px solid rgba(245, 158, 11, .2);
  }

  #tp-calendar .pcal-exc-date {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    color: #D97706;
    white-space: nowrap;
  }

  #tp-calendar .pcal-exc-main {
    flex: 1;
    min-width: 0;
  }

  #tp-calendar .pcal-exc-desc {
    font-size: 11px;
    color: #374151;
    font-weight: 600;
  }

  #tp-calendar .pcal-exc-meta {
    font-size: 9px;
    color: #9CA3AF;
    margin-top: 1px;
  }

  #tp-calendar .pcal-exc-del {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    border: 1px solid rgba(220, 38, 38, .25);
    background: transparent;
    color: #DC2626;
    font-size: 12px;
    cursor: pointer;
    display: grid;
    place-items: center;
    flex-shrink: 0;
  }

  #tp-calendar .pcal-applied-years {
    flex-wrap: wrap;
    margin-top: 8px;
  }

  #tp-calendar .pcal-year-chip {
    font-size: 10px;
    padding: 3px 8px;
  }

  /* ── Section 3: Annual Preview ── */
  #tp-calendar .pcal-annual-section .pcal-year-nav {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
  }

  #tp-calendar .pcal-annual-section .pcal-year-nav .pcal-nav-sm {
    width: 30px;
    height: 30px;
    font-size: 14px;
    border-radius: 6px;
    border: 1.5px solid #E2E8F0;
    background: #FFFFFF;
    color: #6B7280;
    cursor: pointer;
    display: grid;
    place-items: center;
  }

  #tp-calendar .pcal-annual-section .pcal-year-nav .pcal-year-lbl {
    font-size: 13px;
    font-weight: 800;
    color: #1B1A17;
    font-family: 'JetBrains Mono', monospace;
    min-width: 42px;
    text-align: center;
  }

  /* All section bodies get compact padding on mobile */
  #tp-calendar [data-section] .pcal-acc-body {
    padding: 8px !important;
  }

  /* Year grid — compact 2-col month cards */
  /* [data-section] beats 141's !important 3-col/1-col grid */
  #tp-calendar [data-section] .pcal-year-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 4px !important;
    padding: 0 !important;
    background: transparent !important;
  }

  /* [data-section] beats 141's month-card-hdr min-height:34px */
  #tp-calendar [data-section] .pcal-month-card-hdr {
    min-height: auto !important;
    padding: 4px 6px !important;
    font-size: 9px !important;
  }
  #tp-calendar [data-section] .pcal-month-card-hdr .mhdr-name {
    font-size: 9px !important;
  }
  #tp-calendar [data-section] .pcal-month-card-hdr .mhdr-stats {
    font-size: 8px !important;
  }

  /* [data-section] beats 141's month-days padding */
  #tp-calendar [data-section] .pcal-month-days {
    padding: 2px 4px 4px !important;
    gap: 1px !important;
  }

  #tp-calendar [data-section] .pcal-month-dow {
    padding: 2px 4px 0 !important;
    gap: 1px !important;
  }
  #tp-calendar [data-section] .pcal-month-dow span {
    font-size: 7px !important;
    padding: 1px 0 !important;
  }

  #tp-calendar .pcal-mday {
    font-size: 8px;
    padding: 1px 0;
    text-align: center;
    border-radius: 2px;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  #tp-calendar .pcal-mday.work {
    background: rgba(37, 99, 235, .06);
    color: #2563EB;
  }

  #tp-calendar .pcal-mday.off {
    background: rgba(220, 38, 38, .04);
    color: #DC2626;
  }

  #tp-calendar .pcal-mday.holiday {
    background: rgba(245, 158, 11, .1);
    color: #D97706;
    font-weight: 700;
  }

  #tp-calendar .pcal-mday.today-d {
    background: rgba(245, 158, 11, .18);
    color: #B45309;
    border-radius: 50%;
    font-weight: 800;
  }

  #tp-calendar .pcal-legend {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 8px 12px;
    border-top: 1px solid #E5E7EB;
    background: #F9FAFB;
    font-size: 10px;
    font-weight: 600;
    color: #6B7280;
    margin-top: 8px;
  }

  #tp-calendar .pcal-legend .pcal-leg-item {
    display: flex;
    align-items: center;
    gap: 3px;
  }

  /* ── Section 4: Activity Overrides ── */
  #tp-calendar .pcal-override-form {
    flex-direction: column;
    gap: 8px;
    background: #F9FAFB;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
    padding: 10px;
  }

  #tp-calendar .pcal-override-form > div {
    width: 100%;
  }

  #tp-calendar .pcal-override-form .inp {
    width: 100%;
    padding: 8px 10px;
    font-size: 13px;
    border-radius: 8px;
    border: 1.5px solid #D1D5DB;
    font-family: inherit;
  }

  #tp-calendar .pcal-quick-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 6px;
    padding-bottom: 2px;
  }

  #tp-calendar .pcal-quick-row .pcal-preset {
    flex-shrink: 0;
    font-size: 10px;
    padding: 5px 10px;
    white-space: nowrap;
    border-radius: 999px;
    border: 1.5px solid #D1D5DB;
    background: #FFFFFF;
    color: #374151;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
  }

  #tp-calendar .pcal-override-actions {
    display: flex;
    gap: 6px;
  }

  #tp-calendar .pcal-override-actions .hbtn {
    flex: 1;
    justify-content: center;
    font-size: 11px;
    padding: 7px;
    border-radius: 8px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    border: 1.5px solid #D1D5DB;
    background: #FFFFFF;
    color: #374151;
  }

  #tp-calendar .pcal-override-actions .hbtn.primary {
    background: #0D1829;
    border-color: #0D1829;
    color: #FFFFFF;
  }

  #tp-calendar .pcal-open-planner-btn {
    width: 100%;
    justify-content: center;
    padding: 9px;
    font-size: 12px;
    border-radius: 8px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    margin-bottom: 8px;
  }

  #tp-calendar .pcal-override-details {
    font-size: 11px;
    color: #6B7280;
  }

  #tp-calendar .pcal-override-details summary {
    font-weight: 700;
    cursor: pointer;
    padding: 4px 0;
    font-size: 11px;
  }

  #tp-calendar .pcal-act-overrides {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 8px;
  }

  #tp-calendar .pcal-act-ov-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    background: #F9FAFB;
    border: 1px solid #E5E7EB;
    cursor: pointer;
  }

  #tp-calendar .pcal-act-ov-ico {
    font-size: 16px;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    background: rgba(59, 130, 246, .1);
    border-radius: 6px;
    flex-shrink: 0;
  }

  #tp-calendar .pcal-act-ov-name {
    font-size: 12px;
    font-weight: 700;
    color: #1B1A17;
  }

  #tp-calendar .pcal-act-ov-meta {
    font-size: 10px;
    color: #9CA3AF;
    margin-top: 1px;
  }

  /* ── Summary box ── */
  #tp-calendar .pcal-summary-box {
    flex-direction: column;
    gap: 8px;
    padding: 10px 12px;
    background: #F9FAFB;
    border-radius: 8px;
    border: 1px solid #E5E7EB;
  }

  #tp-calendar .pcal-sum-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  #tp-calendar .pcal-sum-item .pcal-sum-val {
    font-size: 14px;
    font-weight: 800;
    color: #2563EB;
    font-family: 'JetBrains Mono', monospace;
  }

  #tp-calendar .pcal-sum-item .pcal-sum-lbl {
    font-size: 10px;
    font-weight: 600;
    color: #9CA3AF;
  }

  /* ── Context menu — bottom sheet ── */
  #tp-calendar .pcal-day-ctx {
    position: fixed !important;
    left: 50% !important;
    top: auto !important;
    bottom: 16px !important;
    transform: translateX(-50%);
    width: calc(100% - 24px);
    max-width: 320px;
    border-radius: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,.2);
    padding: 4px;
  }

  /* ── Hide desktop-only elements ── */
  #tp-calendar .pcal-title-icon {
    display: none;
  }

  /* ── Field labels on forms ── */
  #tp-calendar label,
  #tp-calendar .lbl {
    font-size: 11px;
    font-weight: 600;
    color: #6B7280;
  }
}

/* styles/tabs/00-19-year-nav.css */
/* Year nav */
    .pcal-nav-sm {
      width: 26px;
      height: 26px;
      border-radius: 7px;
      border: 1px solid rgba(59, 130, 246, .22);
      background: rgba(8, 18, 42, .8);
      color: #60a5fa;
      font-size: 16px;
      cursor: pointer;
      display: grid;
      place-items: center;
      transition: all .15s;
    }

    .pcal-nav-sm:hover {
      border-color: rgba(96, 165, 250, .45);
      color: #93c5fd;
    }

    .pcal-year-lbl {
      font-family: 'JetBrains Mono', monospace;
      font-size: 14px;
      font-weight: 800;
      color: #93c5fd;
      min-width: 44px;
      text-align: center;
    }

/* styles/core/00-20-annual-grid-compact-no-gaps.css */
/* ── Annual grid — compact, no gaps ── */

/* styles/tabs/00-21-year-grid-4-3-professional-layout.css */
/* ── Year Grid — 4×3 professional layout ── */
    .pcal-year-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 8px;
      margin-top: 8px;
    }

    @media(max-width:1200px) {
      .pcal-year-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }

    @media(max-width:860px) {
      .pcal-year-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media(max-width:560px) {
      .pcal-year-grid {
        grid-template-columns: 1fr;
      }
    }

    .pcal-month-card {
      border-radius: 10px;
      overflow: hidden;
      border: 1px solid rgba(30, 58, 100, .7);
      background: rgba(5, 12, 28, .95);
      box-shadow: 0 2px 12px rgba(0, 0, 0, .35);
    }

    .pcal-month-card-hdr {
      padding: 7px 10px 6px;
      background: linear-gradient(90deg, #0d2b55, #0a1e42);
      display: flex;
      align-items: center;
      justify-content: space-between;
      border-bottom: 1px solid rgba(30, 60, 110, .6);
    }

    .pcal-month-card-hdr .mhdr-name {
      font-size: 12px;
      font-weight: 800;
      color: #f0f8ff;
      letter-spacing: .2px;
      font-family: 'DM Sans', sans-serif;
    }

    .pcal-month-card-hdr .mhdr-stats {
      font-size: 9px;
      font-weight: 700;
      color: #60a5fa;
    }

    .pcal-month-dow {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      background: rgba(10, 28, 60, .7);
    }

    .pcal-month-dow span {
      text-align: center;
      font-size: 9px;
      font-weight: 700;
      color: #4a7090;
      padding: 4px 1px;
      font-family: 'DM Sans', sans-serif;
    }

    .pcal-month-dow span.dow-off {
      color: #2a3d52;
    }

    .pcal-month-days {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      grid-auto-rows: 28px;
    }

    .pcal-mday {
      text-align: center;
      font-size: 11px;
      font-weight: 600;
      line-height: 28px;
      height: 28px;
      cursor: pointer;
      transition: all .12s;
      position: relative;
      font-family: 'DM Sans', sans-serif;
    }

    .pcal-mday.work {
      color: #c8e8d0;
      background: rgba(14, 77, 50, .45);
    }

    .pcal-mday.work:hover {
      background: rgba(16, 100, 60, .7);
      color: #fff;
    }

    .pcal-mday.off {
      color: #2e4460;
      background: rgba(20, 32, 55, .5);
    }

    .pcal-mday.off:hover {
      background: rgba(30, 48, 80, .6);
      color: #4a6890;
    }

    .pcal-mday.holiday {
      background: rgba(140, 80, 0, .55);
      color: #fbbf24;
      font-weight: 800;
      position: relative;
    }

    .pcal-mday.holiday::after {
      content: attr(data-desc);
      position: absolute;
      bottom: 1px;
      left: 0;
      right: 0;
      font-size: 6px;
      line-height: 1;
      color: #fcd34d;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      padding: 0 2px;
    }

    .pcal-mday.holiday:hover {
      background: rgba(180, 100, 0, .65);
    }

    .pcal-mday.today-d {
      background: linear-gradient(135deg, #1a56db, #0891b2) !important;
      color: #fff !important;
      font-weight: 800;
      border-radius: 50%;
      width: 26px;
      height: 26px;
      line-height: 26px;
      margin: 1px auto;
      display: block;
    }

    .pcal-mday.empty {
      visibility: hidden;
      pointer-events: none;
      cursor: default;
    }

/* styles/tabs/00-22-legend.css */
/* Legend */
    .pcal-legend {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 10px;
      padding: 10px 14px;
      border-radius: 10px;
      background: rgba(4, 10, 24, .7);
      border: 1px solid rgba(26, 51, 86, .4);
      align-items: center;
    }

    .pcal-leg-item {
      font-size: 11.5px;
      font-weight: 600;
      display: flex;
      align-items: center;
      gap: 7px;
      font-family: 'DM Sans', sans-serif;
      padding: 4px 10px;
      border-radius: 6px;
    }

    .pcal-leg-item::before {
      content: '';
      width: 16px;
      height: 16px;
      border-radius: 4px;
      flex-shrink: 0;
    }

    .pcal-leg-item.work {
      color: #86efac;
      background: rgba(14, 77, 50, .2);
    }

    .pcal-leg-item.work::before {
      background: rgba(14, 77, 50, .8);
      border: 1px solid rgba(34, 197, 94, .4);
    }

    .pcal-leg-item.off {
      color: #64748b;
      background: rgba(15, 25, 45, .4);
    }

    .pcal-leg-item.off::before {
      background: rgba(20, 32, 55, .8);
      border: 1px solid rgba(74, 96, 128, .35);
    }

    .pcal-leg-item.hol {
      color: #fbbf24;
      background: rgba(120, 70, 0, .2);
    }

    .pcal-leg-item.hol::before {
      background: rgba(140, 80, 0, .7);
      border: 1px solid rgba(245, 158, 11, .45);
    }

    .pcal-leg-item.today {
      color: #60a5fa;
      background: rgba(29, 78, 216, .12);
    }

    .pcal-leg-item.today::before {
      background: linear-gradient(135deg, #1a56db, #0891b2);
      border-radius: 50%;
    }

    .pcal-leg-sep {
      width: 1px;
      height: 18px;
      background: rgba(30, 58, 100, .6);
      flex-shrink: 0;
    }

/* styles/tabs/00-23-day-context-menu.css */
/* Day context menu */
    .pcal-day-ctx {
      position: fixed;
      z-index: 99999;
      background: rgba(5, 12, 32, .98);
      border: 1px solid rgba(59, 130, 246, .3);
      border-radius: 10px;
      box-shadow: 0 8px 32px rgba(0, 0, 0, .7);
      padding: 4px;
      min-width: 170px;
      backdrop-filter: blur(12px);
    }

    .pcal-ctx-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 12px;
      border-radius: 7px;
      font-size: 12px;
      font-weight: 600;
      color: var(--tx);
      cursor: pointer;
      transition: background .12s;
    }

    .pcal-ctx-item:hover {
      background: rgba(59, 130, 246, .18);
    }

    .pcal-ctx-item.danger:hover {
      background: rgba(239, 68, 68, .15);
      color: #f87171;
    }

    .pcal-ctx-sep {
      height: 1px;
      background: rgba(26, 51, 86, .5);
      margin: 3px 6px;
    }

    .pcal-ctx-date {
      padding: 6px 12px;
      font-size: 10px;
      color: var(--mu);
      font-family: 'JetBrains Mono', monospace;
      border-bottom: 1px solid rgba(26, 51, 86, .4);
      margin-bottom: 3px;
    }

/* styles/tabs/00-24-legend.css */
/* Legend */
    .pcal-legend {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      margin-top: 8px;
      padding-top: 8px;
      border-top: 1px solid rgba(26, 51, 86, .3);
    }

    .pcal-leg-item {
      font-size: 10px;
      font-weight: 600;
      display: flex;
      align-items: center;
      gap: 4px;
    }

    .pcal-leg-item.work {
      color: #b0ccdf;
    }

    .pcal-leg-item.off {
      color: #364f68;
    }

    .pcal-leg-item.hol {
      color: #fbbf24;
    }

    .pcal-leg-item.today {
      color: #60a5fa;
    }

/* styles/tabs/00-25-activity-overrides.css */
/* Activity overrides */
    .pcal-act-overrides {
      display: flex;
      flex-direction: column;
      gap: 5px;
    }

    .pcal-act-ov-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 9px 12px;
      border-radius: 9px;
      background: rgba(6, 14, 34, .8);
      border: 1px solid rgba(139, 92, 246, .18);
      cursor: pointer;
      transition: all .15s;
    }

    .pcal-act-ov-item:hover {
      border-color: rgba(139, 92, 246, .38);
      background: rgba(12, 22, 54, .9);
    }

    .pcal-act-ov-ico {
      font-size: 16px;
      flex-shrink: 0;
    }

    .pcal-act-ov-info {
      flex: 1;
      min-width: 0;
    }

    .pcal-act-ov-name {
      font-size: 12px;
      font-weight: 700;
      color: var(--tx);
    }

    .pcal-act-ov-meta {
      font-size: 10px;
      color: var(--mu);
      font-family: 'JetBrains Mono', monospace;
      margin-top: 2px;
    }

/* styles/tabs/00-26-modal.css */
/* Modal */
    .pcal-modal-ov {
      position: fixed;
      inset: 0;
      z-index: 9990;
      background: rgba(0, 4, 14, .82);
      backdrop-filter: blur(8px);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity .22s;
    }

    .pcal-modal-ov.open {
      opacity: 1;
      pointer-events: all;
    }

    .pcal-modal-box {
      width: min(500px, 94vw);
      background: linear-gradient(160deg, rgba(5, 12, 32, .99), rgba(3, 8, 24, .99));
      border: 1px solid rgba(139, 92, 246, .3);
      border-radius: 16px;
      box-shadow: 0 24px 80px rgba(0, 0, 0, .9);
      transform: translateY(16px);
      transition: transform .22s cubic-bezier(.2, 1, .3, 1);
    }

    .pcal-modal-ov.open .pcal-modal-box {
      transform: none;
    }

    .pcal-modal-hdr {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 14px 18px;
      background: rgba(3, 8, 24, .98);
      border-bottom: 1px solid rgba(139, 92, 246, .15);
      border-radius: 16px 16px 0 0;
    }

    .pcal-modal-ttl {
      font-family: 'Syne', sans-serif;
      font-size: 14px;
      font-weight: 800;
      color: #ddd6fe;
      flex: 1;
    }

/* tabs/gantt/styles/00-27-gantt-sync-notification.css */
/* Gantt sync notification */
    .pcal-sync-bar {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 16px;
      border-radius: 8px;
      background: rgba(34, 197, 94, .08);
      border: 1px solid rgba(34, 197, 94, .2);
      margin-bottom: 12px;
      font-size: 12px;
      color: #4ade80;
      display: none;
    }

    .pcal-sync-bar.visible {
      display: flex;
    }

    @media(max-width:800px) {
      .pcal-wrap {
        grid-template-columns: 1fr;
      }

      .pcal-list-col {
        max-height: 220px;
      }
    }

/* styles/core/00-28-overlay.css */
/* OVERLAY */
    .ov {
      position: fixed;
      inset: 0;
      z-index: 999;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(1, 6, 15, .92);
      backdrop-filter: blur(14px);
    }

    .ov.hidden {
      display: none;
    }

    .ov-card {
      background: rgba(7, 15, 32, .98);
      border: 1px solid var(--sk);
      border-radius: 20px;
      padding: 32px 36px;
      max-width: 520px;
      width: 92%;
      box-shadow: 0 24px 64px rgba(0, 0, 0, .5);
    }

    .ov-title {
      font-family: 'Syne', sans-serif;
      font-size: 20px;
      font-weight: 800;
      color: var(--st);
      margin-bottom: 6px;
    }

    .ov-sub {
      font-size: 12.5px;
      color: var(--mu);
      margin-bottom: 20px;
      line-height: 1.5;
    }

    .ov-steps {
      display: grid;
      gap: 7px;
    }

    .ov-step {
      display: flex;
      align-items: center;
      gap: 11px;
      padding: 10px 14px;
      border-radius: 9px;
      background: rgba(5, 12, 28, .8);
      border: 1px solid var(--sk2);
      font-size: 12px;
      color: var(--mu);
      transition: all .25s;
    }

    .ov-step .si {
      font-size: 16px;
      flex-shrink: 0;
      width: 22px;
      text-align: center;
    }

    .ov-step.active {
      color: #93c5fd;
      border-color: rgba(59, 130, 246, .3);
      background: rgba(12, 28, 62, .9);
    }

    .ov-step.active .si {
      animation: spin .9s linear infinite;
      display: inline-block;
    }

    .ov-step.done {
      color: #4ade80;
      border-color: rgba(34, 197, 94, .18);
      background: rgba(5, 18, 14, .7);
    }

    @keyframes spin {
      to {
        transform: rotate(360deg);
      }
    }

/* styles/core/00-29-kpi-strip.css */
/* KPI STRIP */
    .kpi-strip {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 12px;
      margin-bottom: 18px;
    }

    .kpi {
      padding: 14px 16px;
      border-radius: var(--r2);
      background: linear-gradient(150deg, rgba(7, 14, 30, .98), rgba(10, 22, 46, .96));
      border: 1px solid var(--sk2);
      border-left: 3px solid var(--c, #3b82f6);
      transition: all .2s;
    }

    .kpi:hover {
      transform: translateY(-2px);
      box-shadow: 0 12px 28px rgba(0, 0, 0, .24);
    }

    .kpi .k {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .9px;
      color: var(--mu);
    }

    .kpi .v {
      font-size: 22px;
      font-weight: 800;
      color: var(--c, #3b82f6);
      line-height: 1.1;
      margin-top: 5px;
      font-family: 'JetBrains Mono', monospace;
    }

    .kpi .s {
      font-size: 11px;
      color: var(--so);
      margin-top: 4px;
    }

/* styles/core/00-30-project-story.css */
/* PROJECT STORY */
    .story-card {
      padding: 18px 20px;
      border-radius: var(--r2);
      background: rgba(4, 12, 28, .8);
      border: 1px solid rgba(59, 130, 246, .18);
      margin-bottom: 16px;
    }

    .story-card .story-title {
      font-family: 'Syne', sans-serif;
      font-size: 16px;
      font-weight: 800;
      color: var(--st);
      margin-bottom: 10px;
    }

    .story-card .story-body {
      font-size: 13px;
      color: var(--tx);
      line-height: 1.7;
    }

    .story-card .story-body p {
      margin-bottom: 8px;
    }

    .story-card .story-body b {
      color: #93c5fd;
    }

    .story-sections {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
      margin-top: 14px;
    }

    .story-sec {
      padding: 12px 14px;
      border-radius: var(--r3);
      background: rgba(8, 18, 42, .8);
      border: 1px solid var(--sk2);
    }

    .story-sec .ss-title {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .9px;
      color: var(--mu);
      margin-bottom: 8px;
    }

    .story-sec ul {
      list-style: none;
      display: grid;
      gap: 5px;
    }

    .story-sec ul li {
      font-size: 12px;
      color: var(--tx);
      display: flex;
      gap: 7px;
      align-items: flex-start;
    }

    .story-sec ul li::before {
      content: '▸';
      color: var(--bl);
      flex-shrink: 0;
      font-size: 10px;
      margin-top: 2px;
    }

/* styles/tabs/00-31-mapping-sheet.css */
/* MAPPING SHEET */
    .map-wrap {
      overflow: auto;
      max-height: 75vh;
      border-radius: var(--r);
      border: 1px solid var(--sk);
    }

/* styles/tabs/00-32-mapping-sheet-p6-style.css */
/* ═══ MAPPING SHEET — P6 Style ═══ */
    .map-outer {
      border-radius: 10px;
      border: 1px solid rgba(96, 165, 250, .16);
      overflow: hidden;
      box-shadow: 0 12px 32px rgba(0, 0, 0, .34);
    }

    .map-wrap {
      overflow: auto;
      max-height: calc(100vh - var(--app-content-top) - 106px);
    }

    .map-toolbar {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 10px;
    }

    .map-search {
      flex: 1;
      min-width: 200px;
      background: rgba(4, 10, 24, .9);
      border: 1px solid rgba(148, 163, 184, .15);
      border-radius: 8px;
      padding: 8px 12px;
      color: var(--tx);
      font-size: 12px;
      font-family: inherit;
      outline: none;
      transition: border .18s;
    }

    .map-search:focus {
      border-color: rgba(96, 165, 250, .4);
    }

    .map-filter-btn {
      padding: 6px 12px;
      border-radius: 7px;
      border: 1px solid rgba(148, 163, 184, .15);
      background: rgba(8, 18, 38, .8);
      color: var(--so);
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      transition: all .15s;
      font-family: inherit;
      white-space: nowrap;
    }

    .map-filter-btn.active {
      background: rgba(59, 130, 246, .18);
      border-color: rgba(96, 165, 250, .35);
      color: #93c5fd;
    }

    .map-stats {
      display: flex;
      gap: 20px;
      padding: 10px 18px;
      background: rgba(5, 12, 28, .8);
      border-bottom: 1px solid rgba(59, 130, 246, .1);
      flex-wrap: wrap;
      align-items: center;
    }

    .map-stat {
      display: flex;
      flex-direction: column;
      gap: 1px;
    }

    .map-stat .ms-val {
      font-family: 'JetBrains Mono', monospace;
      font-size: 16px;
      font-weight: 800;
      color: #60a5fa;
      line-height: 1.2;
    }

    .map-stat .ms-lbl {
      font-size: 9px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .7px;
      color: var(--mu);
    }

/* styles/tabs/mapping/deep-wbs-tab.css */
/* ═══ HTML Deep WBS Tab — Additional Styles ═══
   Adds styles on top of the existing m2-* mapping tree classes.
   Targets elements specific to the Deep WBS view.
*/

/* ── AI Activity group (description level) ── */
.m2-deep-act-group > summary.m2-deep-act-sum {
  background: rgba(59, 130, 246, .06);
  border-left: 3px solid rgba(96, 165, 250, .45);
}

.m2-deep-act-group > summary.m2-deep-act-sum:hover {
  background: rgba(59, 130, 246, .11);
}

.m2-deep-act-name {
  font-weight: 800 !important;
  color: #93c5fd !important;
  font-size: 13px !important;
}

/* ── Metrics pills on AI activity row ── */
.m2-deep-metrics {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  margin-right: 6px;
}

.m2-deep-meta-pill {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  white-space: nowrap;
  border: 1px solid transparent;
}

.m2-deep-meta-pill.dur {
  background: rgba(59, 130, 246, .14);
  border-color: rgba(96, 165, 250, .28);
  color: #93c5fd;
}
.m2-deep-meta-pill.crew {
  background: rgba(16, 185, 129, .11);
  border-color: rgba(52, 211, 153, .22);
  color: #6ee7b7;
}
.m2-deep-meta-pill.wpc {
  background: rgba(6, 182, 212, .1);
  border-color: rgba(103, 232, 249, .2);
  color: #67e8f9;
}
.m2-deep-meta-pill.wrk {
  background: rgba(245, 158, 11, .1);
  border-color: rgba(251, 191, 36, .2);
  color: #fcd34d;
}
.m2-deep-meta-pill.cd {
  background: rgba(139, 92, 246, .11);
  border-color: rgba(167, 139, 250, .22);
  color: #c4b5fd;
}
.m2-deep-meta-pill.md {
  background: rgba(236, 72, 153, .09);
  border-color: rgba(244, 114, 182, .2);
  color: #f9a8d4;
}
.m2-deep-meta-pill.qty {
  background: rgba(6, 182, 212, .09);
  border-color: rgba(103, 232, 249, .18);
  color: #67e8f9;
}

/* ── Activity body ── */
.m2-deep-act-body {
  padding: 8px 10px 10px;
}

/* Duration/teams method info */
.m2-deep-act-info {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

.m2-deep-method {
  font-size: 10px;
  color: #4a6080;
  font-style: italic;
}

/* ── Warnings strip ── */
.m2-deep-warn-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 8px;
}

.m2-deep-warn-item {
  font-size: 10px;
  color: #fcd34d;
  background: rgba(245, 158, 11, .1);
  border: 1px solid rgba(251, 191, 36, .2);
  border-radius: 4px;
  padding: 2px 7px;
}

/* ── Toggle children button ── */
.m2-deep-toggle-children {
  margin-bottom: 6px;
  font-size: 11px !important;
  padding: 3px 10px !important;
}

/* ── Child table wrapper ── */
.m2-deep-child-tbl-wrap {
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(59, 130, 246, .12);
}

/* ── RID column ── */
.m2-deep-rid {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px !important;
  color: #4a6080 !important;
  white-space: nowrap;
}

/* ── Mapping child row ── */
.m2-deep-child-row td {
  border-bottom: 1px solid rgba(148, 163, 184, .06);
}

.m2-deep-child-row:hover td {
  background: rgba(59, 130, 246, .04);
}

/* Activity name inside child row */
.m2-deep-child-act {
  font-weight: 600;
  color: #b0c8e8;
  display: block;
  font-size: 11.5px;
}

.m2-deep-child-boq {
  font-size: 10px;
  color: #4a6080;
  display: block;
}

/* ── Link badge ── */
.m2-deep-lnk {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 800;
  padding: 1px 5px;
  border-radius: 4px;
}

.m2-deep-lnk.ok {
  color: #4ade80;
  background: rgba(74, 222, 128, .1);
}

.m2-deep-lnk.warn {
  color: #fbbf24;
  background: rgba(251, 191, 36, .1);
}

/* ── Stats bar ── */
.m2-deep-stats-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
  padding: 10px 14px;
  background: rgba(5, 12, 28, .7);
  border: 1px solid rgba(59, 130, 246, .1);
  border-radius: 8px;
}

.m2-deep-stat {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 60px;
}

.m2-deep-stat .dsv {
  font-family: 'JetBrains Mono', monospace;
  font-size: 16px;
  font-weight: 800;
  color: #60a5fa;
  line-height: 1.2;
}

.m2-deep-stat .dsv.ok { color: #4ade80; }
.m2-deep-stat .dsv.warn { color: #fbbf24; }
.m2-deep-stat .dsv.err { color: #f87171; }

.m2-deep-stat .dsl {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #4a6080;
}

/* ── Fallback banner ── */
.m2-deep-fallback-banner {
  margin-bottom: 10px;
  padding: 8px 14px;
  background: rgba(245, 158, 11, .08);
  border: 1px solid rgba(251, 191, 36, .2);
  border-radius: 7px;
  color: #fcd34d;
  font-size: 11.5px;
  font-weight: 600;
}

/* tabs/gantt/styles/00-33-table-mirrors-p6-gantt-left-panel.css */
/* table — mirrors p6 gantt left panel */
    .map-tbl {
      width: 100%;
      border-collapse: collapse;
      min-width: 1400px;
      background: rgba(2, 6, 18, .98);
    }

/* styles/core/00-34-sticky-header.css */
/* sticky header */
    .map-tbl thead th {
      position: sticky;
      top: 0;
      z-index: 6;
      padding: 0 12px;
      height: 42px;
      font-size: 9.5px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .9px;
      white-space: nowrap;
      text-align: left;
      background: linear-gradient(180deg, rgba(8, 18, 38, .99), rgba(5, 12, 28, .99));
      border-bottom: 2px solid rgba(96, 165, 250, .22);
      color: #bfd7f3;
    }

    .map-tbl thead th.sep-r {
      border-right: 1px solid rgba(96, 165, 250, .12);
    }

/* styles/tabs/00-35-wbs-group-rows.css */
/* WBS group rows */
    .map-tbl tr.map-wbs-row td {
      height: 36px;
      padding: 0 14px;
      font-size: 11.5px;
      font-weight: 800;
      color: #e2f0ff;
      border-top: 1px solid rgba(96, 165, 250, .12);
      border-bottom: 1px solid rgba(96, 165, 250, .08);
    }

    .map-tbl tr.map-wbs-row td .wbs-accent {
      display: inline-block;
      width: 3px;
      height: 16px;
      border-radius: 2px;
      margin-right: 10px;
      vertical-align: middle;
    }

/* styles/core/00-36-activity-rows.css */
/* activity rows */
    .map-tbl tr.map-act-row td {
      height: 29px;
      padding: 0 12px;
      font-size: 11.5px;
      border-bottom: 1px solid rgba(255, 255, 255, .03);
      vertical-align: middle;
    }

    .map-tbl tr.map-act-row:hover td {
      background: rgba(255, 255, 255, .03) !important;
    }

    .map-tbl tr.map-act-row.map-crit td {
      background: rgba(239, 68, 68, .04);
    }

    .map-tbl tr.map-hidden {
      display: none;
    }

/* styles/core/00-37-cells.css */
/* cells */
    .map-id {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 700;
      color: #60a5fa;
      white-space: nowrap;
    }

    .map-name {
      max-width: 240px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .map-num {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      text-align: right;
    }

    .map-pill {
      display: inline-flex;
      align-items: center;
      padding: 1px 7px;
      border-radius: 999px;
      font-size: 10px;
      font-weight: 700;
      border: 1px solid;
    }

    .map-pill.crit {
      color: #f87171;
      background: rgba(239, 68, 68, .1);
      border-color: rgba(239, 68, 68, .25);
    }

    .map-pill.ok {
      color: #4ade80;
      background: rgba(34, 197, 94, .08);
      border-color: rgba(34, 197, 94, .2);
    }

    .map-pill.warn {
      color: #fbbf24;
      background: rgba(245, 158, 11, .08);
      border-color: rgba(245, 158, 11, .2);
    }

/* styles/core/00-38-light-theme-overrides.css */
/* light theme overrides */
    body[data-gantt-theme="light"] .map-tbl {
      background: #fff;
    }

    body[data-gantt-theme="light"] .map-tbl thead th {
      background: linear-gradient(180deg, #f0f5ff, #e8eef8);
      color: #3a5a7a;
      border-bottom-color: rgba(30, 60, 120, .2);
    }

    body[data-gantt-theme="light"] .map-tbl tr.map-wbs-row td {
      background: #eef4fb !important;
      color: #1a2b3e;
      border-color: rgba(30, 60, 120, .12);
    }

    body[data-gantt-theme="light"] .map-tbl tr.map-act-row:hover td {
      background: rgba(59, 130, 246, .04) !important;
    }

    body[data-gantt-theme="light"] .map-tbl tr.map-act-row.map-crit td {
      background: rgba(239, 68, 68, .03);
    }

    body[data-gantt-theme="light"] .map-tbl tr.map-act-row td {
      border-bottom-color: rgba(0, 0, 0, .05);
    }

    body[data-gantt-theme="light"] .map-outer {
      border-color: rgba(30, 60, 120, .18);
    }

    body[data-gantt-theme="light"] .map-stats {
      background: #f0f5ff;
      border-bottom-color: rgba(30, 60, 120, .1);
    }

    body[data-gantt-theme="light"] .map-stat .ms-val {
      color: #1a56db;
    }

    .num-cell {
      font-family: 'JetBrains Mono', monospace;
      font-weight: 700;
      font-size: 12px;
      text-align: right;
    }

    .crew-cell {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      text-align: center;
    }

    .dur-cell {
      font-family: 'JetBrains Mono', monospace;
      font-weight: 800;
      font-size: 13px;
      text-align: center;
    }

    .chip {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 3px 9px;
      border-radius: 6px;
      font-size: 10px;
      font-weight: 800;
      border: 1px solid;
      white-space: nowrap;
    }

    .crit {
      color: #f87171;
      background: rgba(239, 68, 68, .1);
      border-color: rgba(239, 68, 68, .2);
    }

    .near {
      color: #fbbf24;
      background: rgba(245, 158, 11, .1);
      border-color: rgba(245, 158, 11, .18);
    }

    .okch {
      color: #4ade80;
      background: rgba(34, 197, 94, .1);
      border-color: rgba(34, 197, 94, .18);
    }

/* tabs/gantt/styles/00-39-gantt-improved.css */
/* GANTT — IMPROVED */
    .gantt-outer {
      overflow-x: auto;
      border-radius: var(--r);
      border: 1px solid var(--sk);
      box-shadow: 0 12px 40px rgba(0, 0, 0, .3);
    }

    .gantt-wrap {
      display: grid;
      grid-template-columns: 340px 1fr;
      min-width: 960px;
    }

/* styles/core/00-40-left-pane-header.css */
/* Left pane header */
    .gh-l {
      padding: 0 14px;
      height: 48px;
      display: flex;
      align-items: center;
      background: rgba(4, 10, 28, .99);
      border-bottom: 2px solid rgba(59, 130, 246, .2);
      border-right: 1px solid rgba(59, 130, 246, .15);
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 1px;
      color: var(--mu);
      position: sticky;
      top: 0;
      z-index: 10;
    }

/* styles/core/00-41-right-pane-header.css */
/* Right pane header */
    .gh-r {
      height: 48px;
      background: rgba(4, 10, 28, .99);
      border-bottom: 2px solid rgba(59, 130, 246, .2);
      position: sticky;
      top: 0;
      z-index: 10;
      overflow: hidden;
    }

    .months-row {
      display: flex;
      height: 48px;
    }

    .month-cell {
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      border-right: 1px solid rgba(148, 163, 184, .07);
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .7px;
      color: var(--mu);
    }

/* tabs/gantt/styles/00-42-gantt-rows.css */
/* Gantt rows */
    .g-row {
      display: contents;
    }

/* styles/tabs/00-43-wbs-level-0-phase-header.css */
/* WBS LEVEL 0 — Phase header */
    .g-left.lv0 {
      background: linear-gradient(90deg, rgba(10, 24, 56, .9), rgba(8, 18, 42, .9));
      border-bottom: 1px solid rgba(59, 130, 246, .12);
      border-right: 1px solid rgba(59, 130, 246, .15);
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 0 12px;
      min-height: 38px;
    }

    .g-left.lv0 .rname {
      font-size: 12px;
      font-weight: 800;
      color: var(--st);
    }

/* styles/tabs/00-44-wbs-level-1-discipline.css */
/* WBS LEVEL 1 — Discipline */
    .g-left.lv1 {
      background: rgba(6, 14, 32, .8);
      border-bottom: 1px solid rgba(148, 163, 184, .05);
      border-right: 1px solid rgba(59, 130, 246, .1);
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 0 10px;
      min-height: 34px;
    }

    .g-left.lv1 .rname {
      font-size: 11.5px;
      font-weight: 700;
      color: var(--tx);
    }

/* styles/tabs/00-45-wbs-level-2-activity.css */
/* WBS LEVEL 2+ — Activity */
    .g-left.lv2,
    .g-left.lv3 {
      background: rgba(4, 10, 24, .65);
      border-bottom: 1px solid rgba(148, 163, 184, .04);
      border-right: 1px solid rgba(59, 130, 246, .08);
      display: flex;
      align-items: center;
      gap: 7px;
      padding: 0 10px;
      min-height: 30px;
      transition: background .13s;
    }

    .g-left.lv2 .rname {
      font-size: 11px;
      font-weight: 600;
      color: var(--so);
    }

    .g-left.lv3 .rname {
      font-size: 10.5px;
      font-weight: 500;
      color: var(--mu);
    }

    .g-left:hover .rname {
      color: var(--st) !important;
    }

    .rcode {
      font-size: 9px;
      font-weight: 800;
      padding: 2px 6px;
      border-radius: 5px;
      background: rgba(59, 130, 246, .12);
      color: #60a5fa;
      white-space: nowrap;
      flex-shrink: 0;
      font-family: 'JetBrains Mono', monospace;
    }

    .rname {
      flex: 1;
      line-height: 1.25;
      min-width: 0;
    }

    .rdur {
      font-size: 9.5px;
      font-weight: 800;
      color: var(--am);
      white-space: nowrap;
      flex-shrink: 0;
      font-family: 'JetBrains Mono', monospace;
    }

/* tabs/gantt/styles/00-46-gantt-right-side.css */
/* Gantt right side */
    .g-right {
      position: relative;
      border-bottom: 1px solid rgba(148, 163, 184, .04);
      background: rgba(2, 6, 18, .4);
      overflow: hidden;
    }

    .g-right.lv0 {
      background: rgba(5, 13, 30, .65);
      border-bottom: 1px solid rgba(31, 78, 121, .08);
    }

    .g-right.lv1 {
      background: rgba(4, 10, 24, .5);
      border-bottom: 1px solid rgba(148, 163, 184, .05);
    }

    .g-grid {
      position: absolute;
      top: 0;
      bottom: 0;
      border-left: 1px solid rgba(148, 163, 184, .04);
      pointer-events: none;
    }

    .g-grid.maj {
      border-color: rgba(31, 78, 121, .08);
    }

    .today-l {
      position: absolute;
      top: 0;
      bottom: 0;
      width: 2px;
      background: rgba(239, 68, 68, .5);
      z-index: 5;
      pointer-events: none;
    }

    .today-l::before {
      content: '▼';
      position: absolute;
      top: -3px;
      left: 50%;
      transform: translateX(-50%);
      font-size: 7px;
      color: rgba(239, 68, 68, .7);
    }

/* styles/core/00-47-bars.css */
/* BARS */
    .bar {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      border-radius: 4px;
      cursor: pointer;
      overflow: hidden;
      transition: filter .15s, transform .16s;
      display: flex;
      align-items: center;
      box-shadow: 0 2px 8px rgba(0, 0, 0, .3);
    }

    .bar:hover {
      filter: brightness(1.3);
      transform: translateY(-50%) scaleY(1.08);
    }

/* styles/core/00-48-phase-summary-bar.css */
/* Phase summary bar */
    .bar.lv0 {
      height: 22px;
      border-radius: 6px;
      opacity: .95;
    }

/* styles/core/00-49-discipline-bar.css */
/* Discipline bar */
    .bar.lv1 {
      height: 16px;
    }

/* styles/core/00-50-activity-bars.css */
/* Activity bars */
    .bar.lv2 {
      height: 14px;
    }

    .bar.lv3 {
      height: 11px;
      border-radius: 3px;
    }

/* styles/core/00-51-critical-activity-override.css */
/* Critical activity override */
    .bar.crit-bar {
      box-shadow: 0 2px 12px rgba(239, 68, 68, .4);
    }

/* styles/core/00-52-milestone-diamond.css */
/* Milestone diamond */
    .bar.ms {
      width: 12px !important;
      height: 12px !important;
      border-radius: 2px !important;
      transform: translateY(-50%) rotate(45deg);
      box-shadow: none;
    }

    .bar.ms:hover {
      transform: translateY(-50%) rotate(45deg) scale(1.25);
    }

/* styles/core/00-53-baseline-ghost.css */
/* Baseline ghost */
    .bar.baseline {
      opacity: .22;
      height: 6px !important;
      border-radius: 2px !important;
      top: 75% !important;
    }

    .bar-txt {
      font-size: 8.5px;
      font-weight: 800;
      color: rgba(255, 255, 255, .9);
      padding: 0 6px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

/* styles/tabs/00-54-wbs-group-label-on-bar.css */
/* WBS group label on bar */
    .bar-lbl {
      font-size: 9px;
      font-weight: 700;
      color: rgba(255, 255, 255, .7);
      padding: 0 8px;
      white-space: nowrap;
    }

/* styles/core/00-55-export-bar.css */
/* EXPORT BAR */
    .exp-bar {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
      padding: 10px 14px;
      border-radius: var(--r2);
      background: rgba(5, 12, 28, .75);
      border: 1px solid var(--sk2);
      margin-bottom: 14px;
    }

    .exp-bar .elbl {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .9px;
      color: var(--mu);
    }

    .ebtn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 7px 13px;
      border-radius: var(--r3);
      border: 1px solid var(--sk2);
      background: rgba(8, 18, 38, .8);
      color: var(--so);
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      transition: all .15s;
      font-family: inherit;
    }

    .ebtn:hover {
      border-color: rgba(96, 165, 250, .32);
      color: var(--tx);
      transform: translateY(-1px);
    }

    .ebtn.grn {
      border-color: rgba(34, 197, 94, .26);
      color: #4ade80;
    }

    .ebtn.grn:hover {
      background: rgba(34, 197, 94, .07);
    }

/* styles/core/00-56-empty.css */
/* EMPTY */
    .empty {
      text-align: center;
      padding: 64px 24px;
      color: var(--mu);
    }

    .empty-icon {
      font-size: 50px;
      opacity: .45;
      margin-bottom: 14px;
    }

    .empty-t {
      font-family: 'Syne', sans-serif;
      font-size: 16px;
      font-weight: 700;
      color: var(--so);
      margin-bottom: 8px;
    }

    .empty-s {
      font-size: 12.5px;
      line-height: 1.55;
    }

/* styles/tabs/00-57-activities.css */
/* ══════════════════════════════════════════
   ACTIVITIES PAGE — Home Theme
   ══════════════════════════════════════════ */

/* ── Tab Panel ── */
#tp-acts {
  background: transparent;
  min-height: 100%;
  color: #1A1D21;
}

/* ── Edit Toolbar ── */
.acts-toolbar {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 26px;
  background: #FFFFFF;
  border-bottom: 1px solid #E5E7EB;
  flex-wrap: wrap;
}

.acts-toggle-wrap {
  display: flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
  user-select: none;
}

.acts-toggle-wrap input[type="checkbox"] {
  display: none;
}

.acts-toggle-track {
  width: 38px;
  height: 22px;
  border-radius: 999px;
  background: #E5E7EB;
  border: 1px solid #D1D5DB;
  position: relative;
  transition: all .2s;
  flex-shrink: 0;
}

.acts-toggle-thumb {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #9CA3AF;
  transition: all .2s;
}

.acts-toggle-wrap input:checked ~ .acts-toggle-track {
  background: #EFF6FF;
  border-color: #93C5FD;
}

.acts-toggle-wrap input:checked ~ .acts-toggle-track .acts-toggle-thumb {
  left: 19px;
  background: #3B82F6;
}

.acts-toggle-label {
  font-size: 12px;
  font-weight: 600;
  color: #374151;
}

.acts-recalc-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 16px;
  border-radius: 8px;
  border: 1px solid rgba(59, 130, 246, .4);
  background: #EFF6FF;
  color: #1D4ED8;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .16s;
  white-space: nowrap;
}

.acts-recalc-btn:hover {
  background: #DBEAFE;
  border-color: rgba(59, 130, 246, .6);
  color: #1E40AF;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(59, 130, 246, .15);
}

.acts-toolbar-hint {
  font-size: 11px;
  color: #9CA3AF;
  font-style: italic;
  flex: 1;
  min-width: 0;
}

/* ── Filter Bar ── */
.acts-filter-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 26px;
  background: #F9FAFB;
  border-bottom: 1px solid #E5E7EB;
  flex-wrap: wrap;
}

.acts-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid #E2E8F0;
  background: #FFFFFF;
  color: #374151;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: all .14s;
  white-space: nowrap;
}

.acts-filter-chip:hover {
  border-color: #CBD5E1;
  color: #1F2937;
  background: #F1F5F9;
}

.acts-count-badge {
  padding: 4px 10px;
  border-radius: 999px;
  background: #F1F5F9;
  border: 1px solid #E2E8F0;
  font-size: 11px;
  font-weight: 600;
  color: #64748B;
  white-space: nowrap;
  font-family: 'JetBrains Mono', monospace;
}

.acts-search-wrap {
  flex: 1;
  min-width: 180px;
  max-width: 320px;
  position: relative;
  display: flex;
  align-items: center;
}

.acts-search-icon {
  position: absolute;
  left: 10px;
  color: #9CA3AF;
  pointer-events: none;
}

.acts-search {
  width: 100%;
  padding: 6px 12px 6px 30px;
  border-radius: 8px;
  border: 1px solid #E2E8F0;
  background: #FFFFFF;
  color: #1B1A17;
  font-size: 12px;
  font-family: inherit;
  outline: none;
  transition: border .15s;
}

.acts-search::placeholder {
  color: #9CA3AF;
}

.acts-search:focus {
  border-color: #93C5FD;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .08);
}

.acts-icon-btn {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid #E2E8F0;
  background: #FFFFFF;
  color: #6B7280;
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 14px;
  transition: all .14s;
}

.acts-icon-btn:hover {
  border-color: #CBD5E1;
  color: #374151;
}

/* ── Table Container ── */
#actsOut.aipe-result-out .tbl-wrap,
#actsOut.aipe-result-out .tree-wrap {
  overflow: auto;
  max-height: calc(100vh - var(--app-content-top) - 186px);
  border-radius: 20px;
  border: 1px solid #E8ECEF;
  background: #FFFFFF;
  box-shadow: 0 12px 34px rgba(26, 29, 33, .055);
}

/* ── Activities Table ── */
.acts-tbl {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}

/* ── Home Theme Table Header ── */
.acts-tbl thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  padding: 9px 10px;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #FBF7F1;
  text-align: left;
  white-space: nowrap;
  background: linear-gradient(180deg, #0F1B2E, #0A1423);
  border-bottom: 2px solid #24B47E;
  font-family: 'DM Sans', system-ui, sans-serif;
}

.acts-tbl thead th .th-info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 1px solid rgba(251, 247, 241, .25);
  background: rgba(251, 247, 241, .08);
  text-align: center;
  font-size: 7px;
  font-weight: 800;
  color: rgba(251, 247, 241, .6);
  margin-left: 3px;
  cursor: help;
  vertical-align: middle;
  line-height: 13px;
  transition: all .15s;
}

.acts-tbl thead th .th-info:hover {
  background: rgba(251, 247, 241, .18);
  color: #FFFBF7;
}

/* ── Home Theme Table Body Rows ── */
.acts-tbl tbody tr {
  transition: background .1s;
}

.acts-tbl tbody td {
  padding: 8px 10px;
  font-size: 11.5px;
  border-bottom: 1px solid #E8ECEF;
  vertical-align: middle;
  color: #2A2F36;
  background: #FFFFFF;
}

.acts-tbl tbody tr:last-child td {
  border-bottom: none;
}

.acts-tbl tbody tr:nth-child(even) td {
  background: #F7F8F9;
}

.acts-tbl tbody tr:hover td {
  background: rgba(36, 180, 126, .06) !important;
}

/* ── Critical path row glow ── */
.acts-tbl tbody tr.act-critical td {
  border-left: 3px solid #f87171;
}

.acts-tbl tbody tr.act-critical td:first-child {
  padding-left: 11px;
}

/* ── Near-critical row ── */
.acts-tbl tbody tr.act-near-critical td {
  border-left: 3px solid #fbbf24;
}

.acts-tbl tbody tr.act-near-critical td:first-child {
  padding-left: 11px;
}

/* ── Activity cell ── */
.act-cell {
  display: flex;
  align-items: center;
  gap: 8px;
}

.act-cell-icon {
  flex-shrink: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 5px;
  background: rgba(0, 0, 0, .03);
}

.act-cell-icon svg {
  display: block;
}

.act-cell-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.act-cell-name {
  font-size: 12px;
  font-weight: 700;
  color: #1A1D21;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}

.act-cell-name.act-critical-name {
  color: #b91c1c;
}

.act-cell-type {
  font-size: 9px;
  color: #72777E;
  font-weight: 600;
}

/* ── ID cell ── */
.act-id-cell {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 800;
  color: #24B47E;
  white-space: nowrap;
  letter-spacing: .2px;
}

.act-id-cell.act-critical-id {
  color: #F4746B;
}

/* ── WBS cell ── */
.act-wbs-cell {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 600;
  color: #72777E;
  white-space: nowrap;
}

/* ── Type badge ── */
.type-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  border: 1px solid;
  white-space: nowrap;
  line-height: 1;
}

.type-badge.milestone {
  color: #7C3AED;
  background: rgba(124, 58, 237, .08);
  border-color: rgba(124, 58, 237, .2);
}

.type-badge.task {
  color: #24B47E;
  background: rgba(36, 180, 126, .08);
  border-color: rgba(36, 180, 126, .22);
}

/* ── Duration cell with inline mini-bar ── */
.act-duration-cell {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 800;
  color: #E5972A;
  white-space: nowrap;
  text-align: center;
}
.act-duration-cell .act-duration-inner {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.act-duration-bar-wrap {
  display: inline-flex;
  align-items: center;
  width: 28px;
  height: 3px;
  border-radius: 3px;
  background: rgba(0, 0, 0, .06);
  overflow: hidden;
  flex-shrink: 0;
}

.act-duration-bar {
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, #24B47E, #7FD8C5);
  min-width: 3px;
  transition: width .3s;
}

.act-duration-bar.act-duration-critical {
  background: linear-gradient(90deg, #F4746B, #fbb4ae);
}

.act-duration-milestone {
  color: #72777E;
  font-size: 10px;
}

/* ── Date cells ── */
.act-date-cell {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 600;
  color: #4D6E91;
  white-space: nowrap;
}

/* ── Float cell ── */
.act-float-cell {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.act-float-cell .float-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  margin-right: 4px;
  vertical-align: middle;
}

.act-float-cell.float-critical {
  color: #F4746B;
}

.act-float-cell.float-critical .float-dot {
  background: #F4746B;
  box-shadow: 0 0 5px rgba(244, 116, 107, .5);
}

.act-float-cell.float-near {
  color: #E5972A;
}

.act-float-cell.float-near .float-dot {
  background: #E5972A;
  box-shadow: 0 0 5px rgba(229, 151, 42, .4);
}

.act-float-cell.float-ok {
  color: #24B47E;
}

.act-float-cell.float-ok .float-dot {
  background: #24B47E;
}

/* ── Source cell ── */
.act-source-cell {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 600;
  color: #72777E;
  white-space: nowrap;
}

/* ── Resource cell ── */
.act-resource-cell {
  font-size: 11px;
  font-weight: 600;
  color: #2A2F36;
}

/* ── Crew/Worker cells ── */
.act-crew-cell,
.act-worker-cell {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  color: #72777E;
  text-align: center;
}

/* ── Row action button ── */
.acts-row-action {
  background: none;
  border: none;
  color: #D1D5DB;
  font-size: 16px;
  cursor: pointer;
  padding: 3px 5px;
  border-radius: 5px;
  opacity: 0;
  transition: all .12s;
  line-height: 1;
  font-family: inherit;
}

.acts-tbl tbody tr:hover .acts-row-action {
  opacity: 1;
}

.acts-row-action:hover {
  color: #2A2F36;
  background: rgba(0, 0, 0, .05);
}

/* ── Critical badge in activity name ── */
.act-critical-badge {
  display: inline-flex;
  align-items: center;
  padding: 1px 5px;
  border-radius: 3px;
  background: rgba(244, 116, 107, .1);
  color: #F4746B;
  font-size: 7px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .4px;
  margin-left: 5px;
  vertical-align: middle;
  line-height: 1.3;
}

/* ── Float colours (legacy classes) ── */
.float-crit  { color: #F4746B; font-weight: 700; font-family: 'JetBrains Mono', monospace; }
.float-near  { color: #E5972A; font-weight: 700; font-family: 'JetBrains Mono', monospace; }
.float-ok    { color: #24B47E; font-weight: 700; font-family: 'JetBrains Mono', monospace; }
.float-na    { color: #72777E; font-family: 'JetBrains Mono', monospace; }

/* ── Legacy mono cell ── */
.mono-cell {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: #72777E;
}

/* ── Legacy ID cell ── */
.id-cell {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: #24B47E;
}

/* ── V6 edit toolbar override (inside aipe-result-out) ── */
.aipe-result-out .v6-toolbar {
  background:
    linear-gradient(135deg, rgba(15, 27, 46, .97), rgba(10, 20, 35, .96)),
    radial-gradient(ellipse at 0% 50%, rgba(36, 180, 126, .10), transparent 50%),
    radial-gradient(ellipse at 100% 50%, rgba(36, 180, 126, .06), transparent 50%) !important;
  border: 1px solid rgba(36, 180, 126, .15) !important;
  border-radius: 14px !important;
  color: #FBF7F1 !important;
  box-shadow: 0 4px 20px rgba(15, 27, 46, .12), inset 0 1px 0 rgba(255, 255, 255, .06) !important;
  padding: 12px 18px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}
.aipe-result-out .v6-toolbar .v6-muted {
  color: rgba(251, 247, 241, .5) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .01em !important;
  line-height: 1.4 !important;
  margin-left: auto !important;
  max-width: 400px !important;
  text-align: right !important;
}
.aipe-result-out .v6-toolbar .hbtn {
  min-height: 34px;
  border: 1px solid rgba(251, 247, 241, .18) !important;
  border-radius: 10px !important;
  background: rgba(251, 247, 241, .07) !important;
  color: #FBF7F1 !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  padding: 0 16px !important;
  cursor: pointer !important;
  transition: all .18s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  letter-spacing: .01em !important;
}
.aipe-result-out .v6-toolbar .hbtn:hover {
  background: rgba(36, 180, 126, .14) !important;
  border-color: rgba(36, 180, 126, .45) !important;
  color: #FFFFFF !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(36, 180, 126, .12) !important;
}
.aipe-result-out .v6-toolbar .hbtn:active {
  transform: translateY(0);
  box-shadow: none !important;
}
.aipe-result-out .v6-toolbar .hbtn.primary {
  background: linear-gradient(135deg, #24B47E, #1DA06D) !important;
  border-color: #24B47E !important;
  color: #FFFFFF !important;
  box-shadow: 0 2px 8px rgba(36, 180, 126, .2) !important;
}
.aipe-result-out .v6-toolbar .hbtn.primary:hover {
  background: linear-gradient(135deg, #2EC48E, #24B47E) !important;
  box-shadow: 0 6px 16px rgba(36, 180, 126, .3) !important;
}

/* ── V6 editable table (inside aipe-result-out) ── */
.aipe-result-out .acts-tbl thead th {
  background: linear-gradient(180deg, #0F1B2E, #0A1423) !important;
  color: #FBF7F1 !important;
  border-bottom: 2px solid #24B47E !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  padding: 9px 10px !important;
}
.aipe-result-out .acts-tbl tbody td {
  background: #FFFFFF !important;
  color: #2A2F36 !important;
  border-bottom: 1px solid #E8ECEF !important;
  padding: 8px 10px !important;
  font-size: 11.5px !important;
}
.aipe-result-out .acts-tbl tbody tr:nth-child(even) td {
  background: #F7F8F9 !important;
}
.aipe-result-out .acts-tbl tbody tr:hover td {
  background: rgba(36, 180, 126, .06) !important;
}

/* ── Edit mode: contenteditable cells ── */
.acts-tbl.editing [contenteditable="true"] {
  outline: none;
  border-radius: 4px;
  padding: 2px 5px;
  margin: -2px -5px;
  background: rgba(36, 180, 126, .07);
  border-bottom: 2px solid #24B47E;
  transition: background .15s, border-color .15s;
  cursor: text;
}
.acts-tbl.editing [contenteditable="true"]:focus {
  background: rgba(36, 180, 126, .12);
  border-bottom-color: #1A9E6A;
  box-shadow: 0 2px 8px rgba(36, 180, 126, .12);
}

/* ── Empty state ── */
#tp-acts .empty {
  padding: 60px 20px;
  text-align: center;
}

#tp-acts .empty-icon {
  font-size: 42px;
  margin-bottom: 14px;
  opacity: .4;
}

#tp-acts .empty-t {
  font-size: 14px;
  font-weight: 700;
  color: #72777E;
}

#tp-acts .empty-s {
  font-size: 12px;
  color: #72777E;
  margin-top: 6px;
}

/* styles/tabs/00-58-links.css */
/* ══════════════════════════════════════════
   RELATIONS (LINKS) PAGE
   Dark navy header banner + Light body
   ══════════════════════════════════════════ */

/* ── Tab Panel ── */
#tp-links {
  background: #FFFFFF;
  min-height: 100%;
  color: #1B1A17;
}

#tp-links > .lk-page-hdr {
  display: none;
}

/* ── Page Header — WHITE CARD ── */
.lk-page-hdr {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 24px;
  background: rgba(255, 255, 255, .92);
  border: 1px solid rgba(232, 236, 239, .94);
  border-radius: var(--r, 16px);
}

.lk-page-hdr-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(36, 180, 126, .12);
  border: 1px solid rgba(36, 180, 126, .32);
  display: grid;
  place-items: center;
  color: #188D68;
  font-size: 20px;
  flex-shrink: 0;
}

.lk-page-hdr-text {
  flex: 1;
  min-width: 0;
}

.lk-page-title {
  font-family: 'Syne', sans-serif;
  font-size: 24px;
  font-weight: 800;
  color: #1B1A17;
  margin: 0 0 2px;
  line-height: 1.1;
}

.lk-page-sub {
  font-size: 11.5px;
  color: rgba(27, 26, 23, .55);
  margin: 0;
}

.lk-nqa-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 16px;
  border-radius: 999px;
  border: 1px solid rgba(36, 180, 126, .36);
  background: rgba(36, 180, 126, .10);
  color: #188D68;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .16s;
  white-space: nowrap;
  position: relative;
}

.lk-nqa-btn:hover {
  border-color: rgba(36, 180, 126, .6);
  background: rgba(36, 180, 126, .18);
  box-shadow: 0 4px 14px rgba(36, 180, 126, .2);
}

.lk-nqa-dot {
  position: absolute;
  top: 7px;
  right: 8px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #24B47E;
  box-shadow: 0 0 5px #F59E0B;
}

/* ── Stats Bar — LIGHT ── */
.lk-stats {
  display: flex;
  gap: 28px;
  padding: 16px 24px;
  background: #FFFFFF;
  border-bottom: 1px solid #E5E7EB;
  flex-wrap: wrap;
  align-items: center;
}

.lk-stat {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.lk-stat .sv {
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
  font-family: 'JetBrains Mono', monospace;
  color: #1B1A17;
}

.lk-stat .sl {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .7px;
  color: #9CA3AF;
}

/* ── Logic Coverage Block — LIGHT CARD ── */
.lk-coverage-block {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 20px;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  margin: 12px 16px;
  flex-wrap: wrap;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}

.lk-coverage-gauge {
  position: relative;
  width: 72px;
  height: 72px;
  flex-shrink: 0;
}

.lk-coverage-gauge svg {
  transform: rotate(-90deg);
}

.lk-coverage-gauge-bg {
  fill: none;
  stroke: #E5E7EB;
  stroke-width: 6;
}

.lk-coverage-gauge-arc {
  fill: none;
  stroke: #3B82F6;
  stroke-width: 6;
  stroke-linecap: round;
  transition: stroke-dashoffset .5s ease;
}

.lk-coverage-pct {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  font-weight: 800;
  color: #2563EB;
  line-height: 1;
}

.lk-coverage-pct-label {
  font-size: 7px;
  color: #9CA3AF;
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-top: 2px;
}

.lk-coverage-label {
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .9px;
  color: #9CA3AF;
  margin-top: 4px;
  text-align: center;
}

.lk-coverage-stats {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}

.lk-cov-stat {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.lk-cov-stat .cv {
  font-family: 'JetBrains Mono', monospace;
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
  color: #1B1A17;
}

.lk-cov-stat .cl {
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .7px;
  color: #9CA3AF;
}

/* ── Actions bar ── */
.lk-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-left: auto;
}

.lk-copy-btn {
  padding: 7px 13px;
  border-radius: 8px;
  border: 1px solid #E2E8F0;
  background: #FFFFFF;
  color: #374151;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .16s;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.lk-copy-btn:hover {
  border-color: #CBD5E1;
  color: #1F2937;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

.lk-copy-btn.sec {
  border-color: rgba(5, 150, 105, .3);
  background: rgba(5, 150, 105, .05);
  color: #059669;
}

.lk-copy-btn.sec:hover {
  border-color: rgba(5, 150, 105, .5);
  box-shadow: 0 4px 12px rgba(5, 150, 105, .1);
}

.lk-copy-status {
  font-size: 10px;
  color: #6B7280;
  min-width: 92px;
  text-align: right;
}

/* ── Table Wrapper ── */
.lk-tbl-wrap {
  border: 1px solid #E5E7EB;
  border-top: none;
  border-radius: 0 0 10px 10px;
  overflow: auto;
  max-height: 55vh;
  background: #FFFFFF;
}

/* ── Links Table ── */
.links-tbl,
.lk-tbl {
  width: 100%;
  border-collapse: collapse;
  min-width: 900px;
}

/* Dark navy header stays dark */
.links-tbl thead th,
.lk-tbl thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: linear-gradient(180deg, #0D1829 0%, #0A1525 100%);
  border-bottom: 2px solid rgba(59, 130, 246, .2);
  padding: 10px 12px;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .9px;
  color: #7AABCE;
  text-align: left;
  white-space: nowrap;
}

/* Light table rows */
.links-tbl td,
.lk-tbl td {
  padding: 8px 12px;
  font-size: 11.5px;
  border-bottom: 1px solid #F0F0F0;
  vertical-align: middle;
  color: #374151;
}

.links-tbl tbody tr,
.lk-tbl tbody tr {
  cursor: pointer;
  transition: background .1s;
  background: #FFFFFF;
}

.links-tbl tbody tr:nth-child(even),
.lk-tbl tbody tr:nth-child(even) {
  background: #F9FAFB;
}

.links-tbl tbody tr:hover td,
.lk-tbl tbody tr:hover td {
  background: #EFF6FF !important;
}

.lk-tbl tbody tr.lk-selected {
  background: #EFF6FF !important;
  outline: 1px solid rgba(59, 130, 246, .35);
}

/* ── ID links ── */
.lk-id-link {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: #2563EB;
  text-decoration: none;
  cursor: pointer;
  transition: color .12s;
}

.lk-id-link:hover {
  color: #1D4ED8;
  text-decoration: underline;
}

.lk-id-link.crit {
  color: #DC2626;
}

/* ── Link type badges ── */
.lt {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  border: 1px solid;
  font-family: 'JetBrains Mono', monospace;
}

.lt-FS {
  color: #2563EB;
  border-color: rgba(37, 99, 235, .35);
  background: rgba(37, 99, 235, .07);
}

.lt-SS {
  color: #059669;
  border-color: rgba(5, 150, 105, .35);
  background: rgba(5, 150, 105, .07);
}

.lt-FF {
  color: #D97706;
  border-color: rgba(217, 119, 6, .35);
  background: rgba(217, 119, 6, .07);
}

.lt-SF {
  color: #9333EA;
  border-color: rgba(147, 51, 234, .35);
  background: rgba(147, 51, 234, .07);
}

/* ── Confidence badge ── */
.conf-badge {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  border: 1px solid;
  font-family: 'JetBrains Mono', monospace;
}

.conf-high {
  color: #059669;
  background: rgba(5, 150, 105, .08);
  border-color: rgba(5, 150, 105, .3);
}

.conf-mid {
  color: #D97706;
  background: rgba(217, 119, 6, .08);
  border-color: rgba(217, 119, 6, .3);
}

.conf-low {
  color: #B45309;
  background: rgba(180, 83, 9, .08);
  border-color: rgba(180, 83, 9, .3);
}

/* ── Impact panel ── */
.lk-impact {
  margin-top: 12px;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  overflow: hidden;
}

.lk-impact-hdr {
  padding: 10px 16px;
  background: #F9FAFB;
  font-size: 11px;
  font-weight: 800;
  color: #374151;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  border-bottom: 1px solid #E5E7EB;
}

.lk-impact-body {
  padding: 14px 16px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  background: #FFFFFF;
}

.lk-act-card {
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  padding: 10px 14px;
}

.lk-act-card.pred {
  border-color: rgba(37, 99, 235, .3);
  background: rgba(37, 99, 235, .04);
}

.lk-act-card.succ {
  border-color: rgba(5, 150, 105, .3);
  background: rgba(5, 150, 105, .04);
}

.lk-act-id {
  font-size: 10px;
  font-weight: 800;
  font-family: 'JetBrains Mono', monospace;
  margin-bottom: 4px;
  color: #2563EB;
}

.lk-act-name {
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 6px;
  line-height: 1.3;
  color: #1F2937;
}

.lk-act-dates {
  font-size: 10px;
  color: #6B7280;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.lk-arrow-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 0;
  font-size: 12px;
  color: #6B7280;
}

.lk-lag-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(245, 158, 11, .12);
  color: #D97706;
  font-size: 10px;
  font-weight: 700;
  margin-left: 6px;
}

.lk-del-btn {
  padding: 5px 12px;
  border-radius: 6px;
  border: 1px solid rgba(220, 38, 38, .3);
  background: rgba(220, 38, 38, .06);
  color: #DC2626;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  margin-left: auto;
}

.lk-del-btn:hover {
  background: rgba(220, 38, 38, .12);
}

.lk-gantt-hint {
  font-size: 11px;
  color: #9CA3AF;
  padding: 8px 16px;
  background: #F9FAFB;
  border-top: 1px solid #E5E7EB;
}

/* ── Empty state ── */
#tp-links .empty {
  padding: 60px 20px;
  text-align: center;
}

#tp-links .empty-icon {
  font-size: 42px;
  margin-bottom: 14px;
  opacity: .4;
}

#tp-links .empty-t {
  font-size: 14px;
  font-weight: 700;
  color: #6B7280;
}

/* styles/tabs/00-59-wbs.css */
/* WBS */
    .wbs-tree {
      display: grid;
      gap: 5px;
    }

    .wnode {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 9px 14px;
      min-height: 50px;
      border-radius: var(--r3);
      border: 1px solid var(--sk2);
      background: rgba(6, 14, 30, .8);
      transition: all .15s;
    }

    .wnode.wl0 {
      border-color: rgba(59, 130, 246, .2);
      background: rgba(8, 18, 44, .85);
    }

    .wnode.wl1 {
      border-color: rgba(6, 182, 212, .12);
    }

    .wnode.wl2 {
      border-color: rgba(34, 197, 94, .1);
    }

    .wcode {
      font-size: 10px;
      font-weight: 800;
      padding: 2px 8px;
      border-radius: 5px;
      background: rgba(59, 130, 246, .12);
      color: #93c5fd;
      white-space: nowrap;
      font-family: 'JetBrains Mono', monospace;
    }

    .wname {
      flex: 1;
      min-width: 0;
      font-size: 13px;
      font-weight: 700;
      color: var(--tx);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .wl0 .wname {
      font-size: 14px;
      color: var(--st);
    }

    .wdur {
      font-size: 11px;
      color: var(--am);
      font-weight: 800;
      white-space: nowrap;
      font-family: 'JetBrains Mono', monospace;
      flex-shrink: 0;
    }

    .wcnt {
      font-size: 10px;
      color: var(--mu);
      white-space: nowrap;
      flex-shrink: 0;
    }

/* styles/tabs/00-60-milestones.css */
/* MILESTONES */
    .ms-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 13px;
    }

    .ms-card {
      padding: 15px;
      border-radius: var(--r2);
      background: rgba(7, 14, 30, .9);
      border: 1px solid rgba(139, 92, 246, .16);
      border-top: 3px solid var(--mc, #8b5cf6);
      transition: all .2s;
    }

    .ms-card:hover {
      transform: translateY(-2px);
    }

    .ms-card.crit {
      border-color: rgba(239, 68, 68, .22);
      border-top-color: var(--rd);
    }

    .ms-date {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      color: var(--mu);
      font-weight: 700;
    }

    .ms-name {
      font-family: 'Syne', sans-serif;
      font-size: 14px;
      font-weight: 800;
      color: var(--st);
      margin-top: 6px;
      line-height: 1.3;
    }

    .ms-desc {
      font-size: 11.5px;
      color: var(--so);
      margin-top: 5px;
      line-height: 1.45;
    }

    ::-webkit-scrollbar {
      width: 5px;
      height: 5px;
    }

    ::-webkit-scrollbar-track {
      background: rgba(4, 10, 24, .5);
    }

    ::-webkit-scrollbar-thumb {
      background: rgba(59, 130, 246, .18);
      border-radius: 999px;
    }

    ::-webkit-scrollbar-thumb:hover {
      background: rgba(59, 130, 246, .36);
    }

    @media(max-width:900px) {

      .body,
      .hdr,
      .tabs {
        padding-left: 14px;
        padding-right: 14px;
      }

      .grid2 {
        grid-template-columns: 1fr;
      }

      .kpi-strip {
        grid-template-columns: repeat(2, 1fr);
      }

      .ms-grid,
      .story-sections {
        grid-template-columns: 1fr;
      }

      .fg3 {
        grid-template-columns: 1fr 1fr;
      }

      .fg.s3 {
        grid-column: span 2;
      }
    }

    .or-wrap {
      margin-top: 16px;
      padding-top: 16px;
      border-top: 1px solid rgba(148, 163, 184, .12)
    }

    .or-grid {
      display: grid;
      grid-template-columns: 1.1fr .95fr;
      gap: 12px;
      align-items: end
    }

    .or-actions {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 12px
    }

    .or-note {
      margin-top: 10px;
      font-size: 11.5px;
      color: var(--mu);
      line-height: 1.7
    }

    .or-mini {
      font-size: 11px;
      color: var(--so);
      margin-top: 6px
    }

    .or-status {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 8px 12px;
      border-radius: 999px;
      border: 1px solid rgba(74, 96, 128, .24);
      background: rgba(74, 96, 128, .08);
      font-size: 11.5px;
      font-weight: 700;
      color: var(--so)
    }

    .or-status .d {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--mu);
      box-shadow: 0 0 8px rgba(74, 96, 128, .6);
      flex-shrink: 0
    }

    .or-chip {
      display: inline-block;
      padding: 4px 8px;
      border-radius: 999px;
      border: 1px solid rgba(59, 130, 246, .18);
      background: rgba(59, 130, 246, .08);
      font-size: 10.5px;
      color: #93c5fd;
      margin-inline-start: 6px
    }

    @media(max-width:880px) {
      .or-grid {
        grid-template-columns: 1fr
      }
    }

/* styles/core/00-61-v12-safe-layout-tuning.css */
/* === V12 SAFE LAYOUT TUNING === */
#tp-docai .docai-fullscope-toolbar{position:sticky;top:var(--app-sticky-top);z-index:40;backdrop-filter:blur(14px);background:linear-gradient(180deg,rgba(4,12,28,.96),rgba(5,14,34,.94))}
#tp-docai .docai-fullscope-mode-btn,#tp-docai .docai-fullscope-filter-btn{font-size:11px !important;padding:7px 11px !important}
#tp-docai .docai-fullscope-note{font-size:10px !important}
#tp-docai .docai-fullscope-grid{grid-template-columns:1fr !important;gap:18px !important}
#tp-docai .docai-fullscope-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
#tp-docai .docai-ws-fullcard{padding:20px 20px 18px !important;border-radius:20px !important}
#tp-docai .docai-ws-head{gap:12px !important;margin-bottom:12px !important}
#tp-docai .docai-ws-num{min-width:42px !important;height:42px !important;font-size:16px !important;border-radius:12px !important}
#tp-docai .docai-ws-id{font-size:11px !important;padding:7px 12px !important}
#tp-docai .docai-ws-title{font-size:19px !important;line-height:1.18 !important}
#tp-docai .docai-ws-summary{font-size:14px !important;line-height:1.55 !important}
#tp-docai .docai-ws-statpill{font-size:11px !important;padding:9px 12px !important}
#tp-docai .docai-ws-infopill{font-size:11px !important;padding:8px 12px !important}
#tp-docai .docai-ws-audit{gap:8px !important;margin:14px 0 16px !important}
#tp-docai .docai-ws-audit-card{padding:11px 12px 10px !important;border-radius:14px !important}
#tp-docai .docai-ws-audit-val{font-size:17px !important}
#tp-docai .docai-ws-audit-lbl{font-size:10px !important}
#tp-docai .docai-group-grid{gap:14px !important}
#tp-docai .docai-fullscope-grid.subpkg-1 .docai-group-grid{grid-template-columns:1fr !important}
#tp-docai .docai-fullscope-grid.subpkg-2 .docai-group-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
#tp-docai .docai-fullscope-grid.compact .docai-group-grid{grid-template-columns:1fr !important}
#tp-docai .docai-fullscope-grid.compact.subpkg-2 .docai-group-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
#tp-docai .docai-group-card{border-radius:16px !important}
#tp-docai .docai-group-card > summary{padding:13px 14px !important;gap:10px !important}
#tp-docai .docai-group-idx{width:36px !important;height:36px !important;font-size:13px !important;border-radius:11px !important}
#tp-docai .docai-group-title{font-size:10px !important}
#tp-docai .docai-group-name{font-size:15px !important;line-height:1.2 !important}
#tp-docai .docai-group-count{font-size:11px !important}
#tp-docai .docai-group-body{padding:10px 14px 12px !important}
#tp-docai .docai-item-row{padding:9px 0 !important;gap:10px !important}
#tp-docai .docai-item-dot{width:10px !important;height:10px !important;margin-top:6px !important}
#tp-docai .docai-item-text{font-size:13.5px !important;line-height:1.55 !important}
#tp-docai .docai-item-ref{font-size:11px !important}
#tp-docai .docai-item-badge{font-size:10px !important;padding:6px 10px !important}
#tp-docai .docai-fullscope-integrity{font-size:10px !important}
@media (max-width: 1200px){
  #tp-docai .docai-fullscope-grid.compact{grid-template-columns:1fr !important}
  #tp-docai .docai-fullscope-grid.compact.subpkg-2 .docai-group-grid{grid-template-columns:1fr !important}
}

/* styles/plugins/001-forge-progress-style.css */
.forge-ov {
      position: fixed;
      inset: 0;
      z-index: 10050;
      background: rgba(2, 6, 18, .96);
      backdrop-filter: blur(10px);
      display: block;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity .42s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .42s
    }

    .forge-ov.open {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transition-delay: 0s
    }

    .forge-ov.closing {
      opacity: 0;
      visibility: visible;
      pointer-events: none;
      transition-delay: 0s
    }

    .forge-app {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      font-family: 'Exo 2', sans-serif;
      color: #e2f0ff;
      transform: scale(1) translateY(0);
      transition: transform .46s cubic-bezier(.22, 1, .36, 1), filter .46s ease, opacity .4s ease;
      opacity: 1;
      filter: blur(0)
    }

    .forge-ov.closing .forge-app {
      transform: scale(.988) translateY(14px);
      opacity: 0;
      filter: blur(10px)
    }

    .forge-lgb-host {
      display: none !important;
      position: absolute !important;
      inset: -9999px !important;
      opacity: 0 !important;
      pointer-events: none !important
    }

    .forge-top {
      flex: 0 0 62px;
      display: flex;
      align-items: center;
      border-bottom: 1px solid rgba(248, 180, 0, .18);
      background: rgba(4, 9, 18, .97);
      position: relative;
      z-index: 2
    }

    .forge-logo {
      display: flex;
      align-items: center;
      gap: 13px;
      padding: 0 24px;
      border-right: 1px solid rgba(248, 180, 0, .14);
      height: 100%;
      flex-shrink: 0
    }

    .forge-logo-mark {
      width: 36px;
      height: 36px;
      border-radius: 7px;
      background: linear-gradient(135deg, #f59e0b, #fcd34d);
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 900;
      font-size: 12px;
      color: #0a0500;
      box-shadow: 0 0 16px rgba(245, 158, 11, .3);
      flex-shrink: 0
    }

    .forge-app-name {
      font-size: 14px;
      font-weight: 800;
      color: #fef3c7
    }

    .forge-app-sub {
      font-size: 9px;
      font-weight: 600;
      color: #6b7280;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      margin-top: 2px
    }

    .forge-chips {
      display: flex;
      align-items: center;
      gap: 5px;
      padding: 0 16px;
      flex: 1;
      min-width: 0
    }

    .forge-chip {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 26px;
      padding: 0 9px;
      border-radius: 5px;
      border: 1px solid rgba(248, 180, 0, .13);
      background: rgba(6, 13, 24, .9);
      font-size: 10px;
      font-weight: 700;
      color: #6b7280;
      white-space: nowrap;
      font-family: 'JetBrains Mono', monospace
    }

    .forge-chip b {
      color: #fcd34d;
      font-size: 11px
    }

    .forge-chip .dot {
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: #22c55e;
      box-shadow: 0 0 5px rgba(34, 197, 94, .6);
      animation: blink 1.4s ease-in-out infinite;
      flex-shrink: 0
    }

    .forge-badge {
      margin-left: auto;
      margin-right: 22px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      gap: 7px;
      font-size: 9px;
      font-weight: 700;
      color: #f59e0b;
      letter-spacing: 2px;
      text-transform: uppercase;
      font-family: 'JetBrains Mono', monospace
    }

    .forge-badge-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: #f59e0b;
      box-shadow: 0 0 8px rgba(245, 158, 11, .65);
      animation: blink 1.8s ease-in-out infinite
    }

    .forge-main {
      flex: 1;
      min-height: 0;
      display: grid;
      grid-template-columns: 252px 1fr 284px;
      overflow: hidden;
      position: relative;
      z-index: 1
    }

    .forge-pipeline {
      border-right: 1px solid rgba(248, 180, 0, .12);
      background: rgba(4, 9, 18, .55);
      display: flex;
      flex-direction: column;
      overflow: hidden
    }

    .forge-pipe-hdr {
      padding: 13px 15px 10px;
      flex-shrink: 0;
      border-bottom: 1px solid rgba(248, 180, 0, .1)
    }

    .forge-pipe-hdr-lbl {
      font-size: 8px;
      font-weight: 700;
      color: #78716c;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      font-family: 'JetBrains Mono', monospace;
      margin-bottom: 5px
    }

    .forge-pipe-prog-row {
      display: flex;
      align-items: center;
      gap: 8px
    }

    .forge-pipe-track {
      flex: 1;
      height: 3px;
      background: rgba(71, 85, 105, .25);
      border-radius: 2px;
      overflow: hidden
    }

    .forge-pipe-fill {
      height: 100%;
      border-radius: 2px;
      background: linear-gradient(90deg, #16a34a, #4ade80);
      transition: width .6s cubic-bezier(.4, 0, .2, 1)
    }

    .forge-pipe-fill::after {
      content: '';
      display: block;
      height: 100%;
      width: 35%;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .45), transparent);
      animation: forgeSweep 1.6s linear infinite
    }

    .forge-pipe-pct {
      font-size: 10px;
      font-weight: 700;
      color: #4ade80;
      font-family: 'JetBrains Mono', monospace;
      min-width: 28px;
      text-align: right
    }

    .forge-pipe-steps {
      flex: 1;
      overflow: auto;
      padding: 4px 0
    }

    .forge-step {
      display: flex;
      align-items: stretch;
      transition: background .25s
    }

    .forge-step.active {
      background: rgba(245, 158, 11, .05)
    }

    .forge-step-spine {
      width: 46px;
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding-top: 12px
    }

    .forge-step-node {
      width: 26px;
      height: 26px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1.5px solid rgba(71, 85, 105, .28);
      background: rgba(6, 13, 24, .95);
      color: #475569;
      font-size: 9px;
      font-weight: 800;
      font-family: 'JetBrains Mono', monospace;
      transition: all .3s;
      position: relative;
      z-index: 1
    }

    .forge-step.done .forge-step-node {
      border-color: #22c55e;
      background: rgba(34, 197, 94, .12);
      color: transparent
    }

    .forge-step.done .forge-step-node::after {
      content: '✓';
      color: #4ade80;
      font-size: 11px;
      font-family: sans-serif;
      position: absolute
    }

    .forge-step.active .forge-step-node {
      border-color: #f59e0b;
      background: rgba(245, 158, 11, .14);
      color: #fcd34d;
      box-shadow: 0 0 0 4px rgba(245, 158, 11, .12), 0 0 16px rgba(245, 158, 11, .2);
      animation: nodeGlow 2.5s ease-in-out infinite
    }

    .forge-step-line {
      width: 1.5px;
      flex: 1;
      margin: 3px 0;
      background: rgba(55, 65, 81, .2);
      transition: background .4s
    }

    .forge-step.done .forge-step-line {
      background: linear-gradient(180deg, rgba(34, 197, 94, .4), rgba(34, 197, 94, .1))
    }

    .forge-step:last-child .forge-step-line {
      opacity: 0
    }

    .forge-step-body {
      flex: 1;
      padding: 10px 12px 10px 0;
      min-width: 0;
      border-bottom: 1px solid rgba(255, 255, 255, .04);
      display: flex;
      flex-direction: column;
      justify-content: center
    }

    .forge-step:last-child .forge-step-body {
      border-bottom: 0
    }

    .forge-step-tag {
      display: inline-flex;
      align-items: center;
      height: 15px;
      padding: 0 5px;
      border-radius: 3px;
      font-size: 7.5px;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      font-family: 'JetBrains Mono', monospace;
      margin-bottom: 4px;
      width: fit-content;
      background: rgba(71, 85, 105, .16);
      color: #94a3b8;
      border: 1px solid rgba(71, 85, 105, .18);
      transition: all .3s
    }

    .forge-step.done .forge-step-tag {
      background: rgba(34, 197, 94, .1);
      color: #4ade80;
      border-color: rgba(34, 197, 94, .22)
    }

    .forge-step.active .forge-step-tag {
      background: rgba(245, 158, 11, .12);
      color: #fcd34d;
      border-color: rgba(245, 158, 11, .28)
    }

    .forge-step-title {
      font-size: 11px;
      font-weight: 700;
      color: #cbd5e1;
      line-height: 1.3;
      transition: color .3s
    }

    .forge-step.done .forge-step-title {
      color: #34d399
    }

    .forge-step.active .forge-step-title {
      color: #fef3c7
    }

    .forge-step-detail {
      font-size: 9px;
      color: #94a3b8;
      margin-top: 4px;
      line-height: 1.5;
      font-family: 'JetBrains Mono', monospace;
      overflow: hidden;
      max-height: 36px;
      opacity: .95;
      transition: opacity .3s
    }

    .forge-step.active .forge-step-detail {
      color: #dbeafe
    }

    .forge-board-wrap {
      display: flex;
      flex-direction: column;
      padding: 14px 16px;
      min-height: 0;
      min-width: 0;
      overflow: hidden
    }

    .forge-board-hdr {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 10px;
      flex-shrink: 0;
      gap: 16px
    }

    .forge-board-ttl {
      font-size: 9px;
      font-weight: 700;
      color: #78716c;
      letter-spacing: 2px;
      text-transform: uppercase;
      font-family: 'JetBrains Mono', monospace
    }

    .forge-board-meta {
      font-size: 10px;
      color: #94a3b8;
      font-family: 'JetBrains Mono', monospace;
      max-width: 55%;
      text-align: right;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      transition: color .4s
    }

    .forge-board-meta.active {
      color: #fcd34d
    }

    .forge-board {
      flex: 1;
      min-height: 0;
      border: 1px solid rgba(248, 180, 0, .16);
      border-radius: 8px;
      background: rgba(3, 7, 16, .9);
      overflow: hidden;
      position: relative
    }

    .forge-mnths {
      height: 32px;
      display: flex;
      align-items: center;
      border-bottom: 1px solid rgba(248, 180, 0, .1);
      background: rgba(4, 9, 20, .97);
      position: relative;
      z-index: 6
    }

    .forge-mlabel {
      flex: 0 0 242px;
      padding: 0 13px;
      font-size: 9px;
      font-weight: 700;
      color: #78716c;
      letter-spacing: 1px;
      text-transform: uppercase;
      font-family: 'JetBrains Mono', monospace;
      border-right: 1px solid rgba(248, 180, 0, .08);
      height: 100%;
      display: flex;
      align-items: center
    }

    .forge-mcells {
      flex: 1;
      display: flex;
      height: 100%
    }

    .forge-mcell {
      flex: 1;
      border-right: 1px solid rgba(248, 180, 0, .05);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 9px;
      font-weight: 700;
      color: #475569;
      letter-spacing: .5px;
      font-family: 'JetBrains Mono', monospace
    }

    .forge-bgrid {
      position: absolute;
      top: 32px;
      bottom: 0;
      left: 242px;
      right: 0;
      pointer-events: none;
      z-index: 1;
      background-image: linear-gradient(90deg, rgba(248, 180, 0, .038) 1px, transparent 1px);
      background-size: 12.5% 100%
    }

    .forge-machine-canvas {
      position: absolute;
      top: 32px;
      left: 242px;
      right: 0;
      bottom: 0;
      z-index: 1;
      pointer-events: none;
      opacity: 1;
      transition: opacity 1.4s ease
    }

    .forge-machine-canvas.fade {
      opacity: 0
    }

    .forge-ghost-rows {
      position: absolute;
      left: 0;
      right: 0;
      top: 32px;
      bottom: 0;
      overflow: hidden;
      z-index: 2;
      pointer-events: none;
      opacity: 1;
      transition: opacity .8s ease
    }

    .forge-ghost-rows.hidden {
      opacity: 0
    }

    .forge-ghost-row {
      height: 32px;
      display: flex;
      align-items: center;
      border-bottom: 1px solid rgba(255, 255, 255, .025)
    }

    .forge-ghost-row.forge-ghost-wbs {
      height: 36px
    }

    .forge-ghost-name {
      flex: 0 0 242px;
      border-right: 1px solid rgba(248, 180, 0, .05);
      height: 100%;
      display: flex;
      align-items: center;
      padding: 0 14px;
      gap: 8px
    }

    .forge-ghost-id {
      width: 42px;
      height: 7px;
      border-radius: 2px;
      background: rgba(248, 180, 0, .08);
      animation: ghostPulse 2.4s ease-in-out infinite
    }

    .forge-ghost-row.forge-ghost-wbs .forge-ghost-id {
      background: rgba(56, 189, 248, .1)
    }

    .forge-ghost-txt {
      flex: 1;
      height: 7px;
      border-radius: 2px;
      background: rgba(255, 255, 255, .05);
      animation: ghostPulse 2.4s ease-in-out infinite;
      animation-delay: .3s;
      max-width: 140px
    }

    .forge-ghost-lane {
      flex: 1;
      position: relative;
      height: 100%;
      overflow: hidden
    }

    .forge-ghost-bar {
      position: absolute;
      top: 50%;
      height: 8px;
      border-radius: 3px;
      transform: translateY(-50%);
      background: rgba(37, 99, 235, .1);
      border: 1px dashed rgba(37, 99, 235, .18);
      animation: ghostBarPulse var(--fgbd, 2.2s) ease-in-out infinite;
      overflow: hidden
    }

    .forge-ghost-bar::after {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: -40px;
      width: 40px;
      background: linear-gradient(90deg, transparent, rgba(96, 165, 250, .25), transparent);
      animation: ghostSweep var(--fgbd, 2s) ease-in-out var(--fgbdl, 0s) infinite
    }

    .forge-ghost-bar.forge-ghost-crit {
      background: rgba(185, 28, 28, .08);
      border-color: rgba(239, 68, 68, .15)
    }

    .forge-ghost-bar.forge-ghost-crit::after {
      background: linear-gradient(90deg, transparent, rgba(248, 113, 113, .2), transparent)
    }

    .forge-ghost-bar.forge-ghost-wbs-bar {
      height: 3px;
      border-radius: 1px;
      background: rgba(14, 165, 233, .12);
      border-color: rgba(56, 189, 248, .2)
    }

    .forge-engine-status-strip {
      position: absolute;
      bottom: 0;
      left: 242px;
      right: 0;
      height: 28px;
      z-index: 3;
      pointer-events: none;
      display: flex;
      align-items: center;
      padding: 0 14px;
      gap: 10px;
      border-top: 1px solid rgba(248, 180, 0, .08);
      background: linear-gradient(180deg, transparent, rgba(4, 9, 20, .6));
      opacity: 1;
      transition: opacity .8s ease
    }

    .forge-engine-status-strip.hidden {
      opacity: 0
    }

    .forge-es-dot {
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: #f59e0b;
      box-shadow: 0 0 5px rgba(245, 158, 11, .6);
      animation: blink 1.2s ease-in-out infinite;
      flex-shrink: 0
    }

    .forge-es-label {
      font-size: 9px;
      font-weight: 700;
      color: #64748b;
      font-family: 'JetBrains Mono', monospace;
      letter-spacing: .8px
    }

    .forge-es-label b {
      color: #fcd34d;
      font-weight: 700
    }

    .forge-es-spinner {
      margin-left: auto;
      width: 14px;
      height: 14px;
      border-radius: 50%;
      border: 1.5px solid rgba(245, 158, 11, .15);
      border-top-color: rgba(245, 158, 11, .55);
      animation: spin 1.2s linear infinite;
      flex-shrink: 0
    }

    .forge-rows {
      position: absolute;
      left: 0;
      right: 0;
      top: 32px;
      bottom: 0;
      overflow: auto;
      z-index: 4;
      scroll-behavior: smooth;
      scrollbar-width: none;
      -ms-overflow-style: none
    }

    .forge-rows::-webkit-scrollbar {
      display: none
    }

    .forge-row {
      height: 32px;
      display: flex;
      align-items: center;
      border-bottom: 1px solid rgba(255, 255, 255, .03)
    }

    .forge-row.forge-wbs-r {
      height: 36px;
      background: linear-gradient(90deg, rgba(56, 189, 248, .04), transparent 60%)
    }

    .forge-row.entering {
      opacity: 0;
      transform: translate3d(-30px, 0, 0) scale(.985);
      filter: blur(5px);
      animation: forgeRowIn .72s cubic-bezier(.18, .88, .2, 1) forwards
    }

    .forge-row.forge-pulse {
      animation: forgeRowPulse 1.2s ease
    }

    .forge-row.forge-pulse .forge-rname {
      background: linear-gradient(90deg, rgba(245, 158, 11, .07), rgba(245, 158, 11, .03), transparent) !important;
      transition: background .3s
    }

    .forge-row.forge-pulse .forge-rtxt {
      color: #fef9c3 !important;
      transition: color .3s
    }

    .forge-rname {
      flex: 0 0 242px;
      display: flex;
      align-items: center;
      gap: 7px;
      padding: 0 12px;
      border-right: 1px solid rgba(248, 180, 0, .07);
      height: 100%;
      min-width: 0;
      overflow: hidden;
      position: relative
    }

    .forge-row.forge-wbs-r .forge-rname {
      background: linear-gradient(90deg, rgba(56, 189, 248, .05), transparent)
    }

    .forge-row.entering .forge-rname::after {
      content: '';
      position: absolute;
      inset: 0 auto 0 0;
      width: 88px;
      background: linear-gradient(90deg, rgba(255, 255, 255, .10), rgba(96, 165, 250, .08), transparent);
      transform: translateX(-130%);
      animation: forgeNameSweep .9s ease-out var(--rdelay, 0ms) forwards;
      pointer-events: none
    }

    .forge-rid {
      font-size: 9px;
      font-weight: 700;
      color: #fca5a5;
      font-family: 'JetBrains Mono', monospace;
      flex-shrink: 0;
      min-width: 46px
    }

    .forge-row.forge-wbs-r .forge-rid {
      color: #38bdf8
    }

    .forge-rtxt {
      font-size: 11px;
      font-weight: 700;
      color: #cbd5e1;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis
    }

    .forge-row.forge-wbs-r .forge-rtxt {
      color: #7dd3fc;
      font-weight: 800
    }

    .forge-rlane {
      flex: 1;
      position: relative;
      height: 100%;
      overflow: hidden
    }

    .forge-bar {
      position: absolute;
      top: 50%;
      height: 10px;
      border-radius: 3px;
      transform: translateY(-50%) scaleX(.96);
      transform-origin: left center;
      clip-path: inset(0 100% 0 0);
      animation: forgeBarDraw var(--fd, 1080ms) cubic-bezier(.22, .72, .16, 1) var(--fdelay, 0ms) forwards, forgeBarSettle .72s ease-out calc(var(--fdelay, 0ms) + 120ms) forwards;
      background: linear-gradient(90deg, #143C96 0%, #2563EB 48%, #7DD3FC 100%);
      box-shadow: 0 0 0 1px rgba(125, 211, 252, .08), 0 0 18px rgba(37, 99, 235, .12)
    }

    .forge-bar::before {
      content: '';
      position: absolute;
      inset: -2px;
      opacity: 0;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .12), transparent);
      mix-blend-mode: screen;
      animation: forgeBarAura .8s ease-out calc(var(--fdelay, 0ms) + 40ms) forwards
    }

    .forge-bar::after {
      content: '';
      position: absolute;
      right: 0;
      top: -5px;
      bottom: -5px;
      width: 18px;
      background: linear-gradient(90deg, transparent, rgba(147, 197, 253, .92), rgba(255, 255, 255, .66));
      border-radius: 0 3px 3px 0;
      animation: forgeBarEdge var(--fd, 1080ms) cubic-bezier(.22, .72, .16, 1) var(--fdelay, 0ms) forwards
    }

    .forge-bar.forge-cr {
      background: linear-gradient(90deg, #7F1D1D, #DC2626, #F87171)
    }

    .forge-bar.forge-cr::after {
      background: linear-gradient(90deg, transparent, rgba(252, 165, 165, .9), rgba(255, 200, 200, .6))
    }

    .forge-bar.forge-go {
      background: linear-gradient(90deg, #14532d, #16a34a, #86efac)
    }

    .forge-bar.forge-go::after {
      background: linear-gradient(90deg, transparent, rgba(187, 247, 208, .88), rgba(240, 253, 244, .62))
    }

    .forge-bar.forge-wb {
      height: 4px;
      background: linear-gradient(90deg, #075985, #0EA5E9, #7DD3FC)
    }

    .forge-bar.forge-wb::after {
      display: none
    }

    .forge-ms {
      position: absolute;
      top: 50%;
      width: 10px;
      height: 10px;
      border-radius: 2px;
      background: #a78bfa;
      transform: translateY(-50%) rotate(45deg) scale(0);
      box-shadow: 0 0 8px rgba(167, 139, 250, .4);
      animation: forgeMsPop .5s cubic-bezier(.2, 1.5, .3, 1) var(--fdelay, 0ms) forwards
    }

    .forge-links {
      position: absolute;
      top: 32px;
      left: 242px;
      right: 0;
      bottom: 0;
      pointer-events: none;
      overflow: visible;
      z-index: 5
    }

    .forge-lnk {
      fill: none;
      stroke: #38BDF8;
      stroke-width: 1.2;
      stroke-dasharray: 1000;
      stroke-dashoffset: 1000;
      stroke-opacity: 0;
      animation: forgeLinkDraw .7s cubic-bezier(.4, 0, .2, 1) var(--ld, 0ms) forwards, forgeLinkShow .5s ease var(--ld, 0ms) forwards;
      filter: drop-shadow(0 0 3px rgba(56, 189, 248, .2))
    }

    .forge-lnk.steady {
      stroke-dasharray: 8 5;
      stroke-dashoffset: 0;
      stroke-opacity: .48;
      animation: forgeDashAnim 2s linear infinite
    }

    .forge-cursor {
      position: absolute;
      top: 32px;
      bottom: 0;
      z-index: 6;
      pointer-events: none;
      width: 2px;
      background: linear-gradient(180deg, transparent, rgba(245, 158, 11, .75) 20%, rgba(253, 224, 71, .55) 50%, rgba(245, 158, 11, .75) 80%, transparent);
      box-shadow: 0 0 14px rgba(245, 158, 11, .4), 0 0 30px rgba(245, 158, 11, .12);
      opacity: 0;
      left: 242px
    }

    .forge-cursor.sweep {
      animation: forgeCursorSweep var(--fcsd, 3s) cubic-bezier(.2, .6, .35, 1) forwards
    }

    .forge-right {
      border-left: 1px solid rgba(248, 180, 0, .12);
      background: rgba(4, 9, 18, .6);
      padding: 16px 15px;
      display: flex;
      flex-direction: column;
      gap: 12px;
      overflow: hidden
    }

    .forge-phdr {
      font-size: 8px;
      font-weight: 700;
      color: #78716c;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      font-family: 'JetBrains Mono', monospace;
      margin-bottom: 7px
    }

    .forge-sgrid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 5px
    }

    .forge-sbox {
      background: rgba(6, 13, 24, .95);
      border: 1px solid rgba(248, 180, 0, .1);
      border-radius: 6px;
      padding: 9px 10px;
      transition: border-color .4s
    }

    .forge-sbox.hi {
      border-color: rgba(245, 158, 11, .22);
      background: rgba(245, 158, 11, .05)
    }

    .forge-sval {
      font-size: 22px;
      font-weight: 900;
      color: #cbd5e1;
      font-family: 'JetBrains Mono', monospace;
      line-height: 1;
      margin-bottom: 3px
    }

    .forge-sbox.hi .forge-sval {
      color: #fcd34d
    }

    .forge-slbl {
      font-size: 8px;
      font-weight: 700;
      color: #78716c;
      letter-spacing: 1px;
      text-transform: uppercase;
      font-family: 'JetBrains Mono', monospace
    }

    .forge-cpm-card {
      background: rgba(14, 165, 233, .05);
      border: 1px solid rgba(14, 165, 233, .18);
      border-radius: 6px;
      padding: 10px 12px;
      display: flex;
      align-items: flex-start;
      gap: 9px;
      flex-shrink: 0
    }

    .forge-cpm-icon {
      width: 28px;
      height: 28px;
      border-radius: 5px;
      background: rgba(14, 165, 233, .1);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      flex-shrink: 0;
      color: #38bdf8;
      margin-top: 1px
    }

    .forge-cpm-top {
      font-size: 10px;
      font-weight: 800;
      color: #7dd3fc;
      margin-bottom: 2px
    }

    .forge-cpm-sub {
      font-size: 9px;
      color: #94a3b8;
      font-family: 'JetBrains Mono', monospace;
      line-height: 1.4
    }

    .forge-con {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column
    }

    .forge-cbox {
      flex: 1;
      min-height: 0;
      background: rgba(2, 4, 10, .92);
      border: 1px solid rgba(248, 180, 0, .11);
      border-radius: 6px;
      padding: 10px;
      overflow: hidden;
      display: flex;
      flex-direction: column
    }

    .forge-cdots {
      display: flex;
      align-items: center;
      gap: 5px;
      margin-bottom: 8px;
      padding-bottom: 7px;
      border-bottom: 1px solid rgba(248, 180, 0, .08);
      flex-shrink: 0
    }

    .forge-cdot {
      width: 7px;
      height: 7px;
      border-radius: 50%
    }

    .forge-clog {
      font-size: 10px;
      line-height: 1.7;
      overflow: auto;
      flex: 1;
      font-family: 'JetBrains Mono', monospace;
      white-space: pre-wrap
    }

    .forge-cline {
      display: block;
      opacity: 0;
      animation: forgeFadeIn .25s ease forwards
    }

    .forge-cline.cmd {
      color: #38bdf8
    }

    .forge-cline.ok {
      color: #4ade80
    }

    .forge-cline.warn {
      color: #fcd34d
    }

    .forge-cline.dim {
      color: #64748b
    }

    .forge-cline.sys {
      color: #818cf8
    }

    .forge-footer {
      flex: 0 0 56px;
      display: flex;
      align-items: center;
      border-top: 1px solid rgba(248, 180, 0, .18);
      background: rgba(4, 9, 18, .97);
      padding: 0 24px;
      position: relative;
      z-index: 2
    }

    .forge-fstep {
      font-size: 22px;
      font-weight: 900;
      color: #f59e0b;
      font-family: 'Exo 2', sans-serif;
      line-height: 1;
      margin-right: 16px;
      flex-shrink: 0;
      text-shadow: 0 0 20px rgba(245, 158, 11, .35)
    }

    .forge-fstep span {
      font-size: 11px;
      font-weight: 600;
      color: #78716c
    }

    .forge-segbar {
      flex: 1;
      display: flex;
      gap: 3px;
      align-items: center;
      margin-right: 20px
    }

    .forge-seg {
      flex: 1;
      height: 5px;
      border-radius: 2px;
      background: rgba(55, 65, 81, .2);
      transition: background .45s
    }

    .forge-seg.done {
      background: #16a34a
    }

    .forge-seg.active {
      background: linear-gradient(90deg, #d97706, #fcd34d);
      box-shadow: 0 0 6px rgba(245, 158, 11, .5);
      position: relative;
      overflow: hidden;
      animation: forgeSegPulse 1.8s ease-in-out infinite
    }

    .forge-seg.active::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .38), transparent);
      animation: forgeSweep 1.5s linear infinite
    }

    .forge-fmsg {
      font-size: 10px;
      font-weight: 700;
      color: #94a3b8;
      font-family: 'JetBrains Mono', monospace;
      max-width: 42%;
      text-align: right;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis
    }

    @keyframes nodeGlow {

      0%,
      100% {
        box-shadow: 0 0 0 4px rgba(245, 158, 11, .12), 0 0 16px rgba(245, 158, 11, .2)
      }

      50% {
        box-shadow: 0 0 0 6px rgba(245, 158, 11, .18), 0 0 26px rgba(245, 158, 11, .4)
      }
    }

    @keyframes ghostPulse {

      0%,
      100% {
        opacity: .4
      }

      50% {
        opacity: .9
      }
    }

    @keyframes ghostBarPulse {

      0%,
      100% {
        opacity: .35
      }

      50% {
        opacity: .75
      }
    }

    @keyframes ghostSweep {
      0% {
        left: -40px
      }

      100% {
        left: calc(100% + 40px)
      }
    }

    @keyframes forgeFadeIn {
      to {
        opacity: 1
      }
    }

    @keyframes forgeRowIn {
      0% {
        opacity: 0;
        transform: translate3d(-30px, 0, 0) scale(.985);
        filter: blur(5px)
      }

      55% {
        opacity: .92;
        transform: translate3d(0, 0, 0) scale(1);
        filter: blur(0)
      }

      100% {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
        filter: blur(0)
      }
    }

    @keyframes forgeBarDraw {
      0% {
        clip-path: inset(0 100% 0 0)
      }

      100% {
        clip-path: inset(0 0% 0 0)
      }
    }

    @keyframes forgeBarEdge {
      0% {
        right: 100%;
        opacity: 0
      }

      4% {
        opacity: 1
      }

      93% {
        right: -5px;
        opacity: .85
      }

      100% {
        right: -5px;
        opacity: 0
      }
    }

    @keyframes forgeNameSweep {
      0% {
        transform: translateX(-130%);
        opacity: 0
      }

      18% {
        opacity: .7
      }

      100% {
        transform: translateX(320%);
        opacity: 0
      }
    }

    @keyframes forgeBarAura {
      0% {
        opacity: 0
      }

      35% {
        opacity: .95
      }

      100% {
        opacity: 0
      }
    }

    @keyframes forgeBarSettle {
      0% {
        transform: translateY(-50%) scaleX(.96)
      }

      100% {
        transform: translateY(-50%) scaleX(1)
      }
    }

    @keyframes forgeMsPop {
      to {
        transform: translateY(-50%) rotate(45deg) scale(1)
      }
    }

    @keyframes forgeLinkDraw {
      to {
        stroke-dashoffset: 0
      }
    }

    @keyframes forgeLinkShow {
      to {
        stroke-opacity: .5
      }
    }

    @keyframes forgeDashAnim {
      to {
        stroke-dashoffset: -26
      }
    }

    @keyframes forgeCursorSweep {
      0% {
        left: 242px;
        opacity: 0
      }

      4% {
        opacity: 1
      }

      93% {
        opacity: .8
      }

      100% {
        left: calc(100%);
        opacity: 0
      }
    }

    @keyframes forgeSegPulse {

      0%,
      100% {
        box-shadow: 0 0 6px rgba(245, 158, 11, .5)
      }

      50% {
        box-shadow: 0 0 14px rgba(245, 158, 11, .8)
      }
    }

    @keyframes forgeSweep {
      0% {
        transform: translateX(-140%)
      }

      100% {
        transform: translateX(180%)
      }
    }

    @keyframes forgeBarSweep {
      0% {
        left: -24px
      }

      100% {
        left: calc(100% + 24px)
      }
    }

    @keyframes forgeRowPulse {
      0% {
        background: rgba(245, 158, 11, .14)
      }

      100% {
        background: transparent
      }
    }

    @media (max-width:1100px) {
      .forge-main {
        grid-template-columns: 220px 1fr
      }

      .forge-right {
        display: none
      }
    }

    @media (max-width:760px) {
      .forge-main {
        grid-template-columns: 1fr
      }

      .forge-pipeline {
        display: none
      }

      .forge-logo {
        padding: 0 14px
      }

      .forge-chips {
        gap: 4px;
        padding: 0 8px;
        overflow: auto
      }

      .forge-badge {
        display: none
      }
    }

/* styles/tabs/004-docai-btn.css */
.docai-btn {
          padding: 12px 18px;
          border-radius: 12px;
          font-weight: 800;
          cursor: pointer;
          font-family: inherit;
          transition: all 0.2s;
          color: #fff;
          border: none;
          display: inline-flex;
          align-items: center;
          justify-content: center;
          gap: 8px;
        }

        .docai-btn:disabled {
          opacity: 0.5;
          cursor: not-allowed;
        }

        .docai-btn.primary {
          background: linear-gradient(135deg, #1d4ed8, #3b82f6);
          border: 1px solid rgba(59, 130, 246, .55);
        }

        .docai-btn.primary:hover {
          transform: translateY(-2px);
          box-shadow: 0 10px 28px rgba(59, 130, 246, 0.34);
        }

        .docai-btn.success {
          background: linear-gradient(135deg, #065f46, #10b981);
          border: 1px solid rgba(16, 185, 129, .4);
        }

        .docai-btn.success:hover {
          transform: translateY(-2px);
          box-shadow: 0 10px 28px rgba(16, 185, 129, 0.26);
        }

        .docai-shell-upgrade {
          background: #080d1a;
        }

        .docai-control-hero {
          position: relative;
          overflow: hidden;
          padding: 28px 24px;
          display: grid;
          grid-template-columns: minmax(0, 1.3fr) minmax(320px, .9fr);
          gap: 20px;
          background: linear-gradient(135deg, rgba(2, 6, 23, .98), rgba(15, 23, 42, .96));
          border-bottom: 1px solid rgba(99, 102, 241, .18);
        }

        .docai-control-hero::before {
          content: '';
          position: absolute;
          inset: 0;
          pointer-events: none;
          opacity: .32;
          background-image: radial-gradient(circle at 18% 50%, rgba(99, 102, 241, .35) 0%, transparent 40%), radial-gradient(circle at 82% 18%, rgba(14, 165, 233, .24) 0%, transparent 34%), radial-gradient(circle at 58% 88%, rgba(16, 185, 129, .16) 0%, transparent 30%);
        }

        .docai-hero-copy,
        .docai-hero-actions {
          position: relative;
          z-index: 1;
        }

        .docai-pill {
          display: inline-flex;
          align-items: center;
          gap: 8px;
          padding: 8px 14px;
          border-radius: 999px;
          margin-bottom: 14px;
          background: rgba(99, 102, 241, .12);
          border: 1px solid rgba(99, 102, 241, .28);
          color: #a5b4fc;
          font-size: 11px;
          font-weight: 800;
          letter-spacing: .13em;
        }

        .docai-hero-title {
          font-size: 30px;
          line-height: 1.08;
          color: #f8fafc;
          font-weight: 900;
          max-width: 780px;
        }

        .docai-hero-sub {
          margin-top: 10px;
          max-width: 760px;
          font-size: 14px;
          line-height: 1.75;
          color: #94a3b8;
        }

        .docai-hero-actions {
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: stretch;
          gap: 12px;
        }

        .docai-file-card {
          padding: 18px;
          border-radius: 18px;
          background: rgba(15, 23, 42, .74);
          border: 1px solid rgba(255, 255, 255, .08);
          backdrop-filter: blur(10px);
          box-shadow: 0 20px 60px rgba(2, 6, 23, .35);
        }

        .docai-card-label {
          font-size: 11px;
          font-weight: 800;
          text-transform: uppercase;
          letter-spacing: .14em;
          color: #64748b;
          margin-bottom: 10px;
        }

        .docai-premium-select {
          background: rgba(2, 6, 23, .92) !important;
          border-color: rgba(99, 102, 241, .18) !important;
          color: #e2e8f0 !important;
          min-height: 46px;
        }

        .docai-file-meta {
          margin-top: 10px;
          font-size: 12px;
          line-height: 1.6;
          color: #94a3b8;
        }

        .docai-modebar {
          position: sticky;
          top: 64px;
          z-index: 88;
          background: rgba(8, 13, 26, .86);
          backdrop-filter: blur(16px);
          border-bottom: 1px solid rgba(99, 102, 241, .12);
        }

        .docai-modebar-inner {
          display: flex;
          gap: 8px;
          padding: 10px 18px;
          overflow: auto;
        }

        .docai-subtab {
          display: inline-flex;
          align-items: center;
          gap: 10px;
          padding: 12px 18px;
          border-radius: 12px;
          min-width: max-content;
          color: #94a3b8;
          font-size: 13px;
          font-weight: 700;
          cursor: pointer;
          border: 1px solid transparent;
          transition: all .22s ease;
        }

        .docai-subtab:hover {
          color: #e2e8f0;
          background: rgba(255, 255, 255, .03);
        }

        .docai-subtab.active {
          color: #c7d2fe;
          background: rgba(99, 102, 241, .16);
          border-color: rgba(99, 102, 241, .28);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
        }

        .docai-tab-icon {
          font-size: 15px;
        }

        .docai-workspace {
          padding: 22px;
        }

        .docai-subtp {
          display: none;
        }

        .docai-subtp.active {
          display: block;
        }

        .docai-launch-panel {
          display: grid;
          grid-template-columns: minmax(0, 1fr) auto;
          gap: 16px;
          align-items: center;
          padding: 20px;
          margin-bottom: 22px;
          border-radius: 20px;
          background: linear-gradient(135deg, rgba(15, 23, 42, .86), rgba(30, 41, 59, .58));
          border: 1px solid rgba(99, 102, 241, .18);
          box-shadow: 0 24px 64px rgba(2, 6, 23, .22);
        }

        .docai-launch-panel.planning {
          border-color: rgba(16, 185, 129, .16);
        }

        .docai-launch-panel.chat {
          border-color: rgba(245, 158, 11, .18);
        }

        .docai-launch-kicker {
          font-size: 11px;
          font-weight: 800;
          letter-spacing: .14em;
          text-transform: uppercase;
          color: #818cf8;
          margin-bottom: 10px;
        }

        .docai-launch-title {
          font-size: 24px;
          line-height: 1.18;
          font-weight: 900;
          color: #f8fafc;
          max-width: 840px;
        }

        .docai-launch-desc {
          margin-top: 8px;
          max-width: 840px;
          color: #94a3b8;
          font-size: 13px;
          line-height: 1.8;
        }

        .docai-launch-actions {
          display: flex;
          align-items: center;
          justify-content: flex-end;
        }

        .docai-chat-inline {
          display: flex;
          gap: 12px;
          align-items: center;
          min-width: 380px;
        }

        .docai-chat-input {
          min-height: 46px;
          background: rgba(2, 6, 23, .92) !important;
          border-color: rgba(245, 158, 11, .18) !important;
        }

        .docai-output {
          min-height: 220px;
        }

        .docai-pres-empty {
          border: 1px dashed rgba(148, 163, 184, .14);
          border-radius: 20px;
          padding: 54px 26px;
          text-align: center;
          background: linear-gradient(180deg, rgba(15, 23, 42, .45), rgba(2, 6, 23, .34));
          color: #94a3b8;
        }

        .docai-pres-empty-icon {
          font-size: 48px;
          margin-bottom: 16px;
        }

        .docai-pres-empty-title {
          font-size: 20px;
          color: #e2e8f0;
          font-weight: 800;
          margin-bottom: 8px;
        }

        .docai-pres-empty-sub {
          max-width: 760px;
          margin: 0 auto;
          line-height: 1.8;
          font-size: 13px;
        }

        .docai-loading-shell {
          padding: 36px 30px;
          border-radius: 24px;
          border: 1px solid rgba(99, 102, 241, .18);
          background: linear-gradient(145deg, rgba(2, 6, 23, .94), rgba(15, 23, 42, .94));
          box-shadow: 0 30px 80px rgba(2, 6, 23, .38);
        }

        .docai-loading-badge {
          display: inline-flex;
          padding: 7px 12px;
          border-radius: 999px;
          font-size: 11px;
          font-weight: 800;
          letter-spacing: .14em;
          color: #a5b4fc;
          background: rgba(99, 102, 241, .12);
          border: 1px solid rgba(99, 102, 241, .24);
        }

        .docai-loading-title {
          margin-top: 16px;
          font-size: 30px;
          font-weight: 900;
          color: #f8fafc;
        }

        .docai-loading-sub {
          margin-top: 10px;
          max-width: 760px;
          color: #94a3b8;
          line-height: 1.75;
        }

        .docai-load-grid {
          margin-top: 24px;
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
          gap: 16px;
        }

        .docai-load-card {
          padding: 18px;
          border-radius: 18px;
          background: rgba(255, 255, 255, .03);
          border: 1px solid rgba(255, 255, 255, .06);
          animation: docaiPulse 1.5s infinite ease-in-out;
        }

        .docai-load-card-line {
          height: 11px;
          border-radius: 999px;
          background: linear-gradient(90deg, rgba(148, 163, 184, .12), rgba(148, 163, 184, .26), rgba(148, 163, 184, .12));
          margin-bottom: 10px;
        }

        .docai-load-card-line.short {
          width: 56%;
        }

        .docai-load-card-tag {
          margin-top: 12px;
          font-size: 11px;
          color: #64748b;
          text-transform: uppercase;
          letter-spacing: .14em;
        }

        @keyframes docaiPulse {

          0%,
          100% {
            opacity: .7;
            transform: translateY(0);
          }

          50% {
            opacity: 1;
            transform: translateY(-2px);
          }
        }

        .docai-pres {
          color: #e2e8f0;
        }

        .docai-pres-hero {
          position: relative;
          overflow: hidden;
          border-radius: 28px;
          margin-bottom: 18px;
          background: linear-gradient(135deg, #020617 0%, #0f172a 42%, #111827 100%);
          border: 1px solid rgba(99, 102, 241, .18);
          box-shadow: 0 35px 100px rgba(2, 6, 23, .46);
        }

        .docai-pres-bg {
          position: absolute;
          inset: 0;
          pointer-events: none;
          opacity: .35;
          background-image: radial-gradient(circle at 18% 50%, rgba(99, 102, 241, .34) 0%, transparent 45%), radial-gradient(circle at 85% 18%, rgba(14, 165, 233, .18) 0%, transparent 34%), radial-gradient(circle at 62% 82%, rgba(16, 185, 129, .14) 0%, transparent 28%), linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
          background-size: auto, auto, auto, 54px 54px, 54px 54px;
        }

        .docai-pres-hero-inner {
          position: relative;
          z-index: 1;
          padding: 34px 30px 30px;
        }

        .docai-pres-pill {
          display: inline-flex;
          padding: 8px 14px;
          border-radius: 999px;
          font-size: 11px;
          font-weight: 800;
          letter-spacing: .14em;
          color: #fbbf24;
          background: rgba(245, 158, 11, .12);
          border: 1px solid rgba(245, 158, 11, .24);
        }

        .docai-pres-meta-row {
          display: flex;
          flex-wrap: wrap;
          gap: 10px;
          margin-top: 18px;
        }

        .docai-pres-meta-chip {
          padding: 7px 12px;
          border-radius: 999px;
          font-size: 12px;
          color: #cbd5e1;
          background: rgba(255, 255, 255, .04);
          border: 1px solid rgba(255, 255, 255, .08);
        }

        .docai-pres-main-title {
          margin-top: 16px;
          font-size: 36px;
          line-height: 1.08;
          font-weight: 900;
          color: #fff;
          max-width: 860px;
        }

        .docai-pres-subtitle {
          margin-top: 12px;
          max-width: 860px;
          font-size: 15px;
          line-height: 1.85;
          color: #cbd5e1;
        }

        .docai-pres-facts {
          margin-top: 22px;
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
          gap: 14px;
        }

        .docai-pres-fact {
          padding: 18px;
          border-radius: 18px;
          background: rgba(255, 255, 255, .04);
          border: 1px solid rgba(255, 255, 255, .08);
          backdrop-filter: blur(10px);
        }

        .docai-pres-fact-icon {
          font-size: 22px;
          margin-bottom: 12px;
        }

        .docai-pres-fact-value {
          font-size: 28px;
          line-height: 1;
          font-weight: 900;
        }

        .docai-pres-fact-unit {
          margin-top: 5px;
          font-size: 10px;
          text-transform: uppercase;
          letter-spacing: .16em;
          color: #64748b;
        }

        .docai-pres-fact-label {
          margin-top: 8px;
          font-size: 13px;
          color: #cbd5e1;
          font-weight: 600;
        }

        .docai-pres-strip-grid {
          margin-top: 22px;
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
          gap: 14px;
        }

        .docai-pres-strip {
          padding: 16px 18px;
          border-radius: 18px;
          border: 1px solid rgba(255, 255, 255, .08);
          background: rgba(255, 255, 255, .03);
        }

        .docai-pres-strip.success {
          background: rgba(16, 185, 129, .07);
          border-color: rgba(16, 185, 129, .16);
        }

        .docai-pres-strip.danger {
          background: rgba(239, 68, 68, .06);
          border-color: rgba(239, 68, 68, .14);
        }

        .docai-pres-strip-title {
          font-size: 12px;
          font-weight: 800;
          letter-spacing: .12em;
          text-transform: uppercase;
          color: #e2e8f0;
          margin-bottom: 10px;
        }

        .docai-info-strip {
          display: flex;
          flex-wrap: wrap;
          gap: 8px;
        }

        .docai-info-pill {
          padding: 6px 10px;
          border-radius: 999px;
          font-size: 11px;
          background: rgba(255, 255, 255, .05);
          color: #cbd5e1;
        }

        .docai-pres-nav-wrap {
          position: sticky;
          top: var(--app-sticky-top);
          z-index: 8;
          margin-bottom: 18px;
        }

        .docai-pres-nav {
          display: flex;
          gap: 8px;
          overflow: auto;
          padding: 8px;
          border-radius: 18px;
          background: rgba(15, 23, 42, .75);
          border: 1px solid rgba(99, 102, 241, .14);
          backdrop-filter: blur(14px);
        }

        .docai-pres-nav-btn {
          padding: 10px 14px;
          border: none;
          border-radius: 12px;
          font: inherit;
          font-size: 12px;
          font-weight: 700;
          color: #94a3b8;
          background: transparent;
          cursor: pointer;
          transition: all .18s;
          white-space: nowrap;
        }

        .docai-pres-nav-btn:hover {
          background: rgba(99, 102, 241, .12);
          color: #c7d2fe;
        }

        .docai-pres-main {
          display: flex;
          flex-direction: column;
          gap: 18px;
        }

        .docai-pres-section {
          scroll-margin-top: 180px;
        }

        .docai-pres-headline {
          display: flex;
          align-items: center;
          gap: 12px;
          margin-bottom: 12px;
        }

        .docai-pres-line {
          width: 34px;
          height: 2px;
          border-radius: 999px;
        }

        .docai-pres-kicker {
          font-size: 11px;
          font-weight: 800;
          letter-spacing: .16em;
          text-transform: uppercase;
        }

        .docai-pres-card {
          padding: 24px 22px;
          border-radius: 24px;
          background: linear-gradient(145deg, rgba(2, 6, 23, .92), rgba(15, 23, 42, .84));
          border: 1px solid rgba(99, 102, 241, .14);
          box-shadow: 0 30px 80px rgba(2, 6, 23, .30);
        }

        .docai-pres-section-title {
          display: flex;
          align-items: center;
          gap: 10px;
          font-size: 28px;
          font-weight: 900;
          color: #fff;
          margin-bottom: 16px;
        }

        .docai-pres-icon {
          font-size: 18px;
          color: #94a3b8;
        }

        .docai-pres-content {
          color: #dbe3f0;
          font-size: 14px;
          line-height: 1.85;
        }

        .docai-soft-note {
          padding: 16px 18px;
          border-radius: 16px;
          background: rgba(255, 255, 255, .03);
          border: 1px dashed rgba(148, 163, 184, .18);
          color: #94a3b8;
        }

        .docai-inline-subtitle {
          font-size: 12px;
          font-weight: 800;
          text-transform: uppercase;
          letter-spacing: .14em;
          color: #fbbf24;
          margin-bottom: 10px;
        }

        .docai-chip-cloud {
          display: flex;
          flex-wrap: wrap;
          gap: 10px;
        }

        .docai-chip {
          display: inline-flex;
          padding: 8px 14px;
          border-radius: 999px;
          border: 1px solid rgba(255, 255, 255, .12);
          font-size: 12px;
          font-weight: 700;
        }

        .docai-bullet-grid {
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
          gap: 12px;
        }

        .docai-bullet-card {
          position: relative;
          overflow: hidden;
          padding: 18px 16px 16px;
          border-radius: 18px;
          background: rgba(255, 255, 255, .03);
          border: 1px solid rgba(255, 255, 255, .06);
        }

        .docai-bullet-card.tone-red {
          background: rgba(239, 68, 68, .05);
          border-color: rgba(239, 68, 68, .14);
        }

        .docai-bullet-card.tone-amber {
          background: rgba(245, 158, 11, .05);
          border-color: rgba(245, 158, 11, .16);
        }

        .docai-bullet-card.tone-indigo {
          background: rgba(99, 102, 241, .05);
          border-color: rgba(99, 102, 241, .14);
        }

        .docai-bullet-index {
          font-size: 11px;
          font-weight: 800;
          letter-spacing: .14em;
          color: #64748b;
          margin-bottom: 10px;
        }

        .docai-bullet-text {
          color: #dbe3f0;
          font-size: 13px;
          line-height: 1.75;
        }

        .docai-ms-list {
          position: relative;
          display: flex;
          flex-direction: column;
          gap: 0;
        }

        .docai-ms-list::before {
          content: '';
          position: absolute;
          left: 18px;
          top: 10px;
          bottom: 10px;
          width: 1px;
          background: linear-gradient(180deg, rgba(245, 158, 11, .42), rgba(99, 102, 241, .18));
        }

        .docai-ms-item {
          position: relative;
          display: flex;
          gap: 16px;
          padding: 14px 0 14px 0;
        }

        .docai-ms-dot {
          width: 38px;
          height: 38px;
          border-radius: 50%;
          flex-shrink: 0;
          display: flex;
          align-items: center;
          justify-content: center;
          background: rgba(245, 158, 11, .12);
          border: 1px solid rgba(245, 158, 11, .3);
          font-size: 15px;
          z-index: 1;
        }

        .docai-ms-body {
          flex: 1;
          padding: 14px 16px;
          border-radius: 18px;
          background: rgba(255, 255, 255, .03);
          border: 1px solid rgba(255, 255, 255, .06);
        }

        .docai-ms-top {
          display: flex;
          justify-content: space-between;
          gap: 16px;
          align-items: center;
          margin-bottom: 6px;
        }

        .docai-ms-name {
          font-size: 15px;
          font-weight: 800;
          color: #fff;
        }

        .docai-ms-date {
          font-size: 12px;
          font-weight: 800;
          color: #fbbf24;
        }

        .docai-ms-note {
          font-size: 13px;
          color: #94a3b8;
          line-height: 1.7;
        }

        .docai-chat-result {
          padding: 24px;
          border-radius: 24px;
          background: linear-gradient(145deg, rgba(2, 6, 23, .94), rgba(15, 23, 42, .88));
          border: 1px solid rgba(245, 158, 11, .18);
          box-shadow: 0 30px 80px rgba(2, 6, 23, .32);
        }

        .docai-chat-result-head {
          display: flex;
          justify-content: space-between;
          gap: 16px;
          align-items: flex-start;
          margin-bottom: 16px;
        }

        .docai-chat-kicker {
          font-size: 11px;
          font-weight: 800;
          text-transform: uppercase;
          letter-spacing: .16em;
          color: #fbbf24;
          margin-bottom: 8px;
        }

        .docai-chat-title {
          font-size: 28px;
          font-weight: 900;
          color: #fff;
        }

        .docai-chat-source {
          padding: 8px 12px;
          border-radius: 999px;
          background: rgba(255, 255, 255, .04);
          border: 1px solid rgba(255, 255, 255, .08);
          color: #cbd5e1;
          font-size: 12px;
        }

        .docai-chat-question {
          display: flex;
          gap: 12px;
          align-items: flex-start;
          padding: 14px 16px;
          border-radius: 18px;
          background: rgba(245, 158, 11, .06);
          border: 1px solid rgba(245, 158, 11, .14);
          color: #fde68a;
          font-weight: 700;
          margin-bottom: 16px;
        }

        .docai-chat-question span {
          width: 30px;
          height: 30px;
          border-radius: 50%;
          flex-shrink: 0;
          display: flex;
          align-items: center;
          justify-content: center;
          background: rgba(245, 158, 11, .16);
          color: #fbbf24;
          font-size: 13px;
        }

        .docai-chat-answer {
          color: #dbe3f0;
          line-height: 1.85;
          font-size: 14px;
        }

        .docai-pres .mermaid {
          color: #f8fafc;
        }

        .docai-pres table,
        .docai-chat-result table {
          width: 100%;
          border-collapse: collapse;
          margin: 16px 0;
          font-size: 13px;
        }

        .docai-pres table th,
        .docai-chat-result table th {
          background: #1e293b;
          color: #93c5fd;
          padding: 10px 12px;
          text-align: left;
          font-weight: 700;
          border-bottom: 1px solid rgba(59, 130, 246, .3);
        }

        .docai-pres table td,
        .docai-chat-result table td {
          padding: 10px 12px;
          border-bottom: 1px solid rgba(255, 255, 255, .05);
          color: #dbe3f0;
          vertical-align: top;
        }

        .docai-pres pre,
        .docai-chat-result pre {
          background: #020617;
          border: 1px solid rgba(99, 102, 241, .14);
          border-radius: 16px;
          padding: 16px;
          overflow: auto;
        }

        @media (max-width: 980px) {
          .docai-control-hero {
            grid-template-columns: 1fr;
          }

          .docai-launch-panel {
            grid-template-columns: 1fr;
          }

          .docai-chat-inline {
            min-width: 0;
            flex-direction: column;
            align-items: stretch;
          }

          .docai-pres-main-title {
            font-size: 30px;
          }

          .docai-pres-section-title {
            font-size: 24px;
          }
        }

        @media (max-width: 720px) {
          .docai-workspace {
            padding: 14px;
          }

          .docai-control-hero {
            padding: 20px 14px;
          }

          .docai-pres-hero-inner {
            padding: 24px 18px 20px;
          }

          .docai-pres-main-title {
            font-size: 26px;
          }

          .docai-pres-facts {
            grid-template-columns: repeat(2, minmax(0, 1fr));
          }

          .docai-ms-top {
            flex-direction: column;
            align-items: flex-start;
          }

          .docai-chat-result-head {
            flex-direction: column;
          }
        }

/* styles/plugins/006-demo-css.css */
.demo-banner {
      position: sticky;
      top: 64px;
      z-index: 95;
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 9px 28px;
      background: linear-gradient(90deg, rgba(245, 158, 11, .18), rgba(245, 158, 11, .08));
      border-bottom: 1px solid rgba(245, 158, 11, .3);
      font-size: 12px;
      font-weight: 700;
      color: #fde68a;
    }

    .demo-banner .d-ico {
      font-size: 16px
    }

    .demo-banner .d-tag {
      padding: 3px 10px;
      border-radius: 999px;
      background: rgba(245, 158, 11, .22);
      border: 1px solid rgba(245, 158, 11, .4);
      font-size: 10px;
      font-weight: 900;
      letter-spacing: .5px;
      color: #fbbf24
    }

    .demo-banner .d-note {
      font-size: 11px;
      font-weight: 500;
      color: rgba(253, 230, 138, .7);
      margin-left: 4px
    }

    .demo-banner .d-reload {
      margin-left: auto;
      padding: 5px 13px;
      border-radius: 8px;
      border: 1px solid rgba(245, 158, 11, .35);
      background: rgba(245, 158, 11, .1);
      color: #fde68a;
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      transition: all .15s;
      font-family: inherit
    }

    .demo-banner .d-reload:hover {
      background: rgba(245, 158, 11, .22);
      border-color: rgba(245, 158, 11, .55)
    }

/* styles/plugins/007-v9-css.css */
/* ── Toast ── */
    #v9-toast-wrap {
      position: fixed;
      bottom: 24px;
      left: 24px;
      z-index: 9999;
      display: flex;
      flex-direction: column-reverse;
      gap: 8px;
      pointer-events: none
    }

    .v9-toast {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 11px 16px;
      border-radius: 10px;
      font-size: 12.5px;
      font-weight: 600;
      color: #fff;
      backdrop-filter: blur(16px);
      box-shadow: 0 8px 28px rgba(0, 0, 0, .4);
      border: 1px solid;
      pointer-events: all;
      animation: v9ti .22s ease;
      transition: opacity .28s, transform .28s
    }

    .v9-toast.ok {
      background: rgba(10, 38, 20, .92);
      border-color: rgba(34, 197, 94, .4);
      color: #86efac
    }

    .v9-toast.warn {
      background: rgba(50, 32, 6, .92);
      border-color: rgba(245, 158, 11, .4);
      color: #fde68a
    }

    .v9-toast.err {
      background: rgba(50, 8, 8, .92);
      border-color: rgba(239, 68, 68, .4);
      color: #fca5a5
    }

    .v9-toast.info {
      background: rgba(8, 22, 50, .92);
      border-color: rgba(59, 130, 246, .4);
      color: #bfdbfe
    }

    @keyframes v9ti {
      from {
        opacity: 0;
        transform: translateX(16px)
      }

      to {
        opacity: 1;
        transform: none
      }
    }

    /* ── Overlay progress ── */
    .v9-progress {
      height: 3px;
      border-radius: 999px;
      background: rgba(59, 130, 246, .1);
      margin: 14px 0 0;
      overflow: hidden
    }

    .v9-progress-bar {
      height: 100%;
      border-radius: 999px;
      background: linear-gradient(90deg, #3b82f6, #06b6d4);
      transition: width .35s;
      width: 0
    }

    /* ── Tab fade ── */
    .tp.active {
      animation: v9tab .18s ease
    }

    @keyframes v9tab {
      from {
        opacity: 0;
        transform: translateY(2px)
      }

      to {
        opacity: 1;
        transform: none
      }
    }

    /* ── Version badge ── */
    .v9-badge {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 4px 10px;
      border-radius: 999px;
      background: linear-gradient(90deg, rgba(59, 130, 246, .15), rgba(6, 182, 212, .1));
      border: 1px solid rgba(59, 130, 246, .28);
      font-size: 10px;
      font-weight: 800;
      color: #7dd3fc;
      letter-spacing: .5px
    }

    /* ── AI chat ── */
    .v9-quick-actions {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
      margin: 10px 0 6px
    }

    .v9-qa {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 6px 12px;
      border-radius: 999px;
      border: 1px solid rgba(139, 92, 246, .25);
      background: rgba(139, 92, 246, .07);
      color: #c4b5fd;
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      transition: all .15s;
      font-family: inherit;
      white-space: nowrap
    }

    .v9-qa:hover {
      border-color: rgba(139, 92, 246, .5);
      background: rgba(139, 92, 246, .14);
      transform: translateY(-1px)
    }

    .v9-chat-ctx {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 6px 12px;
      border-radius: 8px;
      background: rgba(5, 12, 28, .7);
      border: 1px solid rgba(59, 130, 246, .12);
      font-size: 11px;
      color: var(--mu);
      margin-bottom: 8px
    }

    .v9-ctx-pill {
      padding: 2px 8px;
      border-radius: 999px;
      background: rgba(59, 130, 246, .1);
      border: 1px solid rgba(59, 130, 246, .18);
      color: #93c5fd;
      font-size: 10px;
      font-weight: 800;
      font-family: 'JetBrains Mono', monospace
    }

    /* ── Export buttons ── */
    .ebtn.excel {
      border-color: rgba(34, 197, 94, .3);
      color: #4ade80
    }

    .ebtn.excel:hover {
      background: rgba(34, 197, 94, .08)
    }

    .ebtn.pdf {
      border-color: rgba(239, 68, 68, .3);
      color: #f87171
    }

    .ebtn.pdf:hover {
      background: rgba(239, 68, 68, .08)
    }

    /* ── Print ── */
    @media print {

      .hdr,
      .tabs,
      .gen-bar,
      .chat-row,
      .exp-bar,
      .hbtns,
      .ai-pill,
      .api-st,
      .demo-banner,
      .p6-toolbar {
        display: none !important
      }

      body {
        background: #fff !important;
        color: #111 !important
      }

      .tp:not(.active) {
        display: none !important
      }

      .panel,
      .kpi {
        border: 1px solid #ccc !important;
        background: #fff !important;
        color: #111 !important
      }

      .kpi .v,
      .kpi .k,
      .kpi .s {
        color: #111 !important
      }

      .p6-outer {
        overflow: visible !important;
        max-height: none !important
      }

      @page {
        size: A3 landscape;
        margin: 12mm
      }
    }

    /* ══════════════════════════════════════════════════
   P6-STYLE GANTT
   Exact Primavera P6 visual hierarchy:
   - WBS L0 (root)    : dark navy   bg + blue  accent
   - WBS L1 (phase)   : dark teal   bg + cyan  accent
   - WBS L2 (package) : dark indigo bg + violet accent
   - Activity (normal): no bg, subdued text
   - Activity (crit)  : very dark red bg, red text
══════════════════════════════════════════════════ */

    /* Container */
    .p6-outer {
      overflow: auto;
      border-radius: 6px;
      border: 1px solid rgba(59, 130, 246, .16);
      box-shadow: 0 6px 28px rgba(0, 0, 0, .45);
      background: rgba(2, 4, 14, .97)
    }

    /* Main 2-column grid */
    .p6-grid {
      display: grid;
      grid-template-columns: 520px 1fr;
      min-width: 860px
    }

    /* ── Sticky header ── */
    .p6-hdr-left {
      position: sticky;
      top: 0;
      z-index: 14;
      display: grid;
      grid-template-columns: 88px 1fr 56px 80px 80px;
      height: 36px;
      background: rgba(4, 9, 26, .99);
      border-bottom: 2px solid rgba(59, 130, 246, .22);
      border-right: 1px solid rgba(59, 130, 246, .12);
    }

    .p6-hdr-right {
      position: sticky;
      top: 0;
      z-index: 14;
      height: 36px;
      background: rgba(4, 9, 26, .99);
      border-bottom: 2px solid rgba(59, 130, 246, .22);
      display: flex;
      overflow: hidden;
    }

    .p6-hdr-cell {
      display: flex;
      align-items: center;
      padding: 0 8px;
      font-size: 9px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .9px;
      color: #273d56;
      border-right: 1px solid rgba(255, 255, 255, .035);
    }

    .p6-hdr-cell:last-child {
      border-right: none
    }

    .p6-month-lbl {
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 9px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .6px;
      color: #273d56;
      border-right: 1px solid rgba(255, 255, 255, .03);
    }

    /* ── Row ── */
    .p6-row {
      display: contents
    }

    /* Left cell layout — 5 fixed columns */
    .p6-left {
      display: grid;
      grid-template-columns: 88px 1fr 56px 80px 80px;
      border-right: 1px solid rgba(59, 130, 246, .08);
      overflow: hidden;
      position: relative;
    }

    /* Hover highlight */
    .p6-row:hover .p6-left {
      filter: brightness(1.12)
    }

    .p6-row:hover .p6-right {
      background-color: rgba(255, 255, 255, .016) !important
    }

    /* Cell base */
    .p6-cell {
      display: flex;
      align-items: center;
      padding: 0 8px;
      overflow: hidden;
      border-right: 1px solid rgba(255, 255, 255, .018);
      font-family: 'DM Sans', system-ui, sans-serif;
    }

    .p6-cell:last-child {
      border-right: none
    }

    /* ID cell */
    .p6-c-id {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px;
      font-weight: 700;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    /* Name cell */
    .p6-c-name {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      line-height: 1.2;
    }

    /* Duration */
    .p6-c-dur {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10.5px;
      font-weight: 700;
      justify-content: center;
      flex-shrink: 0;
    }

    /* Dates */
    .p6-c-date {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px;
      justify-content: center;
      flex-shrink: 0;
      white-space: nowrap;
    }

    /* ── WBS row styles ── */

    /* L0 — Project root: navy */
    .p6-wl0 {
      background: linear-gradient(90deg, rgba(11, 24, 58, .98), rgba(8, 18, 46, .96));
      border-bottom: 1px solid rgba(59, 130, 246, .18);
      border-left: 4px solid #3b82f6;
      min-height: 40px;
    }

    .p6-wl0 .p6-c-id {
      color: #3b82f6;
      font-size: 10px
    }

    .p6-wl0 .p6-c-name {
      font-size: 13px;
      font-weight: 800;
      color: #dbeafe;
      letter-spacing: -.1px
    }

    .p6-wl0 .p6-c-dur {
      color: #fbbf24;
      font-size: 12px
    }

    .p6-wl0 .p6-c-date {
      color: #1d3a5c
    }

    /* L1 — Major phase: dark teal */
    .p6-wl1 {
      background: linear-gradient(90deg, rgba(6, 26, 36, .96), rgba(5, 20, 30, .94));
      border-bottom: 1px solid rgba(6, 182, 212, .12);
      border-left: 4px solid #06b6d4;
      min-height: 36px;
    }

    .p6-wl1 .p6-c-id {
      color: #06b6d4;
      font-size: 9.5px
    }

    .p6-wl1 .p6-c-name {
      font-size: 12.5px;
      font-weight: 700;
      color: #cffafe
    }

    .p6-wl1 .p6-c-dur {
      color: #fbbf24;
      font-size: 11px
    }

    .p6-wl1 .p6-c-date {
      color: #1a4050
    }

    /* L2 — Sub-package: dark indigo */
    .p6-wl2 {
      background: linear-gradient(90deg, rgba(12, 10, 38, .94), rgba(10, 8, 32, .92));
      border-bottom: 1px solid rgba(99, 102, 241, .1);
      border-left: 4px solid #818cf8;
      min-height: 33px;
    }

    .p6-wl2 .p6-c-id {
      color: #818cf8;
      font-size: 9px
    }

    .p6-wl2 .p6-c-name {
      font-size: 12px;
      font-weight: 700;
      color: #e0e7ff
    }

    .p6-wl2 .p6-c-dur {
      color: #fbbf24;
      font-size: 10.5px
    }

    .p6-wl2 .p6-c-date {
      color: #2c2a50
    }

    /* ── Activity row styles ── */

    /* Normal activity — NO background */
    .p6-act {
      background: rgba(3, 6, 18, .65);
      border-bottom: 1px solid rgba(255, 255, 255, .02);
      border-left: 3px solid transparent;
      min-height: 28px;
    }

    .p6-act .p6-c-id {
      color: #334155;
      font-size: 9px
    }

    .p6-act .p6-c-name {
      font-size: 11.5px;
      font-weight: 400;
      color: #64748b
    }

    .p6-act .p6-c-dur {
      color: #475569;
      font-size: 10px
    }

    .p6-act .p6-c-date {
      color: #253040
    }

    /* Critical activity — very subtle red tint */
    .p6-act-crit {
      background: rgba(10, 2, 2, .72);
      border-bottom: 1px solid rgba(239, 68, 68, .06);
      border-left: 3px solid rgba(239, 68, 68, .6);
      min-height: 28px;
    }

    .p6-act-crit .p6-c-id {
      color: #dc2626;
      font-size: 9px
    }

    .p6-act-crit .p6-c-name {
      font-size: 11.5px;
      font-weight: 500;
      color: #fca5a5
    }

    .p6-act-crit .p6-c-dur {
      color: #ef4444;
      font-size: 10px
    }

    .p6-act-crit .p6-c-date {
      color: #3b1515
    }

    /* WBS meta text (act count + dur) */
    .p6-wbs-meta {
      font-size: 10px;
      font-weight: 500;
      opacity: .55;
      margin-left: 8px;
      white-space: nowrap;
      flex-shrink: 0
    }

    /* ── Right (chart) panel ── */
    .p6-right {
      position: relative;
      overflow: hidden
    }

    /* Grid lines */
    .p6-gl {
      position: absolute;
      top: 0;
      bottom: 0;
      border-left: 1px solid rgba(255, 255, 255, .02);
      pointer-events: none
    }

    .p6-gl.maj {
      border-color: rgba(59, 130, 246, .055)
    }

    /* Today line */
    .p6-today {
      position: absolute;
      top: 0;
      bottom: 0;
      width: 1px;
      background: rgba(248, 113, 113, .6);
      z-index: 6;
      pointer-events: none
    }

    .p6-today::before {
      content: '▼';
      position: absolute;
      top: -1px;
      left: -3px;
      font-size: 7px;
      color: rgba(248, 113, 113, .75)
    }

    /* ── WBS summary bar — P6 style: thin white + colored top ── */
    .p6-sum-bar {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      height: 9px;
      background: rgba(255, 255, 255, .72);
      border-radius: 1px;
      box-shadow: 0 1px 4px rgba(0, 0, 0, .5);
      cursor: default;
      overflow: hidden;
    }

    /* Colored top stripe */
    .p6-sum-bar::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 2px;
      background: var(--acc, #3b82f6);
    }

    /* ── Activity bar ── */
    .p6-act-bar {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      height: 14px;
      border-radius: 2px;
      display: flex;
      align-items: center;
      box-shadow: 0 1px 4px rgba(0, 0, 0, .35);
      cursor: default;
      transition: filter .12s;
    }

    .p6-act-bar:hover {
      filter: brightness(1.2)
    }

    .p6-act-bar.crit {
      box-shadow: 0 0 10px rgba(239, 68, 68, .35)
    }

    .p6-bar-lbl {
      font-size: 9px;
      font-weight: 700;
      font-family: 'DM Sans', sans-serif;
      color: rgba(255, 255, 255, .92);
      padding: 0 5px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      letter-spacing: .1px;
    }

    /* ── Milestone diamond ── */
    .p6-ms {
      position: absolute;
      top: 50%;
      transform: translateY(-50%) rotate(45deg);
      width: 11px;
      height: 11px;
      border-radius: 2px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, .5);
      cursor: default;
    }

    .p6-ms:hover {
      transform: translateY(-50%) rotate(45deg) scale(1.3)
    }

    /* ── Toolbar ── */
    .p6-toolbar {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
      padding: 7px 12px;
      border-radius: 8px;
      background: rgba(4, 9, 24, .8);
      border: 1px solid rgba(148, 163, 184, .09);
      margin-bottom: 8px;
    }

    .p6-tb-lbl {
      font-size: 9px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .9px;
      color: #1e3148;
      margin-right: 2px
    }

    .p6-tb-btn {
      padding: 4px 10px;
      border-radius: 6px;
      border: 1px solid rgba(148, 163, 184, .11);
      background: rgba(5, 12, 30, .8);
      color: #334e6a;
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      transition: all .12s;
      font-family: inherit;
    }

    .p6-tb-btn:hover {
      border-color: rgba(96, 165, 250, .28);
      color: #7db3e0
    }

    .p6-tb-btn.on {
      background: rgba(12, 28, 64, .9);
      border-color: rgba(59, 130, 246, .38);
      color: #93c5fd
    }

    .p6-tb-btn.on.crit {
      background: rgba(28, 5, 5, .9);
      border-color: rgba(239, 68, 68, .38);
      color: #f87171
    }

    .p6-tb-sep {
      width: 1px;
      height: 16px;
      background: rgba(148, 163, 184, .09);
      margin: 0 2px
    }

    .p6-exp-btn {
      padding: 4px 13px;
      border-radius: 6px;
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      font-family: inherit;
      border: 1px solid;
      transition: all .12s;
    }

    .p6-exp-btn.grn {
      border-color: rgba(34, 197, 94, .28);
      color: #4ade80;
      background: rgba(34, 197, 94, .05)
    }

    .p6-exp-btn.grn:hover {
      background: rgba(34, 197, 94, .12)
    }

    .p6-exp-btn.red {
      border-color: rgba(239, 68, 68, .25);
      color: #f87171;
      background: rgba(239, 68, 68, .04)
    }

    .p6-exp-btn.red:hover {
      background: rgba(239, 68, 68, .11)
    }

    .p6-rowcount {
      font-size: 10px;
      color: #1e3148
    }

    /* ── Legend ── */
    .p6-legend {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 8px
    }

    .p6-leg {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 4px 10px;
      border-radius: 999px;
      background: rgba(5, 12, 30, .7);
      border: 1px solid rgba(148, 163, 184, .08);
      font-size: 10px;
      color: #334e6a
    }

    .p6-leg i {
      display: inline-block;
      width: 12px;
      height: 12px;
      border-radius: 1px;
      flex-shrink: 0
    }

/* tabs/gantt/styles/008-v9-gantt-refresh.css */
.p6-outer {
      overflow: auto;
      border-radius: 10px;
      border: 1px solid rgba(79, 127, 168, .16);
      box-shadow: 0 12px 32px rgba(0, 0, 0, .34);
      background: rgba(2, 6, 18, .98)
    }

    .p6-grid {
      display: grid;
      grid-template-columns: 560px 1fr;
      min-width: 980px
    }

    .p6-hdr-left {
      position: sticky;
      top: 0;
      z-index: 14;
      display: grid;
      grid-template-columns: 96px 1fr 62px 92px 92px;
      height: 42px;
      background: linear-gradient(180deg, rgba(8, 18, 38, .99), rgba(5, 12, 28, .99));
      border-bottom: 2px solid rgba(79, 127, 168, .22);
      border-right: 1px solid rgba(79, 127, 168, .12)
    }

    .p6-hdr-right {
      position: sticky;
      top: 0;
      z-index: 14;
      height: 42px;
      background: linear-gradient(180deg, rgba(8, 18, 38, .99), rgba(5, 12, 28, .99));
      border-bottom: 2px solid rgba(79, 127, 168, .22);
      display: flex;
      overflow: hidden
    }

    .p6-hdr-cell {
      display: flex;
      align-items: center;
      padding: 0 10px;
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .9px;
      color: #bfd7f3;
      border-right: 1px solid rgba(255, 255, 255, .045)
    }

    .p6-hdr-cell:last-child {
      border-right: none
    }

    .p6-month-lbl {
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .7px;
      color: #bfd7f3;
      border-right: 1px solid rgba(255, 255, 255, .04)
    }

    .p6-row {
      display: contents
    }

    .p6-left {
      display: grid;
      grid-template-columns: 96px 1fr 62px 92px 92px;
      border-right: 1px solid rgba(79, 127, 168, .08);
      overflow: hidden;
      position: relative
    }

    .p6-row:hover .p6-left {
      filter: brightness(1.06)
    }

    .p6-row:hover .p6-right {
      background-color: rgba(255, 255, 255, .02) !important
    }

    .p6-cell {
      display: flex;
      align-items: center;
      padding: 0 10px;
      overflow: hidden;
      border-right: 1px solid rgba(255, 255, 255, .03);
      font-family: 'DM Sans', system-ui, sans-serif
    }

    .p6-cell:last-child {
      border-right: none
    }

    .p6-c-id {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 700;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis
    }

    .p6-c-name {
      line-height: 1.15
    }

    .p6-name-wrap {
      display: flex;
      flex-direction: column;
      gap: 2px;
      min-width: 0;
      width: 100%
    }

    .p6-name-main {
      font-size: 12.5px;
      font-weight: 700;
      color: #f8fafc;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis
    }

    .p6-name-sub {
      font-size: 10px;
      font-weight: 600;
      color: #94a3b8;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis
    }

    .p6-c-dur {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10.5px;
      font-weight: 700;
      justify-content: center;
      flex-shrink: 0
    }

    .p6-c-date {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 600;
      justify-content: center;
      flex-shrink: 0;
      white-space: nowrap
    }

    .p6-wbs-row {
      background: var(--wbs-bg, linear-gradient(90deg, rgba(11, 24, 58, .98), rgba(8, 18, 46, .96)));
      border-bottom: 1px solid rgba(255, 255, 255, .05);
      border-left: 4px solid var(--wbs-accent, #4f7fa8)
    }

    .p6-wbs-row .p6-c-id {
      color: var(--wbs-accent, #4f7fa8);
      font-size: 10px;
      font-weight: 800
    }

    .p6-wbs-row .p6-name-main {
      color: var(--wbs-text, #f3f7fb)
    }

    .p6-wbs-row .p6-name-sub {
      color: var(--wbs-sub, #cbd5e1)
    }

    .p6-wbs-row .p6-c-dur {
      color: #f8fafc;
      font-size: 11px
    }

    .p6-wbs-row .p6-c-date {
      color: var(--wbs-sub, #cbd5e1)
    }

    .p6-wbs-row.lvl0 .p6-name-main {
      font-size: 13.5px;
      font-weight: 800
    }

    .p6-wbs-row.lvl1 .p6-name-main {
      font-size: 13px
    }

    .p6-wbs-row.lvl2 .p6-name-main,
    .p6-wbs-row.lvl3 .p6-name-main,
    .p6-wbs-row.lvl4 .p6-name-main,
    .p6-wbs-row.lvl5 .p6-name-main {
      font-size: 12.4px
    }

    .p6-act-row {
      background: rgba(3, 8, 18, .88);
      border-bottom: 1px solid rgba(255, 255, 255, .03);
      border-left: 3px solid transparent
    }

    .p6-act-row .p6-c-id {
      color: #cbd5e1
    }

    .p6-act-row .p6-name-main {
      font-size: 12px;
      font-weight: 600;
      color: #e2e8f0
    }

    .p6-act-row .p6-name-sub {
      color: #94a3b8
    }

    .p6-act-row .p6-c-dur,
    .p6-act-row .p6-c-date {
      color: #94a3b8
    }

    .p6-act-row.crit {
      border-left-color: #ef4444
    }

    .p6-act-row.crit .p6-c-id,
    .p6-act-row.crit .p6-c-dur {
      color: #f87171
    }

    .p6-act-row.crit .p6-name-main {
      color: #fee2e2
    }

    .p6-act-row.crit .p6-name-sub,
    .p6-act-row.crit .p6-c-date {
      color: #fca5a5
    }

    .p6-right {
      position: relative;
      overflow: hidden
    }

    .p6-gl {
      position: absolute;
      top: 0;
      bottom: 0;
      border-left: 1px solid rgba(255, 255, 255, .03);
      pointer-events: none
    }

    .p6-gl.maj {
      border-color: rgba(79, 127, 168, .1)
    }

    .p6-today {
      position: absolute;
      top: 0;
      bottom: 0;
      width: 2px;
      background: rgba(248, 113, 113, .78);
      z-index: 6;
      pointer-events: none;
      box-shadow: 0 0 0 1px rgba(248, 113, 113, .12)
    }

    .p6-today::before {
      content: '▼';
      position: absolute;
      top: -1px;
      left: -4px;
      font-size: 8px;
      color: rgba(248, 113, 113, .88)
    }

    .p6-sum-bar {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      height: 10px;
      background: linear-gradient(180deg, rgba(255, 255, 255, .97), rgba(226, 232, 240, .92));
      border-radius: 2px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, .45);
      cursor: default;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, .22)
    }

    .p6-sum-bar::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 2px;
      background: var(--acc, #3b82f6)
    }

    .p6-act-bar {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      height: 14px;
      border-radius: 3px;
      display: flex;
      align-items: center;
      box-shadow: 0 2px 8px rgba(0, 0, 0, .32);
      cursor: default;
      transition: filter .12s
    }

    .p6-act-bar:hover {
      filter: brightness(1.12)
    }

    .p6-act-bar.crit {
      box-shadow: 0 0 10px rgba(239, 68, 68, .35)
    }

    .p6-bar-lbl {
      font-size: 9px;
      font-weight: 800;
      font-family: 'DM Sans', sans-serif;
      color: rgba(255, 255, 255, .96);
      padding: 0 6px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      letter-spacing: .1px
    }

    .p6-ms {
      position: absolute;
      top: 50%;
      transform: translateY(-50%) rotate(45deg);
      width: 12px;
      height: 12px;
      border-radius: 2px;
      box-shadow: 0 2px 10px rgba(0, 0, 0, .46);
      cursor: default
    }

    .p6-ms:hover {
      transform: translateY(-50%) rotate(45deg) scale(1.18)
    }

    .p6-toolbar {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
      padding: 9px 12px;
      border-radius: 10px;
      background: rgba(4, 9, 24, .84);
      border: 1px solid rgba(148, 163, 184, .12);
      margin-bottom: 10px
    }

    .p6-tb-lbl {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .9px;
      color: #94a3b8;
      margin-right: 3px
    }

    .p6-tb-btn {
      padding: 5px 11px;
      border-radius: 7px;
      border: 1px solid rgba(148, 163, 184, .14);
      background: rgba(6, 14, 32, .88);
      color: #cbd5e1;
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      transition: all .12s;
      font-family: inherit
    }

    .p6-tb-btn:hover {
      border-color: rgba(79, 127, 168, .34);
      color: #f3f7fb
    }

    .p6-tb-btn.on {
      background: rgba(16, 38, 77, .92);
      border-color: rgba(31, 78, 121, .42);
      color: #e7eef6
    }

    .p6-tb-btn.on.crit {
      background: rgba(60, 12, 12, .9);
      border-color: rgba(239, 68, 68, .42);
      color: #fee2e2
    }

    .p6-tb-sep {
      width: 1px;
      height: 16px;
      background: rgba(148, 163, 184, .12);
      margin: 0 2px
    }

    .p6-exp-btn {
      padding: 5px 13px;
      border-radius: 7px;
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      font-family: inherit;
      border: 1px solid;
      transition: all .12s
    }

    .p6-exp-btn.grn {
      border-color: rgba(34, 197, 94, .28);
      color: #4ade80;
      background: rgba(34, 197, 94, .06)
    }

    .p6-exp-btn.grn:hover {
      background: rgba(34, 197, 94, .14)
    }

    .p6-exp-btn.red {
      border-color: rgba(239, 68, 68, .25);
      color: #f87171;
      background: rgba(239, 68, 68, .05)
    }

    .p6-exp-btn.red:hover {
      background: rgba(239, 68, 68, .12)
    }

    .p6-rowcount {
      font-size: 10px;
      color: #94a3b8
    }

    .p6-legend {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 10px
    }

    .p6-leg {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 5px 11px;
      border-radius: 999px;
      background: rgba(6, 14, 32, .78);
      border: 1px solid rgba(148, 163, 184, .09);
      font-size: 10px;
      color: #cbd5e1
    }

    .p6-leg i {
      display: inline-block;
      width: 12px;
      height: 12px;
      border-radius: 2px;
      flex-shrink: 0
    }

/* tabs/gantt/styles/009-v9-gantt-wbs-override.css */
.p6-left {
      backdrop-filter: saturate(1.03)
    }

    .p6-wbs-row {
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035)
    }

    .p6-sum-bar {
      height: 11px;
      border-radius: 2px
    }

    .p6-sum-bar .p6-bar-lbl {
      font-size: 9px;
      font-weight: 800;
      color: #0f172a
    }

    .p6-hdr-cell,
    .p6-month-lbl {
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .65px
    }

/* tabs/gantt/styles/010-v9-gantt-polish-2.css */
/* ── Left panel: wider total (680px) with slimmer fixed cols → bigger name space ── */
    @media (min-width: 1025px) {
    .p6-grid {
      grid-template-columns: 680px 1fr !important
    }
    }

    /* contain:layout/paint on the outer breaks position:sticky — must be none */
    #v9-gantt-outer {
      contain: none !important
    }

    /* ── Z-index stack for correct clipping ──
   sticky header  z:22  → covers bars + SVG arrows scrolling behind it
   sticky left    z:12  → covers bars + SVG arrows panning behind it
   SVG arrows     z:8   → on top of bars, BELOW sticky elements
   p6-right bars  z:1   → inside their column                            */
    #v9-gantt-outer .p6-hdr-left {
      z-index: 22 !important;
      position: sticky !important;
      top: 0 !important;
      left: 0 !important
    }

    #v9-gantt-outer .p6-hdr-right {
      z-index: 20 !important;
      position: sticky !important;
      top: 0 !important
    }

    #v9-gantt-outer .p6-left {
      z-index: 12 !important;
      position: sticky !important;
      left: 0 !important;
      overflow: hidden !important
    }

    /* clip right panel — side labels must not bleed into sticky left column */
    #v9-gantt-outer .p6-right {
      overflow: hidden !important;
      position: relative !important;
      z-index: 1 !important
    }

    /* SVG arrow overlay must stay below sticky elements */
    #ga-svg {
      z-index: 8 !important
    }

    /* ID:80px · Name:1fr · Dur:52px · Start:84px · Finish:84px */
    .p6-hdr-left,
    .p6-left {
      grid-template-columns: 80px 1fr 52px 84px 84px !important
    }

    /* Compact header — 2 rows: year (18px) + months (28px) = 46px total */
    .p6-hdr-left,
    .p6-hdr-right {
      height: 44px !important
    }

    .p6-hdr-cell,
    .p6-month-lbl {
      font-size: 7.5px !important;
      font-weight: 800 !important;
      letter-spacing: .5px !important;
      text-transform: uppercase !important
    }

    /* Year row — top strip, drag to pan */
    .p6-hdr-right {
      display: flex !important;
      flex-direction: column !important;
      overflow: hidden !important
    }

    .p6-year-row {
      display: flex;
      height: 22px;
      flex-shrink: 0;
      border-bottom: 1px solid rgba(255, 255, 255, .07);
      cursor: grab;
      user-select: none
    }

    .p6-year-row:active {
      cursor: grabbing
    }

    .p6-year-lbl {
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10.5px;
      font-weight: 800;
      letter-spacing: .6px;
      color: #bfd7f3;
      border-right: 1px solid rgba(255, 255, 255, .06);
      text-transform: none
    }

    /* Month row — bottom strip, drag to zoom */
    .p6-mo-row {
      display: flex;
      flex: 1;
      overflow: hidden;
      cursor: ew-resize;
      user-select: none
    }

    /* NOTE: no !important on the left here — the renderer sets an inline
       `padding-left:<indent>` on .p6-c-name for the WBS/activity hierarchy.
       An !important padding shorthand was flattening that indent. */
    .p6-cell {
      padding-top: 0 !important;
      padding-bottom: 0 !important;
      padding-right: 7px !important;
      padding-left: 7px;
    }

    .p6-name-wrap {
      display: block !important
    }

    .p6-name-sub {
      display: none !important
    }

    /* ── Name fonts — compact P6-style ── */
    .p6-name-main {
      font-size: 10px !important;
      font-weight: 600 !important;
      line-height: 1.0 !important;
      letter-spacing: -.1px !important
    }

    .p6-wbs-row {
      border-left-width: 4px !important;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05) !important
    }

    .p6-wbs-row .p6-name-main {
      font-weight: 800 !important;
      letter-spacing: -.05px !important
    }

    .p6-wbs-row.lvl0 .p6-name-main {
      font-size: 11px !important;
      letter-spacing: 0px !important
    }

    .p6-wbs-row.lvl1 .p6-name-main {
      font-size: 10.5px !important
    }

    .p6-wbs-row.lvl2 .p6-name-main,
    .p6-wbs-row.lvl3 .p6-name-main,
    .p6-wbs-row.lvl4 .p6-name-main,
    .p6-wbs-row.lvl5 .p6-name-main {
      font-size: 10px !important
    }

    /* ── Activity rows ── */
    .p6-act-row .p6-name-main {
      font-size: 9.5px !important;
      font-weight: 500 !important;
      color: #d8e8f8 !important
    }

    .p6-act-row .p6-c-id {
      color: #8fafc8 !important;
      font-size: 8px !important;
      font-family: 'JetBrains Mono', monospace !important
    }

    .p6-act-row .p6-c-dur,
    .p6-act-row .p6-c-date {
      color: #7a9ab4 !important
    }

    .p6-act-row.crit .p6-name-main {
      color: #fff0f0 !important;
      font-weight: 600 !important
    }

    .p6-act-row.crit .p6-c-id,
    .p6-act-row.crit .p6-c-dur,
    .p6-act-row.crit .p6-c-date {
      color: #ff8f8f !important
    }

    /* ── Metadata columns ── */
    .p6-c-id {
      font-size: 8px !important;
      font-family: 'JetBrains Mono', monospace !important
    }

    .p6-c-dur,
    .p6-c-date {
      font-size: 8.5px !important;
      font-weight: 700 !important;
      font-family: 'JetBrains Mono', monospace !important
    }

    .p6-c-date {
      letter-spacing: .05px !important
    }

    .p6-right {
      overflow: hidden !important
    }

    /* ── WBS row visual: deeper, higher-contrast ── */
    .p6-wbs-row.lvl0 {
      border-bottom: 1px solid rgba(255, 255, 255, .07) !important
    }

    .p6-wbs-row.lvl1 {
      border-bottom: 1px solid rgba(255, 255, 255, .05) !important
    }

    /* ── Bars: matched to slim rows ── */
    .p6-sum-bar {
      height: 7px !important;
      border-radius: 1px !important;
      background: #ffffff !important;
      border: none !important;
      box-shadow: none !important
    }

    .p6-sum-bar::after {
      height: 2px !important
    }

    .p6-act-bar {
      height: 10px !important;
      border-radius: 2px !important;
      box-shadow: 0 0 0 1px rgba(255, 255, 255, .14), 0 1px 5px rgba(0, 0, 0, .38) !important;
      transition: filter .1s !important
    }

    .p6-act-bar.crit {
      box-shadow: 0 0 0 1px rgba(255, 140, 140, .3), 0 0 8px rgba(255, 87, 87, .28) !important
    }

    .p6-bar-lbl {
      display: none !important
    }

    /* ── Side labels ── */
    .p6-side-lbl {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      font-size: 8.5px;
      font-weight: 700;
      color: #e8f4ff;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      pointer-events: none;
      text-shadow: 0 1px 3px rgba(0, 0, 0, .95);
      z-index: 8;
      letter-spacing: .05px
    }

    .p6-side-lbl.left {
      text-align: right
    }

    .p6-side-lbl.wbs {
      color: #deeeff;
      font-size: 9px;
      font-weight: 800
    }

    .p6-side-lbl.act {
      color: #d8f0ff
    }

    /* ── Toolbar & legend: compact ── */
    .p6-toolbar {
      margin-bottom: 5px !important;
      padding: 6px 10px !important;
      gap: 4px !important
    }

    .p6-tb-btn {
      padding: 3px 8px !important;
      font-size: 9.5px !important;
      border-radius: 5px !important
    }

    .p6-tb-lbl {
      font-size: 8.5px !important;
      letter-spacing: .7px !important
    }

    .p6-exp-btn {
      padding: 3px 10px !important;
      font-size: 9.5px !important;
      border-radius: 5px !important
    }

    .p6-rowcount {
      font-size: 9px !important
    }

    .p6-tb-sep {
      height: 12px !important
    }

    .p6-legend {
      margin-bottom: 5px !important;
      gap: 4px !important
    }

    .p6-leg {
      font-size: 8.5px !important;
      padding: 3px 8px !important;
      gap: 5px !important
    }

    .p6-leg i {
      width: 9px !important;
      height: 9px !important
    }

    /* ── Milestone diamond ── */
    .p6-ms {
      width: 10px !important;
      height: 10px !important;
      border-radius: 2px !important
    }

    /* ── Today line ── */
    .p6-today {
      width: 1px !important;
      background: rgba(248, 113, 113, .7) !important
    }

    /* ── Month gridlines: subtler ── */
    .p6-gl.maj {
      border-color: rgba(79, 127, 168, .07) !important
    }

    .p6-gl.alt {
      background: rgba(255, 255, 255, .008) !important;
      border: none !important;
      position: absolute;
      top: 0;
      bottom: 0
    }

/* tabs/gantt/styles/011-v9-gantt-collapse-style.css */
.p6-wbs-row.has-kids .p6-left,
    .p6-wbs-row.has-kids .p6-right {
      cursor: pointer
    }

    .p6-wbs-row.has-kids:hover .p6-left {
      filter: brightness(1.1) !important
    }

    .p6-wbs-row.has-kids:hover .p6-right {
      background-color: rgba(255, 255, 255, .03) !important
    }

    .p6-toggle-mark {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 16px;
      min-width: 16px;
      margin-inline-end: 7px;
      font-size: 12px;
      font-weight: 900;
      color: var(--wbs-accent, #8eacc9);
      opacity: .95
    }

    .p6-name-main.with-toggle {
      display: flex !important;
      align-items: center;
      min-width: 0
    }

    .p6-name-main.with-toggle .p6-name-text {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap
    }

    .p6-tb-lbl.wbs {
      margin-inline-start: 6px
    }

/* styles/tabs/012-v9-tree-motion-dynamic-levels-style.css */
#wbsOut .wbs-toolbar,
    #ganttOut .p6-toolbar {
      row-gap: 8px !important
    }

    #wbsOut .wbs-toolbar .wbs-note {
      white-space: nowrap
    }

    #wbsOut .wbs-tree-v10 {
      contain: layout paint style
    }

    #v9-gantt-outer .p6-row,
    #wbsOut .wbs-wrap {
      animation: v9TreeRowIn .16s cubic-bezier(.22, .8, .22, 1);
      transform-origin: top center;
      will-change: transform, opacity;
    }

    body.v9-tree-updating #ganttOut,
    body.v9-tree-updating #wbsOut {
      opacity: .88;
      transition: opacity .12s ease;
    }

    @keyframes v9TreeRowIn {
      from {
        opacity: 0;
        transform: translateY(-6px) scale(.995)
      }

      to {
        opacity: 1;
        transform: translateY(0) scale(1)
      }
    }

/* styles/tabs/013-v9-premium-tree-final-style.css */
#ganttOut .p6-toolbar,
    #wbsOut .wbs-toolbar {
      row-gap: 8px !important;
      align-items: center !important
    }

    #ganttOut .p6-toolbar .p6-tb-btn,
    #ganttOut .p6-toolbar .p6-exp-btn,
    #wbsOut .wbs-toolbar .wbs-btn {
      position: relative;
      overflow: hidden;
      transition: transform .18s cubic-bezier(.22, .8, .22, 1), box-shadow .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease, opacity .18s ease;
    }

    #ganttOut .p6-toolbar .p6-tb-btn:hover,
    #ganttOut .p6-toolbar .p6-exp-btn:hover,
    #wbsOut .wbs-toolbar .wbs-btn:hover {
      transform: translateY(-1px);
      border-color: rgba(96, 165, 250, .42) !important;
      box-shadow: 0 10px 28px rgba(59, 130, 246, .18);
      color: #f8fbff !important;
    }

    #ganttOut .p6-toolbar .p6-tb-btn:active,
    #ganttOut .p6-toolbar .p6-exp-btn:active,
    #wbsOut .wbs-toolbar .wbs-btn:active {
      transform: translateY(0) scale(.985)
    }

    #ganttOut .p6-toolbar .p6-tb-btn.on,
    #wbsOut .wbs-toolbar .wbs-btn.active {
      box-shadow: 0 12px 32px rgba(34, 211, 238, .18)
    }

    #ganttOut .p6-toolbar .p6-tb-btn::before,
    #ganttOut .p6-toolbar .p6-exp-btn::before,
    #wbsOut .wbs-toolbar .wbs-btn::before {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: inherit;
      pointer-events: none;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .10);
    }

    #ganttOut .p6-row.is-toggleable .p6-left,
    #ganttOut .p6-row.is-toggleable .p6-right,
    #wbsOut .wbs-row.has-kids {
      cursor: pointer
    }

    #ganttOut .p6-row.is-toggleable:hover .p6-left {
      filter: brightness(1.08) !important
    }

    #ganttOut .p6-row.is-toggleable:hover .p6-right {
      background-color: rgba(255, 255, 255, .028) !important
    }

    #ganttOut .p6-toggle-mark,
    #wbsOut .tw:not(.empty) {
      display: inline-flex !important;
      align-items: center;
      justify-content: center;
      width: 18px;
      height: 18px;
      min-width: 18px;
      border-radius: 999px;
      border: 1px solid rgba(255, 255, 255, .16);
      background: rgba(6, 18, 40, .78);
      color: #eaf4ff !important;
      font-size: 12px !important;
      font-weight: 900 !important;
      line-height: 1;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 4px 12px rgba(0, 0, 0, .18);
      transition: transform .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
    }

    #ganttOut .p6-toggle-mark:hover,
    #wbsOut .tw:not(.empty):hover {
      transform: scale(1.06);
      border-color: rgba(96, 165, 250, .46);
      background: rgba(14, 32, 62, .92);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 8px 18px rgba(37, 99, 235, .2);
    }

    #ganttOut .p6-toggle-mark.pm-minus,
    #wbsOut .tw.pm-minus {
      color: #86efac !important;
      border-color: rgba(34, 197, 94, .34);
      background: rgba(8, 42, 24, .86)
    }

    #ganttOut .p6-toggle-mark.pm-plus,
    #wbsOut .tw.pm-plus {
      color: #93c5fd !important;
      border-color: rgba(96, 165, 250, .34);
      background: rgba(10, 24, 52, .86)
    }

    body.v9-tree-premium-switch #ganttOut .p6-outer,
    body.v9-tree-premium-switch #wbsOut .wbs-tree-v10,
    body.v9-tree-premium-switch #wbsOut .wbs-wrap {
      animation: v9TreePremiumSwap .24s cubic-bezier(.22, .8, .22, 1);
      transform-origin: top center;
    }

    body.v9-tree-premium-enter #ganttOut .p6-row,
    body.v9-tree-premium-enter #wbsOut .wbs-row {
      animation: v9TreePremiumRows .30s cubic-bezier(.22, .8, .22, 1)
    }

    @keyframes v9TreePremiumSwap {
      from {
        opacity: .72;
        transform: translateY(5px) scale(.995)
      }

      to {
        opacity: 1;
        transform: translateY(0) scale(1)
      }
    }

    @keyframes v9TreePremiumRows {
      from {
        opacity: 0;
        transform: translateY(-8px)
      }

      to {
        opacity: 1;
        transform: translateY(0)
      }
    }

/* tabs/gantt/styles/016-v12-gantt-white-theme-style.css */
#ganttOut {
      --v13-font: "Inter", "Segoe UI Variable", "SF Pro Display", "Segoe UI", Tahoma, Arial, sans-serif;
      --v13-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", "JetBrains Mono", Consolas, monospace;
    }

    #ganttOut,
    #ganttOut .p6-toolbar,
    #ganttOut .p6-legend,
    #ganttOut .p6-outer,
    #ganttOut .p6-hdr-left,
    #ganttOut .p6-hdr-right,
    #ganttOut .p6-left,
    #ganttOut .p6-right,
    #ganttOut .p6-side-lbl,
    #ganttOut .v12-menu-panel,
    #ganttOut .v12-menu-trigger,
    #ganttOut .p6-exp-btn,
    #ganttOut .p6-tb-btn.v12-direct,
    #ganttOut .v12-switch-btn {
      font-family: var(--v13-font) !important
    }

    #ganttOut .p6-toolbar {
      display: flex !important;
      align-items: center !important;
      gap: 10px !important;
      flex-wrap: wrap !important;
      padding: 10px 12px !important;
      border-radius: 18px !important;
      transition: background .22s ease, border-color .22s ease, box-shadow .22s ease !important;
    }

    #ganttOut .p6-toolbar .p6-tb-sep,
    #ganttOut .p6-toolbar .p6-tb-lbl {
      display: none !important
    }

    #ganttOut .v12-toolgroup {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap
    }

    #ganttOut .v12-spacer {
      margin-left: auto;
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap
    }

    #ganttOut .v12-menu {
      position: relative;
      display: flex;
      align-items: center
    }

    #ganttOut .v12-menu-trigger,
    #ganttOut .p6-exp-btn,
    #ganttOut .p6-tb-btn.v12-direct {
      min-height: 40px !important;
      padding: 0 14px !important;
      border-radius: 14px !important;
      font-size: 13px !important;
      font-weight: 790 !important;
      letter-spacing: -.01em !important;
      transition: transform .18s cubic-bezier(.22, 1, .36, 1), box-shadow .22s ease, border-color .22s ease, background .22s ease, color .22s ease !important;
    }

    #ganttOut .v12-menu-trigger {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      cursor: pointer
    }

    #ganttOut .v12-menu-trigger::after {
      content: '▾';
      font-size: 11px;
      transform: translateY(1px);
      transition: transform .22s ease, color .22s ease
    }

    #ganttOut .v12-menu:hover .v12-menu-trigger,
    #ganttOut .v12-menu.open .v12-menu-trigger,
    #ganttOut .p6-exp-btn:hover,
    #ganttOut .p6-tb-btn.v12-direct:hover,
    #ganttOut .v12-switch-btn:hover {
      transform: translateY(-1px) !important
    }

    #ganttOut .v12-menu:hover .v12-menu-trigger::after,
    #ganttOut .v12-menu.open .v12-menu-trigger::after {
      transform: translateY(1px) rotate(180deg)
    }

    #ganttOut .v12-menu-panel {
      position: absolute;
      top: calc(100% + 10px);
      inset-inline-start: 0;
      min-width: 220px;
      padding: 8px;
      display: grid;
      gap: 6px;
      border-radius: 16px;
      opacity: 0;
      visibility: hidden;
      transform: translateY(8px) scale(.98);
      transform-origin: top left;
      transition: opacity .22s ease, transform .28s cubic-bezier(.22, 1, .36, 1), visibility .22s ease;
      backdrop-filter: blur(14px);
      z-index: 40;
    }

    #ganttOut .v12-menu:hover .v12-menu-panel,
    #ganttOut .v12-menu.open .v12-menu-panel,
    #ganttOut .v12-menu:focus-within .v12-menu-panel {
      opacity: 1;
      visibility: visible;
      transform: translateY(0) scale(1)
    }

    #ganttOut .v12-menu-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      min-height: 40px;
      padding: 0 12px;
      border: none;
      border-radius: 12px;
      background: transparent;
      font-size: 13px;
      font-weight: 780;
      cursor: pointer;
      transition: background .18s ease, transform .18s cubic-bezier(.22, 1, .36, 1), color .18s ease, box-shadow .18s ease;
    }

    #ganttOut .v12-menu-item .sub {
      font-size: 11px;
      font-weight: 700;
      opacity: .78
    }

    #ganttOut .v12-menu-item:hover {
      transform: translateX(3px)
    }

    #ganttOut .v12-chip {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 24px;
      height: 24px;
      padding: 0 8px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 850
    }

    #ganttOut .v12-menu-label {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 1px
    }

    #ganttOut .v12-theme-switch {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 4px;
      border-radius: 15px;
      transition: background .22s ease, border-color .22s ease, box-shadow .22s ease;
    }

    #ganttOut .v12-switch-btn {
      min-height: 34px;
      border: none;
      padding: 0 12px;
      border-radius: 11px;
      font-size: 12px;
      font-weight: 820;
      letter-spacing: -.01em;
      display: inline-flex;
      align-items: center;
      gap: 7px;
      cursor: pointer;
      transition: all .18s cubic-bezier(.22, 1, .36, 1);
    }

    #ganttOut .v12-switch-btn .ico {
      font-size: 12px;
      line-height: 1
    }

    #ganttOut .p6-rowcount {
      display: inline-flex;
      align-items: center;
      min-height: 38px;
      padding: 0 12px;
      border-radius: 12px;
      font-size: 12px !important;
      font-weight: 780 !important
    }

    #ganttOut .p6-legend {
      gap: 8px !important;
      margin-bottom: 10px !important
    }

    #ganttOut .p6-leg {
      padding: 6px 12px !important;
      font-size: 11px !important;
      font-weight: 770 !important;
      border-radius: 999px !important
    }

    #ganttOut .p6-leg i {
      border-radius: 4px !important
    }

    #ganttOut .p6-outer {
      border-radius: 18px !important;
      overflow: auto !important;
      overscroll-behavior: contain !important;
      transition: background .22s ease, border-color .22s ease, box-shadow .22s ease !important
    }

    #ganttOut .p6-hdr-left,
    #ganttOut .p6-hdr-right {
      transition: background .22s ease, border-color .22s ease !important
    }

    #ganttOut .p6-hdr-cell,
    #ganttOut .p6-month-lbl {
      font-size: 11px !important;
      letter-spacing: .045em !important;
      font-weight: 820 !important
    }

    #ganttOut .p6-row .p6-right {
      overflow: visible !important
    }

    #ganttOut .p6-side-lbl {
      font-size: 11px !important;
      letter-spacing: -.01em !important;
      transition: color .22s ease !important
    }

    #ganttOut .p6-side-lbl.wbs {
      font-weight: 830 !important
    }

    #ganttOut .p6-toolbar .p6-tb-btn.v12-direct.on.crit {
      background: linear-gradient(180deg, #5d1018, #3f0c13) !important;
      color: #fff2f2 !important;
      border-color: rgba(239, 68, 68, .42) !important;
      box-shadow: 0 10px 22px rgba(127, 29, 29, .22) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-toolbar .p6-tb-btn.v12-direct.on.crit {
      background: linear-gradient(180deg, #fff1f2, #ffe4e6) !important;
      color: #991b1b !important;
      border-color: #fda4af !important;
      box-shadow: 0 10px 22px rgba(239, 68, 68, .12) !important
    }

    #ganttOut .p6-outer::-webkit-scrollbar {
      height: 12px;
      width: 12px
    }

    #ganttOut .p6-outer::-webkit-scrollbar-thumb {
      background: rgba(100, 116, 139, .42);
      border-radius: 999px;
      border: 2px solid transparent;
      background-clip: padding-box
    }

    #ganttOut .p6-outer::-webkit-scrollbar-track {
      background: transparent
    }

    #ganttOut .p6-outer.v16-drag {
      cursor: grabbing !important;
      user-select: none !important
    }

    #ganttOut .p6-c-id,
    #ganttOut .p6-c-date,
    #ganttOut .p6-c-dur {
      font-family: var(--v13-mono) !important
    }

    #ganttOut .p6-c-id {
      font-size: 10px !important;
      font-weight: 800 !important
    }

    #ganttOut .p6-c-date {
      font-size: 10.5px !important;
      font-weight: 760 !important
    }

    #ganttOut .p6-c-dur {
      font-size: 11px !important;
      font-weight: 800 !important
    }

    #ganttOut .p6-name-main {
      font-size: 12.8px !important;
      font-weight: 790 !important;
      letter-spacing: -.012em !important
    }

    #ganttOut .p6-name-main.with-toggle .p6-name-text {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap
    }

    #ganttOut .p6-gutter-toggle {
      width: 12px !important;
      height: 12px !important;
      min-width: 12px !important;
      inset-inline-start: 8px !important;
      border-radius: 999px !important;
      font-size: 8px !important;
      font-weight: 900 !important;
      line-height: 1 !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      transition: transform .16s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease !important;
    }

    #ganttOut .p6-row[data-can-toggle="1"] .p6-c-id {
      padding-inline-start: 22px !important
    }

    #ganttOut .p6-gutter-toggle:hover {
      transform: translateY(-1px) scale(1.05) !important
    }

    #ganttOut .p6-sum-bar {
      height: 3px !important;
      border-radius: 1px !important;
      position: relative !important;
      box-shadow: none !important;
      clip-path: none !important;
      border: none !important;
      background: var(--sum-line, #111827) !important;
    }

    #ganttOut .p6-sum-bar::before,
    #ganttOut .p6-sum-bar::after {
      content: '' !important;
      position: absolute !important;
      top: 0 !important;
      width: 0 !important;
      height: 0 !important;
      border-top: 7px solid var(--sum-line, #111827) !important;
      transform: translateY(1px) !important;
    }

    #ganttOut .p6-sum-bar::before {
      left: 0 !important;
      border-right: 6px solid transparent !important;
    }

    #ganttOut .p6-sum-bar::after {
      right: 0 !important;
      border-left: 6px solid transparent !important;
    }

    #ganttOut .p6-act-bar {
      height: 11px !important;
      border-radius: 6px !important
    }

    #ganttOut .p6-act-bar.crit {
      box-shadow: 0 0 0 1px rgba(255, 255, 255, .22), 0 6px 16px rgba(239, 68, 68, .18) !important
    }

    #ganttOut .v12-menu-panel .p6-tb-btn,
    #ganttOut .v12-menu-panel .p6-exp-btn {
      all: unset
    }

    #ganttOut .p6-row {
      transform-origin: top center;
      transition: background .22s ease
    }

    body[data-gantt-theme="dark"] #ganttOut {
      --v13-surface: #091425;
      --v13-surface-2: #0c1a2f;
      --v13-surface-3: #08111f;
      --v13-border: rgba(78, 116, 179, .24);
      --v13-border-strong: rgba(109, 154, 230, .26);
      --v13-text: #eaf2ff;
      --v13-muted: #9cb0ca;
      --v13-soft: #7b93b7;
      --v13-panel: rgba(8, 18, 36, .96);
      --v13-panel-2: rgba(10, 22, 42, .98);
      --v13-chip: #152b54;
      --v13-chip-text: #a9c9ff;
      --v13-shadow: 0 14px 36px rgba(2, 8, 20, .42), 0 1px 0 rgba(255, 255, 255, .03) inset;
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-toolbar {
      background: linear-gradient(180deg, rgba(8, 18, 34, .96), rgba(6, 14, 28, .98)) !important;
      border: 1px solid var(--v13-border) !important;
      box-shadow: var(--v13-shadow) !important;
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-menu-trigger,
    body[data-gantt-theme="dark"] #ganttOut .p6-exp-btn,
    body[data-gantt-theme="dark"] #ganttOut .p6-tb-btn.v12-direct {
      border: 1px solid rgba(92, 128, 191, .22) !important;
      background: linear-gradient(180deg, rgba(13, 26, 48, .98), rgba(9, 20, 39, .98)) !important;
      color: var(--v13-text) !important;
      box-shadow: 0 1px 0 rgba(255, 255, 255, .05) inset, 0 10px 20px rgba(0, 0, 0, .18) !important;
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-menu-trigger::after {
      color: #8aa6d8
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-menu:hover .v12-menu-trigger,
    body[data-gantt-theme="dark"] #ganttOut .v12-menu.open .v12-menu-trigger,
    body[data-gantt-theme="dark"] #ganttOut .p6-exp-btn:hover,
    body[data-gantt-theme="dark"] #ganttOut .p6-tb-btn.v12-direct:hover,
    body[data-gantt-theme="dark"] #ganttOut .v12-switch-btn:hover {
      border-color: #3b82f6 !important;
      box-shadow: 0 14px 28px rgba(15, 23, 42, .34), 0 0 0 1px rgba(31, 78, 121, .10) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-menu-panel {
      background: rgba(8, 18, 36, .94);
      border: 1px solid rgba(88, 122, 184, .22);
      box-shadow: 0 24px 48px rgba(0, 0, 0, .35), 0 0 0 1px rgba(255, 255, 255, .03) inset;
      color: var(--v13-text)
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-menu-item {
      color: var(--v13-text)
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-menu-item:hover {
      background: rgba(31, 78, 121, .12);
      box-shadow: inset 0 0 0 1px rgba(79, 127, 168, .18)
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-menu-item.active {
      background: linear-gradient(180deg, rgba(31, 78, 121, .20), rgba(31, 78, 121, .12));
      box-shadow: inset 0 0 0 1px rgba(79, 127, 168, .28)
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-menu-item.warn {
      background: linear-gradient(180deg, rgba(251, 191, 36, .12), rgba(249, 115, 22, .10));
      color: #fde68a;
      box-shadow: inset 0 0 0 1px rgba(251, 191, 36, .18)
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-chip {
      background: #11274d;
      color: #9fc5ff
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-theme-switch {
      background: rgba(9, 20, 39, .96);
      border: 1px solid rgba(92, 128, 191, .22);
      box-shadow: 0 1px 0 rgba(255, 255, 255, .04) inset
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-switch-btn {
      background: transparent;
      color: #95a8c8
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-switch-btn.active {
      background: linear-gradient(180deg, #163566, #10264a);
      color: #f8fbff;
      box-shadow: 0 8px 20px rgba(0, 0, 0, .18)
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-exp-btn.grn {
      color: #86efac !important;
      background: linear-gradient(180deg, rgba(16, 74, 45, .96), rgba(10, 56, 34, .98)) !important;
      border-color: rgba(34, 197, 94, .30) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-exp-btn.red {
      color: #fda4af !important;
      background: linear-gradient(180deg, rgba(89, 19, 31, .96), rgba(68, 12, 24, .98)) !important;
      border-color: rgba(244, 63, 94, .28) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-rowcount {
      background: rgba(10, 21, 40, .96);
      border: 1px solid rgba(92, 128, 191, .18);
      color: #9eb1cb !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-legend .p6-leg {
      background: linear-gradient(180deg, rgba(12, 25, 45, .96), rgba(8, 18, 34, .98)) !important;
      border: 1px solid rgba(92, 128, 191, .20) !important;
      color: #c7d8f6 !important;
      box-shadow: 0 8px 18px rgba(0, 0, 0, .16) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-outer {
      background: #07111f !important;
      border: 1px solid rgba(88, 122, 184, .22) !important;
      box-shadow: 0 20px 40px rgba(0, 0, 0, .28), 0 1px 0 rgba(255, 255, 255, .03) inset !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-hdr-left,
    body[data-gantt-theme="dark"] #ganttOut .p6-hdr-right {
      background: linear-gradient(180deg, #09182f, #071322) !important;
      border-bottom: 1px solid rgba(88, 122, 184, .24) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-hdr-cell,
    body[data-gantt-theme="dark"] #ganttOut .p6-month-lbl {
      color: #a9bedc !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-left {
      border-right: 1px solid rgba(88, 122, 184, .22) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-gl {
      border-left-color: rgba(79, 127, 168, .08) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-gl.maj {
      border-left-color: rgba(79, 127, 168, .16) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-today {
      background: rgba(248, 113, 113, .86) !important;
      box-shadow: 0 0 0 1px rgba(248, 113, 113, .12), 0 0 18px rgba(248, 113, 113, .16) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-today::before {
      color: #fca5a5 !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-gutter-toggle {
      box-shadow: 0 4px 10px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .12) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-sum-bar {
      --sum-line: #f3f6fb !important;
      background: var(--sum-line) !important;
      box-shadow: none !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-sum-bar::before,
    body[data-gantt-theme="dark"] #ganttOut .p6-sum-bar::after {
      border-top-color: var(--sum-line) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-act-bar {
      box-shadow: 0 6px 16px rgba(2, 8, 20, .26), inset 0 1px 0 rgba(255, 255, 255, .22) !important
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-side-lbl {
      color: #edf4ff !important;
      text-shadow: 0 1px 2px rgba(0, 0, 0, .65) !important
    }

    body[data-gantt-theme="light"] #ganttOut {
      --v13-surface: #ffffff;
      --v13-surface-2: #fbfdff;
      --v13-surface-3: #f5f8fc;
      --v13-border: #d7e2ee;
      --v13-border-strong: #c8d6e5;
      --v13-text: #162030;
      --v13-muted: #4c5d73;
      --v13-soft: #708399;
      --v13-panel: rgba(255, 255, 255, .98);
      --v13-panel-2: rgba(248, 251, 255, .98);
      --v13-chip: #edf4ff;
      --v13-chip-text: #2357d8;
      --v13-shadow: 0 14px 34px rgba(15, 23, 42, .10), 0 2px 8px rgba(15, 23, 42, .05);
    }

    body[data-gantt-theme="light"] #ganttOut .p6-toolbar {
      background: linear-gradient(180deg, #ffffff, #f8fbff) !important;
      border: 1px solid var(--v13-border) !important;
      box-shadow: var(--v13-shadow) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .v12-menu-trigger,
    body[data-gantt-theme="light"] #ganttOut .p6-exp-btn,
    body[data-gantt-theme="light"] #ganttOut .p6-tb-btn.v12-direct {
      border: 1px solid var(--v13-border) !important;
      background: linear-gradient(180deg, #ffffff, #f7fbff) !important;
      color: var(--v13-text) !important;
      box-shadow: 0 2px 0 rgba(255, 255, 255, .95) inset, 0 6px 18px rgba(15, 23, 42, .06) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .v12-menu-trigger::after {
      color: #64748b
    }

    body[data-gantt-theme="light"] #ganttOut .v12-menu:hover .v12-menu-trigger,
    body[data-gantt-theme="light"] #ganttOut .v12-menu.open .v12-menu-trigger,
    body[data-gantt-theme="light"] #ganttOut .p6-exp-btn:hover,
    body[data-gantt-theme="light"] #ganttOut .p6-tb-btn.v12-direct:hover,
    body[data-gantt-theme="light"] #ganttOut .v12-switch-btn:hover {
      border-color: #b8cce6 !important;
      box-shadow: 0 12px 28px rgba(15, 23, 42, .10), 0 2px 0 rgba(255, 255, 255, .98) inset !important
    }

    body[data-gantt-theme="light"] #ganttOut .v12-menu-panel {
      background: rgba(255, 255, 255, .97);
      border: 1px solid rgba(203, 213, 225, .95);
      box-shadow: 0 22px 48px rgba(15, 23, 42, .16), 0 8px 18px rgba(15, 23, 42, .08)
    }

    body[data-gantt-theme="light"] #ganttOut .v12-menu-item {
      color: var(--v13-text)
    }

    body[data-gantt-theme="light"] #ganttOut .v12-menu-item:hover {
      background: #eef5ff;
      box-shadow: inset 0 0 0 1px #e7eef6
    }

    body[data-gantt-theme="light"] #ganttOut .v12-menu-item.active {
      background: linear-gradient(180deg, #eaf3ff, #dcecff);
      color: #0f172a;
      box-shadow: inset 0 0 0 1px #bfd6fb
    }

    body[data-gantt-theme="light"] #ganttOut .v12-menu-item.active .sub {
      color: #1f4e79
    }

    body[data-gantt-theme="light"] #ganttOut .v12-menu-item.warn {
      background: linear-gradient(180deg, #fff7ed, #ffedd5);
      color: #9a3412;
      box-shadow: inset 0 0 0 1px #fed7aa
    }

    body[data-gantt-theme="light"] #ganttOut .v12-chip {
      background: #edf4ff;
      color: #1f4e79
    }

    body[data-gantt-theme="light"] #ganttOut .v12-theme-switch {
      background: #f8fbff;
      border: 1px solid var(--v13-border);
      box-shadow: 0 2px 8px rgba(15, 23, 42, .05)
    }

    body[data-gantt-theme="light"] #ganttOut .v12-switch-btn {
      background: transparent;
      color: #64748b
    }

    body[data-gantt-theme="light"] #ganttOut .v12-switch-btn.active {
      background: linear-gradient(180deg, #edf4ff, #e7eef6);
      color: #1847b8;
      box-shadow: 0 8px 18px rgba(31, 78, 121, .14)
    }

    body[data-gantt-theme="light"] #ganttOut .p6-exp-btn.grn {
      color: #166534 !important;
      background: linear-gradient(180deg, #f0fdf4, #dcfce7) !important;
      border-color: #bbf7d0 !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-exp-btn.red {
      color: #b91c1c !important;
      background: linear-gradient(180deg, #fff1f2, #ffe4e6) !important;
      border-color: #fecdd3 !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-rowcount {
      background: #f8fbff;
      border: 1px solid var(--v13-border);
      color: #475569 !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-legend .p6-leg {
      background: linear-gradient(180deg, #ffffff, #f8fbff) !important;
      border: 1px solid var(--v13-border) !important;
      color: #334155 !important;
      box-shadow: 0 6px 18px rgba(15, 23, 42, .05) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-outer {
      background: #ffffff !important;
      border: 1px solid var(--v13-border) !important;
      box-shadow: 0 18px 40px rgba(15, 23, 42, .10), 0 2px 8px rgba(15, 23, 42, .06) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-hdr-left,
    body[data-gantt-theme="light"] #ganttOut .p6-hdr-right {
      background: linear-gradient(180deg, #ffffff, #f8fbff) !important;
      border-bottom: 1px solid var(--v13-border-strong) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-hdr-cell,
    body[data-gantt-theme="light"] #ganttOut .p6-month-lbl {
      color: #43546a !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-year-lbl {
      color: #43546a !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-year-row {
      border-bottom-color: rgba(0, 0, 0, .08) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-left {
      border-right: 1px solid var(--v13-border) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-gl {
      border-left-color: rgba(148, 163, 184, .18) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-gl.maj {
      border-left-color: rgba(31, 78, 121, .18) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-today {
      background: rgba(239, 68, 68, .74) !important;
      box-shadow: 0 0 0 1px rgba(239, 68, 68, .08), 0 0 18px rgba(239, 68, 68, .12) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-today::before {
      color: #ef4444 !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-gutter-toggle {
      box-shadow: 0 4px 10px rgba(15, 23, 42, .10), inset 0 1px 0 rgba(255, 255, 255, .9) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-sum-bar {
      --sum-line: #111827 !important;
      background: var(--sum-line) !important;
      box-shadow: none !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-sum-bar::before,
    body[data-gantt-theme="light"] #ganttOut .p6-sum-bar::after {
      border-top-color: var(--sum-line) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-act-bar {
      box-shadow: 0 4px 12px rgba(15, 23, 42, .12), inset 0 1px 0 rgba(255, 255, 255, .28) !important
    }

    body[data-gantt-theme="light"] #ganttOut .p6-side-lbl {
      color: #334155 !important;
      text-shadow: none !important
    }

    /* Gantt header refinement: export actions live in one compact menu. */
    #tp-gantt #p6-export-dock-safe {
      display: none !important;
    }

    #ganttOut .p6-toolbar .p6-rowcount {
      display: none !important;
    }

    #ganttOut .p6-toolbar .p6-exp-btn {
      display: none !important;
    }

    #ganttOut .v12-export-menu .v12-menu-panel {
      inset-inline-start: auto !important;
      inset-inline-end: 0 !important;
      min-width: 252px !important;
      transform-origin: top right !important;
      padding: 10px !important;
    }

    #ganttOut .v12-export-trigger {
      min-width: 134px !important;
      justify-content: space-between !important;
      padding-inline: 14px !important;
    }

    #ganttOut .v12-export-trigger-label {
      display: inline-flex !important;
      align-items: center !important;
      gap: 8px !important;
      font-weight: 850 !important;
    }

    #ganttOut .v12-export-icon {
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      width: 24px !important;
      height: 22px !important;
      border-radius: 8px !important;
      font-size: 10px !important;
      font-weight: 900 !important;
    }

    #ganttOut .v12-export-item .v12-menu-label > span:first-child {
      display: inline-flex !important;
      align-items: center !important;
      gap: 9px !important;
    }

    #ganttOut .v12-export-dot {
      width: 10px !important;
      height: 10px !important;
      border-radius: 999px !important;
      display: inline-block !important;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.24) !important;
    }

    #ganttOut .v12-export-item.excel .v12-export-dot { background: #22c55e !important; }
    #ganttOut .v12-export-item.pdf .v12-export-dot { background: #ef4444 !important; }
    #ganttOut .v12-export-item.xer .v12-export-dot,
    #ganttOut .v12-export-item.xml .v12-export-dot { background: #D4A53A !important; }

    body[data-gantt-theme="light"] #ganttOut .v12-export-trigger {
      background: linear-gradient(180deg, #1B1A17, #2B2A26) !important;
      border-color: #1B1A17 !important;
      color: #FAF8F4 !important;
      box-shadow: 0 12px 24px rgba(27, 26, 23, .16) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .v12-export-trigger .v12-chip,
    body[data-gantt-theme="dark"] #ganttOut .v12-export-trigger .v12-chip {
      background: rgba(212,165,58,.18) !important;
      color: #D4A53A !important;
    }

    body[data-gantt-theme="light"] #ganttOut .v12-export-icon,
    body[data-gantt-theme="dark"] #ganttOut .v12-export-icon {
      background: rgba(212,165,58,.16) !important;
      color: #D4A53A !important;
    }

    #ganttOut #ganttLinkHandlesToggle {
      min-height: 34px !important;
      height: 34px !important;
      padding: 0 10px !important;
      border-radius: 11px !important;
      font-size: 11.5px !important;
      font-weight: 850 !important;
      letter-spacing: 0 !important;
      line-height: 1 !important;
      white-space: nowrap !important;
    }

    /* Slim premium toolbar pass: lighter controls, lower height, cleaner export menu. */
    #ganttOut .p6-toolbar {
      gap: 8px !important;
      padding: 5px 8px !important;
      border-radius: 14px !important;
      min-height: 42px !important;
      box-shadow: 0 14px 32px rgba(15, 23, 42, .09), 0 1px 0 rgba(255,255,255,.82) inset !important;
    }

    #ganttOut .v12-toolgroup,
    #ganttOut .v12-spacer {
      gap: 7px !important;
    }

    #ganttOut .v12-menu-trigger,
    #ganttOut .p6-tb-btn.v12-direct {
      min-height: 30px !important;
      height: 30px !important;
      padding: 0 10px !important;
      border-radius: 10px !important;
      font-size: 11.5px !important;
      font-weight: 820 !important;
      letter-spacing: 0 !important;
      box-shadow: 0 5px 14px rgba(15, 23, 42, .045), inset 0 1px 0 rgba(255,255,255,.78) !important;
    }

    #ganttOut .v12-theme-switch {
      min-height: 32px !important;
      padding: 3px !important;
      border-radius: 12px !important;
    }

    #ganttOut .v12-switch-btn {
      min-height: 26px !important;
      height: 26px !important;
      padding: 0 10px !important;
      border-radius: 9px !important;
      font-size: 11.5px !important;
      font-weight: 820 !important;
      letter-spacing: 0 !important;
    }

    #ganttOut .v12-chip {
      min-width: 21px !important;
      height: 21px !important;
      padding: 0 7px !important;
      font-size: 10px !important;
      font-weight: 900 !important;
    }

    #ganttOut .v12-menu-trigger::after {
      font-size: 10px !important;
      opacity: .72 !important;
    }

    #ganttOut .v12-export-trigger {
      min-width: 112px !important;
      height: 32px !important;
      min-height: 32px !important;
      padding-inline: 10px !important;
      border-radius: 11px !important;
      gap: 8px !important;
    }

    #ganttOut .v12-export-trigger-label {
      gap: 7px !important;
      font-size: 11.5px !important;
      font-weight: 900 !important;
    }

    #ganttOut .v12-export-icon {
      width: 21px !important;
      height: 21px !important;
      border-radius: 7px !important;
      font-size: 9px !important;
      letter-spacing: .04em !important;
    }

    #ganttOut .v12-export-menu .v12-menu-panel {
      top: calc(100% + 7px) !important;
      min-width: 226px !important;
      padding: 8px !important;
      gap: 5px !important;
      border-radius: 14px !important;
      box-shadow: 0 20px 44px rgba(15, 23, 42, .18), 0 0 0 1px rgba(255,255,255,.08) inset !important;
    }

    #ganttOut .v12-export-item {
      min-height: 34px !important;
      padding: 0 10px !important;
      border-radius: 10px !important;
      font-size: 11.5px !important;
      font-weight: 850 !important;
    }

    #ganttOut .v12-export-item .sub {
      font-size: 10px !important;
      font-weight: 740 !important;
      opacity: .72 !important;
    }

    #ganttOut .v12-export-dot {
      width: 8px !important;
      height: 8px !important;
    }

    body[data-gantt-theme="light"] #ganttOut .v12-export-trigger {
      background: linear-gradient(180deg, #fffdf8 0%, #f5efe4 100%) !important;
      border-color: rgba(177, 127, 44, .42) !important;
      color: #1B1A17 !important;
      box-shadow: 0 9px 18px rgba(177, 127, 44, .13), inset 0 1px 0 rgba(255,255,255,.92) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .v12-export-menu:hover .v12-export-trigger,
    body[data-gantt-theme="light"] #ganttOut .v12-export-menu.open .v12-export-trigger {
      border-color: rgba(177, 127, 44, .72) !important;
      background: linear-gradient(180deg, #ffffff 0%, #f1e5cf 100%) !important;
      box-shadow: 0 12px 24px rgba(177, 127, 44, .18), 0 0 0 3px rgba(212, 165, 58, .12) !important;
    }

    body[data-gantt-theme="dark"] #ganttOut .v12-export-trigger {
      background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035)) !important;
      border-color: rgba(212, 165, 58, .48) !important;
      color: #FAF8F4 !important;
      box-shadow: 0 10px 22px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.12) !important;
    }

    /* Header-level Gantt export: the export action belongs to the main app header. */
    .aipe-header-export {
      position: relative !important;
      display: none !important;
      flex: 0 0 auto !important;
      z-index: 130 !important;
    }

    .aipe-header-export.is-visible {
      display: inline-flex !important;
      align-items: center !important;
    }

    .aipe-header-export-trigger {
      height: 38px !important;
      min-height: 38px !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 9px !important;
      padding: 0 12px !important;
      border-radius: 12px !important;
      border: 1px solid rgba(177, 127, 44, .38) !important;
      background: linear-gradient(180deg, #fffdf8 0%, #f4ebdc 100%) !important;
      color: #1B1A17 !important;
      font-family: "DM Sans", "Inter", system-ui, sans-serif !important;
      font-size: 12px !important;
      font-weight: 850 !important;
      line-height: 1 !important;
      cursor: pointer !important;
      box-shadow: 0 8px 20px rgba(177, 127, 44, .13), inset 0 1px 0 rgba(255,255,255,.90) !important;
      transition: transform .16s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease !important;
    }

    .aipe-header-export:hover .aipe-header-export-trigger,
    .aipe-header-export.open .aipe-header-export-trigger {
      transform: translateY(-1px) !important;
      border-color: rgba(177, 127, 44, .70) !important;
      background: linear-gradient(180deg, #ffffff 0%, #efe1ca 100%) !important;
      box-shadow: 0 12px 26px rgba(177, 127, 44, .18), 0 0 0 3px rgba(212, 165, 58, .12) !important;
    }

    .aipe-header-export-mark {
      width: 22px !important;
      height: 22px !important;
      display: inline-grid !important;
      place-items: center !important;
      border-radius: 8px !important;
      background: rgba(212, 165, 58, .18) !important;
      color: #9A6A16 !important;
      font-size: 9px !important;
      font-weight: 950 !important;
      letter-spacing: .04em !important;
    }

    .aipe-header-export-text {
      white-space: nowrap !important;
    }

    .aipe-header-export-caret {
      color: rgba(27, 26, 23, .55) !important;
      font-size: 10px !important;
      transform: translateY(1px) !important;
      transition: transform .18s ease !important;
    }

    .aipe-header-export.open .aipe-header-export-caret {
      transform: translateY(1px) rotate(180deg) !important;
    }

    .aipe-header-export-panel {
      position: absolute !important;
      top: calc(100% + 9px) !important;
      right: 0 !important;
      width: 238px !important;
      display: grid !important;
      gap: 5px !important;
      padding: 9px !important;
      border-radius: 15px !important;
      border: 1px solid rgba(218, 210, 194, .92) !important;
      background: rgba(255, 253, 248, .98) !important;
      color: #1B1A17 !important;
      box-shadow: 0 24px 54px rgba(27, 26, 23, .18), inset 0 1px 0 rgba(255,255,255,.92) !important;
      opacity: 0 !important;
      visibility: hidden !important;
      transform: translateY(7px) scale(.98) !important;
      transform-origin: top right !important;
      transition: opacity .18s ease, transform .2s cubic-bezier(.22, 1, .36, 1), visibility .18s ease !important;
      backdrop-filter: blur(18px) saturate(1.06) !important;
    }

    .aipe-header-export.open .aipe-header-export-panel,
    .aipe-header-export:focus-within .aipe-header-export-panel {
      opacity: 1 !important;
      visibility: visible !important;
      transform: translateY(0) scale(1) !important;
    }

    .aipe-header-export-title {
      padding: 3px 4px 7px !important;
      color: rgba(27, 26, 23, .62) !important;
      font: 900 10px/1 "DM Sans", "Inter", system-ui, sans-serif !important;
      letter-spacing: .08em !important;
      text-transform: uppercase !important;
    }

    .aipe-header-export .v12-export-item {
      width: 100% !important;
      display: flex !important;
      align-items: center !important;
      justify-content: space-between !important;
      min-height: 38px !important;
      padding: 0 10px !important;
      border: 0 !important;
      border-radius: 11px !important;
      background: transparent !important;
      color: #1B1A17 !important;
      font: 850 12px/1.15 "DM Sans", "Inter", system-ui, sans-serif !important;
      text-align: left !important;
      cursor: pointer !important;
      transition: background .16s ease, transform .16s ease, box-shadow .16s ease !important;
    }

    .aipe-header-export .v12-export-item:hover {
      background: linear-gradient(180deg, #fff8eb, #f3e7d2) !important;
      transform: translateX(2px) !important;
      box-shadow: inset 0 0 0 1px rgba(212, 165, 58, .20) !important;
    }

    .aipe-header-export .v12-menu-label {
      display: flex !important;
      flex-direction: column !important;
      align-items: flex-start !important;
      gap: 2px !important;
    }

    .aipe-header-export .v12-menu-label > span:first-child {
      display: inline-flex !important;
      align-items: center !important;
      gap: 8px !important;
    }

    .aipe-header-export .v12-export-item .sub {
      color: rgba(27, 26, 23, .58) !important;
      font-size: 10.5px !important;
      font-weight: 720 !important;
    }

    .aipe-header-export .v12-export-dot {
      width: 8px !important;
      height: 8px !important;
      display: inline-block !important;
      flex: 0 0 8px !important;
      border-radius: 999px !important;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.34) !important;
    }

    .aipe-header-export .v12-export-item.excel .v12-export-dot { background: #22c55e !important; }
    .aipe-header-export .v12-export-item.pdf .v12-export-dot { background: #ef4444 !important; }
    .aipe-header-export .v12-export-item.xer .v12-export-dot,
    .aipe-header-export .v12-export-item.xml .v12-export-dot { background: #D4A53A !important; }

    body.ap-vertical-shell .aipe-header-export {
      margin-left: auto !important;
    }

    body.ap-vertical-shell .hdr .aipe-header-export + .hbtns {
      margin-left: 0 !important;
    }

    body.ap-vertical-shell .hdr,
    .hdr {
      overflow: visible !important;
    }

    /* Gantt tools v2: grouped, labeled, slimmer controls matching the new project theme. */
    #ganttOut .p6-toolbar.aipe-gantt-tools-v2 {
      padding: 7px 10px !important;
      gap: 9px !important;
      min-height: 58px !important;
      border-radius: 16px !important;
      background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(250,248,244,.90)) !important;
      border: 1px solid rgba(218, 210, 194, .82) !important;
      box-shadow: 0 18px 38px rgba(27, 26, 23, .075), inset 0 1px 0 rgba(255,255,255,.92) !important;
    }

    #ganttOut .aipe-gantt-tools-v2 .v12-toolgroup {
      gap: 8px !important;
      align-items: stretch !important;
    }

    #ganttOut .aipe-tool-block {
      position: relative !important;
      display: inline-flex !important;
      align-items: center !important;
      gap: 6px !important;
      min-height: 42px !important;
      padding: 15px 8px 7px !important;
      border-radius: 13px !important;
      border: 1px solid rgba(218, 210, 194, .66) !important;
      background: rgba(255,255,255,.58) !important;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.82) !important;
    }

    #ganttOut .aipe-tool-block::before {
      content: attr(data-label) !important;
      position: absolute !important;
      top: 5px !important;
      left: 9px !important;
      color: rgba(27, 26, 23, .48) !important;
      font: 950 7.5px/1 "DM Sans", "Inter", system-ui, sans-serif !important;
      letter-spacing: .10em !important;
    }

    #ganttOut .aipe-tool-block .v12-menu-trigger,
    #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct,
    #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle {
      min-height: 28px !important;
      height: 28px !important;
      border-radius: 9px !important;
      font-size: 11px !important;
      padding: 0 10px !important;
      box-shadow: none !important;
    }

    #ganttOut .aipe-tool-block .v12-theme-switch {
      min-height: 30px !important;
      padding: 2px !important;
      background: rgba(246, 241, 232, .92) !important;
    }

    #ganttOut .aipe-tool-block .v12-switch-btn {
      height: 26px !important;
      min-height: 26px !important;
    }

    #ganttOut .aipe-gantt-tools-v2 .v12-spacer {
      margin-left: auto !important;
      align-self: stretch !important;
      min-width: 96px !important;
      justify-content: center !important;
      padding: 15px 8px 7px !important;
      border-radius: 13px !important;
      border: 1px solid rgba(218, 210, 194, .66) !important;
      background: rgba(255,255,255,.58) !important;
      position: relative !important;
    }

    #ganttOut .aipe-gantt-tools-v2 .v12-spacer::before {
      content: "LINK MODE" !important;
      position: absolute !important;
      top: 5px !important;
      left: 9px !important;
      color: rgba(27, 26, 23, .48) !important;
      font: 950 7.5px/1 "DM Sans", "Inter", system-ui, sans-serif !important;
      letter-spacing: .10em !important;
      white-space: nowrap !important;
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-toolbar.aipe-gantt-tools-v2 {
      background: linear-gradient(180deg, rgba(8,18,34,.96), rgba(5,12,24,.94)) !important;
      border-color: rgba(148, 163, 184, .16) !important;
      box-shadow: 0 18px 38px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.07) !important;
    }

    body[data-gantt-theme="dark"] #ganttOut .aipe-tool-block,
    body[data-gantt-theme="dark"] #ganttOut .aipe-gantt-tools-v2 .v12-spacer {
      background: rgba(255,255,255,.045) !important;
      border-color: rgba(148, 163, 184, .13) !important;
    }

    body[data-gantt-theme="dark"] #ganttOut .aipe-tool-block::before,
    body[data-gantt-theme="dark"] #ganttOut .aipe-gantt-tools-v2 .v12-spacer::before {
      color: rgba(250, 248, 244, .46) !important;
    }

    /* Gantt tools v3: darker project palette, clearer icons, Fit lives with Zoom. */
    body[data-gantt-theme="light"] #ganttOut .p6-toolbar.aipe-gantt-tools-v2 {
      background: linear-gradient(180deg, #3C4658 0%, #313B4D 100%) !important;
      border-color: rgba(212, 165, 58, .24) !important;
      box-shadow: 0 20px 44px rgba(27, 26, 23, .16), inset 0 1px 0 rgba(255,255,255,.08) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .aipe-tool-block,
    body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 .v12-spacer {
      background: linear-gradient(180deg, rgba(250,248,244,.09), rgba(250,248,244,.045)) !important;
      border-color: rgba(250, 248, 244, .16) !important;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 8px 18px rgba(0,0,0,.08) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .aipe-tool-block::before,
    body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 .v12-spacer::before {
      color: rgba(250, 248, 244, .56) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-menu-trigger,
    body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct,
    body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle {
      background: rgba(250, 248, 244, .92) !important;
      border-color: rgba(250, 248, 244, .28) !important;
      color: #172033 !important;
      box-shadow: 0 7px 16px rgba(0,0,0,.10), inset 0 1px 0 rgba(255,255,255,.82) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-menu-trigger:hover,
    body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct:hover,
    body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle:hover {
      background: #fff7e8 !important;
      border-color: rgba(212, 165, 58, .52) !important;
      color: #1B1A17 !important;
      transform: translateY(-1px) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-theme-switch {
      background: rgba(250, 248, 244, .12) !important;
      border: 1px solid rgba(250, 248, 244, .15) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-switch-btn {
      color: rgba(250, 248, 244, .78) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-switch-btn.active {
      background: linear-gradient(180deg, #fff8eb, #ead7b7) !important;
      color: #172033 !important;
      box-shadow: 0 8px 16px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.72) !important;
    }

    #ganttOut .aipe-tool-block .v12-menu-trigger,
    #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct,
    #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle,
    #ganttOut .aipe-tool-block .v12-switch-btn {
      position: relative !important;
      gap: 7px !important;
    }

    #ganttOut .aipe-tool-block .v12-menu-trigger::before,
    #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct::before,
    #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle::before,
    #ganttOut .aipe-tool-block .v12-switch-btn::before {
      display: inline-grid !important;
      place-items: center !important;
      width: 16px !important;
      height: 16px !important;
      border-radius: 6px !important;
      background: rgba(212, 165, 58, .16) !important;
      color: #A9781A !important;
      font-size: 10px !important;
      font-weight: 950 !important;
      line-height: 1 !important;
      flex: 0 0 16px !important;
    }

    #ganttOut .aipe-tool-block.theme .v12-switch-btn:first-child::before { content: "◐" !important; }
    #ganttOut .aipe-tool-block.theme .v12-switch-btn:last-child::before { content: "◑" !important; }
    #ganttOut .aipe-tool-block.zoom .v12-menu-trigger::before { content: "⌕" !important; }
    #ganttOut .aipe-tool-block.zoom .aipe-fit-btn::before { content: "⌖" !important; }
    #ganttOut .aipe-tool-block.focus .aipe-critical-btn::before { content: "!" !important; }
    #ganttOut .aipe-tool-block.display .v12-menu-trigger::before { content: "▤" !important; }
    #ganttOut .aipe-tool-block.links .v12-menu-trigger::before { content: "↘" !important; }
    #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle::before { content: "⌁" !important; }

    #ganttOut .aipe-tool-block.theme .v12-switch-btn .ico {
      display: none !important;
    }

    #ganttOut .aipe-tool-block.zoom {
      gap: 7px !important;
    }

    #ganttOut .aipe-tool-block.zoom .aipe-fit-btn {
      margin-left: 0 !important;
    }

    #ganttOut .aipe-gantt-tools-v2 .v12-spacer {
      min-width: 152px !important;
      justify-content: flex-end !important;
      padding-right: 10px !important;
    }

    #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle {
      min-width: 104px !important;
      justify-content: center !important;
    }

    #ganttOut .aipe-tool-block.focus {
      min-width: 130px !important;
    }

    body[data-gantt-theme="dark"] #ganttOut .aipe-tool-block .v12-menu-trigger::before,
    body[data-gantt-theme="dark"] #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct::before,
    body[data-gantt-theme="dark"] #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle::before,
    body[data-gantt-theme="dark"] #ganttOut .aipe-tool-block .v12-switch-btn::before {
      background: rgba(212, 165, 58, .18) !important;
      color: #D4A53A !important;
    }

    /* Demo header rail: match the darker gantt tools palette. */
    #perf-demo-bar.aipe-perf-demo-v2 > div {
      padding: 12px 14px !important;
      margin: 8px 0 12px !important;
      border-radius: 15px !important;
      border: 1px solid rgba(212, 165, 58, .20) !important;
      background: linear-gradient(180deg, #3D4658 0%, #343D4F 100%) !important;
      color: rgba(250,248,244,.84) !important;
      box-shadow: 0 18px 42px rgba(27, 26, 23, .14), inset 0 1px 0 rgba(255,255,255,.08) !important;
      gap: 9px !important;
    }

    #perf-demo-bar.aipe-perf-demo-v2 b {
      display: inline-flex !important;
      align-items: center !important;
      gap: 8px !important;
      color: #F2C866 !important;
      font: 900 14px/1 "DM Sans", "Inter", system-ui, sans-serif !important;
      letter-spacing: 0 !important;
    }

    #perf-demo-bar.aipe-perf-demo-v2 b::before {
      content: "G" !important;
      width: 22px !important;
      height: 22px !important;
      display: inline-grid !important;
      place-items: center !important;
      border-radius: 8px !important;
      background: rgba(212, 165, 58, .18) !important;
      color: #F2C866 !important;
      font-size: 10px !important;
      font-weight: 950 !important;
    }

    #perf-demo-bar.aipe-perf-demo-v2 span {
      color: rgba(250,248,244,.56) !important;
      font-weight: 700 !important;
    }

    #perf-demo-bar.aipe-perf-demo-v2 button {
      min-height: 34px !important;
      padding: 0 13px !important;
      border-radius: 11px !important;
      border: 1px solid rgba(250,248,244,.16) !important;
      background: rgba(250,248,244,.09) !important;
      color: #FAF8F4 !important;
      font: 850 12px/1 "DM Sans", "Inter", system-ui, sans-serif !important;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 8px 16px rgba(0,0,0,.08) !important;
      transition: transform .16s ease, border-color .18s ease, background .18s ease, color .18s ease !important;
    }

    #perf-demo-bar.aipe-perf-demo-v2 button:hover {
      transform: translateY(-1px) !important;
      border-color: rgba(212, 165, 58, .48) !important;
      background: rgba(250,248,244,.14) !important;
    }

    #perf-demo-bar.aipe-perf-demo-v2 button:nth-of-type(1) {
      background: linear-gradient(180deg, #E6E3D3, #C9C6B5) !important;
      color: #28312A !important;
      border-color: rgba(230, 227, 211, .55) !important;
    }

    #perf-demo-bar.aipe-perf-demo-v2 button:nth-of-type(4) {
      background: rgba(125, 48, 56, .62) !important;
      border-color: rgba(255, 159, 170, .30) !important;
      color: #FFD5DA !important;
    }

    #perf-demo-bar.aipe-perf-demo-v2 button:nth-of-type(5) {
      background: rgba(212, 165, 58, .15) !important;
      border-color: rgba(212, 165, 58, .40) !important;
      color: #FFE6A3 !important;
    }

    #perf-demo-bar.aipe-perf-demo-v2 button:nth-of-type(6) {
      background: rgba(42, 118, 82, .40) !important;
      border-color: rgba(85, 197, 139, .32) !important;
      color: #BDF3D4 !important;
    }

    #perf-demo-bar.aipe-perf-demo-v2 #perf-demo-status {
      color: rgba(250,248,244,.52) !important;
      font-size: 11px !important;
      font-weight: 700 !important;
    }

/* tabs/gantt/styles/139-gantt-toolbar-redesign.css */
/* ════════════════════════════════════════════════════════════════════════
   GANTT TOOLBAR — Earthy Redesign v9.0
   ──────────────────────────────────────────────────────────────────────
   Strategy: icon + text labels (NOT icon-only).  The Gantt's own DOM is
   too unpredictable to safely hide text — instead, embrace it and just
   recolour + add SVG icons next to the existing labels.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Design tokens ──────────────────────────────────────────────────── */
#ganttOut {
  --gt-cream:   #F4FDF9;
  --gt-parch:   #E8F8F0;
  --gt-parch2:  #D8F0E4;
  --gt-border:  rgba(36,180,126,.22);
  --gt-text:    #1B1A17;
  --gt-olive:   #0F2D23;
  --gt-olive2:  #188D68;
  --gt-honey:   #24B47E;
  --gt-danger:  #8B3A1F;
}

/* ════════════════════════════════════════════════════════════════════════
   1 · TOOLBAR SHELL
   ════════════════════════════════════════════════════════════════════════ */
#ganttOut .p6-toolbar.aipe-gantt-tools-v2,
body[data-gantt-theme="light"] #ganttOut .p6-toolbar.aipe-gantt-tools-v2 {
  background: linear-gradient(180deg, #E8F8F0 0%, #D8F0E4 100%) !important;
  border: 1px solid var(--gt-border) !important;
   box-shadow:
    0 1px 0 rgba(244,253,249,.90) inset,
    0 6px 20px rgba(27,22,10,.06),
    0 1px 4px rgba(27,22,10,.04) !important;
  gap: 10px !important;
}

/* ════════════════════════════════════════════════════════════════════════
   2 · TOOL-GROUP BLOCKS
   ════════════════════════════════════════════════════════════════════════ */
#ganttOut .aipe-tool-block,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block {
  background: rgba(244,253,249,.94) !important;
  border: 1px solid var(--gt-border) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.88) inset,
    0 2px 6px rgba(27,22,10,.06) !important;
  border-radius: 12px !important;
}

/* ── Group label (THEME / ZOOM / FOCUS / DISPLAY / LINKS) ──────────── */
#ganttOut .aipe-tool-block::before,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block::before {
  color: rgba(36,180,126,.62) !important;
  font: 900 7px/1 "DM Sans", system-ui, sans-serif !important;
  letter-spacing: .14em !important;
}

/* ── LINK MODE spacer: collapse to fit its (now-relocated) button ─── */
#ganttOut .aipe-gantt-tools-v2 .v12-spacer,
body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 .v12-spacer {
  background: rgba(244,253,249,.94) !important;
  border: 1px solid var(--gt-border) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.88) inset,
    0 2px 6px rgba(27,22,10,.06) !important;
  border-radius: 12px !important;
  margin-left: 8px !important;
  align-self:  center !important;
  min-width:   unset !important;
  width:       auto !important;
  flex-shrink: 0 !important;
  overflow: visible !important;
  /* Make it an inline-flex container so the relocated toggle sits
     properly next to the ::before label.                            */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
}

#ganttOut .aipe-gantt-tools-v2 .v12-spacer::before,
body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 .v12-spacer::before {
  color: rgba(36,180,126,.62) !important;
  font: 900 7px/1 "DM Sans", system-ui, sans-serif !important;
  letter-spacing: .14em !important;
}

/* Force the relocated link toggle to be visible with proper styling */
#ganttOut .aipe-gantt-tools-v2 .v12-spacer #ganttLinkHandlesToggle,
body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 .v12-spacer #ganttLinkHandlesToggle {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 12px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  background: var(--gt-cream) !important;
  border: 1px solid var(--gt-border) !important;
  color: var(--gt-text) !important;
  border-radius: 9px !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.88) inset,
    0 1px 3px rgba(27,22,10,.06) !important;
}

/* ════════════════════════════════════════════════════════════════════════
   3 · BUTTONS — pill rectangles with icon + label
   ════════════════════════════════════════════════════════════════════════ */
#ganttOut .aipe-tool-block .v12-menu-trigger,
#ganttOut .aipe-tool-block .p6-tb-btn.v12-direct,
#ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-menu-trigger,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct,
body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle {
  /* Reset the icon-only constraints from v8 — allow natural sizing */
  width: auto !important;
  min-width: auto !important;
  max-width: none !important;
  /* Earthy colours */
  background: var(--gt-cream) !important;
  border: 1px solid var(--gt-border) !important;
  color: var(--gt-text) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.88) inset,
    0 1px 3px rgba(27,22,10,.06) !important;
  border-radius: 9px !important;
  /* Icon + text spacing */
  gap: 6px !important;
  transition: background .15s, border-color .15s, box-shadow .15s, transform .15s !important;
}

/* ── Hover ─────────────────────────────────────────────────────────── */
#ganttOut .aipe-tool-block .v12-menu-trigger:hover,
#ganttOut .aipe-tool-block .p6-tb-btn.v12-direct:hover,
#ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle:hover,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-menu-trigger:hover,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct:hover,
body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle:hover {
  background: #E8F8F0 !important;
  border-color: rgba(36,180,126,.55) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.90) inset,
    0 0 0 3px rgba(36,180,126,.12),
    0 4px 10px rgba(36,180,126,.10) !important;
  transform: translateY(-1px) !important;
}

/* ── Active / ON (olive) ───────────────────────────────────────────── */
#ganttOut .aipe-tool-block .p6-tb-btn.v12-direct.on,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct.on,
#ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle.on,
body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle.on {
  background: linear-gradient(160deg, #4D6733 0%, #38501F 100%) !important;
  border-color: rgba(74,99,48,.55) !important;
  color: #EFF7E2 !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.14) inset,
    0 4px 12px rgba(58,81,37,.26) !important;
  transform: none !important;
}

/* ── Critical path active — danger red ─────────────────────────────── */
#ganttOut .aipe-tool-block .p6-tb-btn.v12-direct.on.crit,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct.on.crit {
  background: linear-gradient(160deg, #8B3A1F 0%, #6E2A12 100%) !important;
  border-color: rgba(184,105,62,.48) !important;
  color: #FEEEE6 !important;
  box-shadow: 0 4px 12px rgba(139,58,31,.26) !important;
}

/* ── Dropdown caret colour ─────────────────────────────────────────── */
#ganttOut .aipe-tool-block .v12-menu-trigger::after,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-menu-trigger::after {
  color: rgba(62,74,42,.55) !important;
}

/* ════════════════════════════════════════════════════════════════════════
   4 · THEME TOGGLE — dark-charcoal when active (NOT olive)
   ════════════════════════════════════════════════════════════════════════ */
#ganttOut .aipe-tool-block .v12-theme-switch,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-theme-switch {
  background: rgba(245,240,230,.88) !important;
  border: 1px solid var(--gt-border) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,.72) inset !important;
}

#ganttOut .aipe-tool-block .v12-switch-btn,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-switch-btn {
  color: rgba(27,26,23,.55) !important;
  font-weight: 600 !important;
}

#ganttOut .aipe-tool-block .v12-switch-btn.active,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-switch-btn.active {
  background: linear-gradient(160deg, #2C2B26 0%, #1B1A17 100%) !important;
  color: #E8F8F0 !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.10) inset,
    0 3px 8px rgba(0,0,0,.30) !important;
}

/* ════════════════════════════════════════════════════════════════════════
   5 · DROPDOWN PANEL
   ════════════════════════════════════════════════════════════════════════ */
#ganttOut .aipe-tool-block .v12-menu-panel,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-menu-panel {
  background: rgba(244,253,249,.98) !important;
  border: 1px solid var(--gt-border) !important;
  box-shadow:
    0 24px 52px rgba(27,22,10,.14),
    0 4px 12px rgba(27,22,10,.07) !important;
  color: var(--gt-text) !important;
}

#ganttOut .aipe-tool-block .v12-menu-item,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-menu-item {
  color: var(--gt-text) !important;
}

#ganttOut .aipe-tool-block .v12-menu-item:hover,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-menu-item:hover {
  background: linear-gradient(180deg, #E8F8F0, #D8F0E4) !important;
  box-shadow: inset 0 0 0 1px rgba(36,180,126,.18) !important;
}

#ganttOut .aipe-tool-block .v12-menu-item.active,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-menu-item.active {
  background: linear-gradient(180deg, #D8F0E4, #C0E4D4) !important;
  color: var(--gt-olive) !important;
  box-shadow: inset 0 0 0 1px rgba(36,180,126,.25) !important;
}

/* ════════════════════════════════════════════════════════════════════════
   6 · SVG ICONS  (prepended by JS, sit next to existing text labels)
   ════════════════════════════════════════════════════════════════════════ */

/* Kill legacy character ::before badges — SVGs replace them */
#ganttOut .aipe-tool-block .v12-menu-trigger::before,
#ganttOut .aipe-tool-block .p6-tb-btn.v12-direct::before,
#ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle::before,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .v12-menu-trigger::before,
body[data-gantt-theme="light"] #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct::before,
body[data-gantt-theme="light"] #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle::before {
  display: none !important;
  content: none !important;
}

/* SVG wrapper */
#ganttOut .gt-icon-svg {
  display:         inline-flex !important;
  align-items:     center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  width:  16px !important;
  height: 16px !important;
  opacity: .82 !important;
  pointer-events: none !important;
}

#ganttOut .gt-icon-svg svg {
  width:   15px !important;
  height:  15px !important;
  display: block !important;
  stroke-width: 2 !important;
}

/* Brighter icon when active */
#ganttOut .p6-tb-btn.v12-direct.on .gt-icon-svg,
#ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle.on .gt-icon-svg,
#ganttOut .v12-switch-btn.active .gt-icon-svg {
  opacity: 1 !important;
}

/* Hide DOM label spans from addBlockLabel — ::before already shows it */
#ganttOut .gt-block-label {
  display: none !important;
}

/* ════════════════════════════════════════════════════════════════════════
   7 · PERFORMANCE DEMO BAR — dark navy
   ════════════════════════════════════════════════════════════════════════ */
#perf-demo-bar.aipe-perf-demo-v2 > div {
  background: linear-gradient(180deg, #102A4C 0%, #071A33 100%) !important;
  border: 1px solid rgba(36,180,126,.20) !important;
  box-shadow:
    0 12px 32px rgba(4,14,28,.22),
    inset 0 1px 0 rgba(255,255,255,.05) !important;
}

#perf-demo-bar.aipe-perf-demo-v2 b::before {
  background: linear-gradient(160deg, #24B47E, #188D68) !important;
  color: #FFFFFF !important;
}

#perf-demo-bar.aipe-perf-demo-v2 b { color: #24B47E !important; }
#perf-demo-bar.aipe-perf-demo-v2 span { color: rgba(36,180,126,.48) !important; }

#perf-demo-bar.aipe-perf-demo-v2 button {
  background: rgba(36,180,126,.07) !important;
  border: 1px solid rgba(36,180,126,.13) !important;
  color: rgba(36,180,126,.74) !important;
}

#perf-demo-bar.aipe-perf-demo-v2 button:hover {
  background: rgba(36,180,126,.13) !important;
  border-color: rgba(36,180,126,.42) !important;
  color: #E8F8F0 !important;
  transform: translateY(-1px) !important;
}

#perf-demo-bar.aipe-perf-demo-v2 button:nth-of-type(1) {
  background: linear-gradient(160deg, #E4DFD0, #D0CABB) !important;
  border-color: rgba(210,200,178,.65) !important;
  color: #262E1C !important;
}
#perf-demo-bar.aipe-perf-demo-v2 button:nth-of-type(2) {
  background: rgba(68,82,52,.60) !important;
  border-color: rgba(122,152,84,.26) !important;
  color: #CADAAC !important;
}
#perf-demo-bar.aipe-perf-demo-v2 button:nth-of-type(3) {
  background: rgba(42,56,28,.78) !important;
  border-color: rgba(84,115,52,.34) !important;
  color: #B8CC94 !important;
}
#perf-demo-bar.aipe-perf-demo-v2 button:nth-of-type(4) {
  background: rgba(105,32,20,.72) !important;
  border-color: rgba(192,90,62,.28) !important;
  color: #FFCEC4 !important;
}
#perf-demo-bar.aipe-perf-demo-v2 button:nth-of-type(5) {
  background: rgba(36,180,126,.22) !important;
  border-color: rgba(36,180,126,.44) !important;
  color: #B8EACC !important;
}
#perf-demo-bar.aipe-perf-demo-v2 button:nth-of-type(6) {
  background: linear-gradient(160deg, #235C3C, #184828) !important;
  border-color: rgba(55,152,86,.34) !important;
  color: #B8EACC !important;
}

#perf-demo-bar.aipe-perf-demo-v2 #perf-demo-status {
  color: rgba(36,180,126,.42) !important;
}

/* ════════════════════════════════════════════════════════════════════════
   8 · LEGEND + ROW COUNT
   ════════════════════════════════════════════════════════════════════════ */
#ganttOut .p6-legend .p6-leg,
body[data-gantt-theme="light"] #ganttOut .p6-legend .p6-leg {
  background: rgba(244,253,249,.96) !important;
  border: 1px solid var(--gt-border) !important;
  color: var(--gt-text) !important;
  box-shadow: 0 2px 6px rgba(27,22,10,.06) !important;
}

#ganttOut .p6-rowcount,
body[data-gantt-theme="light"] #ganttOut .p6-rowcount {
  background: rgba(244,253,249,.94) !important;
  border: 1px solid var(--gt-border) !important;
  color: rgba(27,26,23,.64) !important;
}

/* ════════════════════════════════════════════════════════════════════════
   9 · DARK GANTT THEME — keep our icon-hiding rules
   ════════════════════════════════════════════════════════════════════════ */
body[data-gantt-theme="dark"] #ganttOut .aipe-tool-block .v12-menu-trigger::before,
body[data-gantt-theme="dark"] #ganttOut .aipe-tool-block .p6-tb-btn.v12-direct::before,
body[data-gantt-theme="dark"] #ganttOut .aipe-gantt-tools-v2 #ganttLinkHandlesToggle::before,
body[data-gantt-theme="dark"] #ganttOut .aipe-tool-block .v12-switch-btn::before {
  display: none !important;
  content: none !important;
}

/* tabs/gantt/styles/019-gantt-vertical-scroll-fix.css */
/* Keep horizontal scroll inside Gantt, but let page handle vertical wheel movement */
    #tp-gantt .gantt-shell,
    #tp-gantt .gantt-outer,
    #tp-gantt .p6-outer,
    #tp-gantt #v9-gantt-outer,
    #ganttOut .gantt-shell,
    #ganttOut .gantt-outer,
    #ganttOut .p6-outer,
    #ganttOut #v9-gantt-outer {
      overflow-x: auto !important;
      overflow-y: visible !important;
      max-height: none !important;
      overscroll-behavior-x: contain !important;
      overscroll-behavior-y: auto !important;
      -webkit-overflow-scrolling: touch !important;
      scroll-behavior: smooth !important;
      touch-action: pan-x !important;
    }

    /* Row and header regions should not create a hidden vertical wheel trap */
    #ganttOut .p6-grid,
    #ganttOut .gantt-grid,
    #ganttOut .gantt-wrap {
      overflow: visible !important;
    }

/* styles/tabs/020-wbs-bar-premium.css */
body[data-gantt-theme="dark"] html #ganttOut .p6-sum-bar,
    body[data-gantt-theme="dark"] #ganttOut .p6-sum-bar {
      background: #ffffff !important;
      height: 5px !important;
      border: none !important;
      box-shadow: none !important;
      border-radius: 0 !important;
      overflow: visible !important;
      clip-path: none !important;
    }

    body[data-gantt-theme="light"] html #ganttOut .p6-sum-bar,
    body[data-gantt-theme="light"] #ganttOut .p6-sum-bar {
      background: #334155 !important;
      height: 5px !important;
      border: none !important;
      box-shadow: none !important;
      border-radius: 0 !important;
      overflow: visible !important;
      clip-path: none !important;
    }

    #ganttOut .p6-sum-bar::before,
    #ganttOut .p6-sum-bar::after {
      display: none !important;
      content: none !important;
      background: none !important;
      border: none !important;
      height: 0 !important;
    }

    #ganttOut .wbs-tri-l,
    #ganttOut .wbs-tri-r {
      position: absolute;
      top: calc(100% - 1px);
      width: 0;
      height: 0;
      display: block;
    }

    #ganttOut .wbs-tri-l {
      left: 0;
      border-top: 5px solid #ffffff;
      border-right: 4px solid transparent;
    }

    #ganttOut .wbs-tri-r {
      right: 0;
      border-top: 5px solid #ffffff;
      border-left: 4px solid transparent;
    }

    body[data-gantt-theme="light"] #ganttOut .wbs-tri-l,
    body[data-gantt-theme="light"] #ganttOut .wbs-tri-r {
      border-top-color: #334155;
    }

/* styles/tabs/021-act-bar-border.css */
body[data-gantt-theme="dark"] #ganttOut .p6-act-bar {
      box-shadow: 0 0 0 1px #ffffff !important;
    }

    body[data-gantt-theme="dark"] #ganttOut .p6-act-bar.crit {
      box-shadow: 0 0 0 1px #ffffff, 0 0 10px rgba(239, 68, 68, .35) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .p6-act-bar {
      box-shadow: 0 0 0 1px #000000 !important;
    }

    body[data-gantt-theme="light"] #ganttOut .p6-act-bar.crit {
      box-shadow: 0 0 0 1px #000000, 0 0 8px rgba(239, 68, 68, .2) !important;
    }

/* styles/tabs/022-act-bar-radius.css */
#ganttOut .p6-act-bar {
      border-radius: 2px !important;
    }

/* styles/tabs/023-wbs-level-picker-style.css */
.p6-leg-wbs-levels {
      cursor: pointer;
      background: rgba(139, 92, 246, .1);
      border: 1px solid rgba(139, 92, 246, .35);
      border-radius: 6px;
      padding: 3px 9px;
      color: inherit;
      font: inherit;
      transition: all .15s;
    }

    .p6-leg-wbs-levels:hover {
      background: rgba(139, 92, 246, .22);
      border-color: rgba(139, 92, 246, .6);
    }




    </div><style id="gantt-arrow-clean-wbs-fix-style">body.__wbs-no-motion #ganttOut .p6-row,
    body.__wbs-no-motion #ganttOut .p6-left,
    body.__wbs-no-motion #ganttOut .p6-right,
    body.__wbs-no-motion #ganttOut .v18-slide-part,
    body.__wbs-no-motion #ganttOut .v17-row-enter,
    body.__wbs-no-motion #ganttOut .v17-row-enter .p6-left,
    body.__wbs-no-motion #ganttOut .v17-row-enter .p6-right {
      transition: none !important;
      animation: none !important;
      transform: none !important;
      opacity: 1 !important;
    }

/* tabs/gantt/styles/024-gantt-link-focus-style.css */
#ga-svg .ga-link-path {
      pointer-events: stroke;
      cursor: pointer;
      stroke-linecap: round;
      stroke-linejoin: round;
      transition: stroke .16s ease, stroke-width .16s ease, stroke-opacity .16s ease, filter .16s ease;
    }

    #ga-svg .ga-link-hit {
      pointer-events: stroke;
      cursor: pointer;
      fill: none !important;
      stroke: transparent !important;
      stroke-opacity: 0 !important;
    }

    #ga-svg .ga-link-path:hover {
      stroke-opacity: 1 !important;
      stroke-width: 1.95 !important;
      filter: drop-shadow(0 0 4px rgba(79, 127, 168, .22));
    }

    #ga-svg .ga-link-path.is-active {
      stroke: #f59e0b !important;
      stroke-width: 2.6 !important;
      stroke-opacity: 1 !important;
      filter: drop-shadow(0 0 10px rgba(245, 158, 11, .35));
    }

    #ga-svg-heads .ga-link-head {
      opacity: 1;
      filter: drop-shadow(0 0 2px rgba(255, 255, 255, .12));
    }

    #ganttOut .p6-sum-bar,
    #ganttOut .p6-act-bar,
    #ganttOut .p6-ms {
      z-index: 10 !important;
    }

    #ganttOut .p6-side-lbl {
      z-index: 12 !important;
    }

    #ganttOut .p6-row.ga-link-pred,
    #ganttOut .p6-row.ga-link-succ {
      position: relative;
    }

    #ganttOut .p6-row.ga-link-pred .p6-left,
    #ganttOut .p6-row.ga-link-pred .p6-right,
    #ganttOut .p6-row.ga-link-succ .p6-left,
    #ganttOut .p6-row.ga-link-succ .p6-right {
      box-shadow: inset 0 0 0 1px rgba(245, 158, 11, .16);
    }

    #ganttOut .p6-row.ga-link-pred::before,
    #ganttOut .p6-row.ga-link-succ::before {
      content: '';
      position: absolute;
      inset: 2px auto 2px 0;
      width: 3px;
      border-radius: 999px;
      z-index: 2;
    }

    #ganttOut .p6-row.ga-link-pred::before {
      background: linear-gradient(180deg, #22c55e, #16a34a);
    }

    #ganttOut .p6-row.ga-link-succ::before {
      background: linear-gradient(180deg, #f59e0b, #f97316);
    }

    #ganttOut .p6-row.ga-link-pred .p6-act-bar,
    #ganttOut .p6-row.ga-link-succ .p6-act-bar,
    #ganttOut .p6-row.ga-link-pred .p6-sum-bar,
    #ganttOut .p6-row.ga-link-succ .p6-sum-bar {
      filter: drop-shadow(0 0 10px rgba(245, 158, 11, .14));
    }

    #ga-link-badge {
      position: fixed;
      z-index: 2147483000;
      min-width: 280px;
      max-width: min(520px, calc(100vw - 24px));
      pointer-events: auto;
      transform: translate(-50%, -115%);
      background: linear-gradient(180deg, rgba(9, 20, 40, .98), rgba(5, 14, 30, .98));
      border: 1px solid rgba(245, 158, 11, .28);
      border-radius: 12px;
      box-shadow: 0 18px 44px rgba(0, 0, 0, .32), 0 0 0 1px rgba(255, 255, 255, .03) inset;
      padding: 10px 12px;
      backdrop-filter: blur(10px);
    }

    #ga-link-badge[hidden] {
      display: none !important;
    }

    #ga-link-badge .ga-link-rel {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 7px;
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .6px;
      text-transform: uppercase;
      color: #fbbf24;
    }

    #ga-link-badge .ga-link-rel .ga-link-type {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 34px;
      height: 20px;
      padding: 0 8px;
      border-radius: 999px;
      background: rgba(245, 158, 11, .12);
      border: 1px solid rgba(245, 158, 11, .22);
      color: #fbbf24;
    }

    #ga-link-badge .ga-link-pair {
      display: grid;
      grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
      gap: 10px;
      align-items: start;
      font-size: 12px;
      line-height: 1.45;
    }

    #ga-link-badge .ga-link-name {
      display: block;
      width: 100%;
      appearance: none;
      border: 0;
      background: transparent;
      padding: 0;
      min-width: 0;
      color: #e5eefc;
      font: inherit;
      font-weight: 700;
      white-space: normal;
      overflow: visible;
      text-overflow: clip;
      overflow-wrap: anywhere;
      cursor: pointer;
      text-align: left;
    }

    #ga-link-badge .ga-link-name:hover,
    #ga-link-badge .ga-link-name:focus-visible {
      text-decoration: underline;
      outline: none;
      filter: brightness(1.2);
    }

    #ga-link-badge .ga-link-name.pred {
      color: #86efac;
    }

    #ga-link-badge .ga-link-name.succ {
      color: #fde68a;
      text-align: right;
    }

    #ga-link-badge .ga-link-arrow {
      color: #8eacc9;
      font-size: 12px;
      opacity: .9;
    }

    #ganttOut .p6-row.ga-link-jump .p6-left,
    #ganttOut .p6-row.ga-link-jump .p6-right {
      animation: gaLinkJumpPulse 1.55s ease both !important;
    }

    @keyframes gaLinkJumpPulse {
      0% {
        box-shadow: inset 0 0 0 0 rgba(245, 158, 11, 0), 0 0 0 rgba(245, 158, 11, 0)
      }

      24% {
        box-shadow: inset 0 0 0 2px rgba(245, 158, 11, .9), 0 0 18px rgba(245, 158, 11, .28)
      }

      100% {
        box-shadow: inset 0 0 0 0 rgba(245, 158, 11, 0), 0 0 0 rgba(245, 158, 11, 0)
      }
    }

/* tabs/gantt/styles/025-gantt-arrow-mode-style.css */
#ganttOut .ga-mode-menu .v12-menu-trigger {
      min-width: 104px;
      justify-content: space-between;
      padding-inline: 12px !important
    }

    #ganttOut .ga-mode-menu .ga-mode-label {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-weight: 800
    }

    #ganttOut .ga-mode-menu .ga-mode-ico {
      font-size: 12px;
      opacity: .9
    }

    #ganttOut .ga-mode-menu .v12-chip {
      min-width: 56px;
      text-align: center
    }

    #ganttOut .ga-mode-menu .v12-menu-item .ga-dot {
      width: 8px;
      height: 8px;
      border-radius: 999px;
      display: inline-block;
      margin-inline-end: 8px;
      box-shadow: 0 0 0 1px rgba(255, 255, 255, .08) inset
    }

    #ganttOut .ga-mode-menu .v12-menu-item[data-mode="all"] .ga-dot {
      background: rgba(31, 78, 121, .95)
    }

    #ganttOut .ga-mode-menu .v12-menu-item[data-mode="driven"] .ga-dot {
      background: rgba(34, 197, 94, .95)
    }

    #ganttOut .ga-mode-menu .v12-menu-item[data-mode="off"] .ga-dot {
      background: rgba(148, 163, 184, .92)
    }

/* tabs/gantt/styles/026-gantt-month-grid.css */
/* P6 sight lines: vertical guides follow the active calendar header.
   Horizontal minor guides follow the renderer's visible-row interval.
   Both stay behind bars without adding per-guide DOM nodes. */
html body #ganttOut .p6-row[data-rowkind] > .p6-right {
  --p6-grid-line: #c2c8d0;
  border-bottom: 0 !important;
}
html body #ganttOut .p6-row[data-rowkind] > .p6-right::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  user-select: none;
  background-image: var(--p6-time-grid-light);
  background-size: var(--p6-time-grid-width) 8px;
  background-position: 0 0;
  background-repeat: repeat-y;
}
html body #ganttOut .p6-row[data-sight-line="1"] > .p6-right::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  z-index: 0;
  pointer-events: none;
  user-select: none;
  background-image: repeating-linear-gradient(90deg, var(--p6-grid-line) 0 4px, transparent 4px 8px);
}
html body[data-gantt-theme="dark"] #ganttOut .p6-row[data-rowkind] > .p6-right {
  --p6-grid-line: #56677e;
}
html body[data-gantt-theme="dark"] #ganttOut .p6-row[data-rowkind] > .p6-right::before {
  background-image: var(--p6-time-grid-dark);
}

/* tabs/gantt/styles/027-gantt-freeze-style.css */
/* ── Give outer a max-height so it scrolls vertically ── */
    #ganttOut #v9-gantt-outer {
      max-height: calc(100vh - var(--app-content-top) - 26px) !important;
      overflow: auto !important;
      overscroll-behavior: contain !important;
      /* isolation:isolate creates a proper stacking context so z-index comparisons
         between #ga-svg (z:8) and .p6-hdr-right (z:14+) work correctly —
         header always paints on top of SVG arrows. Does NOT break position:sticky. */
      isolation: isolate !important;
    }

    /* ── Sticky header — works because scroll is on the outer container ── */
    #ganttOut .p6-hdr-left {
      position: sticky !important;
      top: 0 !important;
      left: 0 !important;
      z-index: 20 !important;
    }

    #ganttOut .p6-hdr-right {
      position: sticky !important;
      top: 0 !important;
      z-index: 14 !important;
    }

    /* ── Sticky left column ── */
    #ganttOut .p6-left {
      position: sticky !important;
      left: 0 !important;
      z-index: 10 !important;
      overflow: hidden !important;
    }

    /* ── Separator ── */
    #ganttOut .p6-left,
    #ganttOut .p6-hdr-left {
      border-right: 3px solid rgba(79, 127, 168, .45) !important;
      box-shadow: 4px 0 14px rgba(0, 0, 0, .45) !important;
    }

    body[data-gantt-theme="light"] #ganttOut .p6-left,
    body[data-gantt-theme="light"] #ganttOut .p6-hdr-left {
      border-right: 3px solid rgba(30, 60, 120, .28) !important;
      box-shadow: 4px 0 10px rgba(0, 0, 0, .13) !important;
    }

    /* ── Chart area — bars must not bleed into sticky header ── */
    #ganttOut .p6-right {
      overflow: hidden !important;
      position: relative !important;
    }

    #gantt-month-overlay {
      z-index: 2 !important;
    }

/* tabs/gantt/styles/028-gantt-no-transition.css */
#ganttOut .p6-row,
    #ganttOut .p6-row .p6-left,
    #ganttOut .p6-row .p6-right,
    #ganttOut .p6-row[data-rowkind="activity"] .p6-right {
      transition: none !important;
      animation: none !important;
    }

    /* V13 perf: removed .p6-act-bar/.p6-sum-bar (400+ / 119 elements, and they have NO
       transitions to suppress per measurement) so toggling gantt-scroll-active no longer
       forces a recalc across hundreds of bars at scroll start/stop. Kept the low-count
       milestone + link-overlay selectors that actually transition. Reversible. */
    body.gantt-scroll-active #ganttOut .p6-ms,
    body.gantt-scroll-active #ganttOut .ga-link-node,
    body.gantt-scroll-active #ganttOut .ga-edge-link-handle {
      transition: none !important;
      animation: none !important;
      filter: none !important;
      box-shadow: none !important;
    }

/* styles/tabs/029-lgb-css.css */
#ov {
      display: none !important
    }

    #ov:not(.hidden) .ov-card {
      max-width: 97vw !important;
      width: 97vw !important;
      height: 92vh !important;
      max-height: 92vh !important;
      padding: 0 !important;
      border-radius: 16px !important;
      overflow: hidden !important;
      background: #00091a !important;
      border: 1px solid rgba(59, 130, 246, .18) !important;
      box-shadow: 0 40px 100px rgba(0, 0, 0, .95) !important;
      display: flex !important;
      flex-direction: column !important;
    }

    #ov-sub,
    #os1,
    #os2,
    #os3,
    #os4,
    #os5,
    #os6,
    #os7,
    #os8,
    #v9-ovprog {
      display: none !important
    }

    .lgb {
      display: flex;
      flex-direction: column;
      width: 100%;
      height: 100%;
      background: #00091a;
      position: relative;
      overflow: hidden;
      font-family: 'DM Sans', system-ui, sans-serif;
    }

    .lgb::after {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 60;
      background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0, 0, 0, .016) 2px, rgba(0, 0, 0, .016) 4px);
    }

    /* TOP */
    .lgb-top {
      height: 50px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 0 18px;
      background: rgba(0, 4, 16, .99);
      border-bottom: 1px solid rgba(59, 130, 246, .08);
      z-index: 20;
      position: relative;
    }

    .lgb-top::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 20px;
      right: 20px;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(59, 130, 246, .25), transparent);
    }

    .lgb-brand {
      display: flex;
      align-items: center;
      gap: 9px;
    }

    .lgb-icon {
      width: 30px;
      height: 30px;
      border-radius: 8px;
      background: linear-gradient(135deg, #1a56db, #0891b2);
      display: grid;
      place-items: center;
      font-size: 15px;
      box-shadow: 0 0 14px rgba(59, 130, 246, .28);
      flex-shrink: 0;
    }

    .lgb-title {
      font-family: 'Syne', sans-serif;
      font-size: 13px;
      font-weight: 800;
      color: #dbeafe;
    }

    .lgb-ver {
      font-size: 9px;
      color: #0e1e30;
      text-transform: uppercase;
      letter-spacing: .9px;
      margin-top: 1px;
    }

    .lgb-live {
      display: flex;
      align-items: center;
      gap: 5px;
      padding: 4px 10px;
      border-radius: 999px;
      background: rgba(34, 197, 94, .05);
      border: 1px solid rgba(34, 197, 94, .16);
    }

    .lgb-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: #22c55e;
      box-shadow: 0 0 7px #22c55e;
      animation: lgb-pulse 1.1s ease infinite;
    }

    @keyframes lgb-pulse {

      0%,
      100% {
        opacity: 1;
        box-shadow: 0 0 7px #22c55e
      }

      50% {
        opacity: .15;
        box-shadow: none
      }
    }

    .lgb-live-lbl {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 700;
      color: #22c55e;
    }

    .lgb-kpis {
      display: flex;
      gap: 4px;
      margin-left: auto;
    }

    .lgb-kpi {
      display: flex;
      align-items: center;
      gap: 4px;
      padding: 4px 9px;
      border-radius: 999px;
      background: rgba(2, 5, 18, .8);
      border: 1px solid rgba(22, 45, 90, .14);
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      transition: border-color .4s;
    }

    .lgb-kpi.lit {
      border-color: rgba(59, 130, 246, .24);
    }

    .lgb-kpi .lk {
      color: #081420;
    }

    .lgb-kpi .lv {
      color: #163450;
      font-weight: 800;
      transition: color .4s;
    }

    .lgb-kpi.lit .lv {
      color: #7dd3fc;
    }

    .lgb-kpi.crit .lv {
      color: #f87171;
    }

    /* STATUS */
    .lgb-status {
      height: 24px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 0 18px;
      background: rgba(0, 2, 10, .97);
      border-bottom: 1px solid rgba(14, 36, 72, .09);
      z-index: 20;
    }

    .lgb-phase {
      font-size: 9px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 1px;
      padding: 2px 8px;
      border-radius: 999px;
      background: rgba(59, 130, 246, .05);
      border: 1px solid rgba(59, 130, 246, .09);
      color: #142640;
      transition: all .4s;
    }

    .lgb-phase.on {
      color: #60a5fa;
      background: rgba(59, 130, 246, .1);
      border-color: rgba(59, 130, 246, .26);
    }

    .lgb-msg {
      font-family: 'JetBrains Mono', monospace;
      font-size: 9.5px;
      color: #081420;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .lgb-msg b {
      color: #163450;
    }

    /* GANTT */
    .lgb-gantt {
      flex: 1;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      position: relative;
    }

    .lgb-mhdr {
      height: 28px;
      flex-shrink: 0;
      display: flex;
      background: rgba(0, 2, 12, .99);
      border-bottom: 1px solid rgba(59, 130, 246, .06);
      z-index: 10;
    }

    .lgb-mhdr-left {
      width: 300px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      padding: 0 12px;
      font-size: 7.5px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 1px;
      color: #04101e;
      border-right: 1px solid rgba(59, 130, 246, .04);
    }

    .lgb-mhdr-right {
      flex: 1;
      display: flex;
      overflow: hidden;
    }

    .lgb-month {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'JetBrains Mono', monospace;
      font-size: 7.5px;
      font-weight: 800;
      text-transform: uppercase;
      color: #03090f;
      border-right: 1px solid rgba(255, 255, 255, .006);
      opacity: 0;
      transition: opacity .3s ease, color .4s;
    }

    .lgb-month.show {
      opacity: 1;
    }

    .lgb-month.on {
      color: #12304e;
      background: rgba(59, 130, 246, .028);
    }

    .lgb-rows-wrap {
      flex: 1;
      overflow-y: auto;
      overflow-x: hidden;
      position: relative;
      scrollbar-width: thin;
      scrollbar-color: rgba(59, 130, 246, .1) transparent;
    }

    .lgb-rows-wrap::-webkit-scrollbar {
      width: 3px;
    }

    .lgb-rows-wrap::-webkit-scrollbar-thumb {
      background: rgba(59, 130, 246, .12);
      border-radius: 2px;
    }

    /* scan beam */
    .lgb-scan {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 300px;
      right: 0;
      pointer-events: none;
      z-index: 3;
      overflow: hidden;
    }

    .lgb-scan::after {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      width: 110px;
      background: linear-gradient(90deg, transparent, rgba(6, 182, 212, .018), transparent);
      animation: lgb-scanmv 7s linear infinite;
    }

    @keyframes lgb-scanmv {
      from {
        left: -110px
      }

      to {
        left: 100%
      }
    }

    /* ─────────────────────────────────────────────
   ROW — starts invisible, JS fades it in
───────────────────────────────────────────── */
    .lgb-row {
      display: flex;
      border-bottom: 1px solid rgba(255, 255, 255, .01);
      /* invisible; opacity set to 1 by JS when it is time */
      opacity: 0;
    }

    /* WBS levels */
    .lgb-wl0 {
      min-height: 44px;
      background: linear-gradient(90deg, rgba(5, 16, 46, .97), rgba(2, 10, 30, .93));
      border-left: 3px solid #3b82f6;
    }

    .lgb-wl1 {
      min-height: 37px;
      background: linear-gradient(90deg, rgba(1, 10, 24, .94), rgba(0, 7, 16, .9));
      border-left: 3px solid #06b6d4;
    }

    .lgb-wl2 {
      min-height: 31px;
      background: linear-gradient(90deg, rgba(4, 2, 22, .9), rgba(2, 1, 14, .86));
      border-left: 3px solid #818cf8;
    }

    .lgb-wl3,
    .lgb-wl4 {
      min-height: 27px;
      background: rgba(1, 0, 10, .8);
      border-left: 3px solid #a5b4fc;
    }

    .lgb-act {
      min-height: 26px;
      background: rgba(0, 0, 6, .58);
      border-left: 2px solid transparent;
    }

    .lgb-crit {
      min-height: 26px;
      background: rgba(4, 0, 0, .65);
      border-left: 2px solid rgba(239, 68, 68, .4);
    }

    .lgb-lc {
      width: 300px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      padding: 0 10px;
      border-right: 1px solid rgba(59, 130, 246, .04);
      overflow: hidden;
    }

    .lgb-indent {
      flex-shrink: 0;
    }

    .lgb-lbl {
      flex: 1;
      min-width: 0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      line-height: 1.2;
    }

    .lgb-wl0 .lgb-lbl {
      font-size: 12.5px;
      font-weight: 800;
      color: #dbeafe;
    }

    .lgb-wl1 .lgb-lbl {
      font-size: 12px;
      font-weight: 700;
      color: #cffafe;
    }

    .lgb-wl2 .lgb-lbl {
      font-size: 11.5px;
      font-weight: 700;
      color: #e0e7ff;
    }

    .lgb-wl3 .lgb-lbl,
    .lgb-wl4 .lgb-lbl {
      font-size: 11px;
      font-weight: 600;
      color: #c7d2fe;
    }

    .lgb-act .lgb-lbl {
      font-size: 11px;
      font-weight: 400;
      color: #14283a;
    }

    .lgb-crit .lgb-lbl {
      font-size: 11px;
      font-weight: 500;
      color: #fca5a5;
    }

    .lgb-meta {
      font-family: 'JetBrains Mono', monospace;
      font-size: 7.5px;
      color: #061018;
      flex-shrink: 0;
      padding: 0 3px;
    }

    .lgb-rc {
      flex: 1;
      position: relative;
      overflow: hidden;
      min-height: inherit;
    }

    .lgb-gl {
      position: absolute;
      top: 0;
      bottom: 0;
      width: 1px;
      background: rgba(255, 255, 255, .009);
      pointer-events: none;
    }

    .lgb-gl.maj {
      background: rgba(59, 130, 246, .028);
    }

    /* ─────────────────────────────────────────────
   WBS SUMMARY BAR
   Appears with the row, width pre-set at placeholder.
   After CPM → width/left transition to real values.
───────────────────────────────────────────── */
    .lgb-sbar {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      height: 6px;
      border-radius: 1px;
      left: 0;
      width: 0;
      background: rgba(255, 255, 255, .48);
      /* no transition by default — set by JS when needed */
    }

    .lgb-sbar::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 2px;
      background: var(--sc, #3b82f6);
    }

    /* ─────────────────────────────────────────────
   ACTIVITY BAR
   Drawn with a glowing right-edge tip.
   width animates from 0 → target when row appears.
   After CPM → left+width transition to real values.
───────────────────────────────────────────── */
    .lgb-bar {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      height: 14px;
      border-radius: 3px;
      left: 0;
      width: 0;
      display: flex;
      align-items: center;
      overflow: hidden;
    }

    .lgb-bar::after {
      content: '';
      position: absolute;
      inset: 0 0 auto;
      height: 36%;
      background: rgba(255, 255, 255, .09);
      border-radius: 3px 3px 0 0;
    }

    /* neon drawing tip */
    .lgb-bar::before {
      content: '';
      position: absolute;
      top: 0;
      right: -1px;
      bottom: 0;
      width: 3px;
      background: rgba(255, 255, 255, .92);
      box-shadow: 0 0 8px 2px currentColor, 0 0 14px 4px rgba(255, 255, 255, .18);
      border-radius: 0 3px 3px 0;
      opacity: 0;
    }

    .lgb-bar.drawing::before {
      opacity: 1;
    }

    .lgb-bar.drawn::before {
      opacity: 0;
      transition: opacity .15s .02s;
    }

    .lgb-bar-lbl {
      font-size: 8px;
      font-weight: 700;
      color: rgba(255, 255, 255, .84);
      padding: 0 5px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      position: relative;
      z-index: 1;
      opacity: 0;
      transition: opacity .18s .12s;
    }

    .lgb-bar.drawn .lgb-bar-lbl {
      opacity: 1;
    }

    .lgb-bar.crit-glow {
      animation: lgb-cglow 2.3s ease infinite;
    }

    @keyframes lgb-cglow {

      0%,
      100% {
        box-shadow: 0 0 5px rgba(239, 68, 68, .18)
      }

      50% {
        box-shadow: 0 0 16px rgba(239, 68, 68, .55)
      }
    }

    /* ARROWS */
    .lgb-arrows {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 6;
      overflow: visible;
    }

    .lgb-arrow {
      fill: none;
      stroke-width: 1.5;
    }

    .lgb-arrow.fs {
      stroke: rgba(6, 182, 212, .48);
    }

    .lgb-arrow.ss {
      stroke: rgba(34, 197, 94, .44);
    }

    .lgb-arrow.ff {
      stroke: rgba(139, 92, 246, .44);
    }

    /* SKELETON */
    .lgb-skel {
      display: flex;
      border-bottom: 1px solid rgba(255, 255, 255, .008);
      opacity: 0;
      transition: opacity .22s ease;
    }

    .lgb-skel.on {
      opacity: 1;
    }

    @keyframes lgb-shim {
      0% {
        background-position: -400px 0
      }

      100% {
        background-position: 400px 0
      }
    }

    .lgb-shim {
      background: linear-gradient(90deg, rgba(255, 255, 255, .01) 0%, rgba(59, 130, 246, .044) 38%, rgba(6, 182, 212, .052) 50%, rgba(59, 130, 246, .044) 62%, rgba(255, 255, 255, .01) 100%);
      background-size: 400px 100%;
      animation: lgb-shim 2.2s linear infinite;
      border-radius: 3px;
    }

    .lgb-skel.s0 {
      min-height: 44px;
      border-left: 3px solid rgba(59, 130, 246, .18);
      background: rgba(5, 16, 46, .6);
    }

    .lgb-skel.s1 {
      min-height: 37px;
      border-left: 3px solid rgba(6, 182, 212, .14);
      background: rgba(1, 10, 24, .55);
    }

    .lgb-skel.s2 {
      min-height: 26px;
      border-left: 2px solid transparent;
      background: rgba(0, 0, 6, .4);
    }

    .lgb-skel-lc {
      width: 300px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 0 12px;
      border-right: 1px solid rgba(59, 130, 246, .035);
    }

    .lgb-skel-rc {
      flex: 1;
      display: flex;
      align-items: center;
      padding: 0 10px;
    }

    .lgb-skel-dot {
      width: 8px;
      height: 8px;
      border-radius: 2px;
      flex-shrink: 0;
    }

    .lgb-skel.s0 .lgb-skel-dot {
      background: rgba(59, 130, 246, .22);
    }

    .lgb-skel.s1 .lgb-skel-dot {
      background: rgba(6, 182, 212, .18);
    }

    .lgb-skel.s2 .lgb-skel-dot {
      background: rgba(34, 197, 94, .14);
    }

    .lgb-skel-lbl {
      height: 9px;
      border-radius: 3px;
      flex: 1;
    }

    .lgb-skel.s0 .lgb-skel-lbl {
      height: 11px;
    }

    .lgb-skel-bar {
      height: 7px;
      border-radius: 3px;
      width: 0;
      transition: width 1s cubic-bezier(.2, 1, .3, 1);
    }

    .lgb-skel.s0 .lgb-skel-bar {
      height: 5px;
      background: rgba(255, 255, 255, .1);
    }

    .lgb-skel.s1 .lgb-skel-bar {
      height: 5px;
      background: rgba(255, 255, 255, .08);
    }

    .lgb-skel.s2 .lgb-skel-bar {
      height: 9px;
      background: rgba(34, 197, 94, .13);
    }

    /* BOTTOM STEPS */
    .lgb-bottom {
      height: 42px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      padding: 0 12px;
      gap: 3px;
      background: rgba(0, 0, 6, .99);
      border-top: 1px solid rgba(14, 36, 72, .09);
      z-index: 20;
      overflow: hidden;
    }

    .lgb-step {
      display: flex;
      align-items: center;
      gap: 4px;
      padding: 4px 8px;
      border-radius: 999px;
      border: 1px solid rgba(10, 24, 52, .12);
      background: rgba(0, 2, 10, .7);
      font-size: 8.5px;
      font-weight: 700;
      color: #06121a;
      transition: all .28s;
      white-space: nowrap;
      flex-shrink: 0;
    }

    .lgb-step.done {
      border-color: rgba(34, 197, 94, .14);
      color: #22c55e;
      background: rgba(0, 4, 2, .7);
    }

    .lgb-step.active {
      border-color: rgba(59, 130, 246, .28);
      color: #93c5fd;
      background: rgba(2, 12, 36, .9);
      box-shadow: 0 0 8px rgba(59, 130, 246, .07);
    }

    .lgb-snum {
      width: 14px;
      height: 14px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 7.5px;
      background: rgba(255, 255, 255, .018);
      flex-shrink: 0;
    }

    .lgb-step.active .lgb-snum {
      background: rgba(59, 130, 246, .14);
      animation: lgb-pulse .85s ease infinite;
    }

    .lgb-bot-msg {
      margin-left: auto;
      flex-shrink: 0;
      font-family: 'JetBrains Mono', monospace;
      font-size: 9px;
      color: #06121a;
      padding-left: 10px;
      border-left: 1px solid rgba(22, 45, 90, .07);
    }

    /* PROGRESS */
    .lgb-prog {
      height: 3px;
      flex-shrink: 0;
      background: rgba(59, 130, 246, .04);
    }

    .lgb-beam {
      height: 100%;
      background: linear-gradient(90deg, #1a56db, #0891b2, #06b6d4);
      width: 0;
      transition: width .5s cubic-bezier(.2, 1, .3, 1);
    }

    @keyframes lgb-done {
      0% {
        background: rgba(34, 197, 94, 0)
      }

      20% {
        background: rgba(34, 197, 94, .02)
      }

      100% {
        background: rgba(34, 197, 94, 0)
      }
    }

    .lgb-gantt.done-flash {
      animation: lgb-done 2.5s ease forwards;
    }

/* styles/tabs/031-p6-safe-export-style.css */
#p6-export-dock-safe {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
      padding: 10px 12px;
      margin: 0 0 10px 0;
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: 12px;
      background: linear-gradient(180deg, rgba(15, 23, 42, .82), rgba(2, 6, 23, .78));
      box-shadow: 0 10px 26px rgba(0, 0, 0, .18)
    }

    #p6-export-dock-safe .p6-title {
      font-weight: 800;
      color: #dbeafe;
      letter-spacing: .2px
    }

    #p6-export-dock-safe .p6-note {
      font-size: 12px;
      color: #94a3b8
    }

    #p6-export-dock-safe .p6-sp {
      flex: 1 1 auto
    }

    #p6-export-dock-safe .p6-safe-btn {
      appearance: none;
      border: 1px solid rgba(255, 255, 255, .14);
      background: rgba(255, 255, 255, .03);
      color: #eef2ff;
      padding: 8px 12px;
      border-radius: 10px;
      font-weight: 800;
      cursor: pointer
    }

    #p6-export-dock-safe .p6-safe-btn.xer {
      border-color: rgba(251, 191, 36, .32);
      color: #fbbf24;
      background: rgba(251, 191, 36, .05)
    }

    #p6-export-dock-safe .p6-safe-btn.xml {
      border-color: rgba(245, 158, 11, .28);
      color: #f59e0b;
      background: rgba(245, 158, 11, .04)
    }

/* styles/tabs/032-pcal-v11-patch-style.css */
#pcalActModal .pcal-modal-box {
      width: min(1120px, 96vw) !important;
    }

    #pcalActModal .pcal-modal-body-v11 {
      max-height: 72vh;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .pcal-actpick-wrap {
      margin-top: 4px;
      border: 1px solid rgba(139, 92, 246, .16);
      border-radius: 12px;
      background: rgba(4, 10, 26, .76);
      display: flex;
      flex-direction: column;
      min-height: 320px;
      overflow: hidden;
    }

    .pcal-actpick-hdr {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
      padding: 10px 12px;
      border-bottom: 1px solid rgba(139, 92, 246, .12);
      background: rgba(7, 16, 38, .9);
    }

    .pcal-actpick-title {
      font-size: 10.5px;
      font-weight: 800;
      letter-spacing: .8px;
      text-transform: uppercase;
      color: #bfa7ff;
    }

    .pcal-actpick-search {
      flex: 1;
      min-width: 200px;
      background: rgba(3, 8, 22, .9);
      border: 1px solid rgba(148, 163, 184, .14);
      border-radius: 8px;
      padding: 8px 11px;
      color: var(--tx);
      font-size: 12px;
      font-family: inherit;
      outline: none;
    }

    .pcal-actpick-search:focus {
      border-color: rgba(139, 92, 246, .38);
      box-shadow: 0 0 0 3px rgba(139, 92, 246, .08);
    }

    .pcal-actpick-stat {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      color: var(--mu);
    }

    .pcal-actpick-actions {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
    }

    .pcal-actpick-btn {
      padding: 6px 10px;
      border-radius: 8px;
      border: 1px solid rgba(148, 163, 184, .14);
      background: rgba(5, 12, 28, .8);
      color: var(--so);
      font-size: 10.5px;
      font-weight: 700;
      cursor: pointer;
      font-family: inherit;
      transition: all .15s;
    }

    .pcal-actpick-btn:hover {
      border-color: rgba(139, 92, 246, .34);
      color: #ddd6fe;
      background: rgba(20, 24, 54, .9);
    }

    .pcal-actpick-note {
      padding: 8px 12px;
      border-bottom: 1px solid rgba(139, 92, 246, .08);
      font-size: 11px;
      color: var(--mu);
      background: rgba(3, 8, 22, .72);
    }

    .pcal-actpick-body {
      flex: 1;
      overflow: auto;
      display: flex;
      flex-direction: column;
      gap: 4px;
      padding: 10px;
    }

    .pcal-actpick-empty {
      padding: 32px 12px;
      text-align: center;
      font-size: 12px;
      color: var(--mu);
    }

    .pcal-actrow {
      display: grid;
      grid-template-columns: 28px 90px minmax(260px, 1.8fr) 90px 100px minmax(240px, 1.1fr);
      gap: 10px;
      align-items: center;
      padding: 9px 10px;
      border-radius: 10px;
      border: 1px solid rgba(148, 163, 184, .08);
      background: rgba(5, 12, 28, .76);
      cursor: pointer;
      transition: all .12s;
    }

    .pcal-actrow:hover {
      border-color: rgba(139, 92, 246, .24);
      background: rgba(12, 22, 48, .88);
    }

    .pcal-actrow.sel {
      border-color: rgba(139, 92, 246, .42);
      background: rgba(38, 20, 74, .28);
      box-shadow: 0 0 0 1px rgba(139, 92, 246, .1) inset;
    }

    .pcal-actrow input {
      accent-color: #8b5cf6;
      cursor: pointer;
    }

    .pcal-actid {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 800;
      color: #93c5fd;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .pcal-actname {
      min-width: 0;
    }

    .pcal-actname .n {
      font-size: 12px;
      font-weight: 700;
      color: var(--tx);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .pcal-actname .s {
      font-size: 10px;
      color: var(--mu);
      margin-top: 2px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .pcal-actdur {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 800;
      color: #fbbf24;
      white-space: nowrap;
    }

    .pcal-actdates {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      color: #8fb3d6;
      white-space: nowrap;
    }

    .pcal-actbar-wrap {
      position: relative;
      height: 28px;
      border-radius: 8px;
      background: rgba(2, 6, 18, .82);
      border: 1px solid rgba(59, 130, 246, .08);
      overflow: hidden;
    }

    .pcal-actbar {
      position: absolute;
      top: 6px;
      height: 14px;
      border-radius: 7px;
      background: linear-gradient(90deg, rgba(139, 92, 246, .96), rgba(59, 130, 246, .75));
      box-shadow: 0 2px 10px rgba(59, 130, 246, .22);
      min-width: 10px;
    }

    .pcal-actbar.crit {
      background: linear-gradient(90deg, rgba(239, 68, 68, .96), rgba(245, 158, 11, .82));
      box-shadow: 0 2px 12px rgba(239, 68, 68, .2);
    }

    .pcal-actbar-lbl {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 9px;
      font-weight: 800;
      color: #dbeafe;
      pointer-events: none;
      mix-blend-mode: screen;
    }

    @media(max-width:980px) {
      .pcal-actrow {
        grid-template-columns: 28px 86px minmax(220px, 1.5fr) 80px 100px;
      }

      .pcal-actbar-wrap {
        grid-column: 1/-1;
      }
    }

/* styles/tabs/033-pcal-v12-style.css */
.pcal-top-actions {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
      padding: 12px 14px;
      margin: 0 16px 12px;
      border: 1px solid rgba(96, 165, 250, .14);
      border-radius: 14px;
      background: linear-gradient(180deg, rgba(8, 18, 40, .92), rgba(5, 11, 25, .85));
      box-shadow: 0 12px 40px rgba(2, 6, 23, .18)
    }

    .pcal-top-actions-left {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap
    }

    .pcal-top-badge {
      padding: 5px 10px;
      border-radius: 999px;
      border: 1px solid rgba(139, 92, 246, .26);
      background: rgba(76, 29, 149, .18);
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .7px;
      text-transform: uppercase;
      color: #d8b4fe
    }

    .pcal-top-note {
      font-size: 11.5px;
      color: var(--mu)
    }

    .pcal-top-actions-right {
      display: flex;
      gap: 8px;
      flex-wrap: wrap
    }

    .pcal-planner-modal {
      position: fixed;
      inset: 0;
      display: none;
      flex-direction: column;
      background: #01060f;
      z-index: 9999;
      overflow: hidden
    }

    .pcal-planner-modal.open {
      display: flex
    }

    .pcal-planner-box {
      width: 100%;
      height: 100%;
      display: flex;
      flex-direction: column;
      border: none;
      border-radius: 0;
      overflow: hidden;
      background: linear-gradient(180deg, #071327, #040c1b)
    }

    .pcal-planner-hdr {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      padding: 16px 18px;
      border-bottom: 1px solid rgba(96, 165, 250, .12);
      background: linear-gradient(180deg, rgba(9, 22, 46, .96), rgba(6, 15, 31, .92))
    }

    .pcal-planner-title {
      font-size: 19px;
      font-weight: 800;
      color: var(--st)
    }

    .pcal-planner-sub {
      font-size: 11.5px;
      color: var(--mu);
      margin-top: 4px
    }

    .pcal-planner-hdr-actions {
      display: flex;
      gap: 8px;
      flex-wrap: wrap
    }

    .pcal-planner-toolbar {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      padding: 12px 18px;
      border-bottom: 1px solid rgba(96, 165, 250, .08);
      background: rgba(3, 9, 21, .78)
    }

    .pcal-planner-search {
      flex: 1;
      min-width: 260px;
      background: rgba(2, 8, 20, .94);
      border: 1px solid rgba(148, 163, 184, .16);
      border-radius: 10px;
      padding: 10px 12px;
      color: var(--tx);
      font-size: 12px;
      font-family: inherit;
      outline: none
    }

    .pcal-planner-search:focus {
      border-color: rgba(139, 92, 246, .42);
      box-shadow: 0 0 0 3px rgba(139, 92, 246, .08)
    }

    .pcal-planner-cal {
      min-width: 220px;
      max-width: 320px
    }

    .pcal-planner-body {
      flex: 1;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 300px;
      overflow: hidden;
      min-height: 0
    }

    .pcal-planner-main {
      display: flex;
      flex-direction: column;
      min-width: 0;
      border-inline-end: 1px solid rgba(96, 165, 250, .08);
      overflow: hidden
    }

    .pcal-planner-headgrid,
    .pcal-plan-row {
      display: grid;
      grid-template-columns: 48px minmax(300px, 2fr) 200px 80px 160px;
      gap: 10px;
      align-items: center
    }

    .pcal-planner-headgrid {
      padding: 11px 18px;
      border-bottom: 1px solid rgba(148, 163, 184, .08);
      background: rgba(8, 18, 40, .94);
      font-size: 10px;
      font-weight: 800;
      color: #b7c9e8;
      text-transform: uppercase;
      letter-spacing: .8px;
      flex-shrink: 0
    }

    .pcal-planner-rows {
      flex: 1;
      overflow-y: auto;
      overflow-x: hidden;
      padding: 10px 12px 14px;
      display: flex;
      flex-direction: column;
      gap: 6px;
      scrollbar-width: thin;
      scrollbar-color: rgba(59, 130, 246, .18) transparent;
      min-height: 0
    }

    .pcal-planner-empty {
      padding: 38px 16px;
      text-align: center;
      color: var(--mu);
      font-size: 13px
    }

    .pcal-plan-row {
      padding: 9px 12px;
      border: 1px solid rgba(148, 163, 184, .08);
      border-radius: 12px;
      background: rgba(6, 14, 32, .82);
      cursor: pointer;
      transition: all .14s
    }

    .pcal-plan-row:hover {
      border-color: rgba(139, 92, 246, .24);
      background: rgba(10, 20, 44, .92)
    }

    .pcal-plan-row.act.selected {
      border-color: rgba(139, 92, 246, .42);
      background: rgba(54, 29, 104, .22);
      box-shadow: 0 0 0 1px rgba(139, 92, 246, .12) inset
    }

    .pcal-plan-row.wbs {
      background: linear-gradient(90deg, rgba(10, 23, 48, .95), rgba(8, 14, 29, .92));
      border-color: rgba(96, 165, 250, .12)
    }

    .pcal-plan-row.lv1 .pcal-plan-cell.name {
      padding-inline-start: 8px
    }

    .pcal-plan-row.lv2 .pcal-plan-cell.name {
      padding-inline-start: 26px
    }

    .pcal-plan-row.lv3 .pcal-plan-cell.name {
      padding-inline-start: 44px
    }

    .pcal-plan-row.lv4 .pcal-plan-cell.name {
      padding-inline-start: 62px
    }

    .pcal-plan-row.lv5 .pcal-plan-cell.name {
      padding-inline-start: 80px
    }

    .pcal-plan-row.lv6 .pcal-plan-cell.name {
      padding-inline-start: 98px
    }

    .pcal-plan-row.lv7 .pcal-plan-cell.name {
      padding-inline-start: 116px
    }

    .pcal-plan-row.lv8 .pcal-plan-cell.name {
      padding-inline-start: 134px
    }

    .pcal-plan-cell {
      min-width: 0
    }

    .pcal-plan-cell.check {
      display: flex;
      align-items: center;
      justify-content: center
    }

    .pcal-plan-cell.check input {
      accent-color: #8b5cf6;
      transform: translateY(1px);
      cursor: pointer
    }

    .pcal-subtree-btn {
      width: 28px;
      height: 28px;
      border-radius: 9px;
      border: 1px solid rgba(96, 165, 250, .14);
      background: rgba(4, 10, 22, .9);
      color: #c7d2fe;
      font-size: 13px;
      cursor: pointer
    }

    .pcal-subtree-btn:hover {
      border-color: rgba(139, 92, 246, .34);
      color: #e9ddff
    }

    .pcal-plan-tw {
      width: 24px;
      height: 24px;
      border: none;
      background: transparent;
      color: #c4b5fd;
      font-size: 14px;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center
    }

    .pcal-plan-tw.ghost {
      opacity: .35;
      cursor: default
    }

    .pcal-plan-cell.name {
      display: flex;
      align-items: center;
      gap: 8px;
      min-width: 0
    }

    .pcal-plan-code {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10px;
      font-weight: 800;
      color: #93c5fd;
      white-space: nowrap
    }

    .pcal-plan-name {
      font-size: 12px;
      font-weight: 700;
      color: var(--tx);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis
    }

    .pcal-plan-sub,
    .pcal-plan-count {
      font-size: 10px;
      color: var(--mu);
      white-space: nowrap
    }

    .pcal-plan-cell.cal {
      display: flex;
      align-items: center
    }

    .pcal-plan-chip {
      display: inline-flex;
      align-items: center;
      max-width: 100%;
      padding: 5px 10px;
      border-radius: 999px;
      border: 1px solid rgba(139, 92, 246, .24);
      background: rgba(76, 29, 149, .17);
      color: #e9d5ff;
      font-size: 10.5px;
      font-weight: 800;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis
    }

    .pcal-plan-chip.muted {
      border-color: rgba(148, 163, 184, .18);
      background: rgba(71, 85, 105, .18);
      color: #cbd5e1
    }

    .pcal-plan-cell.dur,
    .pcal-plan-cell.dates {
      font-family: 'JetBrains Mono', monospace;
      font-size: 10.5px;
      color: #c8d7ef
    }

    .pcal-plan-barwrap {
      position: relative;
      height: 30px;
      border-radius: 10px;
      overflow: hidden;
      background: rgba(2, 8, 20, .9);
      border: 1px solid rgba(96, 165, 250, .10)
    }

    .pcal-plan-bar {
      position: absolute;
      top: 7px;
      height: 14px;
      border-radius: 999px;
      background: linear-gradient(90deg, rgba(139, 92, 246, .98), rgba(59, 130, 246, .82));
      box-shadow: 0 2px 14px rgba(59, 130, 246, .28);
      min-width: 10px
    }

    .pcal-plan-bar.crit {
      background: linear-gradient(90deg, rgba(239, 68, 68, .96), rgba(245, 158, 11, .86));
      box-shadow: 0 2px 14px rgba(239, 68, 68, .24)
    }

    .pcal-plan-bar.wbs {
      background: linear-gradient(90deg, rgba(148, 163, 184, .42), rgba(96, 165, 250, .32));
      box-shadow: none
    }

    .pcal-plan-barlabel {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 9px;
      font-weight: 800;
      color: #cfe0ff;
      pointer-events: none
    }

    .pcal-planner-side {
      padding: 12px;
      overflow: auto;
      display: flex;
      flex-direction: column;
      gap: 10px;
      background: rgba(4, 9, 20, .92);
      scrollbar-width: thin;
      scrollbar-color: rgba(59, 130, 246, .18) transparent
    }

    .pcal-side-card {
      border: 1px solid rgba(96, 165, 250, .12);
      border-radius: 14px;
      background: rgba(8, 15, 32, .88);
      padding: 14px
    }

    .pcal-side-title {
      font-size: 11px;
      font-weight: 800;
      color: #d8b4fe;
      letter-spacing: .7px;
      text-transform: uppercase;
      margin-bottom: 10px
    }

    .pcal-side-text {
      font-size: 11.5px;
      color: var(--mu);
      line-height: 1.7
    }

    .pcal-side-metrics {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
      margin-bottom: 12px
    }

    .pcal-side-metric {
      border: 1px solid rgba(148, 163, 184, .10);
      border-radius: 12px;
      background: rgba(2, 6, 18, .66);
      padding: 12px 8px;
      text-align: center
    }

    .pcal-side-metric span {
      display: block;
      font-size: 24px;
      font-weight: 800;
      color: #dbeafe;
      margin-bottom: 4px
    }

    .pcal-side-metric small {
      font-size: 10px;
      color: var(--mu);
      text-transform: uppercase;
      letter-spacing: .5px
    }

    .pcal-register {
      display: flex;
      flex-direction: column;
      gap: 8px
    }

    .pcal-reg-item {
      border: 1px solid rgba(148, 163, 184, .10);
      border-radius: 12px;
      background: rgba(2, 6, 18, .6);
      padding: 10px
    }

    .pcal-reg-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 5px
    }

    .pcal-reg-top b {
      font-family: 'JetBrains Mono', monospace;
      font-size: 12px;
      color: #f8fafc
    }

    .pcal-reg-sub {
      font-size: 10.5px;
      color: var(--mu);
      line-height: 1.5
    }

    .pcal-register-empty {
      font-size: 11px;
      color: var(--mu)
    }

    @media(max-width:1320px) {
      .pcal-planner-body {
        grid-template-columns: minmax(0, 1fr)
      }

      .pcal-planner-side {
        border-top: 1px solid rgba(96, 165, 250, .08)
      }
    }

    @media(max-width:980px) {
      .pcal-top-actions {
        margin: 0 10px 10px;
        padding: 10px
      }

      .pcal-planner-box {
        width: 100vw;
        height: 100vh;
        border-radius: 0
      }

      .pcal-planner-headgrid,
      .pcal-plan-row {
        grid-template-columns: 42px minmax(200px, 1.4fr) 150px 70px;
      }

      .pcal-plan-cell.dates {
        display: none
      }
    }

/* tabs/gantt/styles/034-gantt-edge-link-handle-style.css */
#ganttOut #v9-gantt-outer .p6-right {
              position: relative;
              overflow: visible;
            }

            #ganttOut .ga-edge-link-handle {
              position: absolute;
              top: 50%;
              width: 14px;
              height: 14px;
              border-radius: 50%;
              border: 1px solid rgba(147, 197, 253, .6);
              background: rgba(147, 197, 253, .16);
              box-shadow: 0 0 0 0 rgba(31, 78, 121, 0), 0 0 12px rgba(31, 78, 121, .16);
              transform: translate(-50%, -50%) scale(.7);
              transform-origin: center center;
              opacity: 0;
              pointer-events: none;
              cursor: crosshair;
              transition: opacity .14s ease, transform .14s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
              z-index: 19;
            }

            #ganttOut .ga-edge-link-handle::before {
              content: '';
              position: absolute;
              inset: -4px -80px -4px -80px;
              border-radius: 8px;
            }

            #ganttOut .ga-edge-link-handle.is-visible,
            #ganttOut .ga-edge-link-handle.is-dragging {
              opacity: 1;
              pointer-events: auto;
              transform: translate(-50%, -50%) scale(1);
            }

            #ganttOut .ga-edge-link-handle:hover,
            #ganttOut .ga-edge-link-handle.is-dragging {
              background: rgba(191, 219, 254, .35);
              border-color: rgba(191, 219, 254, .92);
              box-shadow: 0 0 0 4px rgba(31, 78, 121, .12), 0 0 18px rgba(79, 127, 168, .36);
            }

            #ganttOut .p6-row.ga-link-source .p6-right {
              box-shadow: inset 0 0 0 1px rgba(79, 127, 168, .22);
            }

            #ganttOut .p6-row.ga-link-target .p6-right {
              box-shadow: inset 0 0 0 1px rgba(34, 197, 94, .28);
              background-image: linear-gradient(90deg, rgba(34, 197, 94, .06), transparent 58%);
            }

            #ganttOut #ga-link-drag-overlay {
              position: absolute;
              left: 0;
              top: 0;
              pointer-events: none;
              overflow: visible;
              z-index: 18;
            }

            #ganttOut #ga-link-drag-overlay .ga-link-draft {
              fill: none;
              stroke: rgba(191, 219, 254, .95);
              stroke-width: 2.2;
              stroke-linecap: round;
              stroke-dasharray: 7 6;
              filter: drop-shadow(0 0 8px rgba(79, 127, 168, .22));
            }

            #ganttOut #ga-link-drag-overlay .ga-link-end {
              fill: rgba(191, 219, 254, .95);
              filter: drop-shadow(0 0 8px rgba(79, 127, 168, .25));
            }

            body[data-gantt-theme="light"] #ganttOut .ga-edge-link-handle {
              border-color: rgba(30, 64, 175, .45);
              background: rgba(79, 127, 168, .18);
              box-shadow: 0 0 0 0 rgba(31, 78, 121, 0), 0 0 10px rgba(31, 78, 121, .12);
            }

            body[data-gantt-theme="light"] #ganttOut .p6-row.ga-link-target .p6-right {
              background-image: linear-gradient(90deg, rgba(34, 197, 94, .07), transparent 58%);
            }

/* styles/tabs/035-docai-fix4-style.css */
#tp-docai .docai-control-hero {
              grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr) !important;
              padding: 24px 28px 20px !important;
              align-items: center !important;
            }

            #tp-docai .docai-hero-title {
              font-size: 24px !important;
              max-width: 640px !important;
            }

            #tp-docai .docai-hero-sub {
              max-width: 640px !important;
              font-size: 13px !important;
              line-height: 1.7 !important;
            }

            #tp-docai .docai-hero-actions {
              gap: 10px !important
            }

            #tp-docai #dst-sow .docai-launch-panel,
            #tp-docai #dst-planning .docai-launch-panel {
              display: none !important;
            }

            #tp-docai .docai-workspace {
              padding: 16px 22px 24px !important;
            }

            #tp-docai .docai-top-cta {
              display: grid;
              grid-template-columns: minmax(0, 1fr) auto;
              gap: 16px;
              align-items: center;
              padding: 16px 18px;
              border-radius: 18px;
              background: linear-gradient(135deg, rgba(8, 15, 34, .94), rgba(12, 22, 48, .82));
              border: 1px solid rgba(99, 102, 241, .2);
              box-shadow: 0 18px 46px rgba(2, 6, 23, .26);
            }

            #tp-docai .docai-top-cta-copy {
              display: flex;
              flex-direction: column;
              gap: 7px;
              min-width: 0
            }

            #tp-docai .docai-top-cta-kicker {
              font-size: 10px;
              font-weight: 900;
              letter-spacing: .18em;
              text-transform: uppercase;
              color: #8b5cf6
            }

            #tp-docai .docai-top-cta-title {
              font-size: 15px;
              font-weight: 900;
              color: #eef2ff;
              line-height: 1.2
            }

            #tp-docai .docai-top-cta-sub {
              font-size: 12px;
              line-height: 1.6;
              color: #94a3b8
            }

            #tp-docai .docai-top-cta-tags {
              display: flex;
              flex-wrap: wrap;
              gap: 7px
            }

            #tp-docai .docai-top-cta-tag {
              display: inline-flex;
              align-items: center;
              gap: 6px;
              padding: 5px 10px;
              border-radius: 999px;
              font-size: 10px;
              font-weight: 800;
              letter-spacing: .06em;
              text-transform: uppercase;
              color: #c7d2fe;
              background: rgba(99, 102, 241, .14);
              border: 1px solid rgba(99, 102, 241, .24);
            }

            #tp-docai .docai-top-cta-tag.good {
              color: #a7f3d0;
              background: rgba(16, 185, 129, .12);
              border-color: rgba(16, 185, 129, .22)
            }

            #tp-docai .docai-top-cta-tag.warn {
              color: #fde68a;
              background: rgba(245, 158, 11, .12);
              border-color: rgba(245, 158, 11, .24)
            }

            #tp-docai .docai-top-cta-tag.bad {
              color: #fca5a5;
              background: rgba(239, 68, 68, .12);
              border-color: rgba(239, 68, 68, .22)
            }

            #tp-docai .docai-primary-hero-btn {
              min-width: 260px;
              padding: 16px 24px;
              border-radius: 16px;
              border: 1px solid rgba(96, 165, 250, .44);
              background:
                linear-gradient(135deg, rgba(96, 165, 250, .25), rgba(59, 130, 246, .15)),
                linear-gradient(135deg, #2563eb, #4f46e5 55%, #7c3aed 100%);
              color: #fff;
              font-size: 15px;
              font-weight: 900;
              cursor: pointer;
              box-shadow: 0 14px 36px rgba(37, 99, 235, .34);
              transition: transform .22s ease, box-shadow .22s ease, opacity .2s ease;
            }

            #tp-docai .docai-primary-hero-btn:hover {
              transform: translateY(-2px);
              box-shadow: 0 18px 42px rgba(59, 130, 246, .42)
            }

            #tp-docai .docai-primary-hero-btn:disabled {
              opacity: .55;
              cursor: not-allowed;
              transform: none;
              box-shadow: none
            }

            #tp-docai .docai-pres-hero {
              min-height: auto !important
            }

            #tp-docai .docai-pres-hero-inner {
              padding: 34px 34px 28px !important
            }

            #tp-docai .docai-pres-main-title {
              font-size: 46px !important;
              max-width: 920px !important
            }

            #tp-docai .docai-pres-subtitle {
              max-width: 980px
            }

            #tp-docai .docai-pres-facts {
              gap: 14px !important
            }

            #tp-docai .docai-pres-fact {
              transition: transform .3s ease, border-color .3s ease
            }

            #tp-docai .docai-pres {
              --hero-shift: 0px;
            }

            #tp-docai .docai-pres-bg {
              transform: translateY(var(--hero-shift)) scale(1.04) !important;
              transition: transform .18s linear
            }

            #tp-docai .docai-pres-main {
              gap: 22px !important;
              padding-bottom: 34px !important
            }

            #tp-docai .docai-pres-nav-wrap {
              margin: 0 0 16px !important
            }

            #tp-docai .docai-pres-section {
              opacity: 0;
              transform: translateY(40px) scale(.985);
              transition: opacity .7s cubic-bezier(.16, 1, .3, 1), transform .7s cubic-bezier(.16, 1, .3, 1)
            }

            #tp-docai .docai-pres-section.in-view {
              opacity: 1;
              transform: none
            }

            #tp-docai .docai-pres-card {
              padding: 26px 26px 24px !important
            }

            #tp-docai .docai-pres-section-title {
              font-size: 22px !important
            }

            #tp-docai .docai-section-micro-note {
              margin-top: 8px;
              color: #94a3b8;
              font-size: 12px;
              line-height: 1.6
            }

            #tp-docai .docai-workstreams-toolbar {
              display: flex;
              flex-wrap: wrap;
              gap: 8px;
              margin-bottom: 16px
            }

            #tp-docai .docai-filter-btn {
              padding: 9px 14px;
              border-radius: 999px;
              border: 1px solid rgba(99, 102, 241, .18);
              background: rgba(15, 23, 42, .5);
              color: #cbd5e1;
              font-size: 12px;
              font-weight: 800
            }

            #tp-docai .docai-filter-btn.active {
              background: rgba(79, 70, 229, .2);
              border-color: rgba(129, 140, 248, .38);
              color: #fff
            }

            #tp-docai .docai-scope-grid {
              display: grid;
              grid-template-columns: repeat(2, minmax(0, 1fr));
              gap: 18px
            }

            #tp-docai .docai-scope-card {
              position: relative;
              border-radius: 22px;
              padding: 18px 18px 16px;
              background: linear-gradient(180deg, rgba(2, 8, 24, .9), rgba(8, 15, 34, .78));
              border: 1px solid rgba(148, 163, 184, .1);
              box-shadow: 0 18px 40px rgba(2, 6, 23, .22);
              overflow: hidden
            }

            #tp-docai .docai-scope-card::before {
              content: '';
              position: absolute;
              left: 0;
              top: 0;
              bottom: 0;
              width: 4px;
              background: var(--ws-color, #3b82f6)
            }

            #tp-docai .docai-scope-head {
              display: grid;
              grid-template-columns: auto 1fr auto;
              gap: 12px;
              align-items: start;
              margin-bottom: 14px
            }

            #tp-docai .docai-scope-num {
              width: 38px;
              height: 38px;
              border-radius: 12px;
              display: grid;
              place-items: center;
              background: rgba(15, 23, 42, .8);
              border: 1px solid rgba(148, 163, 184, .12);
              font-size: 12px;
              font-weight: 900;
              color: #e2e8f0
            }

            #tp-docai .docai-scope-title-wrap {
              display: flex;
              flex-direction: column;
              gap: 6px
            }

            #tp-docai .docai-scope-idline {
              display: flex;
              align-items: center;
              gap: 8px;
              flex-wrap: wrap
            }

            #tp-docai .docai-scope-id {
              padding: 5px 10px;
              border-radius: 999px;
              font-size: 11px;
              font-weight: 900;
              border: 1px solid rgba(255, 255, 255, .08)
            }

            #tp-docai .docai-scope-title {
              font-size: 18px;
              font-weight: 900;
              line-height: 1.18;
              color: #f8fafc
            }

            #tp-docai .docai-scope-summary {
              font-size: 13px;
              line-height: 1.7;
              color: #a8b3c7
            }

            #tp-docai .docai-scope-stat {
              padding: 6px 10px;
              border-radius: 999px;
              background: rgba(15, 23, 42, .86);
              border: 1px solid rgba(148, 163, 184, .12);
              font-size: 11px;
              font-weight: 800;
              color: #cbd5e1
            }

            #tp-docai .docai-scope-source {
              margin: 0 0 14px;
              display: inline-flex
            }

            #tp-docai .docai-scope-list {
              display: grid;
              gap: 10px
            }

            #tp-docai .docai-scope-point {
              display: grid;
              grid-template-columns: 32px 1fr;
              gap: 10px;
              padding: 11px 12px;
              border-radius: 16px;
              background: rgba(255, 255, 255, .025);
              border: 1px solid rgba(255, 255, 255, .04)
            }

            #tp-docai .docai-scope-point-no {
              width: 24px;
              height: 24px;
              border-radius: 999px;
              display: grid;
              place-items: center;
              background: rgba(15, 23, 42, .95);
              border: 1px solid rgba(148, 163, 184, .14);
              font-size: 11px;
              font-weight: 900;
              color: #fff
            }

            #tp-docai .docai-scope-point-main {
              display: flex;
              flex-direction: column;
              gap: 5px
            }

            #tp-docai .docai-scope-point-text {
              font-size: 13px;
              line-height: 1.68;
              color: #e5e7eb
            }

            #tp-docai .docai-item-ref {
              font-size: 11px;
              line-height: 1.5;
              color: #60a5fa;
              text-transform: uppercase;
              letter-spacing: .06em
            }

            #tp-docai .docai-item-more {
              margin-top: 8px;
              font-size: 12px;
              color: #94a3b8
            }

            #tp-docai .docai-excl-clean-grid {
              display: grid;
              grid-template-columns: repeat(2, minmax(0, 1fr));
              gap: 16px
            }

            #tp-docai .docai-excl-clean-card {
              border-radius: 18px;
              padding: 16px;
              background: linear-gradient(180deg, rgba(22, 8, 18, .62), rgba(10, 12, 28, .74));
              border: 1px solid rgba(239, 68, 68, .18);
              display: grid;
              gap: 10px
            }

            #tp-docai .docai-excl-top {
              display: flex;
              align-items: center;
              justify-content: space-between;
              gap: 12px
            }

            #tp-docai .docai-excl-num {
              font-size: 11px;
              font-weight: 900;
              color: #fca5a5;
              letter-spacing: .14em
            }

            #tp-docai .docai-excl-title {
              font-size: 15px;
              font-weight: 800;
              color: #fff;
              line-height: 1.45
            }

            #tp-docai .docai-excl-note {
              font-size: 12px;
              line-height: 1.7;
              color: #cbd5e1
            }

            #tp-docai .docai-excl-src {
              font-size: 11px;
              color: #fca5a5;
              text-transform: uppercase;
              letter-spacing: .08em
            }

            #tp-docai .docai-risk-clean-summary {
              display: grid;
              grid-template-columns: repeat(4, minmax(0, 1fr));
              gap: 14px;
              margin-bottom: 16px
            }

            #tp-docai .docai-risk-clean-stat {
              border-radius: 18px;
              padding: 16px;
              background: linear-gradient(180deg, rgba(15, 23, 42, .78), rgba(8, 12, 24, .92));
              border: 1px solid rgba(148, 163, 184, .1)
            }

            #tp-docai .docai-risk-clean-stat .v {
              font-size: 30px;
              font-weight: 900;
              line-height: 1;
              color: #fff
            }

            #tp-docai .docai-risk-clean-stat .k {
              margin-top: 8px;
              font-size: 11px;
              color: #94a3b8;
              letter-spacing: .16em;
              text-transform: uppercase
            }

            #tp-docai .docai-risk-clean-grid {
              display: grid;
              grid-template-columns: repeat(2, minmax(0, 1fr));
              gap: 16px
            }

            #tp-docai .docai-risk-clean-card {
              border-radius: 20px;
              padding: 16px 16px 14px;
              background: linear-gradient(180deg, rgba(6, 12, 28, .92), rgba(9, 14, 26, .84));
              border: 1px solid rgba(148, 163, 184, .11);
              box-shadow: 0 16px 36px rgba(2, 6, 23, .18)
            }

            #tp-docai .docai-risk-clean-top {
              display: flex;
              align-items: center;
              gap: 8px;
              flex-wrap: wrap;
              margin-bottom: 12px
            }

            #tp-docai .docai-risk-clean-id {
              font-size: 11px;
              font-weight: 900;
              color: #93c5fd;
              letter-spacing: .12em
            }

            #tp-docai .docai-risk-pill {
              display: inline-flex;
              align-items: center;
              padding: 5px 10px;
              border-radius: 999px;
              font-size: 11px;
              font-weight: 900;
              letter-spacing: .08em;
              text-transform: uppercase
            }

            #tp-docai .docai-risk-clean-title {
              font-size: 18px;
              font-weight: 900;
              line-height: 1.35;
              color: #fff;
              margin-bottom: 12px
            }

            #tp-docai .docai-risk-clean-rows {
              display: grid;
              gap: 10px
            }

            #tp-docai .docai-risk-clean-row {
              display: grid;
              grid-template-columns: 110px 1fr;
              gap: 10px;
              padding: 10px 12px;
              border-radius: 14px;
              background: rgba(255, 255, 255, .025);
              border: 1px solid rgba(255, 255, 255, .04)
            }

            #tp-docai .docai-risk-clean-row .lbl {
              font-size: 11px;
              color: #94a3b8;
              letter-spacing: .12em;
              text-transform: uppercase
            }

            #tp-docai .docai-risk-clean-row .val {
              font-size: 13px;
              line-height: 1.65;
              color: #e5e7eb
            }

            #tp-docai .docai-risk-clean-row .val b {
              color: #fff
            }

            #tp-docai .docai-risk-clean-row.compact .lbl {
              align-self: center
            }

            #tp-docai .docai-risk-clean-row.ref {
              background: rgba(59, 130, 246, .06);
              border-color: rgba(59, 130, 246, .12)
            }

            #tp-docai .docai-deep-clean {
              display: grid;
              gap: 18px
            }

            #tp-docai .docai-deep-clean-block {
              border-radius: 20px;
              padding: 18px;
              background: linear-gradient(180deg, rgba(3, 10, 24, .92), rgba(8, 14, 28, .86));
              border: 1px solid rgba(16, 185, 129, .12)
            }

            #tp-docai .docai-deep-clean-head {
              display: flex;
              align-items: center;
              justify-content: space-between;
              gap: 12px;
              margin-bottom: 14px
            }

            #tp-docai .docai-deep-clean-title {
              font-size: 16px;
              font-weight: 900;
              color: #fff
            }

            #tp-docai .docai-deep-count {
              padding: 6px 10px;
              border-radius: 999px;
              background: rgba(16, 185, 129, .12);
              border: 1px solid rgba(16, 185, 129, .2);
              font-size: 11px;
              font-weight: 800;
              color: #a7f3d0
            }

            #tp-docai .docai-deep-note-list {
              display: grid;
              gap: 10px
            }

            #tp-docai .docai-deep-note-item {
              display: grid;
              grid-template-columns: 28px 1fr;
              gap: 10px;
              padding: 10px 12px;
              border-radius: 14px;
              background: rgba(255, 255, 255, .03);
              border: 1px solid rgba(255, 255, 255, .04)
            }

            #tp-docai .docai-deep-note-item .n {
              width: 22px;
              height: 22px;
              border-radius: 999px;
              display: grid;
              place-items: center;
              background: rgba(15, 23, 42, .9);
              font-size: 11px;
              font-weight: 900;
              color: #fff
            }

            #tp-docai .docai-deep-note-item .t {
              font-size: 13px;
              line-height: 1.7;
              color: #e5e7eb
            }

            #tp-docai .docai-table-title {
              display: flex;
              align-items: center;
              justify-content: space-between;
              gap: 12px
            }

            #tp-docai .docai-table-wrap {
              overflow: auto;
              border-radius: 16px;
              border: 1px solid rgba(148, 163, 184, .08)
            }

            #tp-docai .docai-table th,
            #tp-docai .docai-table td {
              font-size: 12px !important;
              line-height: 1.55 !important;
              padding: 10px 12px !important;
              vertical-align: top
            }

            #tp-docai .docai-inline-subtitle {
              font-size: 12px;
              letter-spacing: .16em;
              text-transform: uppercase;
              color: #60a5fa;
              font-weight: 900;
              margin: 0 0 8px
            }

            @media (max-width:1100px) {
              #tp-docai .docai-control-hero {
                grid-template-columns: 1fr !important
              }

              #tp-docai .docai-top-cta {
                grid-template-columns: 1fr
              }

              #tp-docai .docai-scope-grid,
              #tp-docai .docai-risk-clean-grid,
              #tp-docai .docai-excl-clean-grid,
              #tp-docai .docai-risk-clean-summary {
                grid-template-columns: 1fr
              }
            }

            @media (max-width:760px) {
              #tp-docai .docai-control-hero {
                padding: 18px 16px !important
              }

              #tp-docai .docai-workspace {
                padding: 12px !important
              }

              #tp-docai .docai-pres-hero-inner {
                padding: 24px 18px 20px !important
              }

              #tp-docai .docai-pres-main-title {
                font-size: 34px !important
              }

              #tp-docai .docai-risk-clean-row {
                grid-template-columns: 1fr
              }

              #tp-docai .docai-scope-card {
                padding: 16px
              }
            }

/* styles/tabs/036-docai-fix6-remove-duplicate-cta.css */
#tp-docai #docaiTopCta,
            #tp-docai .docai-top-cta {
              display: none !important;
            }

/* styles/tabs/039-standard-wbs-wizard.css */
/* ══ Standard WBS Wizard ══════════════════════════════════════ */
                                                        #Z_STD_WIZ {
                                                          position: fixed;
                                                          inset: 0;
                                                          z-index: 2147483645;
                                                          background: rgba(0, 2, 10, .9);
                                                          backdrop-filter: blur(20px);
                                                          display: flex;
                                                          align-items: center;
                                                          justify-content: center;
                                                          opacity: 0;
                                                          pointer-events: none;
                                                          transition: opacity .25s;
                                                        }

                                                        #Z_STD_WIZ.open {
                                                          opacity: 1;
                                                          pointer-events: all;
                                                        }

                                                        #Z_STD_BOX {
                                                          width: min(680px, 95vw);
                                                          max-height: 90vh;
                                                          background: linear-gradient(160deg, #070f1e, #0c1a30);
                                                          border: 1px solid rgba(139, 92, 246, .3);
                                                          border-radius: 20px;
                                                          overflow: hidden;
                                                          display: flex;
                                                          flex-direction: column;
                                                          box-shadow: 0 40px 80px rgba(0, 0, 0, .9), 0 0 0 1px rgba(139, 92, 246, .12);
                                                        }

                                                        #Z_STD_HDR {
                                                          padding: 18px 24px 14px;
                                                          background: linear-gradient(180deg, rgba(139, 92, 246, .1), transparent);
                                                          border-bottom: 1px solid rgba(255, 255, 255, .06);
                                                          display: flex;
                                                          align-items: center;
                                                          gap: 12px;
                                                        }

                                                        .zwiz-ico {
                                                          width: 40px;
                                                          height: 40px;
                                                          border-radius: 12px;
                                                          background: linear-gradient(135deg, #7c3aed, #2563eb);
                                                          display: grid;
                                                          place-items: center;
                                                          font-size: 20px;
                                                          flex-shrink: 0;
                                                        }

                                                        .zwiz-title {
                                                          font-size: 16px;
                                                          font-weight: 700;
                                                          color: #f0f6ff;
                                                          letter-spacing: -.3px;
                                                        }

                                                        .zwiz-sub {
                                                          font-size: 11px;
                                                          color: rgba(100, 116, 139, .7);
                                                          margin-top: 2px;
                                                        }

                                                        #Z_STD_CLOSE {
                                                          margin-left: auto;
                                                          width: 28px;
                                                          height: 28px;
                                                          border-radius: 8px;
                                                          border: 1px solid rgba(255, 255, 255, .08);
                                                          background: rgba(255, 255, 255, .04);
                                                          color: rgba(148, 163, 184, .6);
                                                          cursor: pointer;
                                                          display: grid;
                                                          place-items: center;
                                                          font-size: 14px;
                                                        }

                                                        #Z_STD_BODY {
                                                          flex: 1;
                                                          overflow-y: auto;
                                                          padding: 20px 24px;
                                                          scrollbar-width: thin;
                                                          scrollbar-color: rgba(255, 255, 255, .06) transparent;
                                                        }

                                                        #Z_STD_FT {
                                                          padding: 14px 24px;
                                                          border-top: 1px solid rgba(255, 255, 255, .05);
                                                          display: flex;
                                                          gap: 8px;
                                                          align-items: center;
                                                          background: rgba(0, 0, 0, .2);
                                                        }

                                                        /* Wizard steps nav */
                                                        .zwiz-steps {
                                                          display: flex;
                                                          gap: 4px;
                                                          margin-bottom: 20px;
                                                        }

                                                        .zwiz-step {
                                                          flex: 1;
                                                          text-align: center;
                                                          padding: 6px;
                                                          border-radius: 8px;
                                                          font-size: 10px;
                                                          font-weight: 700;
                                                          color: rgba(100, 116, 139, .5);
                                                          border: 1px solid rgba(255, 255, 255, .05);
                                                          cursor: pointer;
                                                          transition: all .15s;
                                                        }

                                                        .zwiz-step.active {
                                                          color: rgba(196, 181, 253, .9);
                                                          background: rgba(139, 92, 246, .1);
                                                          border-color: rgba(139, 92, 246, .3);
                                                        }

                                                        .zwiz-step.done {
                                                          color: rgba(110, 231, 183, .8);
                                                          background: rgba(52, 211, 153, .07);
                                                          border-color: rgba(52, 211, 153, .2);
                                                        }

                                                        /* Package selector */
                                                        .zwiz-section-title {
                                                          font-size: 11px;
                                                          font-weight: 800;
                                                          text-transform: uppercase;
                                                          letter-spacing: .8px;
                                                          color: rgba(100, 116, 139, .7);
                                                          margin-bottom: 10px;
                                                          margin-top: 18px;
                                                        }

                                                        .zwiz-section-title:first-child {
                                                          margin-top: 0;
                                                        }

                                                        .zwiz-pkg-grid {
                                                          display: grid;
                                                          grid-template-columns: repeat(2, 1fr);
                                                          gap: 8px;
                                                        }

                                                        .zwiz-pkg {
                                                          display: flex;
                                                          align-items: flex-start;
                                                          gap: 10px;
                                                          padding: 11px 13px;
                                                          border-radius: 11px;
                                                          background: rgba(255, 255, 255, .025);
                                                          border: 1.5px solid rgba(255, 255, 255, .06);
                                                          cursor: pointer;
                                                          transition: all .15s;
                                                          user-select: none;
                                                        }

                                                        .zwiz-pkg:hover {
                                                          border-color: rgba(139, 92, 246, .25);
                                                          background: rgba(139, 92, 246, .05);
                                                        }

                                                        .zwiz-pkg.selected {
                                                          border-color: rgba(139, 92, 246, .45);
                                                          background: rgba(139, 92, 246, .08);
                                                        }

                                                        .zwiz-pkg-chk {
                                                          width: 16px;
                                                          height: 16px;
                                                          border-radius: 5px;
                                                          border: 1.5px solid rgba(255, 255, 255, .12);
                                                          background: rgba(255, 255, 255, .04);
                                                          flex-shrink: 0;
                                                          margin-top: 1px;
                                                          display: grid;
                                                          place-items: center;
                                                          font-size: 8px;
                                                          color: transparent;
                                                          transition: all .15s;
                                                        }

                                                        .zwiz-pkg.selected .zwiz-pkg-chk {
                                                          background: rgba(139, 92, 246, .2);
                                                          border-color: rgba(167, 139, 250, .6);
                                                          color: rgba(167, 139, 250, .9);
                                                        }

                                                        .zwiz-pkg-body {
                                                          flex: 1;
                                                        }

                                                        .zwiz-pkg-name {
                                                          font-size: 12px;
                                                          font-weight: 600;
                                                          color: rgba(186, 230, 253, .9);
                                                        }

                                                        .zwiz-pkg-detail {
                                                          font-size: 10px;
                                                          color: rgba(100, 116, 139, .65);
                                                          margin-top: 2px;
                                                          line-height: 1.5;
                                                        }

                                                        .zwiz-pkg-ll {
                                                          display: inline-block;
                                                          margin-top: 4px;
                                                          padding: 1px 7px;
                                                          border-radius: 99px;
                                                          font-size: 9px;
                                                          font-weight: 700;
                                                          background: rgba(251, 191, 36, .07);
                                                          border: 1px solid rgba(251, 191, 36, .2);
                                                          color: rgba(253, 224, 71, .8);
                                                        }

                                                        /* Settings row */
                                                        .zwiz-row {
                                                          display: grid;
                                                          grid-template-columns: 1fr 1fr;
                                                          gap: 12px;
                                                          margin-bottom: 12px;
                                                        }

                                                        .zwiz-fg {
                                                          display: flex;
                                                          flex-direction: column;
                                                          gap: 5px;
                                                        }

                                                        .zwiz-lbl {
                                                          font-size: 10px;
                                                          font-weight: 800;
                                                          text-transform: uppercase;
                                                          letter-spacing: .8px;
                                                          color: rgba(100, 116, 139, .65);
                                                        }

                                                        .zwiz-inp {
                                                          background: rgba(4, 10, 24, .9);
                                                          border: 1px solid rgba(148, 163, 184, .15);
                                                          border-radius: 8px;
                                                          padding: 9px 12px;
                                                          color: rgba(186, 230, 253, .9);
                                                          font-size: 12.5px;
                                                          font-family: inherit;
                                                          outline: none;
                                                          width: 100%;
                                                          transition: border-color .15s;
                                                        }

                                                        .zwiz-inp:focus {
                                                          border-color: rgba(139, 92, 246, .4);
                                                        }

                                                        .zwiz-toggle-row {
                                                          display: flex;
                                                          align-items: center;
                                                          gap: 10px;
                                                          padding: 9px 13px;
                                                          border-radius: 9px;
                                                          background: rgba(255, 255, 255, .025);
                                                          border: 1px solid rgba(255, 255, 255, .06);
                                                          cursor: pointer;
                                                          margin-bottom: 7px;
                                                        }

                                                        .zwiz-toggle-row:hover {
                                                          border-color: rgba(139, 92, 246, .2);
                                                        }

                                                        .zwiz-toggle-label {
                                                          flex: 1;
                                                          font-size: 12px;
                                                          font-weight: 600;
                                                          color: rgba(186, 230, 253, .85);
                                                        }

                                                        .zwiz-toggle-sub {
                                                          font-size: 10px;
                                                          color: rgba(100, 116, 139, .65);
                                                          margin-top: 1px;
                                                        }

                                                        .zwiz-chkbox {
                                                          width: 32px;
                                                          height: 18px;
                                                          border-radius: 99px;
                                                          background: rgba(255, 255, 255, .08);
                                                          border: 1px solid rgba(255, 255, 255, .1);
                                                          position: relative;
                                                          flex-shrink: 0;
                                                          transition: all .2s;
                                                        }

                                                        .zwiz-chkbox.on {
                                                          background: rgba(139, 92, 246, .4);
                                                          border-color: rgba(139, 92, 246, .6);
                                                        }

                                                        .zwiz-chkbox::after {
                                                          content: '';
                                                          position: absolute;
                                                          top: 2px;
                                                          left: 2px;
                                                          width: 12px;
                                                          height: 12px;
                                                          border-radius: 50%;
                                                          background: rgba(255, 255, 255, .5);
                                                          transition: all .2s;
                                                        }

                                                        .zwiz-chkbox.on::after {
                                                          left: 16px;
                                                          background: #fff;
                                                        }

                                                        /* Preview panel */
                                                        .zwiz-preview {
                                                          background: rgba(2, 6, 18, .6);
                                                          border: 1px solid rgba(255, 255, 255, .06);
                                                          border-radius: 10px;
                                                          padding: 14px 16px;
                                                          font-size: 11px;
                                                          max-height: 280px;
                                                          overflow-y: auto;
                                                          scrollbar-width: thin;
                                                        }

                                                        .zwiz-tree-item {
                                                          display: flex;
                                                          align-items: center;
                                                          gap: 6px;
                                                          padding: 3px 0;
                                                        }

                                                        .zwiz-tree-phase {
                                                          font-weight: 700;
                                                          color: rgba(147, 197, 253, .9);
                                                          font-size: 11.5px;
                                                        }

                                                        .zwiz-tree-sub {
                                                          color: rgba(186, 230, 253, .7);
                                                          font-size: 10.5px;
                                                          padding-left: 16px;
                                                        }

                                                        .zwiz-tree-act {
                                                          color: rgba(100, 116, 139, .8);
                                                          font-size: 10px;
                                                          padding-left: 28px;
                                                        }

                                                        .zwiz-tree-ms {
                                                          color: rgba(253, 224, 71, .8);
                                                          font-size: 10px;
                                                          padding-left: 28px;
                                                        }

                                                        .zwiz-tree-ll {
                                                          color: rgba(251, 191, 36, .8);
                                                          font-size: 10px;
                                                          padding-left: 28px;
                                                        }

                                                        .zwiz-summary-grid {
                                                          display: grid;
                                                          grid-template-columns: repeat(3, 1fr);
                                                          gap: 8px;
                                                          margin-bottom: 14px;
                                                        }

                                                        .zwiz-summary-card {
                                                          background: rgba(255, 255, 255, .03);
                                                          border: 1px solid rgba(255, 255, 255, .06);
                                                          border-radius: 10px;
                                                          padding: 10px;
                                                          text-align: center;
                                                        }

                                                        .zwiz-summary-num {
                                                          font-size: 22px;
                                                          font-weight: 800;
                                                          color: rgba(147, 197, 253, .9);
                                                        }

                                                        .zwiz-summary-lbl {
                                                          font-size: 10px;
                                                          color: rgba(100, 116, 139, .65);
                                                          margin-top: 3px;
                                                        }

                                                        .zwiz-gen-prompt {
                                                          background: rgba(139, 92, 246, .06);
                                                          border: 1px solid rgba(139, 92, 246, .2);
                                                          border-radius: 10px;
                                                          padding: 12px;
                                                          font-size: 10.5px;
                                                          color: rgba(186, 230, 253, .75);
                                                          line-height: 1.6;
                                                          margin-top: 12px;
                                                        }

                                                        .zwiz-gen-prompt b {
                                                          color: rgba(196, 181, 253, .9);
                                                        }

/* tabs/gantt/styles/040-gantt-edge-link-handle-style.css */
#ganttOut #v9-gantt-outer .p6-right {
                                                          position: relative;
                                                          overflow: visible;
                                                        }

                                                        #ganttOut .ga-edge-link-handle {
                                                          position: absolute;
                                                          top: 50%;
                                                          width: 14px;
                                                          height: 14px;
                                                          border-radius: 50%;
                                                          border: 1px solid rgba(147, 197, 253, .6);
                                                          background: rgba(147, 197, 253, .16);
                                                          box-shadow: 0 0 0 0 rgba(31, 78, 121, 0), 0 0 12px rgba(31, 78, 121, .16);
                                                          transform: translate(-50%, -50%) scale(.7);
                                                          transform-origin: center center;
                                                          opacity: 0;
                                                          pointer-events: none;
                                                          cursor: crosshair;
                                                          transition: opacity .14s ease, transform .14s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
                                                          z-index: 19;
                                                        }

                                                        #ganttOut .ga-edge-link-handle::before {
                                                          content: '';
                                                          position: absolute;
                                                          inset: -4px -80px -4px -80px;
                                                          border-radius: 8px;
                                                        }

                                                        #ganttOut .ga-edge-link-handle.is-visible,
                                                        #ganttOut .ga-edge-link-handle.is-dragging {
                                                          opacity: 1;
                                                          pointer-events: auto;
                                                          transform: translate(-50%, -50%) scale(1);
                                                        }

                                                        #ganttOut .ga-edge-link-handle:hover,
                                                        #ganttOut .ga-edge-link-handle.is-dragging {
                                                          background: rgba(191, 219, 254, .35);
                                                          border-color: rgba(191, 219, 254, .92);
                                                          box-shadow: 0 0 0 4px rgba(31, 78, 121, .12), 0 0 18px rgba(79, 127, 168, .36);
                                                        }

                                                        #ganttOut .p6-row.ga-link-source .p6-right {
                                                          box-shadow: inset 0 0 0 1px rgba(79, 127, 168, .22);
                                                        }

                                                        #ganttOut .p6-row.ga-link-target .p6-right {
                                                          box-shadow: inset 0 0 0 1px rgba(34, 197, 94, .28);
                                                          background-image: linear-gradient(90deg, rgba(34, 197, 94, .06), transparent 58%);
                                                        }

                                                        #ganttOut #ga-link-drag-overlay {
                                                          position: absolute;
                                                          left: 0;
                                                          top: 0;
                                                          pointer-events: none;
                                                          overflow: visible;
                                                          z-index: 18;
                                                        }

                                                        #ganttOut #ga-link-drag-overlay .ga-link-draft {
                                                          fill: none;
                                                          stroke: rgba(191, 219, 254, .95);
                                                          stroke-width: 2.2;
                                                          stroke-linecap: round;
                                                          stroke-dasharray: 7 6;
                                                          filter: drop-shadow(0 0 8px rgba(79, 127, 168, .22));
                                                        }

                                                        #ganttOut #ga-link-drag-overlay .ga-link-end {
                                                          fill: rgba(191, 219, 254, .95);
                                                          filter: drop-shadow(0 0 8px rgba(79, 127, 168, .25));
                                                        }

                                                        body[data-gantt-theme="light"] #ganttOut .ga-edge-link-handle {
                                                          border-color: rgba(30, 64, 175, .45);
                                                          background: rgba(79, 127, 168, .18);
                                                          box-shadow: 0 0 0 0 rgba(31, 78, 121, 0), 0 0 10px rgba(31, 78, 121, .12);
                                                        }

                                                        body[data-gantt-theme="light"] #ganttOut .p6-row.ga-link-target .p6-right {
                                                          background-image: linear-gradient(90deg, rgba(34, 197, 94, .07), transparent 58%);
                                                        }

/* styles/tabs/046-docai-fix4-style.css */
#tp-docai .docai-control-hero {
                                                          grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr) !important;
                                                          padding: 24px 28px 20px !important;
                                                          align-items: center !important;
                                                        }

                                                        #tp-docai .docai-hero-title {
                                                          font-size: 24px !important;
                                                          max-width: 640px !important;
                                                        }

                                                        #tp-docai .docai-hero-sub {
                                                          max-width: 640px !important;
                                                          font-size: 13px !important;
                                                          line-height: 1.7 !important;
                                                        }

                                                        #tp-docai .docai-hero-actions {
                                                          gap: 10px !important
                                                        }

                                                        #tp-docai #dst-sow .docai-launch-panel,
                                                        #tp-docai #dst-planning .docai-launch-panel {
                                                          display: none !important;
                                                        }

                                                        #tp-docai .docai-workspace {
                                                          padding: 16px 22px 24px !important;
                                                        }

                                                        #tp-docai .docai-top-cta {
                                                          display: grid;
                                                          grid-template-columns: minmax(0, 1fr) auto;
                                                          gap: 16px;
                                                          align-items: center;
                                                          padding: 16px 18px;
                                                          border-radius: 18px;
                                                          background: linear-gradient(135deg, rgba(8, 15, 34, .94), rgba(12, 22, 48, .82));
                                                          border: 1px solid rgba(99, 102, 241, .2);
                                                          box-shadow: 0 18px 46px rgba(2, 6, 23, .26);
                                                        }

                                                        #tp-docai .docai-top-cta-copy {
                                                          display: flex;
                                                          flex-direction: column;
                                                          gap: 7px;
                                                          min-width: 0
                                                        }

                                                        #tp-docai .docai-top-cta-kicker {
                                                          font-size: 10px;
                                                          font-weight: 900;
                                                          letter-spacing: .18em;
                                                          text-transform: uppercase;
                                                          color: #8b5cf6
                                                        }

                                                        #tp-docai .docai-top-cta-title {
                                                          font-size: 15px;
                                                          font-weight: 900;
                                                          color: #eef2ff;
                                                          line-height: 1.2
                                                        }

                                                        #tp-docai .docai-top-cta-sub {
                                                          font-size: 12px;
                                                          line-height: 1.6;
                                                          color: #94a3b8
                                                        }

                                                        #tp-docai .docai-top-cta-tags {
                                                          display: flex;
                                                          flex-wrap: wrap;
                                                          gap: 7px
                                                        }

                                                        #tp-docai .docai-top-cta-tag {
                                                          display: inline-flex;
                                                          align-items: center;
                                                          gap: 6px;
                                                          padding: 5px 10px;
                                                          border-radius: 999px;
                                                          font-size: 10px;
                                                          font-weight: 800;
                                                          letter-spacing: .06em;
                                                          text-transform: uppercase;
                                                          color: #c7d2fe;
                                                          background: rgba(99, 102, 241, .14);
                                                          border: 1px solid rgba(99, 102, 241, .24);
                                                        }

                                                        #tp-docai .docai-top-cta-tag.good {
                                                          color: #a7f3d0;
                                                          background: rgba(16, 185, 129, .12);
                                                          border-color: rgba(16, 185, 129, .22)
                                                        }

                                                        #tp-docai .docai-top-cta-tag.warn {
                                                          color: #fde68a;
                                                          background: rgba(245, 158, 11, .12);
                                                          border-color: rgba(245, 158, 11, .24)
                                                        }

                                                        #tp-docai .docai-top-cta-tag.bad {
                                                          color: #fca5a5;
                                                          background: rgba(239, 68, 68, .12);
                                                          border-color: rgba(239, 68, 68, .22)
                                                        }

                                                        #tp-docai .docai-primary-hero-btn {
                                                          min-width: 260px;
                                                          padding: 16px 24px;
                                                          border-radius: 16px;
                                                          border: 1px solid rgba(96, 165, 250, .44);
                                                          background:
                                                            linear-gradient(135deg, rgba(96, 165, 250, .25), rgba(59, 130, 246, .15)),
                                                            linear-gradient(135deg, #2563eb, #4f46e5 55%, #7c3aed 100%);
                                                          color: #fff;
                                                          font-size: 15px;
                                                          font-weight: 900;
                                                          cursor: pointer;
                                                          box-shadow: 0 14px 36px rgba(37, 99, 235, .34);
                                                          transition: transform .22s ease, box-shadow .22s ease, opacity .2s ease;
                                                        }

                                                        #tp-docai .docai-primary-hero-btn:hover {
                                                          transform: translateY(-2px);
                                                          box-shadow: 0 18px 42px rgba(59, 130, 246, .42)
                                                        }

                                                        #tp-docai .docai-primary-hero-btn:disabled {
                                                          opacity: .55;
                                                          cursor: not-allowed;
                                                          transform: none;
                                                          box-shadow: none
                                                        }

                                                        #tp-docai .docai-pres-hero {
                                                          min-height: auto !important
                                                        }

                                                        #tp-docai .docai-pres-hero-inner {
                                                          padding: 34px 34px 28px !important
                                                        }

                                                        #tp-docai .docai-pres-main-title {
                                                          font-size: 46px !important;
                                                          max-width: 920px !important
                                                        }

                                                        #tp-docai .docai-pres-subtitle {
                                                          max-width: 980px
                                                        }

                                                        #tp-docai .docai-pres-facts {
                                                          gap: 14px !important
                                                        }

                                                        #tp-docai .docai-pres-fact {
                                                          transition: transform .3s ease, border-color .3s ease
                                                        }

                                                        #tp-docai .docai-pres {
                                                          --hero-shift: 0px;
                                                        }

                                                        #tp-docai .docai-pres-bg {
                                                          transform: translateY(var(--hero-shift)) scale(1.04) !important;
                                                          transition: transform .18s linear
                                                        }

                                                        #tp-docai .docai-pres-main {
                                                          gap: 22px !important;
                                                          padding-bottom: 34px !important
                                                        }

                                                        #tp-docai .docai-pres-nav-wrap {
                                                          margin: 0 0 16px !important
                                                        }

                                                        #tp-docai .docai-pres-section {
                                                          opacity: 0;
                                                          transform: translateY(40px) scale(.985);
                                                          transition: opacity .7s cubic-bezier(.16, 1, .3, 1), transform .7s cubic-bezier(.16, 1, .3, 1)
                                                        }

                                                        #tp-docai .docai-pres-section.in-view {
                                                          opacity: 1;
                                                          transform: none
                                                        }

                                                        #tp-docai .docai-pres-card {
                                                          padding: 26px 26px 24px !important
                                                        }

                                                        #tp-docai .docai-pres-section-title {
                                                          font-size: 22px !important
                                                        }

                                                        #tp-docai .docai-section-micro-note {
                                                          margin-top: 8px;
                                                          color: #94a3b8;
                                                          font-size: 12px;
                                                          line-height: 1.6
                                                        }

                                                        #tp-docai .docai-workstreams-toolbar {
                                                          display: flex;
                                                          flex-wrap: wrap;
                                                          gap: 8px;
                                                          margin-bottom: 16px
                                                        }

                                                        #tp-docai .docai-filter-btn {
                                                          padding: 9px 14px;
                                                          border-radius: 999px;
                                                          border: 1px solid rgba(99, 102, 241, .18);
                                                          background: rgba(15, 23, 42, .5);
                                                          color: #cbd5e1;
                                                          font-size: 12px;
                                                          font-weight: 800
                                                        }

                                                        #tp-docai .docai-filter-btn.active {
                                                          background: rgba(79, 70, 229, .2);
                                                          border-color: rgba(129, 140, 248, .38);
                                                          color: #fff
                                                        }

                                                        #tp-docai .docai-scope-grid {
                                                          display: grid;
                                                          grid-template-columns: repeat(2, minmax(0, 1fr));
                                                          gap: 18px
                                                        }

                                                        #tp-docai .docai-scope-card {
                                                          position: relative;
                                                          border-radius: 22px;
                                                          padding: 18px 18px 16px;
                                                          background: linear-gradient(180deg, rgba(2, 8, 24, .9), rgba(8, 15, 34, .78));
                                                          border: 1px solid rgba(148, 163, 184, .1);
                                                          box-shadow: 0 18px 40px rgba(2, 6, 23, .22);
                                                          overflow: hidden
                                                        }

                                                        #tp-docai .docai-scope-card::before {
                                                          content: '';
                                                          position: absolute;
                                                          left: 0;
                                                          top: 0;
                                                          bottom: 0;
                                                          width: 4px;
                                                          background: var(--ws-color, #3b82f6)
                                                        }

                                                        #tp-docai .docai-scope-head {
                                                          display: grid;
                                                          grid-template-columns: auto 1fr auto;
                                                          gap: 12px;
                                                          align-items: start;
                                                          margin-bottom: 14px
                                                        }

                                                        #tp-docai .docai-scope-num {
                                                          width: 38px;
                                                          height: 38px;
                                                          border-radius: 12px;
                                                          display: grid;
                                                          place-items: center;
                                                          background: rgba(15, 23, 42, .8);
                                                          border: 1px solid rgba(148, 163, 184, .12);
                                                          font-size: 12px;
                                                          font-weight: 900;
                                                          color: #e2e8f0
                                                        }

                                                        #tp-docai .docai-scope-title-wrap {
                                                          display: flex;
                                                          flex-direction: column;
                                                          gap: 6px
                                                        }

                                                        #tp-docai .docai-scope-idline {
                                                          display: flex;
                                                          align-items: center;
                                                          gap: 8px;
                                                          flex-wrap: wrap
                                                        }

                                                        #tp-docai .docai-scope-id {
                                                          padding: 5px 10px;
                                                          border-radius: 999px;
                                                          font-size: 11px;
                                                          font-weight: 900;
                                                          border: 1px solid rgba(255, 255, 255, .08)
                                                        }

                                                        #tp-docai .docai-scope-title {
                                                          font-size: 18px;
                                                          font-weight: 900;
                                                          line-height: 1.18;
                                                          color: #f8fafc
                                                        }

                                                        #tp-docai .docai-scope-summary {
                                                          font-size: 13px;
                                                          line-height: 1.7;
                                                          color: #a8b3c7
                                                        }

                                                        #tp-docai .docai-scope-stat {
                                                          padding: 6px 10px;
                                                          border-radius: 999px;
                                                          background: rgba(15, 23, 42, .86);
                                                          border: 1px solid rgba(148, 163, 184, .12);
                                                          font-size: 11px;
                                                          font-weight: 800;
                                                          color: #cbd5e1
                                                        }

                                                        #tp-docai .docai-scope-source {
                                                          margin: 0 0 14px;
                                                          display: inline-flex
                                                        }

                                                        #tp-docai .docai-scope-list {
                                                          display: grid;
                                                          gap: 10px
                                                        }

                                                        #tp-docai .docai-scope-point {
                                                          display: grid;
                                                          grid-template-columns: 32px 1fr;
                                                          gap: 10px;
                                                          padding: 11px 12px;
                                                          border-radius: 16px;
                                                          background: rgba(255, 255, 255, .025);
                                                          border: 1px solid rgba(255, 255, 255, .04)
                                                        }

                                                        #tp-docai .docai-scope-point-no {
                                                          width: 24px;
                                                          height: 24px;
                                                          border-radius: 999px;
                                                          display: grid;
                                                          place-items: center;
                                                          background: rgba(15, 23, 42, .95);
                                                          border: 1px solid rgba(148, 163, 184, .14);
                                                          font-size: 11px;
                                                          font-weight: 900;
                                                          color: #fff
                                                        }

                                                        #tp-docai .docai-scope-point-main {
                                                          display: flex;
                                                          flex-direction: column;
                                                          gap: 5px
                                                        }

                                                        #tp-docai .docai-scope-point-text {
                                                          font-size: 13px;
                                                          line-height: 1.68;
                                                          color: #e5e7eb
                                                        }

                                                        #tp-docai .docai-item-ref {
                                                          font-size: 11px;
                                                          line-height: 1.5;
                                                          color: #60a5fa;
                                                          text-transform: uppercase;
                                                          letter-spacing: .06em
                                                        }

                                                        #tp-docai .docai-item-more {
                                                          margin-top: 8px;
                                                          font-size: 12px;
                                                          color: #94a3b8
                                                        }

                                                        #tp-docai .docai-excl-clean-grid {
                                                          display: grid;
                                                          grid-template-columns: repeat(2, minmax(0, 1fr));
                                                          gap: 16px
                                                        }

                                                        #tp-docai .docai-excl-clean-card {
                                                          border-radius: 18px;
                                                          padding: 16px;
                                                          background: linear-gradient(180deg, rgba(22, 8, 18, .62), rgba(10, 12, 28, .74));
                                                          border: 1px solid rgba(239, 68, 68, .18);
                                                          display: grid;
                                                          gap: 10px
                                                        }

                                                        #tp-docai .docai-excl-top {
                                                          display: flex;
                                                          align-items: center;
                                                          justify-content: space-between;
                                                          gap: 12px
                                                        }

                                                        #tp-docai .docai-excl-num {
                                                          font-size: 11px;
                                                          font-weight: 900;
                                                          color: #fca5a5;
                                                          letter-spacing: .14em
                                                        }

                                                        #tp-docai .docai-excl-title {
                                                          font-size: 15px;
                                                          font-weight: 800;
                                                          color: #fff;
                                                          line-height: 1.45
                                                        }

                                                        #tp-docai .docai-excl-note {
                                                          font-size: 12px;
                                                          line-height: 1.7;
                                                          color: #cbd5e1
                                                        }

                                                        #tp-docai .docai-excl-src {
                                                          font-size: 11px;
                                                          color: #fca5a5;
                                                          text-transform: uppercase;
                                                          letter-spacing: .08em
                                                        }

                                                        #tp-docai .docai-risk-clean-summary {
                                                          display: grid;
                                                          grid-template-columns: repeat(4, minmax(0, 1fr));
                                                          gap: 14px;
                                                          margin-bottom: 16px
                                                        }

                                                        #tp-docai .docai-risk-clean-stat {
                                                          border-radius: 18px;
                                                          padding: 16px;
                                                          background: linear-gradient(180deg, rgba(15, 23, 42, .78), rgba(8, 12, 24, .92));
                                                          border: 1px solid rgba(148, 163, 184, .1)
                                                        }

                                                        #tp-docai .docai-risk-clean-stat .v {
                                                          font-size: 30px;
                                                          font-weight: 900;
                                                          line-height: 1;
                                                          color: #fff
                                                        }

                                                        #tp-docai .docai-risk-clean-stat .k {
                                                          margin-top: 8px;
                                                          font-size: 11px;
                                                          color: #94a3b8;
                                                          letter-spacing: .16em;
                                                          text-transform: uppercase
                                                        }

                                                        #tp-docai .docai-risk-clean-grid {
                                                          display: grid;
                                                          grid-template-columns: repeat(2, minmax(0, 1fr));
                                                          gap: 16px
                                                        }

                                                        #tp-docai .docai-risk-clean-card {
                                                          border-radius: 20px;
                                                          padding: 16px 16px 14px;
                                                          background: linear-gradient(180deg, rgba(6, 12, 28, .92), rgba(9, 14, 26, .84));
                                                          border: 1px solid rgba(148, 163, 184, .11);
                                                          box-shadow: 0 16px 36px rgba(2, 6, 23, .18)
                                                        }

                                                        #tp-docai .docai-risk-clean-top {
                                                          display: flex;
                                                          align-items: center;
                                                          gap: 8px;
                                                          flex-wrap: wrap;
                                                          margin-bottom: 12px
                                                        }

                                                        #tp-docai .docai-risk-clean-id {
                                                          font-size: 11px;
                                                          font-weight: 900;
                                                          color: #93c5fd;
                                                          letter-spacing: .12em
                                                        }

                                                        #tp-docai .docai-risk-pill {
                                                          display: inline-flex;
                                                          align-items: center;
                                                          padding: 5px 10px;
                                                          border-radius: 999px;
                                                          font-size: 11px;
                                                          font-weight: 900;
                                                          letter-spacing: .08em;
                                                          text-transform: uppercase
                                                        }

                                                        #tp-docai .docai-risk-clean-title {
                                                          font-size: 18px;
                                                          font-weight: 900;
                                                          line-height: 1.35;
                                                          color: #fff;
                                                          margin-bottom: 12px
                                                        }

                                                        #tp-docai .docai-risk-clean-rows {
                                                          display: grid;
                                                          gap: 10px
                                                        }

                                                        #tp-docai .docai-risk-clean-row {
                                                          display: grid;
                                                          grid-template-columns: 110px 1fr;
                                                          gap: 10px;
                                                          padding: 10px 12px;
                                                          border-radius: 14px;
                                                          background: rgba(255, 255, 255, .025);
                                                          border: 1px solid rgba(255, 255, 255, .04)
                                                        }

                                                        #tp-docai .docai-risk-clean-row .lbl {
                                                          font-size: 11px;
                                                          color: #94a3b8;
                                                          letter-spacing: .12em;
                                                          text-transform: uppercase
                                                        }

                                                        #tp-docai .docai-risk-clean-row .val {
                                                          font-size: 13px;
                                                          line-height: 1.65;
                                                          color: #e5e7eb
                                                        }

                                                        #tp-docai .docai-risk-clean-row .val b {
                                                          color: #fff
                                                        }

                                                        #tp-docai .docai-risk-clean-row.compact .lbl {
                                                          align-self: center
                                                        }

                                                        #tp-docai .docai-risk-clean-row.ref {
                                                          background: rgba(59, 130, 246, .06);
                                                          border-color: rgba(59, 130, 246, .12)
                                                        }

                                                        #tp-docai .docai-deep-clean {
                                                          display: grid;
                                                          gap: 18px
                                                        }

                                                        #tp-docai .docai-deep-clean-block {
                                                          border-radius: 20px;
                                                          padding: 18px;
                                                          background: linear-gradient(180deg, rgba(3, 10, 24, .92), rgba(8, 14, 28, .86));
                                                          border: 1px solid rgba(16, 185, 129, .12)
                                                        }

                                                        #tp-docai .docai-deep-clean-head {
                                                          display: flex;
                                                          align-items: center;
                                                          justify-content: space-between;
                                                          gap: 12px;
                                                          margin-bottom: 14px
                                                        }

                                                        #tp-docai .docai-deep-clean-title {
                                                          font-size: 16px;
                                                          font-weight: 900;
                                                          color: #fff
                                                        }

                                                        #tp-docai .docai-deep-count {
                                                          padding: 6px 10px;
                                                          border-radius: 999px;
                                                          background: rgba(16, 185, 129, .12);
                                                          border: 1px solid rgba(16, 185, 129, .2);
                                                          font-size: 11px;
                                                          font-weight: 800;
                                                          color: #a7f3d0
                                                        }

                                                        #tp-docai .docai-deep-note-list {
                                                          display: grid;
                                                          gap: 10px
                                                        }

                                                        #tp-docai .docai-deep-note-item {
                                                          display: grid;
                                                          grid-template-columns: 28px 1fr;
                                                          gap: 10px;
                                                          padding: 10px 12px;
                                                          border-radius: 14px;
                                                          background: rgba(255, 255, 255, .03);
                                                          border: 1px solid rgba(255, 255, 255, .04)
                                                        }

                                                        #tp-docai .docai-deep-note-item .n {
                                                          width: 22px;
                                                          height: 22px;
                                                          border-radius: 999px;
                                                          display: grid;
                                                          place-items: center;
                                                          background: rgba(15, 23, 42, .9);
                                                          font-size: 11px;
                                                          font-weight: 900;
                                                          color: #fff
                                                        }

                                                        #tp-docai .docai-deep-note-item .t {
                                                          font-size: 13px;
                                                          line-height: 1.7;
                                                          color: #e5e7eb
                                                        }

                                                        #tp-docai .docai-table-title {
                                                          display: flex;
                                                          align-items: center;
                                                          justify-content: space-between;
                                                          gap: 12px
                                                        }

                                                        #tp-docai .docai-table-wrap {
                                                          overflow: auto;
                                                          border-radius: 16px;
                                                          border: 1px solid rgba(148, 163, 184, .08)
                                                        }

                                                        #tp-docai .docai-table th,
                                                        #tp-docai .docai-table td {
                                                          font-size: 12px !important;
                                                          line-height: 1.55 !important;
                                                          padding: 10px 12px !important;
                                                          vertical-align: top
                                                        }

                                                        #tp-docai .docai-inline-subtitle {
                                                          font-size: 12px;
                                                          letter-spacing: .16em;
                                                          text-transform: uppercase;
                                                          color: #60a5fa;
                                                          font-weight: 900;
                                                          margin: 0 0 8px
                                                        }

                                                        @media (max-width:1100px) {
                                                          #tp-docai .docai-control-hero {
                                                            grid-template-columns: 1fr !important
                                                          }

                                                          #tp-docai .docai-top-cta {
                                                            grid-template-columns: 1fr
                                                          }

                                                          #tp-docai .docai-scope-grid,
                                                          #tp-docai .docai-risk-clean-grid,
                                                          #tp-docai .docai-excl-clean-grid,
                                                          #tp-docai .docai-risk-clean-summary {
                                                            grid-template-columns: 1fr
                                                          }
                                                        }

                                                        @media (max-width:760px) {
                                                          #tp-docai .docai-control-hero {
                                                            padding: 18px 16px !important
                                                          }

                                                          #tp-docai .docai-workspace {
                                                            padding: 12px !important
                                                          }

                                                          #tp-docai .docai-pres-hero-inner {
                                                            padding: 24px 18px 20px !important
                                                          }

                                                          #tp-docai .docai-pres-main-title {
                                                            font-size: 34px !important
                                                          }

                                                          #tp-docai .docai-risk-clean-row {
                                                            grid-template-columns: 1fr
                                                          }

                                                          #tp-docai .docai-scope-card {
                                                            padding: 16px
                                                          }
                                                        }

/* styles/tabs/047-docai-fix6-remove-duplicate-cta.css */
#tp-docai #docaiTopCta,
                                                        #tp-docai .docai-top-cta {
                                                          display: none !important;
                                                        }

/* styles/tabs/048-docai-fix7-style.css */
#tp-docai .docai-workstreams-toolbar {
                                                          display: flex;
                                                          flex-wrap: wrap;
                                                          gap: 10px;
                                                          margin-bottom: 18px
                                                        }

                                                        #tp-docai .docai-filter-btn {
                                                          display: inline-flex;
                                                          align-items: center;
                                                          gap: 10px;
                                                          padding: 10px 14px;
                                                          border-radius: 16px;
                                                          border: 1px solid rgba(96, 165, 250, .15);
                                                          background: linear-gradient(180deg, rgba(10, 20, 44, .95), rgba(8, 16, 34, .98));
                                                          color: #c7d2fe;
                                                          font-weight: 800;
                                                          letter-spacing: .01em;
                                                          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03), 0 10px 24px rgba(2, 8, 24, .28);
                                                        }

                                                        #tp-docai .docai-filter-btn:hover {
                                                          border-color: rgba(96, 165, 250, .35);
                                                          transform: translateY(-1px)
                                                        }

                                                        #tp-docai .docai-filter-btn.active {
                                                          background: linear-gradient(135deg, rgba(40, 72, 180, .3), rgba(18, 160, 240, .18));
                                                          border-color: rgba(96, 165, 250, .42);
                                                          color: #fff;
                                                          box-shadow: 0 12px 28px rgba(37, 99, 235, .16)
                                                        }

                                                        #tp-docai .docai-filter-btn .fx-chip-ico {
                                                          width: 30px;
                                                          height: 30px;
                                                          border-radius: 11px;
                                                          display: grid;
                                                          place-items: center;
                                                          background: rgba(59, 130, 246, .12);
                                                          font-size: 16px;
                                                          flex: 0 0 auto
                                                        }

                                                        #tp-docai .docai-filter-btn .fx-chip-copy {
                                                          display: flex;
                                                          flex-direction: column;
                                                          align-items: flex-start;
                                                          line-height: 1.05
                                                        }

                                                        #tp-docai .docai-filter-btn .fx-chip-title {
                                                          font-size: 12.5px;
                                                          font-weight: 800;
                                                          color: inherit
                                                        }

                                                        #tp-docai .docai-filter-btn .fx-chip-sub {
                                                          font-size: 10px;
                                                          color: #8ea6d8;
                                                          font-weight: 700
                                                        }

                                                        #tp-docai .docai-filter-btn .fx-chip-count {
                                                          margin-left: 2px;
                                                          padding: 4px 8px;
                                                          border-radius: 999px;
                                                          background: rgba(255, 255, 255, .06);
                                                          font-size: 10px;
                                                          font-weight: 900;
                                                          color: #dbeafe;
                                                          border: 1px solid rgba(255, 255, 255, .05)
                                                        }

                                                        #tp-docai .docai-workstream-grid {
                                                          display: grid;
                                                          grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
                                                          gap: 18px
                                                        }

                                                        #tp-docai .docai-workstream-card {
                                                          position: relative;
                                                          overflow: hidden;
                                                          border-radius: 28px !important;
                                                          background: radial-gradient(circle at top right, rgba(59, 130, 246, .10), transparent 30%), linear-gradient(180deg, rgba(10, 20, 44, .96), rgba(5, 12, 28, .98));
                                                          border: 1px solid rgba(84, 120, 220, .14) !important;
                                                          box-shadow: 0 18px 44px rgba(2, 8, 24, .42), inset 0 1px 0 rgba(255, 255, 255, .03);
                                                        }

                                                        #tp-docai .docai-workstream-card::before {
                                                          content: "";
                                                          position: absolute;
                                                          left: 0;
                                                          top: 18px;
                                                          bottom: 18px;
                                                          width: 3px;
                                                          border-radius: 999px;
                                                          background: var(--ws-color, #3b82f6);
                                                          box-shadow: 0 0 18px var(--ws-color, #3b82f6)
                                                        }

                                                        #tp-docai .docai-workstream-card::after {
                                                          content: "";
                                                          position: absolute;
                                                          inset: 0;
                                                          background: linear-gradient(180deg, rgba(255, 255, 255, .02), transparent 22%);
                                                          pointer-events: none
                                                        }

                                                        #tp-docai .docai-workstream-head {
                                                          padding: 20px 20px 16px 26px;
                                                          display: grid;
                                                          grid-template-columns: minmax(0, 1fr) auto;
                                                          gap: 16px;
                                                          align-items: start;
                                                          cursor: pointer
                                                        }

                                                        #tp-docai .docai-workstream-accent {
                                                          display: none !important
                                                        }

                                                        #tp-docai .docai-workstream-meta {
                                                          display: flex;
                                                          align-items: center;
                                                          gap: 10px;
                                                          margin-bottom: 12px;
                                                          flex-wrap: wrap
                                                        }

                                                        #tp-docai .docai-workstream-id {
                                                          padding: 10px 12px !important;
                                                          border-radius: 14px !important;
                                                          font-size: 15px !important;
                                                          font-weight: 900 !important;
                                                          letter-spacing: .02em
                                                        }

                                                        #tp-docai .docai-workstream-title {
                                                          font-size: 24px !important;
                                                          line-height: 1.04 !important;
                                                          margin-bottom: 10px
                                                        }

                                                        #tp-docai .docai-workstream-summary {
                                                          font-size: 15px !important;
                                                          line-height: 1.75 !important;
                                                          color: #b8c6e8 !important;
                                                          max-width: 95%
                                                        }

                                                        #tp-docai .docai-workstream-actions {
                                                          display: flex;
                                                          flex-direction: column;
                                                          gap: 10px;
                                                          align-items: flex-end
                                                        }

                                                        #tp-docai .docai-workstream-points {
                                                          padding: 10px 12px;
                                                          border-radius: 999px;
                                                          background: rgba(255, 255, 255, .05);
                                                          font-size: 12px;
                                                          font-weight: 900;
                                                          color: #eaf2ff;
                                                          border: 1px solid rgba(255, 255, 255, .05)
                                                        }

                                                        #tp-docai .docai-workstream-toggle {
                                                          width: 42px;
                                                          height: 42px;
                                                          border-radius: 50%;
                                                          display: grid;
                                                          place-items: center;
                                                          background: rgba(255, 255, 255, .04);
                                                          border: 1px solid rgba(255, 255, 255, .06);
                                                          color: #e2e8f0;
                                                          font-size: 16px;
                                                          font-weight: 900;
                                                          transition: all .22s ease
                                                        }

                                                        #tp-docai .docai-workstream-card.open .docai-workstream-toggle {
                                                          background: rgba(59, 130, 246, .14);
                                                          border-color: rgba(96, 165, 250, .26);
                                                          transform: rotate(180deg)
                                                        }

                                                        #tp-docai .docai-topic-chips {
                                                          display: flex;
                                                          flex-wrap: wrap;
                                                          gap: 8px;
                                                          margin-top: 14px
                                                        }

                                                        #tp-docai .docai-topic-chip {
                                                          display: inline-flex;
                                                          align-items: center;
                                                          gap: 8px;
                                                          padding: 8px 12px;
                                                          border-radius: 999px;
                                                          background: rgba(15, 31, 66, .82);
                                                          border: 1px solid rgba(84, 120, 220, .18);
                                                          color: #d7e5ff;
                                                          font-size: 11px;
                                                          font-weight: 800
                                                        }

                                                        #tp-docai .docai-topic-chip .ico {
                                                          opacity: .95
                                                        }

                                                        #tp-docai .docai-workstream-body {
                                                          padding: 0 20px 20px 26px
                                                        }

                                                        #tp-docai .docai-workstream-inner {
                                                          border-top: 1px solid rgba(255, 255, 255, .06);
                                                          padding-top: 16px
                                                        }

                                                        #tp-docai .docai-source-badge {
                                                          padding: 9px 14px !important;
                                                          border-radius: 999px !important;
                                                          background: rgba(16, 185, 129, .08) !important;
                                                          border: 1px solid rgba(16, 185, 129, .16) !important;
                                                          color: #c7f9e8 !important;
                                                          font-weight: 800 !important
                                                        }

                                                        #tp-docai .docai-item-list.enhanced {
                                                          display: grid;
                                                          gap: 14px;
                                                          margin-top: 16px
                                                        }

                                                        #tp-docai .docai-break-card {
                                                          position: relative;
                                                          padding: 16px 16px 14px 16px;
                                                          border-radius: 20px;
                                                          background: linear-gradient(180deg, rgba(18, 28, 58, .88), rgba(11, 18, 38, .92));
                                                          border: 1px solid rgba(84, 120, 220, .12);
                                                          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .02)
                                                        }

                                                        #tp-docai .docai-break-top {
                                                          display: flex;
                                                          align-items: flex-start;
                                                          gap: 14px
                                                        }

                                                        #tp-docai .docai-break-num {
                                                          width: 38px;
                                                          height: 38px;
                                                          border-radius: 13px;
                                                          display: grid;
                                                          place-items: center;
                                                          background: rgba(99, 102, 241, .18);
                                                          border: 1px solid rgba(129, 140, 248, .24);
                                                          color: #e0e7ff;
                                                          font-size: 15px;
                                                          font-weight: 900;
                                                          flex: 0 0 auto
                                                        }

                                                        #tp-docai .docai-break-copy {
                                                          min-width: 0;
                                                          flex: 1
                                                        }

                                                        #tp-docai .docai-break-title {
                                                          font-size: 15px;
                                                          font-weight: 900;
                                                          color: #f8fbff;
                                                          line-height: 1.5;
                                                          margin-bottom: 8px
                                                        }

                                                        #tp-docai .docai-break-bullets {
                                                          display: grid;
                                                          gap: 8px;
                                                          margin: 8px 0 0;
                                                          padding: 0;
                                                          list-style: none
                                                        }

                                                        #tp-docai .docai-break-bullets li {
                                                          position: relative;
                                                          padding-left: 18px;
                                                          font-size: 13.5px;
                                                          line-height: 1.65;
                                                          color: #b7c6ea
                                                        }

                                                        #tp-docai .docai-break-bullets li::before {
                                                          content: "";
                                                          position: absolute;
                                                          left: 0;
                                                          top: .64em;
                                                          width: 7px;
                                                          height: 7px;
                                                          border-radius: 50%;
                                                          background: var(--ws-color, #3b82f6);
                                                          box-shadow: 0 0 10px var(--ws-color, #3b82f6)
                                                        }

                                                        #tp-docai .docai-break-ref {
                                                          margin-top: 12px;
                                                          font-size: 11.5px;
                                                          font-weight: 900;
                                                          letter-spacing: .02em;
                                                          color: #78b0ff;
                                                          text-transform: uppercase
                                                        }

                                                        #tp-docai .docai-item-row {
                                                          display: none !important
                                                        }

                                                        #tp-docai .docai-risk-grid {
                                                          grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
                                                          gap: 16px !important
                                                        }

                                                        #tp-docai .docai-risk-card {
                                                          background: linear-gradient(180deg, rgba(14, 23, 48, .96), rgba(10, 17, 34, .98)) !important;
                                                          border-radius: 24px !important;
                                                          box-shadow: 0 14px 34px rgba(2, 8, 24, .34) !important
                                                        }

                                                        #tp-docai .docai-risk-text {
                                                          font-size: 16px !important;
                                                          line-height: 1.6 !important
                                                        }

                                                        #tp-docai .docai-risk-ref {
                                                          line-height: 1.7 !important
                                                        }

                                                        #tp-docai .docai-risk-card::before {
                                                          content: "";
                                                          position: absolute;
                                                          left: 0;
                                                          top: 18px;
                                                          bottom: 18px;
                                                          width: 3px;
                                                          border-radius: 999px;
                                                          background: currentColor;
                                                          opacity: .35
                                                        }

                                                        #tp-docai .docai-risk-card {
                                                          position: relative
                                                        }

/* styles/tabs/049-docai-fullscope-v5-style.css */
#tp-docai .docai-fullscope-wrap{display:grid;gap:18px}
#tp-docai .docai-fullscope-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid rgba(56,189,248,.16);border-radius:16px;background:linear-gradient(180deg,rgba(4,12,28,.92),rgba(5,14,34,.92));margin-bottom:16px}
#tp-docai .docai-fullscope-toolbar-left,#tp-docai .docai-fullscope-toolbar-right{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
#tp-docai .docai-fullscope-mode-btn,#tp-docai .docai-fullscope-filter-btn{border:1px solid rgba(148,163,184,.16);background:rgba(9,20,40,.78);color:#9fb3ca;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800;cursor:pointer;transition:all .18s}
#tp-docai .docai-fullscope-mode-btn:hover,#tp-docai .docai-fullscope-filter-btn:hover{border-color:rgba(56,189,248,.34);color:#d8ebff}
#tp-docai .docai-fullscope-mode-btn.active,#tp-docai .docai-fullscope-filter-btn.active{background:linear-gradient(135deg,rgba(14,165,233,.18),rgba(59,130,246,.16));border-color:rgba(56,189,248,.42);color:#eaf6ff;box-shadow:0 0 0 1px rgba(56,189,248,.08) inset}
#tp-docai .docai-fullscope-note{font-size:11px;color:#7f95ad;font-weight:700}
#tp-docai .docai-fullscope-grid{display:grid;grid-template-columns:1fr;gap:20px}
#tp-docai .docai-fullscope-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}
#tp-docai .docai-ws-fullcard{position:relative;overflow:hidden;border-radius:22px;padding:24px 24px 20px;border:1px solid rgba(56,189,248,.14);background:radial-gradient(circle at top left,rgba(14,165,233,.08),transparent 28%),linear-gradient(180deg,rgba(4,10,24,.98),rgba(4,12,30,.98));box-shadow:0 12px 36px rgba(0,0,0,.32)}
#tp-docai .docai-ws-fullcard::before{content:'';position:absolute;left:0;top:18px;bottom:18px;width:4px;border-radius:0 8px 8px 0;background:var(--ws-color,#38bdf8);box-shadow:0 0 18px color-mix(in srgb,var(--ws-color,#38bdf8) 60%, transparent)}
#tp-docai .docai-ws-head{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;margin-bottom:14px}
#tp-docai .docai-ws-num{min-width:48px;height:48px;padding:0 12px;border-radius:14px;display:grid;place-items:center;background:rgba(15,23,42,.75);border:1px solid rgba(148,163,184,.12);font-weight:900;color:#e5f1ff;font-size:18px}
#tp-docai .docai-ws-titleblock{display:grid;gap:8px}
#tp-docai .docai-ws-meta-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
#tp-docai .docai-ws-id{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ws-color,#38bdf8) 55%, transparent);background:color-mix(in srgb,var(--ws-color,#38bdf8) 14%, transparent);color:var(--ws-color,#38bdf8);font-size:12px;font-weight:900}
#tp-docai .docai-ws-title{font-size:24px;line-height:1.2;font-weight:900;color:#f6fbff}
#tp-docai .docai-ws-summary{font-size:16px;line-height:1.65;color:#d7e7f8;max-width:1200px}
#tp-docai .docai-ws-side{display:grid;gap:10px;justify-items:end}
#tp-docai .docai-ws-statpill{padding:10px 14px;border-radius:999px;border:1px solid rgba(148,163,184,.12);background:rgba(10,18,38,.78);color:#d7e7f8;font-size:12px;font-weight:900;white-space:nowrap}
#tp-docai .docai-ws-infostrip{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 18px}
#tp-docai .docai-ws-infopill{padding:10px 14px;border-radius:999px;background:rgba(10,28,52,.76);border:1px solid rgba(56,189,248,.16);font-size:12px;font-weight:900;color:#d9eeff}
#tp-docai .docai-ws-audit{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0 20px}
#tp-docai .docai-ws-audit-card{padding:14px 14px 12px;border-radius:16px;border:1px solid rgba(148,163,184,.1);background:linear-gradient(180deg,rgba(8,17,36,.94),rgba(7,15,32,.94))}
#tp-docai .docai-ws-audit-val{font-size:20px;font-weight:900;color:#f8fbff}
#tp-docai .docai-ws-audit-lbl{margin-top:5px;font-size:11px;font-weight:800;color:#7f95ad;text-transform:uppercase;letter-spacing:.8px}
#tp-docai .docai-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#tp-docai .docai-fullscope-grid.subpkg-1 .docai-group-grid{grid-template-columns:1fr}
#tp-docai .docai-fullscope-grid.compact .docai-group-grid{grid-template-columns:1fr}
#tp-docai .docai-group-card{border-radius:18px;border:1px solid rgba(148,163,184,.1);background:linear-gradient(180deg,rgba(5,12,28,.96),rgba(4,10,24,.98));overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.02)}
#tp-docai .docai-group-card > summary{list-style:none;cursor:pointer;padding:16px 18px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
#tp-docai .docai-group-card > summary::-webkit-details-marker{display:none}
#tp-docai .docai-group-card[open] > summary{background:linear-gradient(180deg,rgba(10,22,46,.7),rgba(7,16,34,.15))}
#tp-docai .docai-group-idx{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:14px;font-weight:900;background:rgba(15,23,42,.72);border:1px solid rgba(148,163,184,.12);color:#dff2ff}
#tp-docai .docai-group-title{font-size:13px;font-weight:800;color:#7f95ad;text-transform:uppercase;letter-spacing:1px}
#tp-docai .docai-group-name{margin-top:4px;font-size:18px;line-height:1.25;font-weight:900;color:#f8fbff}
#tp-docai .docai-group-count{display:flex;align-items:center;gap:10px}
#tp-docai .docai-group-count b{display:inline-grid;place-items:center;min-width:38px;height:38px;padding:0 12px;border-radius:999px;background:color-mix(in srgb,var(--ws-color,#38bdf8) 16%, transparent);border:1px solid color-mix(in srgb,var(--ws-color,#38bdf8) 38%, transparent);color:#ecf9ff;font-size:14px}
#tp-docai .docai-group-toggle{width:38px;height:38px;border-radius:999px;border:1px solid rgba(148,163,184,.14);display:grid;place-items:center;color:#b7c8da;background:rgba(9,18,38,.75);font-size:14px;font-weight:900}
#tp-docai .docai-group-card[open] .docai-group-toggle{transform:rotate(180deg)}
#tp-docai .docai-group-body{padding:0 18px 18px}
#tp-docai .docai-item-list{display:grid;gap:0}
#tp-docai .docai-item-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:14px 0;border-top:1px dashed rgba(148,163,184,.1)}
#tp-docai .docai-item-row:first-child{border-top:none;padding-top:6px}
#tp-docai .docai-item-dot{width:12px;height:12px;border-radius:50%;background:var(--ws-color,#38bdf8);margin-top:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--ws-color,#38bdf8) 15%, transparent)}
#tp-docai .docai-item-text{font-size:16px;line-height:1.7;color:#edf6ff;white-space:normal}
#tp-docai .docai-item-foot{margin-top:14px;padding-top:12px;border-top:1px solid rgba(148,163,184,.08);display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
#tp-docai .docai-item-ref{font-size:12px;font-weight:800;color:#66c7ff}
#tp-docai .docai-item-badge{padding:8px 11px;border-radius:999px;font-size:11px;font-weight:900;border:1px solid rgba(148,163,184,.12);background:rgba(9,18,38,.7);color:#d2e6fa}
#tp-docai .docai-fullscope-integrity{margin-top:12px;font-size:12px;color:#9fc0d8;font-weight:800}
#tp-docai .docai-fullscope-warning{padding:14px 16px;border-radius:14px;border:1px solid rgba(245,158,11,.24);background:rgba(245,158,11,.08);color:#fde68a;font-size:12px;font-weight:800}
@media (max-width:1200px){#tp-docai .docai-fullscope-grid.compact{grid-template-columns:1fr}#tp-docai .docai-group-grid,#tp-docai .docai-ws-audit{grid-template-columns:1fr 1fr}}
@media (max-width:760px){#tp-docai .docai-ws-head{grid-template-columns:1fr}#tp-docai .docai-ws-side{justify-items:start}#tp-docai .docai-group-grid,#tp-docai .docai-ws-audit{grid-template-columns:1fr}#tp-docai .docai-group-card > summary{grid-template-columns:1fr}#tp-docai .docai-group-count{justify-content:flex-start}}

/* styles/tabs/050-scope-layout-v6-overrides.css */
#tp-docai .docai-scope-grid{grid-template-columns:1fr !important;gap:16px !important}
#tp-docai .docai-scope-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
#tp-docai .docai-subpkg-grid{grid-template-columns:1fr !important;gap:12px !important}
#tp-docai .docai-subpkg-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
#tp-docai .docai-scope-card{padding:16px 16px 14px !important;border-radius:20px !important}
#tp-docai .docai-scope-title{font-size:16px !important;line-height:1.22 !important}
#tp-docai .docai-scope-summary{font-size:12.5px !important;line-height:1.62 !important}
#tp-docai .docai-scope-stat,#tp-docai .docai-scope-mini-stat{font-size:10.5px !important}
#tp-docai .docai-subpkg-chip{font-size:10.5px !important;padding:6px 10px !important}
#tp-docai .docai-subpkg-title{font-size:14px !important;line-height:1.22 !important}
#tp-docai .docai-subpkg-kicker{font-size:8.5px !important}
#tp-docai .docai-subpkg-point .txt{font-size:12.5px !important;line-height:1.56 !important}
#tp-docai .docai-subpkg-ref{font-size:9px !important}
#tp-docai .docai-fullscope-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:16px}
#tp-docai .docai-fullscope-toolbar-left,#tp-docai .docai-fullscope-toolbar-right{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
#tp-docai .docai-fullscope-grid{grid-template-columns:1fr !important;gap:18px !important}
#tp-docai .docai-fullscope-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
#tp-docai .docai-ws-fullcard{padding:20px 20px 16px !important;border-radius:20px !important}
#tp-docai .docai-ws-title{font-size:20px !important;line-height:1.18 !important}
#tp-docai .docai-ws-summary{font-size:13px !important;line-height:1.64 !important}
#tp-docai .docai-ws-id,#tp-docai .docai-ws-statpill,#tp-docai .docai-ws-infopill{font-size:10.5px !important}
#tp-docai .docai-ws-audit-val{font-size:20px !important}
#tp-docai .docai-ws-audit-lbl{font-size:10px !important}
#tp-docai .docai-group-grid{grid-template-columns:1fr !important;gap:14px !important}
#tp-docai .docai-fullscope-grid.subpkg-2 .docai-group-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
#tp-docai .docai-fullscope-grid.compact.subpkg-2 .docai-group-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
#tp-docai .docai-group-card>summary{padding:14px 14px 12px !important;gap:12px !important}
#tp-docai .docai-group-title{font-size:9px !important}
#tp-docai .docai-group-name{font-size:16px !important;line-height:1.22 !important}
#tp-docai .docai-item-row{padding:8px 10px !important}
#tp-docai .docai-item-text{font-size:13.5px !important;line-height:1.6 !important}
#tp-docai .docai-fullscope-mode-btn,#tp-docai .docai-fullscope-filter-btn,#tp-docai .docai-filter-btn,#tp-docai .docai-scope-mode-btn{font-size:11px !important;padding:8px 11px !important}
#tp-docai .docai-scope-mode-btn{border:1px solid rgba(148,163,184,.16);background:rgba(9,20,40,.78);color:#9fb3ca;border-radius:999px;font-weight:800;cursor:pointer;transition:all .18s}
#tp-docai .docai-scope-mode-btn:hover{border-color:rgba(56,189,248,.34);color:#d8ebff}
#tp-docai .docai-scope-mode-btn.active{background:linear-gradient(135deg,rgba(14,165,233,.18),rgba(59,130,246,.16));border-color:rgba(56,189,248,.42);color:#eaf6ff;box-shadow:0 0 0 1px rgba(56,189,248,.08) inset}
#tp-docai .docai-workstreams-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
#tp-docai .docai-workstreams-toolbar .docai-toolbar-filter-group,
#tp-docai .docai-workstreams-toolbar .docai-toolbar-mode-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media (max-width:1200px){
  #tp-docai .docai-scope-grid.compact,
  #tp-docai .docai-fullscope-grid.compact,
  #tp-docai .docai-fullscope-grid.subpkg-2 .docai-group-grid,
  #tp-docai .docai-fullscope-grid.compact.subpkg-2 .docai-group-grid,
  #tp-docai .docai-subpkg-grid.compact{grid-template-columns:1fr !important}
}

/* tabs/gantt/styles/051-gantt-edit-panel-style.css */
/* ── Badge edit extensions ── */
                                                        #ga-link-badge .geb-edit {
                                                          margin-top: 9px;
                                                          padding-top: 9px;
                                                          border-top: 1px solid rgba(255, 255, 255, .07)
                                                        }

                                                        #ga-link-badge .geb-row {
                                                          display: flex;
                                                          align-items: center;
                                                          gap: 8px;
                                                          margin-bottom: 7px;
                                                          flex-wrap: wrap
                                                        }

                                                        #ga-link-badge label.geb-lbl {
                                                          font-size: 9px;
                                                          font-weight: 800;
                                                          text-transform: uppercase;
                                                          letter-spacing: .6px;
                                                          color: #64748b;
                                                          flex-shrink: 0;
                                                          min-width: 28px
                                                        }

                                                        #ga-link-badge select.geb-sel,
                                                        #ga-link-badge input.geb-inp {
                                                          background: rgba(3, 8, 22, .92);
                                                          border: 1px solid rgba(148, 163, 184, .2);
                                                          border-radius: 6px;
                                                          color: #d4e4f7;
                                                          font-size: 11px;
                                                          font-family: 'DM Sans', inherit;
                                                          outline: none;
                                                          padding: 4px 8px;
                                                          transition: border-color .15s
                                                        }

                                                        #ga-link-badge select.geb-sel:focus,
                                                        #ga-link-badge input.geb-inp:focus {
                                                          border-color: rgba(79, 127, 168, .5)
                                                        }

                                                        #ga-link-badge select.geb-sel {
                                                          flex: 1;
                                                          cursor: pointer
                                                        }

                                                        #ga-link-badge input.geb-inp {
                                                          width: 60px;
                                                          text-align: center
                                                        }

                                                        #ga-link-badge .geb-btns {
                                                          display: flex;
                                                          gap: 6px;
                                                          margin-top: 4px
                                                        }

                                                        #ga-link-badge .geb-btn {
                                                          flex: 1;
                                                          padding: 5px 10px;
                                                          border-radius: 7px;
                                                          border: 1px solid;
                                                          font-size: 10px;
                                                          font-weight: 800;
                                                          cursor: pointer;
                                                          font-family: inherit;
                                                          transition: all .14s;
                                                          user-select: none
                                                        }

                                                        #ga-link-badge .geb-btn.ok {
                                                          border-color: rgba(34, 197, 94, .4);
                                                          color: #4ade80;
                                                          background: rgba(34, 197, 94, .09)
                                                        }

                                                        #ga-link-badge .geb-btn.ok:hover {
                                                          background: rgba(34, 197, 94, .2)
                                                        }

                                                        #ga-link-badge .geb-btn.rm {
                                                          border-color: rgba(239, 68, 68, .35);
                                                          color: #f87171;
                                                          background: rgba(239, 68, 68, .08)
                                                        }

                                                        #ga-link-badge .geb-btn.rm:hover {
                                                          background: rgba(239, 68, 68, .2)
                                                        }

                                                        #ga-link-badge .geb-btn.cl {
                                                          border-color: rgba(148, 163, 184, .18);
                                                          color: #94a3b8;
                                                          background: rgba(148, 163, 184, .05);
                                                          flex: none;
                                                          padding: 5px 9px
                                                        }

                                                        #ga-link-badge .geb-btn.cl:hover {
                                                          color: #cbd5e1
                                                        }

                                                        /* ── Activity panel ── */
                                                        #gap-panel {
                                                          position: fixed;
                                                          z-index: 2147483001;
                                                          width: 460px;
                                                          max-width: calc(100vw - 24px);
                                                          max-height: calc(100vh - 90px);
                                                          overflow-y: auto;
                                                          pointer-events: auto;
                                                          background: linear-gradient(180deg, rgba(7, 16, 38, .99), rgba(4, 10, 24, .99));
                                                          border: 1px solid rgba(79, 127, 168, .26);
                                                          border-radius: 18px;
                                                          box-shadow: 0 28px 70px rgba(0, 0, 0, .46), 0 0 0 1px rgba(255, 255, 255, .04) inset;
                                                          backdrop-filter: blur(16px);
                                                          padding: 0;
                                                          scrollbar-width: thin;
                                                          scrollbar-color: rgba(31, 78, 121, .18) transparent;
                                                          transition: opacity .15s
                                                        }

                                                        #gap-panel .gap-hdr {
                                                          display: flex;
                                                          align-items: center;
                                                          gap: 10px;
                                                          padding: 14px 16px 12px;
                                                          border-bottom: 1px solid rgba(255, 255, 255, .06);
                                                          position: sticky;
                                                          top: 0;
                                                          background: linear-gradient(180deg, rgba(10, 22, 50, .98), rgba(6, 14, 34, .96));
                                                          z-index: 2;
                                                          border-radius: 18px 18px 0 0
                                                        }

                                                        #gap-panel .gap-id {
                                                          font-size: 10px;
                                                          font-family: 'JetBrains Mono', monospace;
                                                          font-weight: 800;
                                                          color: #8eacc9;
                                                          background: rgba(31, 78, 121, .18);
                                                          padding: 3px 9px;
                                                          border-radius: 999px;
                                                          flex-shrink: 0
                                                        }

                                                        #gap-panel .gap-name {
                                                          flex: 1;
                                                          font-size: 13px;
                                                          font-weight: 900;
                                                          color: #f3f8ff;
                                                          overflow: hidden;
                                                          text-overflow: ellipsis;
                                                          white-space: nowrap
                                                        }

                                                        #gap-panel .gap-x {
                                                          background: rgba(148, 163, 184, .08);
                                                          border: 1px solid rgba(148, 163, 184, .12);
                                                          color: #94a3b8;
                                                          font-size: 18px;
                                                          line-height: 1;
                                                          cursor: pointer;
                                                          padding: 4px 8px;
                                                          border-radius: 10px;
                                                          transition: all .12s;
                                                          flex-shrink: 0
                                                        }

                                                        #gap-panel .gap-x:hover {
                                                          color: #94a3b8
                                                        }

                                                        #gap-panel .gap-summary {
                                                          display: grid;
                                                          grid-template-columns: repeat(4, minmax(0, 1fr));
                                                          gap: 10px;
                                                          padding: 12px 16px 6px
                                                        }

                                                        #gap-panel .gap-card {
                                                          background: linear-gradient(180deg, rgba(10, 22, 48, .92), rgba(6, 14, 30, .86));
                                                          border: 1px solid rgba(255, 255, 255, .06);
                                                          border-radius: 12px;
                                                          padding: 10px
                                                        }

                                                        #gap-panel .gap-card-v {
                                                          font-size: 14px;
                                                          font-weight: 900;
                                                          color: #f8fbff;
                                                          line-height: 1.1
                                                        }

                                                        #gap-panel .gap-card-l {
                                                          font-size: 9px;
                                                          font-weight: 700;
                                                          text-transform: uppercase;
                                                          letter-spacing: .6px;
                                                          color: #64748b;
                                                          margin-top: 5px
                                                        }

                                                        #gap-panel .gap-sec {
                                                          padding: 8px 14px 4px
                                                        }

                                                        #gap-panel .gap-sec-hd {
                                                          font-size: 9px;
                                                          font-weight: 800;
                                                          text-transform: uppercase;
                                                          letter-spacing: .8px;
                                                          color: #334155;
                                                          margin-bottom: 5px;
                                                          display: flex;
                                                          align-items: center;
                                                          gap: 6px
                                                        }

                                                        #gap-panel .gap-sec-hd span {
                                                          flex: 1;
                                                          height: 1px;
                                                          background: rgba(255, 255, 255, .05)
                                                        }

                                                        #gap-panel .gap-lnk {
                                                          display: grid;
                                                          grid-template-columns: 1fr 52px 48px 20px;
                                                          gap: 5px;
                                                          align-items: center;
                                                          padding: 5px 0;
                                                          border-bottom: 1px solid rgba(255, 255, 255, .04)
                                                        }

                                                        #gap-panel .gap-lnk:last-child {
                                                          border-bottom: none
                                                        }

                                                        #gap-panel .gap-goto {
                                                          background: none;
                                                          border: none;
                                                          color: #7dd3fc;
                                                          font-size: 10px;
                                                          font-weight: 600;
                                                          cursor: pointer;
                                                          text-align: left;
                                                          padding: 0;
                                                          overflow: hidden;
                                                          text-overflow: ellipsis;
                                                          white-space: nowrap;
                                                          transition: color .12s;
                                                          min-width: 0
                                                        }

                                                        #gap-panel .gap-goto:hover {
                                                          color: #e0f2fe;
                                                          text-decoration: underline
                                                        }

                                                        #gap-panel select.gap-sel,
                                                        #gap-panel input.gap-inp {
                                                          background: rgba(3, 8, 22, .9);
                                                          border: 1px solid rgba(148, 163, 184, .15);
                                                          border-radius: 5px;
                                                          color: #94a3b8;
                                                          font-size: 9px;
                                                          font-family: inherit;
                                                          outline: none;
                                                          padding: 2px 4px;
                                                          width: 100%
                                                        }

                                                        #gap-panel select.gap-sel:focus,
                                                        #gap-panel input.gap-inp:focus {
                                                          border-color: rgba(79, 127, 168, .4);
                                                          color: #cbd5e1
                                                        }

                                                        #gap-panel .gap-rm {
                                                          background: none;
                                                          border: none;
                                                          color: #334155;
                                                          font-size: 13px;
                                                          cursor: pointer;
                                                          padding: 0;
                                                          line-height: 1;
                                                          transition: color .12s;
                                                          text-align: center
                                                        }

                                                        #gap-panel .gap-rm:hover {
                                                          color: #f87171
                                                        }

                                                        #gap-panel .gap-empty {
                                                          font-size: 10px;
                                                          color: #334155;
                                                          padding: 6px 0;
                                                          font-style: italic
                                                        }

                                                        #gap-panel .gap-lab-grid {
                                                          display: grid;
                                                          grid-template-columns: repeat(2, minmax(0, 1fr));
                                                          gap: 8px
                                                        }

                                                        #gap-panel .gap-lab-card {
                                                          background: rgba(3, 10, 24, .9);
                                                          border: 1px solid rgba(148, 163, 184, .12);
                                                          border-radius: 10px;
                                                          padding: 8px 10px;
                                                          min-width: 0
                                                        }

                                                        #gap-panel .gap-lab-card.full {
                                                          grid-column: 1 / -1
                                                        }

                                                        #gap-panel .gap-lab-k {
                                                          font-size: 9px;
                                                          font-weight: 800;
                                                          text-transform: uppercase;
                                                          letter-spacing: .7px;
                                                          color: #64748b;
                                                          margin-bottom: 5px
                                                        }

                                                        #gap-panel .gap-lab-v {
                                                          font-size: 12px;
                                                          font-weight: 700;
                                                          color: #e2ecff;
                                                          line-height: 1.35;
                                                          word-break: break-word
                                                        }

                                                        #gap-panel .gap-note {
                                                          font-size: 10px;
                                                          color: #94a3b8;
                                                          line-height: 1.5;
                                                          padding: 4px 0 2px
                                                        }

                                                        #gap-panel .gap-subrows {
                                                          display: flex;
                                                          flex-direction: column;
                                                          gap: 6px
                                                        }

                                                        #gap-panel .gap-subrow {
                                                          display: grid;
                                                          grid-template-columns: minmax(0, 1fr) auto;
                                                          gap: 8px;
                                                          align-items: center;
                                                          padding: 7px 8px;
                                                          border-radius: 8px;
                                                          background: rgba(255, 255, 255, .03);
                                                          border: 1px solid rgba(255, 255, 255, .05)
                                                        }

                                                        #gap-panel .gap-subrow-main {
                                                          min-width: 0
                                                        }

                                                        #gap-panel .gap-subrow-name {
                                                          font-size: 10px;
                                                          font-weight: 700;
                                                          color: #e7eef6;
                                                          white-space: nowrap;
                                                          overflow: hidden;
                                                          text-overflow: ellipsis
                                                        }

                                                        #gap-panel .gap-subrow-meta {
                                                          font-size: 9px;
                                                          color: #94a3b8;
                                                          margin-top: 2px
                                                        }

                                                        #gap-panel .gap-subrow-val {
                                                          font-size: 10px;
                                                          font-weight: 800;
                                                          color: #4ade80;
                                                          white-space: nowrap
                                                        }

                                                        #gap-panel .gap-rel-list {
                                                          display: flex;
                                                          flex-direction: column;
                                                          gap: 6px
                                                        }

                                                        #gap-panel .gap-rel-row {
                                                          display: grid;
                                                          grid-template-columns: minmax(0, 1fr) auto;
                                                          gap: 10px;
                                                          align-items: center;
                                                          padding: 8px 9px;
                                                          border-radius: 8px;
                                                          background: rgba(255, 255, 255, .03);
                                                          border: 1px solid rgba(255, 255, 255, .05)
                                                        }

                                                        #gap-panel .gap-rel-main {
                                                          min-width: 0
                                                        }

                                                        #gap-panel .gap-rel-go {
                                                          display: block;
                                                          background: none;
                                                          border: none;
                                                          color: #7dd3fc;
                                                          font-size: 10px;
                                                          font-weight: 700;
                                                          cursor: pointer;
                                                          text-align: left;
                                                          padding: 0;
                                                          max-width: 100%;
                                                          overflow: hidden;
                                                          text-overflow: ellipsis;
                                                          white-space: nowrap
                                                        }

                                                        #gap-panel .gap-rel-go:hover {
                                                          color: #e0f2fe;
                                                          text-decoration: underline
                                                        }

                                                        #gap-panel .gap-rel-meta {
                                                          font-size: 9px;
                                                          color: #94a3b8;
                                                          margin-top: 2px
                                                        }

                                                        #gap-panel .gap-rel-tag {
                                                          display: inline-flex;
                                                          align-items: center;
                                                          justify-content: center;
                                                          min-width: 54px;
                                                          padding: 4px 8px;
                                                          border-radius: 999px;
                                                          background: rgba(31, 78, 121, .12);
                                                          border: 1px solid rgba(79, 127, 168, .2);
                                                          font-size: 10px;
                                                          font-weight: 800;
                                                          color: #b8cde0
                                                        }

                                                        #gap-panel .gap-footer {
                                                          padding: 8px 14px 11px;
                                                          border-top: 1px solid rgba(255, 255, 255, .05);
                                                          display: flex;
                                                          gap: 6px;
                                                          position: sticky;
                                                          bottom: 0;
                                                          background: rgba(6, 14, 34, .97);
                                                          border-radius: 0 0 14px 14px
                                                        }

                                                        #gap-panel .gap-save {
                                                          flex: 1;
                                                          padding: 6px 10px;
                                                          border-radius: 7px;
                                                          border: 1px solid rgba(34, 197, 94, .34);
                                                          color: #4ade80;
                                                          background: rgba(34, 197, 94, .07);
                                                          font-size: 10px;
                                                          font-weight: 800;
                                                          cursor: pointer;
                                                          font-family: inherit;
                                                          transition: all .14s
                                                        }

                                                        #gap-panel .gap-save:hover {
                                                          background: rgba(34, 197, 94, .18)
                                                        }

                                                        .p6-act-bar,
                                                        .p6-sum-bar,
                                                        .p6-ms {
                                                          cursor: pointer !important
                                                        }

                                                        /* jump animation */
                                                        @keyframes gaJump {

                                                          0%,
                                                          100% {
                                                            box-shadow: inset 0 0 0 2px rgba(245, 158, 11, .0)
                                                          }

                                                          40% {
                                                            box-shadow: inset 0 0 0 2px rgba(245, 158, 11, .6), 0 0 18px rgba(245, 158, 11, .22)
                                                          }
                                                        }

                                                        #ganttOut .p6-row.ga-link-jump .p6-left,
                                                        #ganttOut .p6-row.ga-link-jump .p6-right {
                                                          animation: gaJump 1.2s ease
                                                        }

/* tabs/gantt/styles/005-gantt-activity-inspector-compact-style.css */
/* ══════════════════════════════════════════════════════════════════════
   ACTIVITY INSPECTOR — professional light side panel (redesign)
   Docked to the right edge, full height, clean & compact. Class names match
   the markup in 007-gantt-activity-inspector-compact-override.js.
   ══════════════════════════════════════════════════════════════════════ */

#gap-panel {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: auto !important;
  bottom: 0 !important;
  z-index: 2147483002;
  width: 472px;
  max-width: calc(100vw - 12px);
  max-height: 100vh;
  height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  pointer-events: auto;
  background: #FFFFFF;
  border: none;
  border-left: 1px solid #E6E1D6;
  border-radius: 0;
  box-shadow: -18px 0 48px rgba(27, 26, 23, .12);
  color: #1B1A17;
  font-family: 'DM Sans', system-ui, sans-serif;
  animation: gapSlideIn .22s cubic-bezier(.22, .61, .36, 1);
  scrollbar-width: thin;
  scrollbar-color: #D7D0C2 transparent;
}
@keyframes gapSlideIn {
  from { transform: translateX(28px); opacity: 0; }
  to   { transform: translateX(0);    opacity: 1; }
}

/* ─── Header ─────────────────────────────────────────────────────────── */
#gap-panel .gap-hdr {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 16px 18px 14px;
  border-bottom: 1px solid #EEEAE0;
  background: #FCFAF5;
  flex-shrink: 0;
}
#gap-panel .gap-id {
  font-size: 10.5px;
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700;
  letter-spacing: .02em;
  color: #6B665C;
  background: #F1EDE3;
  border: 1px solid #E6E1D6;
  padding: 3px 9px;
  border-radius: 7px;
  flex-shrink: 0;
}
#gap-panel .gap-namewrap { flex: 1; min-width: 0; }
#gap-panel .gap-name {
  display: block;
  font-size: 14.5px;
  font-weight: 800;
  letter-spacing: -.01em;
  color: #1B1A17;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#gap-panel .gap-subttl {
  display: block;
  font-size: 11px;
  font-weight: 500;
  color: #8A8579;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#gap-panel .gap-x {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #F1EDE3;
  border: 1px solid #E6E1D6;
  color: #6B665C;
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
  border-radius: 8px;
  transition: background .14s, color .14s;
  flex-shrink: 0;
}
#gap-panel .gap-x:hover { background: #E9E3D6; color: #1B1A17; }

/* ─── Summary stat cards ─────────────────────────────────────────────── */
#gap-panel .gap-top { padding: 14px 18px 0; flex-shrink: 0; }
#gap-panel .gap-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
#gap-panel .gap-card {
  background: #FAF8F3;
  border: 1px solid #ECE7DC;
  border-radius: 10px;
  padding: 9px 9px 8px;
  min-width: 0;
}
#gap-panel .gap-card-v {
  font-size: 14.5px;
  font-weight: 800;
  color: #1B1A17;
  line-height: 1.05;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#gap-panel .gap-card-l {
  font-size: 8.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #9A9488;
  margin-top: 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ─── Tabs ───────────────────────────────────────────────────────────── */
#gap-panel .gap-tabs {
  display: flex;
  gap: 6px;
  padding: 14px 18px 10px;
  flex-shrink: 0;
}
#gap-panel .gap-tab {
  flex: 1;
  height: 34px;
  border-radius: 9px;
  border: 1px solid #E6E1D6;
  background: #FFFFFF;
  color: #6B665C;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .01em;
  cursor: pointer;
  transition: background .14s, color .14s, border-color .14s;
}
#gap-panel .gap-tab:hover { background: #FAF8F3; }
#gap-panel .gap-tab.active {
  background: #1B1A17;
  color: #FFFFFF;
  border-color: #1B1A17;
}

/* ─── Body ───────────────────────────────────────────────────────────── */
#gap-panel .gap-body {
  padding: 4px 18px 20px;
  overflow: auto;
  flex: 1;
}
#gap-panel .gap-pane[hidden] { display: none !important; }

/* ─── Activity edit card (name / duration / type) — its own section,
       separate from the relations tab ───────────────────────────────── */
#gap-panel .gap-act-edit {
  background: #FBF9F4;
  border: 1px solid #ECE7DC;
  border-radius: 12px;
  padding: 12px;
  margin: 14px 18px 2px;
  flex-shrink: 0;
}
#gap-panel .gap-act-head { margin-bottom: 9px; }
#gap-panel .gap-act-head-t {
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #1B1A17;
}
#gap-panel .gap-field--full { width: 100%; margin-bottom: 9px; }
#gap-panel .gap-act-grid {
  display: grid;
  grid-template-columns: 92px 1fr auto;
  gap: 8px;
  align-items: end;
}
#gap-panel .gap-act-grid .gap-btn.save { height: 32px; align-self: end; }
#gap-panel .gap-act-hint {
  font-size: 10px;
  color: #9A9488;
  line-height: 1.5;
  margin-top: 9px;
}

/* Relations: side by side — predecessors (left) / successors (right) */
#gap-panel .gap-rel-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
#gap-panel .gap-col {
  background: #FBF9F4;
  border: 1px solid #ECE7DC;
  border-radius: 12px;
  padding: 12px;
  min-width: 0;
}
#gap-panel .gap-col-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
#gap-panel .gap-col-title {
  font-size: 10.5px;
  font-weight: 800;
  color: #1B1A17;
  text-transform: uppercase;
  letter-spacing: .07em;
}
#gap-panel .gap-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 20px;
  padding: 0 7px;
  border-radius: 999px;
  background: #1B1A17;
  border: none;
  font-size: 10.5px;
  font-weight: 800;
  color: #FFFFFF;
}
#gap-panel .gap-rel-list,
#gap-panel .gap-res-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
#gap-panel .gap-rel-card {
  background: #FFFFFF;
  border: 1px solid #E8E3D8;
  border-radius: 10px;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
#gap-panel .gap-rel-name {
  display: block;
  width: 100%;
  background: none;
  border: none;
  padding: 0;
  text-align: left;
  color: #1B1A17;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  cursor: pointer;
  /* Show the FULL activity name (wraps to multiple lines instead of clipping). */
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
#gap-panel .gap-rel-name:hover { color: #8A6D3B; text-decoration: underline; }
#gap-panel .gap-rel-sub {
  font-size: 10px;
  font-family: 'JetBrains Mono', monospace;
  color: #9A9488;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Wrap so the relation controls stay readable inside narrow side-by-side
   columns: type on its own row, then lag · Save · X on the next row. */
#gap-panel .gap-edit-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
#gap-panel .gap-edit-row select.gap-sel { flex: 1 1 100%; }
#gap-panel .gap-edit-row input.gap-inp { flex: 1 1 44px; min-width: 44px; }
#gap-panel .gap-edit-row .gap-btn.ok { flex: 1 1 auto; }
#gap-panel .gap-edit-row .gap-btn.rm { flex: 0 0 32px; min-width: 32px; }

/* ─── Inputs & buttons ───────────────────────────────────────────────── */
#gap-panel select.gap-sel,
#gap-panel input.gap-inp {
  width: 100%;
  height: 32px;
  background: #FFFFFF;
  border: 1px solid #E0DACD;
  border-radius: 8px;
  color: #1B1A17;
  font-size: 12px;
  font-weight: 600;
  padding: 0 9px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
#gap-panel select.gap-sel:focus,
#gap-panel input.gap-inp:focus {
  border-color: #B79B6A;
  box-shadow: 0 0 0 3px rgba(183, 155, 106, .16);
}
#gap-panel input.gap-inp[type=number] { text-align: center; }
#gap-panel .gap-btn {
  height: 32px;
  border-radius: 8px;
  border: 1px solid #E0DACD;
  background: #FFFFFF;
  color: #4B463C;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: background .12s, border-color .12s, transform .1s;
}
#gap-panel .gap-btn:hover { background: #FAF8F3; }
#gap-panel .gap-btn:active { transform: translateY(1px); }
#gap-panel .gap-btn.ok,
#gap-panel .gap-btn.save {
  background: #1F9B50;
  border-color: #1A8746;
  color: #FFFFFF;
}
#gap-panel .gap-btn.ok:hover,
#gap-panel .gap-btn.save:hover { background: #1A8746; }
#gap-panel .gap-btn.save { min-width: 60px; }
#gap-panel .gap-btn.rm {
  background: #FFF1F0;
  border-color: #F3C9C5;
  color: #C0392B;
}
#gap-panel .gap-btn.rm:hover { background: #FCE3E0; }

#gap-panel .gap-empty {
  padding: 16px 12px;
  border: 1px dashed #DCD6C8;
  border-radius: 10px;
  font-size: 11px;
  color: #9A9488;
  text-align: center;
  background: #FBF9F4;
}

/* ─── Resources tab ──────────────────────────────────────────────────── */
#gap-panel .gap-res-hero {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
#gap-panel .gap-hero-main {
  grid-column: 1 / -1;
  background: #FAF8F3;
  border: 1px solid #ECE7DC;
  border-radius: 11px;
  padding: 11px 13px;
  min-width: 0;
}
#gap-panel .gap-hero-title {
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #9A9488;
}
#gap-panel .gap-hero-value {
  font-size: 13.5px;
  font-weight: 800;
  color: #1B1A17;
  margin-top: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#gap-panel .gap-res-card {
  background: #FBF9F4;
  border: 1px solid #ECE7DC;
  border-radius: 12px;
  padding: 12px;
}
#gap-panel .gap-res-head {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  margin-bottom: 10px;
}
#gap-panel .gap-res-title { flex: 1; min-width: 0; }
#gap-panel .gap-lbl {
  display: block;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #9A9488;
  margin-bottom: 5px;
}
#gap-panel .gap-res-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
#gap-panel .gap-field { display: flex; flex-direction: column; gap: 5px; }
#gap-panel .gap-field span {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #9A9488;
}
#gap-panel .gap-res-meta,
#gap-panel .gap-footnote {
  font-size: 10px;
  color: #9A9488;
  line-height: 1.55;
}
#gap-panel .gap-res-meta { margin-top: 8px; }
#gap-panel .gap-footnote {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #FBF9F4;
  border: 1px solid #ECE7DC;
}

/* ─── What holds this bar ─────────────────────────────────────────────
   A constraint does the same work a relationship does and had nowhere to
   show itself, so a held bar and an unheld one looked identical. These rows
   name what puts the bar where it sits, and why. */
#gap-panel .gap-hold {
  padding: 12px 18px 0;
  display: grid;
  gap: 8px;
  flex-shrink: 0;
}
#gap-panel .gap-hold-row {
  border-radius: 10px;
  padding: 9px 11px;
  border: 1px solid #ECE7DC;
  background: #FBF9F4;
  border-left-width: 3px;
}
#gap-panel .gap-hold-h {
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #9A9488;
}
#gap-panel .gap-hold-b {
  margin-top: 4px;
  font-size: 11.5px;
  line-height: 1.45;
  color: #3A3730;
}
#gap-panel .gap-hold--logic { border-left-color: #4B9E6A; }
#gap-panel .gap-hold--logic .gap-hold-h { color: #3F855A; }
#gap-panel .gap-hold--cstr { border-left-color: #C9A227; }
#gap-panel .gap-hold--cstr .gap-hold-h { color: #9C7C15; }
#gap-panel .gap-hold--why { border-left-color: #C8C2B4; }
#gap-panel .gap-hold--warn {
  border-left-color: #C0392B;
  background: #FDF4F2;
  border-color: #F0DAD5;
}
#gap-panel .gap-hold--warn .gap-hold-h { color: #A93226; }
#gap-panel .gap-hold--warn .gap-hold-b { color: #7B241C; }

/* Slim scrollbar */
#gap-panel .gap-body::-webkit-scrollbar { width: 8px; }
#gap-panel .gap-body::-webkit-scrollbar-thumb {
  background: #DCD6C8; border-radius: 999px; border: 2px solid #FFFFFF;
}

/* Narrow screens: panel becomes full-width sheet */
@media (max-width: 540px) {
  #gap-panel { width: 100vw; border-left: none; }
  #gap-panel .gap-res-grid { grid-template-columns: 1fr; }
  #gap-panel .gap-rel-grid { grid-template-columns: 1fr; }
}

/* tabs/gantt/styles/052-gantt-link-jump-v8-style.css */
#ganttOut .ga-link-focus-target {
                                                          animation: gaLinkFocusPulseV8 1.6s ease;
                                                        }

                                                        @keyframes gaLinkFocusPulseV8 {
                                                          0% {
                                                            box-shadow: inset 0 0 0 0 rgba(250, 204, 21, 0);
                                                            filter: brightness(1)
                                                          }

                                                          20% {
                                                            box-shadow: inset 0 0 0 2px rgba(250, 204, 21, .9), 0 0 0 1px rgba(250, 204, 21, .35);
                                                            filter: brightness(1.08)
                                                          }

                                                          100% {
                                                            box-shadow: inset 0 0 0 0 rgba(250, 204, 21, 0);
                                                            filter: brightness(1)
                                                          }
                                                        }

/* styles/tabs/053-prevent-scroll-select-during-bar-interaction.css */
/* Prevent scroll/select during bar interaction */
                                                        #ganttOut .p6-right {
                                                          touch-action: none;
                                                          user-select: none;
                                                        }

                                                        .p6-act-bar.gdf-drag {
                                                          outline: 2.5px solid #06b6d4 !important;
                                                          outline-offset: 3px;
                                                          cursor: ew-resize !important;
                                                          transition: none !important;
                                                          z-index: 500 !important;
                                                        }

                                                        .p6-act-bar.gdf-pred {
                                                          outline: 2px dashed rgba(251, 191, 36, .75) !important;
                                                          outline-offset: 2px;
                                                        }

                                                        .p6-act-bar.gdf-live-affected {
                                                          outline: 2px solid rgba(96, 165, 250, .72) !important;
                                                          outline-offset: 2px;
                                                          box-shadow: none !important;
                                                        }

                                                        .p6-row.gdf-live-affected .p6-side-lbl.act {
                                                          opacity: .98;
                                                          filter: brightness(1.04);
                                                        }

                                                        #gdftip {
                                                          position: fixed;
                                                          z-index: 2147483647;
                                                          display: none;
                                                          flex-direction: column;
                                                          gap: 3px;
                                                          padding: 10px 16px;
                                                          border-radius: 13px;
                                                          background: rgba(2, 5, 18, .97);
                                                          border: 2px solid #3b82f6;
                                                          font-family: 'DM Sans', sans-serif;
                                                          box-shadow: 0 14px 44px rgba(0, 0, 0, .85);
                                                          pointer-events: none;
                                                          white-space: nowrap;
                                                        }

                                                        #gdftip.fs {
                                                          border-color: #22c55e;
                                                        }

                                                        #gdftip.ff {
                                                          border-color: #f59e0b;
                                                        }

                                                        #gdftip.ss {
                                                          border-color: #8b5cf6;
                                                        }

                                                        #gdftip b {
                                                          font-size: 19px;
                                                          font-weight: 900;
                                                          display: block;
                                                        }

                                                        #gdftip s {
                                                          font-size: 11px;
                                                          color: #94a3b8;
                                                          font-style: normal;
                                                          display: block;
                                                        }

                                                        #gdftip em {
                                                          font-size: 10px;
                                                          font-weight: 700;
                                                          font-style: normal;
                                                          opacity: .8;
                                                          display: block;
                                                        }

.p6-act-bar.gdf-drag, .p6-act-bar.gdf-live-affected { will-change: transform; }

/* tabs/gantt/styles/054-gantt-stable-update-style.css */
body.gantt-stable-update #ganttOut,
                                                        body.gantt-stable-update #ganttOut * {
                                                          animation: none !important;
                                                          transition: none !important;
                                                          scroll-behavior: auto !important;
                                                        }

                                                        body.gantt-stable-update #ganttOut .p6-row,
                                                        body.gantt-stable-update #ganttOut .p6-left,
                                                        body.gantt-stable-update #ganttOut .p6-right,
                                                        body.gantt-stable-update #ganttOut .p6-act-bar,
                                                        body.gantt-stable-update #ganttOut .p6-sum-bar,
                                                        body.gantt-stable-update #ganttOut .p6-ms,
                                                        body.gantt-stable-update #ganttOut #ga-svg {
                                                          animation: none !important;
                                                          transition: none !important;
                                                          will-change: auto !important;
                                                        }

/* tabs/gantt/styles/055-gantt-visual-freeze-style.css */
#ganttOut #v9-gantt-outer,
                                                        #ganttOut .p6-outer,
                                                        #ganttOut .gantt-outer {
                                                          overflow-anchor: none !important;
                                                          scroll-behavior: auto !important;
                                                        }

                                                        .gantt-freeze-host {
                                                          position: relative !important;
                                                        }

                                                        .gantt-freeze-overlay {
                                                          position: absolute;
                                                          pointer-events: none;
                                                          overflow: hidden;
                                                          z-index: 2147483000;
                                                          contain: layout paint style;
                                                          backface-visibility: hidden;
                                                          transform: translateZ(0);
                                                        }

                                                        .gantt-freeze-overlay .freeze-viewport {
                                                          width: 100%;
                                                          height: 100%;
                                                          overflow: hidden;
                                                        }

                                                        .gantt-freeze-overlay .freeze-viewport>* {
                                                          transform: translateZ(0);
                                                        }

                                                        body.gantt-hard-freeze #ganttOut,
                                                        body.gantt-hard-freeze #ganttOut * {
                                                          animation: none !important;
                                                          transition: none !important;
                                                          scroll-behavior: auto !important;
                                                        }

/* tabs/gantt/styles/056-gantt-smart-link-handles-v2-style.css */
/* disable previous single-end handle patch */
                                                        #ganttOut .ga-edge-link-handle {
                                                          display: none !important;
                                                          pointer-events: none !important;
                                                          opacity: 0 !important;
                                                        }

                                                        #ganttOut #v9-gantt-outer .p6-right {
                                                          position: relative;
                                                          overflow: visible !important;
                                                        }

                                                        #ganttOut .ga-link-node {
                                                          position: absolute;
                                                          top: 50%;
                                                          width: 24px;
                                                          height: 24px;
                                                          border-radius: 50%;
                                                          border: none;
                                                          background: transparent;
                                                          box-shadow: none;
                                                          transform: translate(-50%, -50%) scale(.96);
                                                          transform-origin: center center;
                                                          opacity: 0;
                                                          pointer-events: none;
                                                          cursor: crosshair;
                                                          transition: opacity .22s ease, transform .18s ease;
                                                          z-index: 30;
                                                        }

                                                        #ganttOut .ga-link-node::before {
                                                          content: '';
                                                          position: absolute;
                                                          border-radius: 8px;
                                                          background: transparent;
                                                        }

                                                        /* Hitbox expands OUTSIDE the bar more than INSIDE */
                                                        #ganttOut .ga-link-node[data-side="start"]::before {
                                                          inset: -12px -14px -12px -120px;
                                                        }

                                                        #ganttOut .ga-link-node[data-side="finish"]::before {
                                                          inset: -12px -120px -12px -14px;
                                                        }

                                                        #ganttOut .ga-link-node::after {
                                                          content: '';
                                                          position: absolute;
                                                          left: 50%;
                                                          top: 50%;
                                                          width: 8px;
                                                          height: 8px;
                                                          border-radius: 50%;
                                                          border: 1px solid rgba(147, 197, 253, .68);
                                                          background: rgba(147, 197, 253, .20);
                                                          box-shadow: 0 0 0 0 rgba(31, 78, 121, 0), 0 0 12px rgba(31, 78, 121, .18);
                                                          transform: translate(-50%, -50%) scale(.92);
                                                          transition: transform .18s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease, opacity .2s ease;
                                                        }

                                                        #ganttOut .ga-link-node.is-soft-visible {
                                                          opacity: .78;
                                                          pointer-events: auto;
                                                          transform: translate(-50%, -50%) scale(1);
                                                        }

                                                        #ganttOut .ga-link-node.is-visible,
                                                        #ganttOut .ga-link-node.is-dragging,
                                                        #ganttOut .ga-link-node.is-target {
                                                          opacity: 1;
                                                          pointer-events: auto;
                                                          transform: translate(-50%, -50%) scale(1);
                                                        }

                                                        #ganttOut .ga-link-node:hover::after,
                                                        #ganttOut .ga-link-node.is-dragging::after,
                                                        #ganttOut .ga-link-node.is-target::after {
                                                          background: rgba(191, 219, 254, .38);
                                                          border-color: rgba(191, 219, 254, .96);
                                                          box-shadow: 0 0 0 4px rgba(31, 78, 121, .12), 0 0 18px rgba(79, 127, 168, .36);
                                                          transform: translate(-50%, -50%) scale(1.08);
                                                        }

                                                        #ganttOut .ga-link-node[data-side="start"]::after {
                                                          background: rgba(125, 211, 252, .18);
                                                        }

                                                        #ganttOut .ga-link-node[data-side="finish"]::after {
                                                          background: rgba(95, 137, 174, .18);
                                                        }

                                                        #ganttOut .p6-row.ga-link-source .p6-right {
                                                          box-shadow: inset 0 0 0 1px rgba(79, 127, 168, .22);
                                                        }

                                                        #ganttOut .p6-row.ga-link-target .p6-right {
                                                          box-shadow: inset 0 0 0 1px rgba(34, 197, 94, .28);
                                                          background-image: linear-gradient(90deg, rgba(34, 197, 94, .06), transparent 58%);
                                                        }

                                                        #ganttOut #ga-smart-link-overlay {
                                                          position: absolute;
                                                          left: 0;
                                                          top: 0;
                                                          pointer-events: none;
                                                          overflow: visible;
                                                          z-index: 29;
                                                        }

                                                        #ganttOut #ga-smart-link-overlay .ga-link-draft {
                                                          fill: none;
                                                          stroke: rgba(191, 219, 254, .95);
                                                          stroke-width: 2.2;
                                                          stroke-linecap: round;
                                                          stroke-dasharray: 7 6;
                                                          filter: drop-shadow(0 0 8px rgba(79, 127, 168, .22));
                                                        }

                                                        #ganttOut #ga-smart-link-overlay .ga-link-end {
                                                          fill: rgba(191, 219, 254, .95);
                                                          filter: drop-shadow(0 0 8px rgba(79, 127, 168, .25));
                                                        }

                                                        body[data-gantt-theme="light"] #ganttOut .ga-link-node::after {
                                                          border-color: rgba(30, 64, 175, .48);
                                                          background: rgba(79, 127, 168, .20);
                                                          box-shadow: 0 0 0 0 rgba(31, 78, 121, 0), 0 0 10px rgba(31, 78, 121, .14);
                                                        }

                                                        body[data-gantt-theme="light"] #ganttOut .p6-row.ga-link-target .p6-right {
                                                          background-image: linear-gradient(90deg, rgba(34, 197, 94, .08), transparent 58%);
                                                        }

/* tabs/gantt/styles/057-gantt-handle-edgeflush-override.css */
/* Make the visible dot emerge exactly from the bar edge while keeping the large magnetic hit area */
                                                        #ganttOut .ga-link-node[data-side="start"]::after {
                                                          left: calc(50% - 4px) !important;
                                                        }

                                                        #ganttOut .ga-link-node[data-side="finish"]::after {
                                                          left: calc(50% + 4px) !important;
                                                        }

                                                        /* keep hover/target/dragger states aligned to the shifted dot */
                                                        #ganttOut .ga-link-node[data-side="start"]:hover::after,
                                                        #ganttOut .ga-link-node[data-side="start"].is-dragging::after,
                                                        #ganttOut .ga-link-node[data-side="start"].is-target::after {
                                                          left: calc(50% - 4px) !important;
                                                        }

                                                        #ganttOut .ga-link-node[data-side="finish"]:hover::after,
                                                        #ganttOut .ga-link-node[data-side="finish"].is-dragging::after,
                                                        #ganttOut .ga-link-node[data-side="finish"].is-target::after {
                                                          left: calc(50% + 4px) !important;
                                                        }

/* tabs/gantt/styles/058-gantt-handle-barend-override.css */
/* Put the visible node center exactly on the bar edge itself */
                                                        #ganttOut .ga-link-node[data-side="start"]::after,
                                                        #ganttOut .ga-link-node[data-side="finish"]::after,
                                                        #ganttOut .ga-link-node[data-side="start"]:hover::after,
                                                        #ganttOut .ga-link-node[data-side="finish"]:hover::after,
                                                        #ganttOut .ga-link-node[data-side="start"].is-dragging::after,
                                                        #ganttOut .ga-link-node[data-side="finish"].is-dragging::after,
                                                        #ganttOut .ga-link-node[data-side="start"].is-target::after,
                                                        #ganttOut .ga-link-node[data-side="finish"].is-target::after {
                                                          left: 50% !important;
                                                        }

                                                        /* Keep a clean small dot, but make it read visually as coming out of the bar tip */
                                                        #ganttOut .ga-link-node::after {
                                                          width: 8px !important;
                                                          height: 8px !important;
                                                        }

/* styles/tabs/059-docai-executive-dashboard-css.css */
/* Document AI Executive Dashboard styling */
                                                        .docai-subtab {
                                                          padding: 14px 20px;
                                                          font-weight: 700;
                                                          font-size: 14px;
                                                          color: #64748b;
                                                          cursor: pointer;
                                                          border-bottom: 3px solid transparent;
                                                          transition: all 0.2s ease-in-out;
                                                          text-transform: uppercase;
                                                          letter-spacing: 0.5px;
                                                        }

                                                        .docai-subtab:hover {
                                                          color: #f8fafc;
                                                          background: rgba(255, 255, 255, 0.03);
                                                        }

                                                        .docai-subtab.active {
                                                          color: #3b82f6;
                                                          border-bottom-color: #3b82f6;
                                                          background: rgba(59, 130, 246, 0.05);
                                                        }

                                                        .docai-vt {
                                                          color: #94a3b8;
                                                          background: transparent;
                                                        }

                                                        .docai-vt.active {
                                                          color: #f8fafc;
                                                          background: #3b82f6;
                                                          box-shadow: 0 4px 15px rgba(59, 130, 246, 0.4);
                                                        }

                                                        .docai-vt:hover:not(.active) {
                                                          color: #f8fafc;
                                                          background: rgba(255, 255, 255, 0.1);
                                                        }

                                                        .docai-tr-hover:hover {
                                                          background: rgba(59, 130, 246, 0.05) !important;
                                                          color: #fff !important;
                                                        }

                                                        .docai-view {
                                                          animation: docaiFadeIn 0.3s ease-in-out;
                                                        }

                                                        @keyframes docaiFadeIn {
                                                          from {
                                                            opacity: 0;
                                                            transform: translateY(5px);
                                                          }

                                                          to {
                                                            opacity: 1;
                                                            transform: translateY(0);
                                                          }
                                                        }

                                                        /* Customize mermaid graph container */
                                                        .docai-view .panel {
                                                          border-radius: 12px;
                                                          overflow: hidden;
                                                        }

                                                        .docai-view .mermaid {
                                                          color: #f8fafc;
                                                        }

                                                        /* SubTab content panels */
                                                        .docai-subtp {
                                                          display: none;
                                                        }

                                                        .docai-subtp.active {
                                                          display: block;
                                                        }

                                                        /* Output area */
                                                        .docai-output {
                                                          min-height: 200px;
                                                          padding: 16px 0;
                                                          color: #cbd5e1;
                                                          font-size: 14px;
                                                          line-height: 1.8;
                                                        }

                                                        /* Responsive tables inside output */
                                                        .docai-output table {
                                                          width: 100%;
                                                          border-collapse: collapse;
                                                          margin: 16px 0;
                                                          font-size: 13px;
                                                        }

                                                        .docai-output table th {
                                                          background: #1e293b;
                                                          color: #60a5fa;
                                                          padding: 10px 14px;
                                                          text-align: left;
                                                          font-weight: 700;
                                                          border-bottom: 2px solid #3b82f6;
                                                        }

                                                        .docai-output table td {
                                                          padding: 9px 14px;
                                                          border-bottom: 1px solid #1e293b;
                                                          color: #cbd5e1;
                                                          vertical-align: top;
                                                        }

                                                        .docai-output table tr:hover td {
                                                          background: rgba(59, 130, 246, 0.05);
                                                        }

                                                        .docai-output h2 {
                                                          font-size: 18px;
                                                          font-weight: 800;
                                                          color: #f1f5f9;
                                                          margin: 28px 0 12px;
                                                          border-bottom: 1px solid #1e293b;
                                                          padding-bottom: 8px;
                                                        }

                                                        .docai-output h3 {
                                                          font-size: 15px;
                                                          font-weight: 700;
                                                          color: #94a3b8;
                                                          margin: 20px 0 10px;
                                                        }

                                                        .docai-output ul {
                                                          margin: 0 0 16px 24px;
                                                        }

                                                        .docai-output li {
                                                          margin-bottom: 6px;
                                                        }

                                                        /* ── Sub-tabs navigation ── */
                                                        .docai-subtab {
                                                          padding: 12px 22px;
                                                          font-size: 13px;
                                                          font-weight: 700;
                                                          color: #64748b;
                                                          cursor: pointer;
                                                          border-bottom: 3px solid transparent;
                                                          transition: all 0.2s;
                                                          white-space: nowrap;
                                                          user-select: none;
                                                        }

                                                        .docai-subtab:hover {
                                                          color: #94a3b8;
                                                          background: rgba(255, 255, 255, 0.03);
                                                        }

                                                        .docai-subtab.active {
                                                          color: #60a5fa;
                                                          border-bottom-color: #3b82f6;
                                                          background: rgba(59, 130, 246, 0.07);
                                                        }

                                                        /* ── Sub-tab content panes ── */
                                                        .docai-subtp {
                                                          display: none;
                                                        }

                                                        .docai-subtp.active {
                                                          display: block;
                                                        }

                                                        /* ── Row hover inside docai tables ── */
                                                        .docai-tr-hover:hover td {
                                                          background: rgba(59, 130, 246, 0.08) !important;
                                                        }

                                                        /* ── View-toggle buttons ── */
                                                        .docai-vt {
                                                          padding: 6px 14px;
                                                          border-radius: 20px;
                                                          font-size: 12px;
                                                          font-weight: 700;
                                                          cursor: pointer;
                                                          border: 1px solid #334155;
                                                          background: transparent;
                                                          color: #64748b;
                                                          transition: all 0.2s;
                                                          font-family: inherit;
                                                        }

                                                        .docai-vt.active {
                                                          background: #1e3a5f;
                                                          color: #60a5fa;
                                                          border-color: #3b82f6;
                                                        }

                                                        .docai-vt:hover {
                                                          color: #94a3b8;
                                                        }

                                                        /* ── Pulse animation for loading ── */
                                                        @keyframes pulse {

                                                          0%,
                                                          100% {
                                                            opacity: 1;
                                                            transform: scale(1);
                                                          }

                                                          50% {
                                                            opacity: 0.6;
                                                            transform: scale(1.1);
                                                          }
                                                        }

/* styles/tabs/060-docai-presentation-final-overrides.css */
#tp-docai .docai-btn {
                                                          padding: 12px 18px;
                                                          border-radius: 12px;
                                                          font-weight: 800;
                                                          cursor: pointer;
                                                          font-family: inherit;
                                                          transition: all 0.2s;
                                                          color: #fff;
                                                          border: none;
                                                          display: inline-flex;
                                                          align-items: center;
                                                          justify-content: center;
                                                          gap: 8px;
                                                        }

                                                        #tp-docai .docai-btn.primary {
                                                          background: linear-gradient(135deg, #1d4ed8, #3b82f6);
                                                          border: 1px solid rgba(59, 130, 246, .55);
                                                        }

                                                        #tp-docai .docai-btn.success {
                                                          background: linear-gradient(135deg, #065f46, #10b981);
                                                          border: 1px solid rgba(16, 185, 129, .4);
                                                        }

                                                        #tp-docai .docai-subtab {
                                                          display: inline-flex;
                                                          align-items: center;
                                                          gap: 10px;
                                                          padding: 12px 18px;
                                                          border-radius: 12px;
                                                          min-width: max-content;
                                                          color: #94a3b8;
                                                          font-size: 13px;
                                                          font-weight: 700;
                                                          cursor: pointer;
                                                          border: 1px solid transparent;
                                                          transition: all .22s ease;
                                                          border-bottom: none;
                                                          text-transform: none;
                                                          letter-spacing: normal;
                                                        }

                                                        #tp-docai .docai-subtab:hover {
                                                          color: #e2e8f0;
                                                          background: rgba(255, 255, 255, .03);
                                                        }

                                                        #tp-docai .docai-subtab.active {
                                                          color: #c7d2fe;
                                                          background: rgba(99, 102, 241, .16);
                                                          border-color: rgba(99, 102, 241, .28);
                                                          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
                                                        }

                                                        #tp-docai .docai-subtp {
                                                          display: none;
                                                        }

                                                        #tp-docai .docai-subtp.active {
                                                          display: block;
                                                        }

                                                        #tp-docai .docai-output {
                                                          min-height: 220px;
                                                          padding: 0;
                                                          color: inherit;
                                                          font-size: inherit;
                                                          line-height: inherit;
                                                        }

                                                        #tp-docai .docai-modebar {
                                                          position: sticky;
                                                          top: 64px;
                                                          z-index: 88;
                                                          background: rgba(8, 13, 26, .86);
                                                          backdrop-filter: blur(16px);
                                                          border-bottom: 1px solid rgba(99, 102, 241, .12);
                                                        }

                                                        #tp-docai .docai-modebar-inner {
                                                          display: flex;
                                                          gap: 8px;
                                                          padding: 10px 18px;
                                                          overflow: auto;
                                                        }

                                                        #tp-docai .docai-workspace {
                                                          padding: 22px;
                                                        }

                                                        #tp-docai .docai-pres-nav-wrap {
                                                          position: sticky;
                                                          top: var(--app-sticky-top);
                                                          z-index: 8;
                                                        }

