
:root{
  --bg:#0b1220; --panel:#111827; --panel2:#0f172a; --line:#334155; --text:#e5eef9; --muted:#94a3b8;
  --accent:#38bdf8; --gold:#facc15; --danger:#ef4444;
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);background:#020617;gap:12px;position:sticky;top:0;z-index:40}
.brand{font-weight:700;letter-spacing:.02em}
.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn{background:#1e293b;color:var(--text);border:1px solid #475569;border-radius:8px;padding:8px 12px;cursor:pointer}
.btn:hover{border-color:var(--accent);color:#fff}
.btn.primary{background:#0c4a6e;border-color:#0284c7}
.btn.good{background:#15351f;border-color:#166534}
.btn.danger{background:#391516;border-color:#7f1d1d}
.btn.small{padding:6px 9px;font-size:12px}
.layout{display:grid;grid-template-columns:320px 1fr 370px;height:calc(100vh - 57px)}
.left,.center,.right{overflow:auto;padding:12px}
.left{border-right:1px solid var(--line);background:#08101d}
.right{border-left:1px solid var(--line);background:#08101d}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:12px}
.panel h3,.panel h4{margin:0 0 10px}
.muted{color:var(--muted)}
input,select,textarea{width:100%;background:#0b1324;border:1px solid #475569;border-radius:8px;padding:8px 10px;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(56,189,248,.15)}
textarea{min-height:88px;resize:vertical}
.folder{margin-top:10px}
.folder-title{font-weight:700;color:var(--accent);padding:8px;border-radius:8px;background:#071524;border:1px solid #18314a}
.folder-items{padding:8px 0 0 10px}
.eq-item{padding:8px 10px;border-radius:8px;cursor:pointer;border:1px solid transparent;margin-bottom:6px}
.eq-item:hover{background:#0f2032;border-color:#264766}
.eq-item.active{background:#10263a;border-color:#38bdf8}
.eq-sub{font-size:12px;color:var(--muted);margin-top:2px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.result-card{background:var(--panel2);border:1px solid #35506d;border-radius:12px;padding:12px}
.result-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.result-value{font-size:26px;color:var(--gold);font-weight:800;margin-top:6px}
.formula{font-family:Consolas,Monaco,monospace;background:#09111f;border:1px solid #223349;border-radius:10px;padding:10px;color:#93c5fd}
.steps{font-family:Consolas,Monaco,monospace;white-space:pre-wrap;line-height:1.5;background:#09111f;border:1px solid #223349;border-radius:10px;padding:10px}
.saved-item{padding:10px;border-radius:10px;border:1px solid #334155;background:#0b1324;margin-bottom:8px;cursor:pointer;user-select:none}
.saved-item.active{border-color:#38bdf8;background:#10263a}
.saved-item.multisel{border-color:#facc15;background:#3b2f0b}
.saved-title{font-weight:700}
.saved-sub{font-size:12px;color:var(--muted);margin-top:4px}
.tiny{font-size:12px}
.status{padding:7px 10px;border-radius:999px;background:#0b1324;border:1px solid #334155}
.report-preview{white-space:pre-wrap;line-height:1.45;background:#fff;color:#111827;border-radius:12px;padding:14px;min-height:200px}
.split{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tag{font-size:11px;padding:3px 8px;border-radius:999px;background:#10263a;border:1px solid #244764;color:#cdefff}
.small-actions,.bulkbar{display:flex;gap:6px;flex-wrap:wrap}
.empty{padding:20px;border:1px dashed #475569;border-radius:12px;color:var(--muted);text-align:center}
.tabs-wrap{position:sticky;top:0;z-index:20;background:var(--bg);padding-bottom:10px}
.tabs{display:flex;gap:6px;overflow:auto;padding:0 0 6px}
.tab{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;background:#0a1324;border:1px solid #334155;cursor:pointer;white-space:nowrap}
.tab.active{background:#10263a;border-color:#38bdf8}
.tab.unsaved::after{content:"●";font-size:12px;color:#facc15}
.tab .close{opacity:.7;font-weight:700;cursor:pointer}
.workspace-titlebar{display:grid;grid-template-columns:1fr 220px auto;gap:10px;align-items:end}
.note{padding:10px;border-left:3px solid var(--accent);background:#0f172a;border-radius:0 8px 8px 0;color:#cdefff;font-size:13px}
.mt8{margin-top:8px}.mt10{margin-top:10px}.no-margin{margin:0}
.vehicle-row{display:grid;grid-template-columns:88px 1fr 32px;gap:8px;align-items:end;margin-bottom:8px}
.vehicle-code{background:#0f2032;border:1px solid #264766;border-radius:8px;padding:8px 10px;text-align:center;font-weight:700}
.vehicle-remove{height:38px}
@media (max-width: 1200px){ .layout{grid-template-columns:280px 1fr 320px} }

.bulk-vehicle-select{min-width:180px;max-width:240px;width:auto}


.context-menu{
  position:fixed;
  z-index:9999;
  min-width:220px;
  background:#08101d;
  border:1px solid #334155;
  border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.4);
  padding:6px;
}
.context-menu.hidden{display:none}
.context-item{
  display:block;
  width:100%;
  text-align:left;
  background:transparent;
  color:var(--text);
  border:none;
  border-radius:8px;
  padding:9px 10px;
  cursor:pointer;
}
.context-item:hover{background:#10263a}
.context-sep{height:1px;background:#334155;margin:6px 4px}
.context-subtitle{
  font-size:11px;
  color:var(--muted);
  padding:6px 10px 4px;
  text-transform:uppercase;
  letter-spacing:.06em;
}


.modal{
  position:fixed;
  inset:0;
  background:rgba(2,6,23,.66);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:10000;
}
.modal.hidden{display:none}
.modal-card{
  width:min(440px, calc(100vw - 32px));
  background:#08101d;
  border:1px solid #334155;
  border-radius:14px;
  padding:18px;
  box-shadow:0 20px 50px rgba(0,0,0,.45);
}
.modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:16px;
}

.status.warn{border-color:#f59e0b;color:#fde68a}


.tabs-meta{margin-bottom:6px}
.meta-good{color:#86efac}
.meta-bad{color:#fca5a5}


.group-block{border:1px solid #334155;border-radius:12px;background:#0a1324;margin-bottom:10px;overflow:hidden}
.group-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:#0f2032;border-bottom:1px solid #223349}
.group-title{font-weight:700;color:#cdefff;cursor:pointer}
.group-header-actions{display:flex;gap:6px;align-items:center}
.group-body{padding:10px}
.group-collapsed .group-body{display:none}
.group-dropzone{border:1px dashed #475569;border-radius:8px;padding:10px;text-align:center;color:#94a3b8;margin-top:8px}
.saved-item.ungrouped{border-style:dashed}

.group-header-actions .btn{min-width:32px}

.saved-item.dragging{opacity:.45;border-color:#38bdf8}
.group-block.drop-target{outline:2px solid #38bdf8;outline-offset:2px}
.group-body.drop-target{background:#0f2032}
.ungrouped-drop.drop-target{outline:2px dashed #38bdf8;outline-offset:2px;background:#0f2032}


.group-tree{display:flex;flex-direction:column;gap:10px}
.group-level-1{margin-left:18px}
.group-level-2{margin-left:36px}
.group-level-3{margin-left:54px}
.group-level-4{margin-left:72px}
.group-block.subgroup{border-color:#3b4b60}
.group-title-wrap{display:flex;align-items:center;gap:8px}
.twisty{font-size:12px;color:#94a3b8;min-width:10px}


.group-color-0{border-left:5px solid #60a5fa}
.group-color-1{border-left:5px solid #34d399}
.group-color-2{border-left:5px solid #fbbf24}
.group-color-3{border-left:5px solid #f472b6}
.group-color-4{border-left:5px solid #a78bfa}
.group-color-5{border-left:5px solid #fb7185}
.group-color-6{border-left:5px solid #22d3ee}
.group-color-7{border-left:5px solid #cbd5e1}
.saved-item.group-tinted-0{background:rgba(96,165,250,.08)}
.saved-item.group-tinted-1{background:rgba(52,211,153,.08)}
.saved-item.group-tinted-2{background:rgba(251,191,36,.08)}
.saved-item.group-tinted-3{background:rgba(244,114,182,.08)}
.saved-item.group-tinted-4{background:rgba(167,139,250,.08)}
.saved-item.group-tinted-5{background:rgba(251,113,133,.08)}
.saved-item.group-tinted-6{background:rgba(34,211,238,.08)}
.saved-item.group-tinted-7{background:rgba(203,213,225,.08)}
.group-children{margin-top:8px}


/* v93 stable: visible, restrained group coloring */
.group-color-0{border-left:6px solid #60a5fa !important;background:rgba(96,165,250,.06) !important}
.group-color-1{border-left:6px solid #34d399 !important;background:rgba(52,211,153,.06) !important}
.group-color-2{border-left:6px solid #fbbf24 !important;background:rgba(251,191,36,.06) !important}
.group-color-3{border-left:6px solid #f472b6 !important;background:rgba(244,114,182,.06) !important}
.group-color-4{border-left:6px solid #a78bfa !important;background:rgba(167,139,250,.06) !important}
.group-color-5{border-left:6px solid #fb7185 !important;background:rgba(251,113,133,.06) !important}
.group-color-6{border-left:6px solid #22d3ee !important;background:rgba(34,211,238,.06) !important}
.group-color-7{border-left:6px solid #cbd5e1 !important;background:rgba(203,213,225,.06) !important}

.saved-item.group-tinted-0{background:rgba(96,165,250,.15) !important}
.saved-item.group-tinted-1{background:rgba(52,211,153,.15) !important}
.saved-item.group-tinted-2{background:rgba(251,191,36,.15) !important}
.saved-item.group-tinted-3{background:rgba(244,114,182,.15) !important}
.saved-item.group-tinted-4{background:rgba(167,139,250,.15) !important}
.saved-item.group-tinted-5{background:rgba(251,113,133,.15) !important}
.saved-item.group-tinted-6{background:rgba(34,211,238,.15) !important}
.saved-item.group-tinted-7{background:rgba(203,213,225,.15) !important}

.group-children{margin-top:8px}


/* v101 drag scroll zones + group picker support */
#savedList{
  max-height: calc(100vh - 320px);
  overflow: auto;
  overscroll-behavior: contain;
  padding-right: 4px;
}

.drag-scroll-zone{
  border: 1px dashed #475569;
  border-radius: 10px;
  padding: 8px 10px;
  text-align: center;
  font-size: 12px;
  color: #94a3b8;
  background: rgba(15,23,42,.7);
}
.drag-scroll-zone.active{
  border-color: #38bdf8;
  background: rgba(15,32,50,.95);
  color: #cdefff;
}

.group-picker-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.group-picker-dialog{
  width: min(560px, 92vw);
  max-height: 80vh;
  overflow: auto;
  background: #111827;
  border: 1px solid #334155;
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 24px 50px rgba(0,0,0,.35);
}
.group-picker-title{
  font-weight: 700;
  margin-bottom: 10px;
}
.group-picker-list{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 12px 0;
}
.group-picker-item{
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  border: 1px solid #475569;
  background: #0b1324;
  color: #e5eef9;
  border-radius: 10px;
  cursor: pointer;
}
.group-picker-item:hover{
  border-color: #38bdf8;
  background: #0f2032;
}
.group-picker-actions{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.group-picker-input{
  width: 100%;
  margin-top: 8px;
}


/* v102 picker dialogs */
.picker-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.48);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:9999;
}
.picker-dialog{
  width:min(700px,94vw);
  max-height:86vh;
  overflow:auto;
  background:#111827;
  border:1px solid #334155;
  border-radius:16px;
  padding:16px;
  box-shadow:0 28px 60px rgba(0,0,0,.4);
}
.picker-title{
  font-weight:700;
  margin-bottom:8px;
}
.picker-sub{
  font-size:12px;
  color:#94a3b8;
  margin-bottom:12px;
}
.picker-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.picker-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:320px;
  overflow:auto;
  border:1px solid #334155;
  border-radius:12px;
  padding:10px;
  background:#0b1324;
}
.picker-item{
  width:100%;
  text-align:left;
  padding:10px 12px;
  border:1px solid #475569;
  border-radius:10px;
  background:#0f172a;
  color:#e5eef9;
  cursor:pointer;
}
.picker-item:hover,
.picker-item.active{
  border-color:#38bdf8;
  background:#0f2032;
}
.picker-item .small{
  display:block;
  margin-top:4px;
}
.picker-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.picker-input{
  width:100%;
  margin-top:8px;
}
.picker-note{
  margin-top:10px;
  font-size:12px;
  color:#94a3b8;
}


/* v103 move group/subgroup controls */
.group-picker-item.danger-like:hover{
  border-color:#f59e0b;
  background:#241406;
}


/* v104 group editing cleanup */
.group-header{
  align-items:flex-start;
}
.group-title-wrap{
  flex:1 1 auto;
  min-width:0;
}
.group-title{
  display:inline-block;
  max-width:100%;
  word-break:break-word;
}
.group-header-actions{
  display:none !important;
}
.group-inline-edit{
  width:100%;
  max-width:100%;
  margin-top:2px;
  padding:6px 8px;
  border:1px solid #38bdf8;
  border-radius:8px;
  background:#0b1324;
  color:#e5eef9;
}
