/*CSS for cell : tubemap*/

*, *::before, *::after { box-sizing: border-box; }

  :root{
        --bgyt:#eef1f5;
    --panelyt:#ffffffcc;
    --panelyt-strong:#ffffffee;
    --inkyt:#18222e;
    --mutedyt:#5f6c7b;
    --softyt:#dfe5ec;
    --line:#bfc9d6;
    --accentyt:#0f62fe;
    --shadowyt:0 18px 50px rgba(24,34,46,.12);
    --radius:15px;
    --map-w:1680;
    --map-h:1040;
  }

#magian-tube-map-wrapper{
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  z-index: 1;
  background: linear-gradient(180deg,#f4f6f9 0%,#e8edf3 100%);
}
.app-shell{
  display:grid;
  grid-template-rows:76px minmax(0,1fr);
  width:100%;
  height:100%;
  min-height:100%;
}
  .topbar{
    display:flex;align-items:center;justify-content:space-between;padding:14px 22px;
    background:rgba(255,255,255,.68);backdrop-filter:blur(16px);border-bottom:1px solid rgba(24,34,46,.08);
    position:relative;z-index:6;
  }
  .brand-wrap{display:flex;align-items:center;gap:14px}
  .roundel{position:relative;width:56px;height:56px;display:grid;place-items:center}
  .roundel::before{content:"";position:absolute;inset:0;border-radius:50%;border:8px solid #E2197C;background:#fff}
  .roundel::after{content:"";position:absolute;left:4px;right:4px;top:22px;height:12px;border-radius:999px;background:#232D4B}
  .roundel span{position:relative;z-index:1;color:#fff;font-weight:800;font-size:11px;letter-spacing:.12em}
  .brand-copy h1{margin:0;font-size:22px;line-height:1.1}
  .brand-copy p{margin:4px 0 0;color:var(--mutedyt);font-size:13px}
  .top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
  .search-wrap{position:relative}
  .search-wrap input{
    width:300px;padding:12px 14px 12px 40px;border-radius:14px;border:1px solid rgba(24,34,46,.12);
    background:#fff;outline:none;box-shadow:0 4px 20px rgba(24,34,46,.06)
  }
  .search-wrap svg{position:absolute;left:13px;top:11px;opacity:.55}

    .btn
    {
      border:none;
      border-radius:14px;
      padding:11px 14px;
      background:#fff;
      color:var(--inkyt);
      box-shadow:0 8px 24px rgba(24,34,46,.08);
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-weight:600;
      cursor:pointer;
      transition:transform .18s ease, background .18s ease, box-shadow .18s ease, color .18s ease;
    }

  .btn:hover{transform:translateY(-1px);background:#F5F340;color:#232D4B;box-shadow:0 12px 28px rgba(24,34,46,.12);}
  .btn.primary{background:linear-gradient(135deg,#0f62fe,#3a86ff);color:#fff}
  .btn.ghost{background:#f7f9fc;border:1px solid rgba(24,34,46,.09);box-shadow:none}
  .btn.warn{background:linear-gradient(135deg,#ffb347,#ff8a00);color:#fff}

    .btn.danger{background:linear-gradient(135deg,#e53935,#c62828);color:#fff}
  .btn.icon-btn{
    width:42px;
    height:42px;
    padding:0;
    justify-content:center;
    border-radius:12px;
    font-size:18px;
    line-height:1;
    flex:0 0 42px;
  }

  .tiny-btn,
.mini-op,
.brain-btn,
.terrain-btn,
.terrain-option,
.pres-header-close {
  cursor: pointer;
}

.workspace{
  display:grid;
  grid-template-columns:340px 1fr;
  gap:16px;
  padding:16px;
  height:100%;
  min-height:0;
  overflow:hidden;
}
  .panelyt.side-right{
    position:fixed;top:92px;right:16px;bottom:16px;width:380px;z-index:45;
    transform:translateX(calc(100% + 32px));transition:transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow:-10px 0 40px rgba(24,34,46,0.15);
  }
  .panelyt.side-right.open{transform:translateX(0);}
  /* --- Presentation Mode Styles --- */
  .presentation-overlay { position:fixed; inset:0; background:rgba(14,22,30,0.85); backdrop-filter:blur(16px); display:none; align-items:center; justify-content:center; z-index:200; opacity:0; transition: opacity 0.3s ease; padding: 20px; }
  .presentation-overlay.open { display:flex; opacity:1; }
  .presentation-layout { width: min(1000px, 100%); max-height: 95vh; background: #fff; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 40px 80px rgba(0,0,0,0.5); transform: translateY(20px); transition: 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
  .presentation-overlay.open .presentation-layout { transform: translateY(0); }
.pres-header { padding: 40px 50px; color: #fff; position: relative; flex-shrink: 0; }
.pres-header-close { position: absolute; top: 24px; right: 24px; background: rgba(255,255,255,0.2); border: none; color: #fff; width: 40px; height: 40px; border-radius: 50%; cursor: pointer; display: grid; place-items: center; transition: 0.2s; font-size: 18px; }
.pres-header-close:hover { background: rgba(255,255,255,0.4); transform: rotate(90deg); }

.pres-header-copy{
  color:rgba(255,255,255,.92);
}

.pres-header-more{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:none;
  background:transparent;
  appearance:none;
  font-family:inherit;
  color:#fff;
  font-weight:800;
  font-size:18px;
  line-height:1;
  margin-left:6px;
  padding:0 3px;
  cursor:pointer;
  vertical-align:baseline;
  text-decoration:underline;
  text-underline-offset:3px;
}

.pres-header-more:hover{
  opacity:.82;
  transform:translateY(-1px);
}

.pres-body { padding: 40px 50px; overflow-y: auto; background: #f8fafc; flex: 1; }
  .pres-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
  .pres-card { background: #fff; border: 1px solid rgba(24,34,46,0.08); border-radius: 14px; padding: 28px; box-shadow: 0 8px 24px rgba(24,34,46,0.04); }
  .pres-card h4 { margin: 0 0 12px 0; color: var(--mutedyt); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; }
  .pres-kpi-value { font-size: 18px; font-weight: 400; color: var(--inkyt); line-height: 1.2; margin-bottom: 8px; }
  .pres-timeline { border-left: 3px solid #e2e8f0; margin-left: 12px; padding-left: 32px; display: grid; gap: 32px; margin-top: 20px;}
  .pres-timeline-item { position: relative; }
  .pres-timeline-dot { position: absolute; left: -41px; top: 4px; width: 16px; height: 16px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 0 0 1px #cbd5e1; }
  .pres-timeline-content h5 { margin: 0 0 8px 0; font-size: 18px; font-weight: 800; }
  .pres-timeline-content p { margin: 0 0 6px 0; color: #475569; font-size: 14px; line-height: 1.6; }

    .pres-station-card{
    width:100%;
    border:none;
    background:#fff;
    text-align:left;
    padding:22px 24px;
    border-radius:16px;
    border:1px solid rgba(24,34,46,.08);
    box-shadow:0 8px 24px rgba(24,34,46,.05);
    cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .pres-station-card:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 32px rgba(24,34,46,.10);
    border-color:rgba(15,98,254,.18);
  }
  .pres-station-card .pres-timeline-content p:last-child{margin-bottom:0}
  .pres-station-link{
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:12px;
    font-size:13px;
    font-weight:800;
    color:var(--accentyt);
  }

  .pres-acc-wrap{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
  }
  .pres-acc-chip{
    border:none;
    border-radius:999px;
    padding:10px 12px;
    background:#f3f7fc;
    border:1px solid rgba(24,34,46,.08);
    color:var(--inkyt);
    font-size:12px;
    font-weight:800;
    cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  }
  .pres-acc-chip:hover{
    transform:translateY(-1px);
    background:#fff;
    box-shadow:0 10px 24px rgba(24,34,46,.10);
  }
  .pres-acc-chip.manual{
    background:#fff8e8;
    color:#9a6700;
    border-color:rgba(154,103,0,.18);
  }
  .pres-acc-chip-icon{
    margin-right:6px;
  }

  .panelyt{
    min-height:0;background:var(--panelyt);border:1px solid rgba(24,34,46,.08);border-radius:14px;backdrop-filter:blur(18px);
    box-shadow:var(--shadowyt);overflow:hidden;display:flex;flex-direction:column
  }
  .panelyt-header{
    display:flex;align-items:center;justify-content:space-between;padding:18px 18px 10px 18px
  }
  .panelyt-header h2{margin:0;font-size:18px}
  .panelyt-header p{margin:4px 0 0;color:var(--mutedyt);font-size:13px}
.panelyt-body{
  padding:0 18px 18px 18px;
  overflow:auto;
  min-height:0;
}
  .legend-stack{display:grid;gap:12px}
  .line-card{
    border-radius:14px;padding:14px;border:1px solid rgba(24,34,46,.08);background:rgba(255,255,255,.85);
    display:grid;gap:10px;transition:.2s ease;position:relative
  }
  .line-card:hover{transform:translateY(-1px);box-shadow:0 14px 26px rgba(24,34,46,.08)}
  .line-card.active{border-color:var(--line-color,#0f62fe);box-shadow:0 14px 28px color-mix(in srgb, var(--line-color,#0f62fe) 20%, transparent)}
  .line-card.dim{opacity:.45}
  .line-card-head{display:flex;align-items:center;gap:12px}
  .line-pill{width:56px;height:10px;border-radius:999px;background:var(--line-color,#0f62fe);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
  .line-name{font-size:15px;font-weight:800;line-height:1.2}
  .mini-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--mutedyt);font-size:12px}
  .mini-chip{padding:4px 9px;border-radius:999px;background:#f3f6fb;border:1px solid rgba(24,34,46,.06)}
  .card-actions{display:flex;gap:8px;flex-wrap:wrap}
  .tiny-btn{
    border:none;border-radius:12px;padding:8px 10px;background:#f3f6fb;font-size:12px;font-weight:700;color:var(--inkyt)
  }
  .tiny-btn:hover{background:#fff;transform:translateY(-1px);border-color:rgba(24,34,46,.12)}
    .line-desc-more{
    border:none;
    background:transparent;
    color:var(--accentyt);
    font-weight:800;
    font-size:14px;
    line-height:1;
    margin-left:4px;
    padding:0 2px;
    cursor:pointer;
    vertical-align:baseline;
  }
  .line-desc-more:hover{
    color:#232D4B;
    text-decoration:underline;
  }

  .inline-more{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  .inspector-primary-copy{
    color:var(--inkyt);
    font-size:14px;
    line-height:1.6;
  }

  .desc-popover{
    position:fixed;
    inset:0;
    background:rgba(14,22,30,.22);
    backdrop-filter:blur(6px);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:250;
    padding:20px;
  }
  .desc-popover.open{
    display:flex;
  }
  .desc-popover-card{
    width:min(520px,92vw);
    max-height:min(70vh,520px);
    overflow:auto;
    background:rgba(255,255,255,.96);
    border:1px solid rgba(24,34,46,.10);
    border-radius:18px;
    box-shadow:0 30px 80px rgba(24,34,46,.22);
    padding:18px 18px 16px;
  }
  .desc-popover-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
  }
  .desc-popover-title{
    font-size:16px;
    font-weight:800;
    color:var(--inkyt);
    line-height:1.25;
  }
  .desc-popover-close{
    border:none;
    background:#f3f6fb;
    color:var(--inkyt);
    width:34px;
    height:34px;
    border-radius:50%;
    font-weight:800;
    cursor:pointer;
    flex:0 0 auto;
  }
  .desc-popover-close:hover{
    background:#e8eef8;
    transform:translateY(-1px);
  }
  .desc-popover-body{
    color:var(--mutedyt);
    font-size:14px;
    line-height:1.65;
    white-space:pre-wrap;
  }
  .map-panel{position:relative;min-height:0;padding:16px;display:flex;flex-direction:column}
  .map-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px;flex-wrap:wrap}
  .map-toolbar .hint{color:var(--mutedyt);font-size:13px}
  .map-toolbar .controls{display:flex;gap:8px;flex-wrap:wrap}
  .view-mode-toggle{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(24,34,46,.09);
  box-shadow:0 8px 22px rgba(24,34,46,.08);
}

.view-mode-btn{
  border:none;
  background:transparent;
  color:var(--mutedyt);
  border-radius:999px;
  padding:9px 14px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.view-mode-btn:hover{
  color:var(--inkyt);
  transform:translateY(-1px);
}

.view-mode-btn.active{
  background:linear-gradient(135deg,#0f62fe,#3a86ff);
  color:#fff;
  box-shadow:0 8px 18px rgba(15,98,254,.22);
}

.view-mode-meta{
  display:grid;
  gap:6px;
  align-items:start;
}

.mode-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  padding:6px 10px;
  border-radius:999px;
  background:#eef5ff;
  color:var(--accentyt);
  border:1px solid rgba(15,98,254,.12);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.mode-badge.is-value{
  background:#fff8e8;
  color:#9a6700;
  border-color:rgba(154,103,0,.18);
}

.view-mode-hint{
  color:var(--mutedyt);
  font-size:13px;
  line-height:1.5;
  font-weight:700;
}

.map-frame[data-mode="value"]{
  border-color:rgba(154,103,0,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 0 0 1px rgba(154,103,0,.08);
}

.map-help-chip{
  position:absolute;
  top:16px;
  left:16px;
  z-index:14;
  border:none;
  border-radius:999px;
  padding:10px 14px;
  background:rgba(255,255,255,.96);
  color:var(--mutedyt);
  border:1px solid rgba(24,34,46,.08);
  box-shadow:0 10px 24px rgba(24,34,46,.08);
  font-size:12px;
  font-weight:700;
  line-height:1.35;
  text-align:left;
  max-width:min(560px,calc(100% - 260px));
  cursor:pointer;
}

.map-help-chip.hidden{
  display:none;
}

.station-value-chip rect{
  fill:rgba(17,24,39,.92);
  stroke:rgba(255,255,255,.28);
  stroke-width:1;
  box-shadow:0 10px 22px rgba(17,24,39,.18);
}

.station-value-chip text{
  fill:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.01em;
}

.station-value-chip.active rect{
  fill:#0f62fe;
}

.minimap-svg .station-value-chip{
  display:none;
}
  .focus-pill{
    display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;background:#fff;border:1px solid rgba(24,34,46,.08);
    box-shadow:0 8px 22px rgba(24,34,46,.06);font-size:13px;font-weight:700
  }

  .map-panelyt{
  min-height:0;
  overflow:hidden;
}

.map-frame{
    position:relative;
    flex:1;
    min-height:0;
    height:100%;
    border-radius:14px;
    border:1px solid rgba(24,34,46,.08);
    background:#f6f7f3;
    overflow:hidden;
    cursor:grab;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
    touch-action:none;
    user-select:none;
 }

.map-svg{
  display:block;
  width:100%;
  height:100%;
}

.minimap {
    position: absolute;
    bottom: 16px;
    right: 16px;
    width: 192px;
    height: 118px;
    background: rgba(255,255,255,0.85);
    border: 1px solid rgba(24,34,46,0.15);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(24,34,46,0.12);
    overflow: hidden;
    cursor: crosshair;
    z-index: 10;
    backdrop-filter: blur(8px);
   }
   .minimap-svg {
    width: 100%;
    height: 100%;
    pointer-events: none;
   }
.minimap-view {
    position: absolute;
    /* This represents your 'camera' lens on the map */

    background: rgba(15, 98, 254, 0.1);
    pointer-events: none;
    box-sizing: border-box;
    border-radius: 2px;
    z-index: 12;
   }
  /* --- Terrain Map Layer UI --- */
   .terrain-widget { position: absolute; bottom: 16px; left: 16px; z-index: 20; }
   .terrain-btn { background: rgba(255,255,255,0.9); backdrop-filter: blur(8px); border: 1px solid rgba(24,34,46,0.15); border-radius: 12px; padding: 10px 14px; box-shadow: 0 8px 24px rgba(24,34,46,0.12); cursor: pointer; display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 13px; color: var(--inkyt); transition: 0.2s ease; }
   .terrain-btn:hover { background: #fff; transform: translateY(-2px); }
   .terrain-menu { position: absolute; bottom: calc(100% + 10px); left: 0; background: #fff; border: 1px solid rgba(24,34,46,0.1); border-radius: 14px; box-shadow: 0 12px 30px rgba(24,34,46,0.15); display: none; flex-direction: column; overflow: hidden; width: 220px; }
   .terrain-menu.show { display: flex; }
   .terrain-option { padding: 12px 16px; cursor: pointer; font-size: 13px; font-weight: 600; border-bottom: 1px solid rgba(24,34,46,0.04); display: flex; align-items: center; gap: 10px; transition: 0.15s; }
   .terrain-option:hover { background: #f3f6fb; color: var(--accentyt); }
   .terrain-option:last-child { border-bottom: none; }
   

   /* Industry Context Card */
   .context-card { background: linear-gradient(135deg, #eef5ff, #f6f9fd); border-left: 4px solid var(--accentyt); padding: 14px; border-radius: 8px; margin-bottom: 10px; font-size: 13px; line-height: 1.5; }
   .context-card strong { display: block; color: var(--accentyt); margin-bottom: 4px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; }

  .zone-shape{fill-opacity:.2}

  .zone-circle { fill: transparent; stroke: rgba(24,34,46,0.06); stroke-width: 2px; pointer-events: none; }
  .zone-label { fill: rgba(24,34,46,0.3); font-size: 16px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; pointer-events: none; }
  .express-line { stroke-dasharray: 20 16; }
  .you-are-here { fill: none; stroke: #f44f44; stroke-width: 4px; transform-origin: center; animation: pulse 2s cubic-bezier(0.4, 0, 0.2, 1) infinite; pointer-events: none;}
  @keyframes pulse { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(2.5); opacity: 0; } }

  .line-stroke{
    fill:none;
    stroke-width:8;
    stroke-linecap:round;
    stroke-linejoin:round;
    cursor:pointer;
    transition:.18s ease;
    filter:none;
  }
  .line-stroke.dim{opacity:.14}
  .line-hit{
    fill:none;
    stroke:transparent;
    stroke-width:24;
    cursor:pointer
  }
  .station-node{cursor:pointer}
  .station-node.dim{opacity:.22}
  .station-core{
    fill:#ffffff;
    stroke:#1d2733;
    stroke-width:3;
    transition:0.2s ease;
  }
  .station-core.shared{stroke-width:4;}

    .station-core.active{stroke:#0f62fe;fill:#ffffff;stroke-width:4;}
    .station-label{
      font-family: Arial, Helvetica, sans-serif; font-size:12px; font-weight:600; fill:#111; paint-order:stroke; stroke:rgba(255,255,255,0.9); stroke-width:5px; stroke-linejoin:round; letter-spacing:-0.01em;
   }
  .station-label.dim{opacity:.28}
  .station-sub{font-size:10px;font-weight:700;fill:#4d5c6e;paint-order:stroke;stroke:#fff;stroke-width:4px}
  .train-group{pointer-events:none}
  .train-body{fill:#111827}
  .train-band{fill:var(--train-color,#0f62fe)}
  .train-window{fill:#ffffff}
  .train-label{
    font-size:11px;font-weight:800;fill:#1b2430;paint-order:stroke;stroke:#fff;stroke-width:4px;letter-spacing:.02em
  }
  .right-section{display:grid;gap:14px}
  .info-card{
    border-radius:14px;background:#fff;border:1px solid rgba(24,34,46,.08);padding:16px;display:grid;gap:10px
  }
  .info-card h3{margin:0;font-size:17px}
  .subtle{color:var(--mutedyt);font-size:13px;line-height:1.55}
  .detail-grid{display:grid;gap:10px}
  .detail-row{display:grid;gap:6px}
  .detail-row strong{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#516070}
  .route-list{display:grid;gap:8px}
  .route-pill{
    display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:14px;background:#f6f9fd;border:1px solid rgba(24,34,46,.06)
  }
  .route-dot{width:12px;height:12px;border-radius:50%;background:var(--route-color,#0f62fe);box-shadow:0 0 0 3px rgba(15,98,254,.12)}
.empty-state{
  border-radius:14px;
  padding:18px;
  background:linear-gradient(135deg,#fff,#f7fbff);
  border:1px dashed rgba(24,34,46,.14);
  color:var(--mutedyt);
}
.empty-state strong{
  display:block;
  color:var(--inkyt);
  margin-bottom:6px;
}
.empty-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.is-hidden-advanced{
  display:none !important;
}
.toast {
  position: fixed;
  left: 50%;
  top: 50%; /* Replaces bottom: 24px */
  transform: translate(-50%, -50%); /* Centers perfectly on both axes */
  padding: 12px 16px;
  border-radius: 14px;
  height: 50px;
  background: #111827;
  color: #fff;
  box-shadow: 0 18px 40px rgba(17, 24, 39, .28);
  opacity: 0;
  pointer-events: none;
  transition: .25s ease;
  z-index: 50000;
}

.toast.show{opacity:1;transform:translate(-50%, -50%)}

.modal-overlay{
  position:fixed;
  inset:0;
  margin:0;
  background:rgba(14,22,30,.42);
  backdrop-filter:blur(8px);
  display:none;
  align-items:flex-start;
  justify-content:center;
  padding:22px;
  overflow:auto;
  z-index:60;
}

.modal-overlay.open{
  display:flex;
}

#terrainModalOverlay{z-index:210}
#lineModalOverlay{z-index:220}
#stationModalOverlay{z-index:230}
#acceleratorStoreOverlay{z-index:240}
#acceleratorDetailOverlay{z-index:250}
#importReviewOverlay{z-index:260}
#llmAssistOverlay{z-index:270}
#confirmOverlay{z-index:280}
#promptOverlay{z-index:285}

  .modal{
  width:min(1100px,95vw);
  max-height:calc(100vh - 44px);
  margin:0 auto;
  overflow:hidden;
  border-radius:8px;
  background:rgba(252,253,255,.96);
  border:1px solid rgba(24,34,46,.1);
  box-shadow:0 40px 90px rgba(24,34,46,.22);
  display:flex;
  flex-direction:column;
}

.confirm-modal{
  width:min(520px,94vw);
}

.confirm-shell{
  display:grid;
  gap:18px;
}

.confirm-head{
  display:flex;
  align-items:flex-start;
  gap:16px;
}

.confirm-icon{
  width:54px;
  height:54px;
  border-radius:16px;
  display:grid;
  place-items:center;
  font-size:24px;
  background:linear-gradient(180deg,#fff5f5 0%,#ffe9e9 100%);
  border:1px solid rgba(229,57,53,.14);
  box-shadow:0 10px 24px rgba(229,57,53,.10);
  flex:0 0 54px;
}

.confirm-copy h3{
  margin:2px 0 6px 0;
  font-size:22px;
  line-height:1.15;
}

.confirm-copy p{
  margin:0;
  color:var(--mutedyt);
  font-size:14px;
  line-height:1.65;
}

.confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}

.modal-header{
  padding:18px 22px;
  border-bottom:1px solid rgba(24,34,46,.08);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(248,251,255,.96) 100%);
  backdrop-filter:blur(14px);
}

.modal-header h3
{
  margin:0;
  font-size:22px;
  line-height:1.15;
  letter-spacing:-.02em;
}

.modal-header p{
  margin:6px 0 0;
  color:var(--mutedyt);
  font-size:13px;
  line-height:1.55;
}
  .modal-header h3{margin:0;font-size:22px}
  .modal-header p{margin:6px 0 0;color:var(--mutedyt)}
  
  .modal-body{
  padding:20px 22px 22px;
  overflow:auto;
  display:grid;
  gap:18px;
  flex:1 1 auto;
  min-height:0;
}

  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .form-grid.one{grid-template-columns:1fr}
  .field{
    background:#fff;border:1px solid rgba(24,34,46,.09);border-radius:14px;padding:14px;display:grid;gap:9px
  }
  .field label{font-weight:400;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:#4d5c6e}
  .field textarea,.field input,.field select{
    width:100%;border:1px solid rgba(24,34,46,.1);border-radius:14px;padding:11px 12px;background:#f9fbfd;outline:none;color:var(--inkyt)
  }
  .field textarea{resize:vertical;min-height:108px;line-height:1.5}
  .input-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start}
  .brain-btn{
    align-self:start;border:none;border-radius:14px;padding:10px 12px;background:#eef5ff;color:#0f62fe;font-weight:800;box-shadow:inset 0 0 0 1px rgba(15,98,254,.1)
  }
  .stack{display:grid;gap:12px}
  .route-editor{
    display:grid;grid-template-columns:1.2fr .9fr;gap:16px
  }
  .route-board{
    background:#fff;border:1px solid rgba(24,34,46,.09);border-radius:14px;padding:14px;display:grid;gap:12px
  }
  .route-board h4,.side-board h4{margin:0}
.route-item{
      display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:10px;background:#f7fafe;border:1px solid rgba(24,34,46,.06);border-radius:14px;padding:10px 12px; transition: border 0.2s ease;
   }
  .route-index{
    width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#111827;color:#fff;font-size:12px;font-weight:800
  }
  .route-ops{display:flex;gap:6px}
  .mini-op{
    border:none;border-radius:10px;padding:7px 9px;background:#fff;border:1px solid rgba(24,34,46,.08);font-size:9px;font-weight:800
  }
  .mini-op:hover{background:#f3f6fb;transform:translateY(-1px);border-color:rgba(24,34,46,.12)}
  .side-board{
    background:#fff; border:1px solid rgba(24,34,46,.09);border-radius:14px;padding:14px;display:grid;gap:12px;height:max-content
  }
  .side-board select{
  width:100%;
  min-height:44px;
  border:1px solid rgba(24,34,46,.10);
  border-radius:12px;
  padding:10px 12px;
  background:#f9fbfd;
  color:var(--inkyt);
  outline:none;
}

.side-board select:disabled{
  opacity:.55;
  cursor:not-allowed;
}
  .helper{
    font-size:12px;color:var(--mutedyt);line-height:1.5
  }
  .map-placement{
    padding:10px 12px;border-radius:14px;background:#fff3cd;border:1px solid rgba(255,167,38,.25);color:#6d4c00;font-weight:700
  }
  .pill-row{display:flex;gap:8px;flex-wrap:wrap}
  .utility-chip{
    padding:8px 10px;border-radius:999px;background:#f3f7fc;border:1px solid rgba(24,34,46,.07);font-size:12px;font-weight:700
  }
  .modal-actions{
    display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:2px
  }
  .left-actions,.right-actions{display:flex;gap:10px;flex-wrap:wrap}
  .sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
  .kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .kpi{
    border-radius:14px;background:linear-gradient(180deg,#fff,#f6f9fd);border:1px solid rgba(24,34,46,.07);padding:14px
  }
  .kpi strong{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#667689}
  .kpi span{display:block;margin-top:8px;font-weight:800;font-size:22px}
  .footer-note{color:var(--mutedyt);font-size:12px;line-height:1.5}

  /* --- Import Review --- */
.import-preview{
  display:grid;
  gap:12px;
}

.import-card{
  background:#fff;
  border:1px solid rgba(24,34,46,.08);
  border-radius:14px;
  padding:14px;
  display:grid;
  gap:10px;
}

.import-card h4{
  margin:0;
  font-size:16px;
  line-height:1.25;
}

.import-meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.import-badge{
  padding:6px 10px;
  border-radius:999px;
  background:#f3f7fc;
  border:1px solid rgba(24,34,46,.08);
  font-size:12px;
  font-weight:700;
}

.import-stations{
  display:grid;
  gap:8px;
}

.import-station{
  background:#f8fbff;
  border:1px solid rgba(24,34,46,.06);
  border-radius:12px;
  padding:10px 12px;
}

.import-station-name{
  font-weight:800;
  margin-bottom:4px;
}

.import-reasoning{
  padding:12px 14px;
  background:#f7fbff;
  border-left:4px solid var(--accentyt);
  border-radius:10px;
  color:var(--inkyt);
  line-height:1.55;
}

#importTargetLineField.is-disabled{
  opacity:.45;
  pointer-events:none;
}

/* --- Accelerator Store --- */
.brain-stack{
  display:flex;
  flex-direction:row;
  gap:8px;
}

.acc-store-btn{
  align-self:start;
  border:none;
  border-radius:14px;
  padding:10px 12px;
  background:#fff8e8;
  color:#9a6700;
  font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(154,103,0,.14);
  cursor:pointer;
}
.acc-store-btn:hover{
  background:#fff1c9;
  transform:translateY(-1px);
}

.station-accelerator-editor{
  display:grid;
  gap:10px;
}

.station-accelerator-hidden{
  display:none;
}

.station-accelerator-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  min-height:52px;
  padding:10px 12px;
  border:1px solid rgba(24,34,46,.10);
  border-radius:14px;
  background:#f9fbfd;
  align-items:flex-start;
  overflow-y: auto;
}

.station-accelerator-empty{
  color:var(--mutedyt);
  font-size:13px;
  line-height:1.5;
}

.station-accelerator-entry{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
}

.station-acc-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  max-width:100%;
  padding:6px 8px 6px 10px;
  border-radius:999px;
  background:#ffffff;
  border:1px solid rgba(24,34,46,.10);
  box-shadow:0 6px 16px rgba(24,34,46,.06);
}

.station-acc-chip.manual{
  background:#fff8e8;
  border-color:rgba(154,103,0,.18);
}

.station-acc-chip-label{
  border:none;
  background:transparent;
  padding:0;
  margin:0;
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--inkyt);
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  max-width:100%;
}

.station-acc-chip-label:hover{
  color:var(--accentyt);
}

.station-acc-chip-label-text{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:220px;
}

.station-acc-chip-demo{
  font-size:13px;
  line-height:1;
  flex:0 0 auto;
}

.station-acc-chip-remove{
  border:none;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#f3f6fb;
  color:var(--inkyt);
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  flex:0 0 auto;
}

.station-acc-chip-remove:hover{
  background:#e8eef8;
  transform:translateY(-1px);
}

.accelerator-video-card{
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  border:1px solid rgba(24,34,46,.08);
  box-shadow:0 12px 28px rgba(24,34,46,.06);
  padding:18px;
}

.accelerator-video-frame{
  margin-top:12px;
  overflow:hidden;
  border-radius:16px;
  border:1px solid rgba(24,34,46,.08);
  background:#000;
  aspect-ratio:16 / 9;
}

.accelerator-video-frame iframe,
.accelerator-video-frame video{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

.accelerator-video-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:12px;
  color:var(--accentyt);
  font-weight:800;
  text-decoration:none;
}

.accelerator-video-link:hover{
  text-decoration:underline;
}

.accelerator-store-modal{
  width:min(1180px,96vw);
}

.accelerator-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:16px;
  align-items:end;
}

.accelerator-toolbar-left{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}

.accelerator-search-field{
  margin:0;
  background:#fff;
}

.accelerator-store-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(235px,1fr));
  gap:14px;
}

.accelerator-card{
  position:relative;
  display:grid;
  gap:10px;
  padding:16px;
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  border:1px solid rgba(24,34,46,.08);
  box-shadow:0 10px 26px rgba(24,34,46,.06);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  cursor:pointer;
}
.accelerator-card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(24,34,46,.10);
  border-color:rgba(15,98,254,.20);
}

.accelerator-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.accelerator-app-icon{
  width:52px;
  height:52px;
  border-radius:16px;
  display:grid;
  place-items:center;
  font-size:26px;
  background:linear-gradient(135deg,#eef5ff,#f8fbff);
  border:1px solid rgba(15,98,254,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}

.accelerator-view-btn{
  border:none;
  width:36px;
  height:36px;
  border-radius:12px;
  background:#f3f7fc;
  color:var(--inkyt);
  font-size:16px;
  cursor:pointer;
  transition:transform .16s ease, background .16s ease;
}
.accelerator-view-btn:hover{
  background:#eaf1fb;
  transform:translateY(-1px);
}

.accelerator-card-name{
  font-size:15px;
  font-weight:800;
  line-height:1.3;
  color:var(--inkyt);
}

.accelerator-card-summary{
  font-size:13px;
  line-height:1.55;
  color:var(--mutedyt);
  min-height:40px;
}

.accelerator-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.accelerator-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  background:#f3f7fc;
  border:1px solid rgba(24,34,46,.08);
  font-size:11px;
  font-weight:700;
  color:#516070;
}

.accelerator-empty{
  grid-column:1 / -1;
  padding:22px;
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#f7fbff);
  border:1px dashed rgba(24,34,46,.12);
  color:var(--mutedyt);
}

.accelerator-detail-modal{
  width:min(1080px,96vw);
}

.accelerator-detail-shell{
  display:grid;
  gap:20px;
}

.accelerator-detail-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:110px 1fr;
  gap:20px;
  align-items:start;
  padding:24px;
  border-radius:24px;
  background:
    radial-gradient(1200px 380px at -10% -20%, rgba(15,98,254,.18), transparent 50%),
    radial-gradient(700px 260px at 110% 0%, rgba(58,134,255,.12), transparent 42%),
    linear-gradient(135deg,#ffffff 0%,#f6faff 48%,#edf5ff 100%);
  border:1px solid rgba(15,98,254,.14);
  box-shadow:
    0 18px 46px rgba(15,98,254,.10),
    inset 0 1px 0 rgba(255,255,255,.8);
}

.accelerator-detail-hero::after{
  content:"";
  position:absolute;
  inset:auto -90px -90px auto;
  width:240px;
  height:240px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(15,98,254,.10) 0%, transparent 68%);
  pointer-events:none;
}

.accelerator-detail-icon{
  width:110px;
  height:110px;
  border-radius:30px;
  display:grid;
  place-items:center;
  font-size:52px;
  background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
  border:1px solid rgba(15,98,254,.16);
  box-shadow:
    0 18px 34px rgba(15,98,254,.10),
    inset 0 1px 0 rgba(255,255,255,.95);
}

.accelerator-detail-headline{
  display:grid;
  gap:12px;
  min-width:0;
}

.accelerator-detail-name{
  margin:0;
  font-size:30px;
  line-height:1.08;
  letter-spacing:-.03em;
  color:var(--inkyt);
}

.accelerator-detail-subtitle{
  color:var(--mutedyt);
  font-size:15px;
  line-height:1.7;
  max-width:760px;
}

.accelerator-detail-chipbar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.accelerator-detail-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:9px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(24,34,46,.08);
  box-shadow:0 8px 18px rgba(24,34,46,.05);
  font-size:12px;
  font-weight:800;
  color:#334155;
}

.accelerator-detail-kpi-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.accelerator-detail-kpi{
  padding:14px 14px 12px;
  border-radius:18px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(24,34,46,.08);
  box-shadow:0 10px 22px rgba(24,34,46,.05);
}

.accelerator-detail-kpi-label{
  display:block;
  margin-bottom:8px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#64748b;
}

.accelerator-detail-kpi-value{
  font-size:14px;
  line-height:1.45;
  font-weight:700;
  color:var(--inkyt);
  word-break:break-word;
}

.accelerator-detail-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.accelerator-detail-section{
  min-height:100%;
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  border:1px solid rgba(24,34,46,.08);
  box-shadow:0 12px 28px rgba(24,34,46,.06);
  padding:18px 18px 16px;
}

.accelerator-detail-section-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:#47627e;
}

.accelerator-detail-section-icon{
  width:30px;
  height:30px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#eef5ff;
  border:1px solid rgba(15,98,254,.10);
  font-size:15px;
}

.accelerator-detail-section-body{
  color:var(--inkyt);
  font-size:14px;
  line-height:1.75;
  white-space:pre-wrap;
}

.accelerator-detail-section-body.muted{
  color:var(--mutedyt);
}

@media (max-width:980px)
{
  .accelerator-toolbar{
    grid-template-columns:1fr;
  }

  .accelerator-detail-hero{
    grid-template-columns:1fr;
  }

  .accelerator-detail-kpi-row{
    grid-template-columns:1fr 1fr;
  }

  .accelerator-detail-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px)
{
  .accelerator-detail-name{
    font-size:24px;
  }

  .accelerator-detail-kpi-row{
    grid-template-columns:1fr;
  }
}

@media (max-width:980px)
{
  .accelerator-toolbar{
    grid-template-columns:1fr;
  }

  .accelerator-detail-hero{
    grid-template-columns:1fr;
  }

  .accelerator-detail-grid{
    grid-template-columns:1fr;
  }
}

  @media (max-width:1500px){
    .workspace{grid-template-columns:300px 1fr}
  }

  @media (max-width:1250px){
    .workspace{grid-template-columns:1fr}
    
    .panelyt.side-left{
      max-height:320px;
    }

    .panelyt.side-right{
      position:relative;
      top:auto;
      right:auto;
      bottom:auto;
      width:auto;
      max-height:420px;
      z-index:1;
      transform:none !important;
      box-shadow:var(--shadowyt);
    }

    .panelyt.side-right.open{
      transform:none !important;
    }
  }

  .category-group { margin-bottom: 16px; border: 1px solid rgba(24,34,46,0.05); border-radius: 14px; background: rgba(255,255,255,0.4); overflow: hidden; transition: 0.2s; }
  .category-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; cursor: pointer; background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,255,255,0.4)); border-bottom: 1px solid rgba(24,34,46,0.05); }
  .category-header:hover { background: #fff; }
  .category-title { font-size: 13px; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--accentyt); display: flex; align-items: center; gap: 8px; }
  .category-actions { display: flex; gap: 4px; opacity: 0; transition: 0.2s; }
  .category-header:hover .category-actions { opacity: 1; }
  .category-dropzone { padding: 12px; display: grid; gap: 10px; min-height: 40px; transition: background 0.2s, border 0.2s; }
  .category-dropzone.drag-over { background: rgba(15, 98, 254, 0.05); border-radius: 0 0 14px 14px; box-shadow: inset 0 0 0 2px var(--accentyt); }
  .category-input { border: none; background: transparent; font: inherit; font-size: 13px; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--accentyt); outline: none; border-bottom: 1px dashed var(--accentyt); width: 150px;}

  @media (max-height: 900px){
  .modal-overlay{
    padding:14px;
  }

  .modal{
    max-height:calc(100vh - 28px);
  }

  .modal-header{
    padding:14px 16px;
  }

  .modal-body{
    padding:16px;
  }
}