/* Project Index → Booking (2026-11-01). Sizes are the TYPE SCALE in
   assets/lv2.css; controls are the shared --ctl-* ones. Scoped to the tab. */
#booking-recap-view .br-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
#booking-recap-view #br-list{padding:12px var(--card-pad-x) 16px}
#booking-recap-view .br-faint{color:var(--lv-faint)}
#booking-recap-view .br-acts{display:inline-flex;gap:4px}
#booking-recap-view .br-ib{height:24px;padding:0 9px;border:1px solid var(--lv-border);border-radius:8px;background:#fff;font:inherit;font-size:11.5px;font-weight:600;color:var(--lv-body);cursor:pointer}
#booking-recap-view .br-ib:hover{border-color:var(--lv-primary);color:var(--lv-primary)}
#booking-recap-view .br-ib.is-danger{border-color:#FCA5A5;color:var(--lv-danger-ink);background:var(--lv-danger-soft)}
#booking-recap-view .br-empty{padding:18px 4px;font-size:12.5px;color:var(--lv-muted)}
#booking-recap-view .br-flash{margin:0 0 12px;padding:9px 12px;border-radius:10px;background:var(--lv-success-soft);color:var(--lv-success-ink);font-size:12px;font-weight:600}
#booking-recap-view .br-err{color:var(--lv-danger-ink);font-size:12px;font-weight:600}
#booking-recap-view .br-err--top{margin:0 0 12px;padding:9px 12px;border-radius:10px;background:var(--lv-danger-soft)}
/* the campaigns view is a sheet with row groups — the Project Index grid (.pig) */
#booking-recap-view .br-pig td{font-size:12px;color:#334155}
#booking-recap-view .br-pig td.num{font-variant-numeric:tabular-nums}
#booking-recap-view .br-pig th:last-child,#booking-recap-view .br-pig td:last-child{position:sticky;right:0;z-index:2;background:#fff;box-shadow:-1px 0 0 #EDEFF3}
#booking-recap-view .br-pig thead th:last-child{z-index:4;background:var(--grid-head-bg)}
#booking-recap-view .br-pig tr.br-g td:last-child{background:#F8FAFC}
#booking-recap-view .br-pig tr.br-g:hover td:last-child{background:#F1F5FB}
#booking-recap-view .br-pig tr.br-formrow td:last-child{position:static;box-shadow:none}
#booking-recap-view .br-pig tr.br-g td{background:#F8FAFC;font-weight:600;color:var(--lv-text);cursor:default}
#booking-recap-view .br-pig tr.br-g[onclick] td{cursor:pointer}
#booking-recap-view .br-pig tr.br-g .pig-fz{background:#F8FAFC}
#booking-recap-view .br-pig tr.br-g:hover td,#booking-recap-view .br-pig tr.br-g:hover .pig-fz{background:#F1F5FB}
#booking-recap-view .br-pig tr.br-c .pig-fz{font-weight:500;font-size:12px;color:var(--lv-text)}
#booking-recap-view .br-pig tr.br-c.is-off td:not(:last-child){opacity:.55}   /* the frozen buttons cell stays opaque or the row shows through it */
#booking-recap-view .br-tog{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;border:1px solid #CBD5E1;border-radius:4px;background:#fff;font:600 12px/1 inherit;color:#475569;vertical-align:middle;cursor:pointer;padding:0}
#booking-recap-view .br-tog.is-none{border-color:transparent;background:none}
#booking-recap-view .br-gn{vertical-align:middle}
/* the elbow's corner sits on the text's middle line */
#booking-recap-view .br-tree{display:inline-block;width:10px;height:8px;margin:0 9px 0 7px;border-left:1px solid #CBD5E1;border-bottom:1px solid #CBD5E1;vertical-align:middle;transform:translateY(-4px)}
#booking-recap-view .br-ok{color:var(--lv-success-ink)!important}
#booking-recap-view .br-mid{color:var(--lv-warning-ink)!important}
#booking-recap-view .br-low{color:var(--lv-danger-ink)!important}
#booking-recap-view .br-notes{overflow:hidden;text-overflow:ellipsis}
#booking-recap-view .br-notes .br-ib{height:22px;font-size:11px}
#booking-recap-view .br-formrow td{padding:0!important;background:#FBFCFE}
#booking-recap-view .br-sticky{position:sticky;left:0;width:var(--brw,1100px);padding:0 12px;box-sizing:border-box}
/* the add / edit form sits in the campaign's own panel — no modal, no jump */
#booking-recap-view .br-form{margin:10px 0 12px;padding:14px;border:1px solid var(--lv-border);border-radius:12px;background:#fff}
#booking-recap-view .br-form__t{font-size:12.5px;font-weight:700;color:var(--lv-text);margin-bottom:10px}
#booking-recap-view .br-form__g{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px 12px}
#booking-recap-view .br-form__g label{display:flex;flex-direction:column;gap:4px;min-width:0}
#booking-recap-view .br-form__g .br-form__w{grid-column:span 2}
#booking-recap-view .br-form__f{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}
#booking-recap-view .br-form__h{margin-right:auto;font-size:11px;color:var(--lv-muted)}
/* Needs attention */
#booking-recap-view .br-sec+.br-sec{margin-top:20px}
#booking-recap-view .br-sec__t{font-size:12.5px;font-weight:700;color:var(--lv-text)}
#booking-recap-view .br-sec__s{font-size:11.5px;color:var(--lv-muted);margin:3px 0 9px;line-height:1.55;max-width:900px}
#booking-recap-view .br-ats{border:1px solid var(--lv-border-soft,#EEF2F7);border-radius:12px;overflow:hidden}
#booking-recap-view .br-at{display:flex;align-items:center;gap:10px;padding:10px 14px;min-height:48px}
#booking-recap-view .br-at+.br-at{border-top:1px solid #F1F5F9}
#booking-recap-view .br-at__n{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--lv-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#booking-recap-view .br-at__n span{display:block;font-size:11px;font-weight:500;color:var(--lv-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis}
#booking-recap-view .br-ats .br-form{margin:0;border-width:1px 0 0;border-radius:0}
@media (max-width:767px){
          }
/* in-cell editing (2026-11-01): a cell turns into its own input, no taller than the row */
#booking-recap-view .br-ce{cursor:cell}
#booking-recap-view .br-ce:hover{outline:1px solid #C7D2FE;outline-offset:-1px}
#booking-recap-view .br-ce.is-on{padding:2px 4px!important;outline:2px solid var(--lv-primary,#2563EB);outline-offset:-2px;background:#fff}
#booking-recap-view .br-in{width:100%;box-sizing:border-box;height:26px;padding:0 6px;border:0;background:transparent;font:inherit;font-size:12px;color:var(--lv-text);text-align:center;outline:none}
#booking-recap-view .pig-fz .br-in{width:calc(100% - 30px);text-align:left}
#booking-recap-view tr.br-new td{background:#F5F9FF}
#booking-recap-view tr.br-new .br-ce.is-on{outline:1px solid #BFDBFE;outline-offset:-1px;background:#fff}
#booking-recap-view .br-ib.is-go{border-color:var(--lv-primary,#2563EB);background:var(--lv-primary,#2563EB);color:#fff}
#booking-recap-view .br-xc{display:inline-flex;gap:8px}
