/* Trip builder — premium wizard on bus-babal-page shell */
.bus-babal-page .tb-builder-main{
  grid-template-columns:1fr!important;
  max-width:1040px;
  margin:0 auto;
  padding:0 16px 56px;
  min-height:calc(100vh - 240px);
}
.tb-builder-main{
  grid-template-columns:1fr!important;
  max-width:1040px;
  margin:0 auto;
  padding:0 16px 56px;
}
.tb-builder-shell{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:18px;
  align-items:start;
}
.tb-builder-panel{
  background:#fff;
  border:1px solid #e8eef5;
  border-radius:20px;
  padding:22px 22px 18px;
  box-shadow:0 20px 50px rgba(15,23,42,.07);
  display:flex;
  flex-direction:column;
  min-height:560px;
}
.tb-panel-stage{
  flex:1;
  min-height:380px;
  position:relative;
}
.tb-panel{display:none;animation:tbFade .2s ease}
.tb-panel.active{display:block;min-height:380px}
.tb-panel[data-panel="6"].active{min-height:0}
.tb-builder-aside{
  position:sticky;
  top:88px;
  background:linear-gradient(160deg,#0f172a 0%,#1e293b 55%,#334155 100%);
  color:#fff;
  border-radius:20px;
  padding:18px;
  box-shadow:0 20px 44px rgba(15,23,42,.18);
}
.tb-aside-title{margin:0 0 8px;font-size:15px;font-weight:1000}
.tb-aside-sub{margin:0 0 14px;color:#cbd5e1;font-size:12px;font-weight:750;line-height:1.45}
.tb-aside-stat{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:12px;font-weight:800}
.tb-aside-stat b{color:#fdba74;font-size:13px}
.tb-aside-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.tb-aside-tag{padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.1);font-size:10px;font-weight:900}
.tb-aside-tag-act{background:rgba(253,186,116,.18);color:#fdba74}
.tb-aside-block{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}
.tb-aside-block-label{font-size:10px;font-weight:900;text-transform:uppercase;color:#94a3b8;margin-bottom:8px;letter-spacing:.04em}
.tb-aside-total{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.14);
  font-size:12px;font-weight:800;color:#cbd5e1;
}
.tb-aside-total b{color:#fdba74;font-size:18px;font-weight:1000}
.tb-progress{height:6px;border-radius:999px;background:#e2e8f0;margin:0 0 16px;overflow:hidden}
.tb-progress>i{display:block;height:100%;background:linear-gradient(90deg,#ff6815,#fb923c);border-radius:999px;transition:width .25s ease}
.tb-steps{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 18px}
.tb-step{
  flex:1;min-width:92px;padding:10px 8px;border-radius:12px;border:1px solid #e2e8f0;
  background:#f8fafc;font-size:10px;font-weight:900;text-transform:uppercase;color:#64748b;text-align:center;letter-spacing:.02em
}
.tb-step.active{border-color:#fdba74;background:linear-gradient(180deg,#fff7ed,#fff);color:#c2410c;box-shadow:0 4px 14px rgba(251,146,60,.15)}
.tb-step.done{border-color:#86efac;background:#ecfdf5;color:#047857}
@keyframes tbFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.tb-title{margin:0 0 6px;font-size:20px;font-weight:1000;color:#0f172a;letter-spacing:-.02em}
.tb-sub{margin:0 0 16px;color:#64748b;font-size:13px;font-weight:750;line-height:1.5}
.tb-hint{margin:8px 0 0;color:#94a3b8;font-size:12px;font-weight:750}
.tb-loc-card{
  border:1px solid #e2e8f0;border-radius:16px;padding:14px;margin-bottom:14px;
  background:linear-gradient(180deg,#f8fafc,#fff);
}
.tb-loc-card h3{margin:0 0 10px;font-size:12px;font-weight:1000;text-transform:uppercase;color:#475569;letter-spacing:.04em}
.tb-loc-unified{padding:16px}
.tb-origin-block{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid #e8eef5}
.tb-origin-field,.tb-add-field{margin:0!important}
.tb-add-search{width:100%}
.tb-add-hint{margin:8px 0 0;font-size:11px;font-weight:850;color:#64748b}
.tb-quick-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.tb-quick-chip{
  border:1px solid #e2e8f0;background:#fff;color:#334155;border-radius:999px;
  padding:7px 12px;font-size:12px;font-weight:800;cursor:pointer;transition:background .15s,border-color .15s,transform .15s;
}
.tb-quick-chip:hover{border-color:#fdba74;background:#fff7ed;transform:translateY(-1px)}
.tb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.tb-form-grid.cols3{grid-template-columns:repeat(3,1fr)}
.tb-form-grid.cols4{grid-template-columns:repeat(4,1fr)}
.tb-form-grid .full{grid-column:1/-1}
.tb-select,.tb-builder-panel .v2field select{
  width:100%;padding:12px 14px;border:1px solid #cbd5e1;border-radius:12px;
  font-size:14px;font-weight:800;color:#0f172a;background:#fff;box-sizing:border-box;
  appearance:auto;cursor:pointer;
}
.tb-select:focus,.tb-builder-panel .v2field select:focus{outline:none;border-color:#ff6815;box-shadow:0 0 0 3px rgba(255,104,21,.12)}
.tb-city-count{font-size:11px;font-weight:850;color:#64748b;margin:6px 0 0}
.tb-add-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:0 16px;height:44px;border:0;border-radius:12px;background:#0f172a;color:#fff;
  font-size:13px;font-weight:950;cursor:pointer;margin-top:4px;
}
.tb-add-btn:hover{background:#1e293b}
.tb-selected-wrap{margin-top:10px}
.tb-selected-label{font-size:11px;font-weight:900;text-transform:uppercase;color:#64748b;margin-bottom:8px}
.tb-tag{cursor:pointer}
.tb-tag b,.tb-tag small{display:block}
.bus-babal-page .tb-builder-panel .v2chip{
  border-radius:14px;padding:12px 14px;min-height:58px;text-align:left;
}
.bus-babal-page .tb-builder-panel .v2chip b{display:block;font-size:13px}
.bus-babal-page .tb-builder-panel .v2chip small{display:block;color:#64748b;font-size:11px;margin-top:3px;font-weight:750}
.bus-babal-page .tb-builder-panel .v2chip.on{
  border-color:#fdba74;background:linear-gradient(180deg,#fff7ed,#fff);
  box-shadow:0 6px 18px rgba(251,146,60,.12);
}
.tb-act-block{margin-bottom:12px}
.tb-act-title{font-size:11px;font-weight:900;text-transform:uppercase;color:#64748b;margin-bottom:8px}
.tb-actions{display:flex;justify-content:space-between;gap:10px;margin-top:auto;padding-top:20px;align-items:center}
.tb-btn{border:0;border-radius:12px;padding:0 18px;height:48px;font-weight:950;cursor:pointer;background:#fff;border:1px solid #e2e8f0;color:#0f172a}
.tb-btn:disabled{opacity:.45;cursor:not-allowed}
.tb-alert{padding:12px 14px;border-radius:12px;font-weight:850;font-size:13px;margin-bottom:12px}
.tb-alert.err{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.tb-loading{color:#64748b;font-weight:800;margin:8px 0}
.tb-vehicle-note{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#ecfdf5;color:#047857;font-size:13px;font-weight:800}
.tb-result-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin-top:14px}
.tb-itin{border:1px solid #e2e8f0;border-radius:14px;overflow:hidden}
.tb-itin h3{margin:0;padding:12px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:14px;font-weight:1000}
.tb-day{padding:12px 14px;border-bottom:1px solid #f1f5f9}
.tb-day:last-child{border-bottom:0}
.tb-day b{display:block;font-size:13px}
.tb-day ul{margin:6px 0 0;padding-left:18px;color:#64748b;font-size:12px;font-weight:750}
.tb-cost{border:1px solid #e2e8f0;border-radius:14px;padding:12px 14px;background:#fafafa}
.tb-cost-head{font-weight:1000;margin-bottom:8px}
.tb-cost-line{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:13px;font-weight:800}
.tb-cost-line.total{font-size:18px;font-weight:1000;color:#ff6815;padding-top:10px;border-bottom:0}
.tb-book{margin-top:14px;padding-top:14px;border-top:1px dashed #e2e8f0}
.bus-babal-page .tb-builder-panel .v2field input,.bus-babal-page .tb-builder-panel .v2field .fdesk-city-input{
  border-radius:12px;padding:12px 14px;font-size:14px;font-weight:800;
}

/* Premium date picker — centered modal (no page chop) */
#tbCalSlot{display:none}
.tb-date-field{position:relative}
.tb-date-field--open{z-index:20}
.tb-date-display{
  width:100%;box-sizing:border-box;text-align:left;
  border:1px solid #cbd5e1;border-radius:12px;padding:12px 14px;
  font-size:14px;font-weight:800;color:#0f172a;background:#fff;cursor:pointer;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.tb-date-display:hover{border-color:#fdba74;background:#fffaf5}
.tb-date-field--open .tb-date-display{
  border-color:#ff6815;box-shadow:0 0 0 3px rgba(255,104,21,.12);background:#fff;
}
.tb-date-display--empty{color:#94a3b8}
.tb-date-field .tb-date-display{padding-right:42px;position:relative}
.tb-date-display::after{
  content:'';position:absolute;right:14px;top:50%;transform:translateY(-50%);
  width:18px;height:18px;opacity:.55;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b' stroke-width='1.8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M8 7V3m8 4V3M4 11h16M5 7h14a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1Z'/%3E%3C/svg%3E") center/contain no-repeat;
  pointer-events:none;
}
.kyk-cal-panel{display:none}
#tbCalPanel.kyk-cal-panel.tb-cal-float.open{
  display:block;position:fixed;z-index:100090;
  background:#fff;border:1px solid #e2e8f0;border-radius:14px;
  box-shadow:0 16px 40px rgba(15,23,42,.18);padding:10px 12px 12px;
  max-height:min(340px,calc(100vh - 24px));overflow:auto;
}
.tb-cal-float-head{margin:0 0 8px}
.tb-cal-float-head b{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
#tbCalPanel .kyk-cal-quick{gap:6px;margin-bottom:8px}
#tbCalPanel .kyk-cal-quick button{padding:5px 10px;font-size:11px}
#tbCalPanel .kyk-cal-head{margin-bottom:6px}
#tbCalPanel .kyk-cal-head b{font-size:13px}
#tbCalPanel .kyk-cal-nav{width:28px;height:28px;font-size:16px;border-radius:8px}
#tbCalPanel .kyk-cal-grid{gap:2px}
#tbCalPanel .kyk-cal-dow{font-size:9px;padding:2px 0}
#tbCalPanel .kyk-cal-pad{min-height:28px}
#tbCalPanel .kyk-cal-day{min-height:28px;font-size:12px;border-radius:8px}
.kyk-cal-quick{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.kyk-cal-quick button{
  border:1px solid #e2e8f0;background:#f8fafc;color:#374151;border-radius:999px;
  padding:7px 12px;font-size:12px;font-weight:800;cursor:pointer;
}
.kyk-cal-quick button:hover{border-color:#ff6815;color:#ff6815;background:#fff7ed}
.kyk-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}
.kyk-cal-head b{font-size:15px;font-weight:900;color:#0f172a;letter-spacing:-.02em}
.kyk-cal-nav{
  border:0;background:#f1f5f9;color:#374151;width:34px;height:34px;border-radius:10px;
  cursor:pointer;font-size:18px;font-weight:700;line-height:1;
}
.kyk-cal-nav:hover{background:#fff7ed;color:#ff6815}
.kyk-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.kyk-cal-dow{font-size:10px;font-weight:900;color:#94a3b8;text-align:center;padding:4px 0}
.kyk-cal-pad{min-height:36px}
.kyk-cal-day{
  border:0;background:transparent;border-radius:10px;min-height:36px;padding:0;
  font-size:13px;font-weight:800;color:#0f172a;cursor:pointer;
}
.kyk-cal-day:hover{background:#fff7ed;color:#c2410c}
.kyk-cal-day.today{box-shadow:inset 0 0 0 1px #fdba74}
.kyk-cal-day.selected{background:linear-gradient(180deg,#ff6815,#fb923c);color:#fff}
.kyk-cal-day.selected:hover{color:#fff}
.kyk-cal-day.disabled{opacity:.35;cursor:not-allowed}
.kyk-cal-day.disabled:hover{background:transparent;color:#0f172a}
.kyk-cal-foot{margin-top:10px;padding-top:8px;border-top:1px solid #f1f5f9}
.kyk-cal-legend{font-size:11px;font-weight:800;color:#64748b}
@media(max-width:920px){
  .tb-builder-shell{grid-template-columns:1fr}
  .tb-builder-aside{position:static;order:-1}
}
@media(max-width:820px){
  .tb-form-grid,.tb-form-grid.cols3,.tb-form-grid.cols4,.tb-result-grid{grid-template-columns:1fr}
  .tb-steps{gap:6px}
  .tb-step{min-width:72px;font-size:9px;padding:8px 6px}
}
