/* Court revenue calculator (2026-10-11). Every rule is scoped to the page root (.vt-court-revenue-calculator).
   Mobile first: the three scenarios are stacked cards; from 601px they sit side by side as one table (subgrid keeps
   the rows aligned). Borders stay 1px hairlines. */
#visu-tools.vt-court-revenue-calculator .vt-cr { grid-template-columns: minmax(0, 1fr); }
#visu-tools.vt-court-revenue-calculator .vt-cr-side { display: grid; gap: 20px; min-width: 0; align-content: start; }
#visu-tools.vt-court-revenue-calculator .vt-cr .vt-out { position: static; }

/* Form sections */
#visu-tools.vt-court-revenue-calculator .vt-cr-sec { border: 0 !important; padding: 0 !important; margin: 0 !important; min-width: 0; display: grid; gap: 12px; }
#visu-tools.vt-court-revenue-calculator .vt-cr-sec + .vt-cr-sec { margin-top: 22px !important; padding-top: 20px !important; border-top: 1px solid var(--vt-line) !important; }
/* Floated, so the legend is laid out as the first row of the section instead of sitting on its top hairline. */
#visu-tools.vt-court-revenue-calculator .vt-cr-sec > legend { float: left; width: 100%; padding: 0 !important; margin: 0 !important; font-size: 16.5px; font-weight: 700; line-height: 1.3; color: var(--vt-ink); border: 0 !important; }
#visu-tools.vt-court-revenue-calculator .vt-cr input[aria-invalid="true"] { border-color: var(--vt-err) !important; }
#visu-tools.vt-court-revenue-calculator .vt-cr-err { font-size: 13px; line-height: 1.4; color: var(--vt-err); }
#visu-tools.vt-court-revenue-calculator .vt-cr .vt-field { align-content: start; }
/* Three-letter symbols (US$, MX$) need more room than the shared prefix padding. */
#visu-tools.vt-court-revenue-calculator .vt-cr .vt-unit[data-unit="money"]:not(:empty) + input { padding-left: 54px !important; }
#visu-tools.vt-court-revenue-calculator .vt-cr-pct .vt-unit:not(:empty) { left: auto; right: 12px; }
#visu-tools.vt-court-revenue-calculator .vt-cr-pct .vt-unit:not(:empty) + input { padding-left: 12px !important; padding-right: 30px !important; }

/* Occupancy: one row per scenario, peak and off-peak side by side */
#visu-tools.vt-court-revenue-calculator .vt-cr-occ { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr) minmax(0, 1fr); gap: 8px 10px; align-items: center; }
#visu-tools.vt-court-revenue-calculator .vt-cr-occ-h { font-size: 13px; font-weight: 600; color: var(--vt-muted); }
#visu-tools.vt-court-revenue-calculator .vt-cr-occ-name { font-size: 14.5px; font-weight: 600; color: var(--vt-ink); line-height: 1.25; }

/* Other revenue and cost lines: description on its own row on a phone, 44px remove button */
#visu-tools.vt-court-revenue-calculator .vt-cr-rows { display: grid; gap: 10px; }
#visu-tools.vt-court-revenue-calculator .vt-cr-row { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 8px; align-items: center; }
#visu-tools.vt-court-revenue-calculator .vt-cr-row-label { grid-column: 1 / -1; }
#visu-tools.vt-court-revenue-calculator .vt-cr-del { width: 44px; height: 46px; min-height: 44px; padding: 0 !important; margin: 0 !important; display: grid; place-items: center; border-radius: 12px !important;
  border: 1px solid var(--vt-line-2) !important; background: #fff !important; color: var(--vt-muted) !important; cursor: pointer; box-shadow: none !important; }
#visu-tools.vt-court-revenue-calculator .vt-cr-del:hover { border-color: var(--vt-ink) !important; color: var(--vt-ink) !important; }
#visu-tools.vt-court-revenue-calculator .vt-cr-add { display: inline-flex; align-items: center; gap: 6px; justify-self: start; min-height: 44px; padding: 8px 14px !important; margin: 0 !important;
  border-radius: 12px !important; border: 1px solid var(--vt-line-2) !important; background: #fff !important; color: var(--vt-ink) !important; font-family: inherit !important; font-size: 14.5px !important;
  font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: 0 !important; text-transform: none !important; cursor: pointer; box-shadow: none !important; }
#visu-tools.vt-court-revenue-calculator .vt-cr-add:hover { border-color: var(--vt-ink) !important; }
#visu-tools.vt-court-revenue-calculator .vt-cr-add:disabled { opacity: .45; cursor: not-allowed; }
#visu-tools.vt-court-revenue-calculator .vt-cr-last .vt-link-btn { min-height: 44px; }

/* Result: scenario cards (stacked) */
#visu-tools.vt-court-revenue-calculator .vt-cr .vt-big-num { font-size: clamp(30px, 3.4vw, 42px); overflow-wrap: anywhere; }
#visu-tools.vt-court-revenue-calculator .vt-cr .vt-big-num.vt-cr-neg { color: var(--vt-err); }
#visu-tools.vt-court-revenue-calculator .vt-cr-table { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; font-size: 14px; }
#visu-tools.vt-court-revenue-calculator .vt-cr-keys { display: none; }
#visu-tools.vt-court-revenue-calculator .vt-cr-sc { min-width: 0; border: 1px solid var(--vt-line); border-radius: 12px; overflow: hidden; }
#visu-tools.vt-court-revenue-calculator .vt-cr-th { display: block; padding: 9px 12px; font-size: 14px; font-weight: 700; color: var(--vt-ink); background: var(--vt-bg); border-bottom: 1px solid var(--vt-line); }
#visu-tools.vt-court-revenue-calculator .vt-cr-cell { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; padding: 7px 12px; border-bottom: 1px solid var(--vt-line); }
#visu-tools.vt-court-revenue-calculator .vt-cr-sc > :last-child, #visu-tools.vt-court-revenue-calculator .vt-cr-keys > :last-child { border-bottom: 0; }
#visu-tools.vt-court-revenue-calculator .vt-cr-k { color: var(--vt-muted); font-size: 13.5px; line-height: 1.3; }
#visu-tools.vt-court-revenue-calculator .vt-cr-v { font-variant-numeric: tabular-nums; font-weight: 500; color: var(--vt-ink); text-align: right; white-space: nowrap; }
#visu-tools.vt-court-revenue-calculator .vt-cr-strong { background: var(--vt-tint); }
#visu-tools.vt-court-revenue-calculator .vt-cr-strong .vt-cr-v { font-weight: 700; }
#visu-tools.vt-court-revenue-calculator .vt-cr-neg .vt-cr-v { color: var(--vt-err); }
#visu-tools.vt-court-revenue-calculator .vt-cr-over .vt-cr-v { color: var(--vt-warn); }
#visu-tools.vt-court-revenue-calculator .vt-cr-off .vt-cr-v { color: var(--vt-muted); font-weight: 400; }
#visu-tools.vt-court-revenue-calculator .vt-cr-notes { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 6px; font-size: 13.5px; line-height: 1.5; }
#visu-tools.vt-court-revenue-calculator .vt-cr-notes li { margin: 0 !important; padding: 8px 12px !important; border-radius: 10px; background: var(--vt-bg); color: var(--vt-text); }
#visu-tools.vt-court-revenue-calculator .vt-cr .vt-out .vt-link-btn { min-height: 44px; }

/* How it was calculated */
#visu-tools.vt-court-revenue-calculator .vt-cr-how { display: grid; gap: 10px; }
#visu-tools.vt-court-revenue-calculator .vt-cr-how h2 { font-size: 18px !important; font-weight: 700 !important; }
#visu-tools.vt-court-revenue-calculator .vt-cr-how h3 { font-size: 14px !important; font-weight: 700 !important; }
#visu-tools.vt-court-revenue-calculator #vt-cr-how-body { display: grid; gap: 8px; }
#visu-tools.vt-court-revenue-calculator .vt-cr-how ol { list-style: decimal !important; margin: 0 !important; padding: 0 0 0 22px !important; display: grid; gap: 5px; font-size: 13.5px; line-height: 1.5; color: var(--vt-text); font-variant-numeric: tabular-nums; }
#visu-tools.vt-court-revenue-calculator .vt-cr-how li { margin: 0 !important; padding: 0 !important; overflow-wrap: anywhere; }
#visu-tools.vt-court-revenue-calculator .vt-cr-how details { border-top: 1px solid var(--vt-line); padding-top: 4px; }
#visu-tools.vt-court-revenue-calculator .vt-cr-how summary { cursor: pointer; display: flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 700; color: var(--vt-ink); list-style: none; }
#visu-tools.vt-court-revenue-calculator .vt-cr-how summary::-webkit-details-marker { display: none; }
#visu-tools.vt-court-revenue-calculator .vt-cr-how summary::after { content: "+"; margin-left: auto; font-size: 20px; font-weight: 400; color: var(--vt-muted); }
#visu-tools.vt-court-revenue-calculator .vt-cr-how details[open] summary::after { content: "-"; }
#visu-tools.vt-court-revenue-calculator .vt-cr-how details[open] > ol { padding-bottom: 8px !important; }

/* Methodology band */
#visu-tools.vt-court-revenue-calculator .vt-cr-method-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px 40px; }
#visu-tools.vt-court-revenue-calculator .vt-cr-method h3 { font-size: 17px !important; font-weight: 680 !important; margin-bottom: 6px !important; }
#visu-tools.vt-court-revenue-calculator .vt-cr-method p { font-size: 15.5px; }

@media (max-width: 600px) {
  /* Four short options: wrap inside the panel instead of the shared scroll strip. */
  #visu-tools.vt-court-revenue-calculator .vt-cr-slot .vt-seg-items { flex-wrap: wrap; overflow-x: visible; margin: 0; padding: 0; }
  #visu-tools.vt-court-revenue-calculator .vt-cr-slot .vt-seg-item span { padding: 8px 12px; }
  /* Courts and days are short numbers with short labels: they stay side by side on a phone. */
  #visu-tools.vt-court-revenue-calculator .vt-cr-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}
@media (min-width: 601px) {
  #visu-tools.vt-court-revenue-calculator .vt-cr-row { grid-template-columns: minmax(0, 1fr) minmax(0, 170px) 44px; }
  #visu-tools.vt-court-revenue-calculator .vt-cr-row-label { grid-column: auto; }
  @supports (grid-template-rows: subgrid) {
    #visu-tools.vt-court-revenue-calculator .vt-cr-table { grid-template-columns: minmax(0, 1.15fr) repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(12, auto); gap: 0; border: 1px solid var(--vt-line); border-radius: 12px; overflow: hidden; }
    #visu-tools.vt-court-revenue-calculator .vt-cr-keys, #visu-tools.vt-court-revenue-calculator .vt-cr-sc { display: grid; grid-row: 1 / -1; grid-template-rows: subgrid; }
    #visu-tools.vt-court-revenue-calculator .vt-cr-sc { border: 0; border-left: 1px solid var(--vt-line); border-radius: 0; }
    #visu-tools.vt-court-revenue-calculator .vt-cr-th { display: flex; align-items: center; justify-content: flex-end; text-align: right; padding: 9px 10px; font-size: 13px; }
    #visu-tools.vt-court-revenue-calculator .vt-cr-cell { position: relative; justify-content: flex-end; padding: 7px 10px; }
    #visu-tools.vt-court-revenue-calculator .vt-cr-keys .vt-cr-cell { justify-content: flex-start; color: var(--vt-muted); font-size: 13.5px; line-height: 1.3; }
    #visu-tools.vt-court-revenue-calculator .vt-cr-sc .vt-cr-k { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    #visu-tools.vt-court-revenue-calculator .vt-cr-sc .vt-cr-v { white-space: normal; overflow-wrap: anywhere; }
  }
}
@media (min-width: 861px) {
  #visu-tools.vt-court-revenue-calculator .vt-cr-method-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1001px) {
  #visu-tools.vt-court-revenue-calculator .vt-cr { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
}
