/* ==========================================================================
   elite-v3-studio.css - look "STUDIO" (30 Oct 2026, PROTOTYPE, opt-in: ?theme=studio, ?theme=off clears it).
   Idea: a warm editorial desk. Paper-white surfaces on a faint warm paper, deep ink-navy text, ONE signature accent (burnt orange) for the active tab,
   primary buttons and focus, serif section titles, tabular figures, and a muted colour key per section / motion (MH blue, AH teal, CT violet, LT rose)
   so the estimator navigates by colour. Cell language kept: typed = warm + solid bottom edge, drop-down = white + arrow, calculated = grey-beige + dashed edge.
   Look only: no markup, no widths on sheet tables or cells (form-layout and picker rely on them), no row-height change. Everything is inside @media screen
   and under body.theme-v3-studio: print / PDF untouched. Dark: @media (prefers-color-scheme: dark).
   ========================================================================== */
@media screen {

/* ---- 1. TOKENS ----------------------------------------------------------------------------------------------------- */
body.theme-v3-studio {
  --paper:#f3f6fa; --paper-2:#e8eef5; --paper-3:#dde6f0; --card:#ffffff; --card-2:#f7f9fc;
  --page-bg:#ffffff; --card-edge:var(--card-edge); --internal-bg:#e1eaf3; --accent-rgb:240,128,48; --accent2-rgb:224,122,44; --navy-rgb:0,48,80;
  --ink:#0b2a40; --ink-2:#2f4a62; --muted:#566b80; --line:#d0dbe7; --line-2:#e3ebf3;
  --navy:#003050; --navy-2:#0b4a74; --navy-t:#e6eef6; --orange:#f08030; --on-accent:#0b2a40;
  --accent:#f08030; --accent-h:#b8500c; --accent-t:#fff1e4; --accent-l:#f6b27c; --accent-x:#7a3206;
  --ok:#2f7a4d; --ok-t:#e3f2e8; --ok-l:#a6d3b6; --ok-x:#1c4d31;
  --warn:#a15c07; --warn-t:#fcefd0; --warn-l:#ecc778; --warn-x:#5f3704;
  --bad:#b42318; --bad-t:#fdebe9; --bad-l:#efa9a2; --bad-x:#76170f;
  --info:#235e8c; --info-t:#e4eff8; --info-l:#a4c8e2; --info-x:#143c5c;
  --hue-1:#0b4a74; --hue-2:#1b8aa6; --hue-3:#4a5fb0; --hue-4:#cf6a1c;
  --mh:#0b4a74; --ah:#1b9aa0; --ct:#5a6fc0; --lt:#d4527a;
  --cell-typed-bg:#fff1e4; --cell-select-bg:#ffffff; --cell-calc-bg:#eaf0f6; --cell-arrow:#003050;
  --cell-typed-edge:#f2a96b; --cell-select-edge:#c3d0dd; --cell-calc-edge:#c3d0dd;
  --cell-edge-typed:#e07a2c; --cell-edge-calc:#8a9db0;
  --font:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --r-sm:5px; --r-md:8px; --r-lg:14px; --r-pill:999px;
  --e1:0 1px 2px rgba(0,40,70,.08),0 1px 1px rgba(0,40,70,.05);
  --e2:0 2px 4px rgba(0,40,70,.06),0 8px 20px rgba(0,40,70,.09);
  --e3:0 18px 48px rgba(0,30,55,.24);
  --focus:0 0 0 3px rgba(var(--accent-rgb),.38);
  --dur:.15s;
  color:var(--ink); font-family:var(--font); -webkit-font-smoothing:antialiased;
  background-color:var(--paper);
  background-image:radial-gradient(1100px 420px at 8% -8%,rgba(var(--accent-rgb),.075),transparent 62%),radial-gradient(900px 500px at 100% 0%,rgba(0,74,116,.05),transparent 60%),linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,0) 340px);
  background-attachment:fixed;
}

/* ---- 2. BASE ------------------------------------------------------------------------------------------------------- */
body.theme-v3-studio a { color:var(--accent-h); }
body.theme-v3-studio a:hover, body.theme-v3-studio a:focus { color:var(--accent); }
body.theme-v3-studio ::selection { background:var(--accent-l); color:var(--ink); }
body.theme-v3-studio ::placeholder { color:var(--muted); opacity:1; }
body.theme-v3-studio .text-muted { color:var(--muted); }
body.theme-v3-studio table, body.theme-v3-studio input, body.theme-v3-studio select { font-variant-numeric:tabular-nums; }
body.theme-v3-studio #v2-try { display:none !important; }
body.theme-v3-studio *::-webkit-scrollbar { height:11px; width:11px; }
body.theme-v3-studio *::-webkit-scrollbar-thumb { background:#b9c8d8; border-radius:var(--r-pill); border:3px solid transparent; background-clip:content-box; }
body.theme-v3-studio *::-webkit-scrollbar-thumb:hover { background:#9bb0c4; background-clip:content-box; border:3px solid transparent; }
body.theme-v3-studio *::-webkit-scrollbar-track { background:transparent; }
body.theme-v3-studio :focus-visible { outline:none; box-shadow:var(--focus); }

/* ---- 3. FRAME: top bar, menu, titles -------------------------------------------------------------------------------- */
body.theme-v3-studio #wrapper, body.theme-v3-studio #page-wrapper { background:transparent !important; border:0 !important; }
body.theme-v3-studio .navbar-default { background:rgba(255,255,255,.86); backdrop-filter:blur(6px); border-color:var(--line); box-shadow:var(--e1); }
body.theme-v3-studio .navbar-toggle { border:1px solid var(--line); border-radius:var(--r-md); background:var(--card); box-shadow:var(--e1); transition:box-shadow var(--dur),transform var(--dur); }
body.theme-v3-studio .navbar-toggle:hover { box-shadow:var(--e2); transform:translateY(-1px); }
body.theme-v3-studio .navbar-toggle .icon-bar { background:var(--ink); height:2px; border-radius:2px; }
body.theme-v3-studio .sidebar { background:var(--card); border-right:1px solid var(--line); box-shadow:6px 0 24px rgba(0,40,70,.06); }
body.theme-v3-studio .sidebar .nav > li > a { color:var(--ink-2); border-radius:var(--r-md); margin:1px 8px; transition:background var(--dur),color var(--dur),padding var(--dur); }
body.theme-v3-studio .sidebar .nav > li > a:hover, body.theme-v3-studio .sidebar .nav > li > a:focus { background:var(--accent-t); color:var(--accent-x); }
body.theme-v3-studio .sidebar .nav > li.active > a { background:var(--accent-t); color:var(--accent-x); font-weight:600; box-shadow:inset 3px 0 0 var(--accent); }
body.theme-v3-studio .sidebar .nav .fa { color:var(--accent); }
body.theme-v3-studio h1.page-header, body.theme-v3-studio .page-header {
  font-family:var(--serif); font-weight:700; letter-spacing:-.01em; color:var(--navy); border-bottom:0; position:relative; padding-bottom:10px;
}
body.theme-v3-studio h1.page-header::after, body.theme-v3-studio .page-header::after {
  content:""; position:absolute; left:2px; bottom:0; width:44px; height:3px; border-radius:3px; background:var(--accent);
}
body.theme-v3-studio .page-header .fa, body.theme-v3-studio .page-header i { color:var(--accent); }
body.theme-v3-studio #page-wrapper h1, body.theme-v3-studio #page-wrapper h2, body.theme-v3-studio #page-wrapper h3, body.theme-v3-studio #page-wrapper h4 { color:var(--ink); }
body.theme-v3-studio #page-wrapper .pdf-sheet h1, body.theme-v3-studio #page-wrapper .pdf-sheet h2, body.theme-v3-studio #page-wrapper .pdf-sheet h3, body.theme-v3-studio #page-wrapper .pdf-sheet h4 { color:inherit; }
body.theme-v3-studio #bridges-snoozed { background:var(--warn-t) !important; border-bottom:1px solid var(--warn-l) !important; color:var(--warn-x) !important; }

/* ---- 4. BUTTONS ---------------------------------------------------------------------------------------------------- */
body.theme-v3-studio .btn { border-radius:var(--r-md); font-weight:600; letter-spacing:.005em; box-shadow:var(--e1); transition:background var(--dur),border-color var(--dur),box-shadow var(--dur),transform var(--dur),color var(--dur); }
body.theme-v3-studio .btn:hover { transform:translateY(-1px); box-shadow:var(--e2); }
body.theme-v3-studio .btn:active, body.theme-v3-studio .btn.active { transform:translateY(1px); box-shadow:inset 0 1px 3px rgba(0,40,70,.25); }
body.theme-v3-studio .btn-primary { background:var(--accent); border-color:var(--accent-h); color:var(--on-accent); }
body.theme-v3-studio .btn-primary:hover, body.theme-v3-studio .btn-primary:focus { background:var(--accent-h); border-color:var(--accent-x); color:#fff; }
body.theme-v3-studio .btn-default { background:var(--card); border-color:var(--line); color:var(--ink); }
body.theme-v3-studio .btn-default:hover, body.theme-v3-studio .btn-default:focus { background:var(--accent-t); border-color:var(--accent-l); color:var(--accent-x); }
body.theme-v3-studio .btn-success { background:var(--ok); border-color:#25643e; color:#fff; }
body.theme-v3-studio .btn-success:hover { background:#25643e; border-color:var(--ok-x); color:#fff; }
body.theme-v3-studio .btn-info { background:var(--info-t); border-color:var(--info-l); color:var(--info-x); }
body.theme-v3-studio .btn-info:hover { background:#d3e6f4; color:var(--info-x); border-color:var(--info); }
body.theme-v3-studio .btn-warning { background:var(--warn-t); border-color:var(--warn-l); color:var(--warn-x); }
body.theme-v3-studio .btn-warning:hover { background:#f9e3b3; color:var(--warn-x); border-color:var(--warn); }
body.theme-v3-studio .btn-danger { background:var(--bad); border-color:#8f1b12; color:#fff; }
body.theme-v3-studio .btn-danger:hover { background:#8f1b12; color:#fff; }
body.theme-v3-studio .btn-link { box-shadow:none; color:var(--accent-h); }
body.theme-v3-studio #page-wrapper .btn.btn-primary:not(.chrome-tab) { background:var(--accent) !important; color:var(--on-accent) !important; border-color:var(--accent-h) !important; }
body.theme-v3-studio #page-wrapper .btn.btn-primary:not(.chrome-tab):hover { background:var(--accent-h) !important; color:#fff !important; }
body.theme-v3-studio .btn[disabled], body.theme-v3-studio .btn.disabled { opacity:.55; transform:none; box-shadow:none; }

/* ---- 5. OFFER TABS: pill tabs with an animated underline ------------------------------------------------------------- */
body.theme-v3-studio #page-wrapper .chrome-tab-bar, body.theme-v3-studio .chrome-tab-bar {
  background:var(--card) !important; border:1px solid var(--line) !important; border-radius:var(--r-lg) !important; box-shadow:var(--e2) !important;
  padding:8px 10px 6px 10px !important; display:flex; flex-wrap:wrap; align-items:flex-end; gap:3px 4px; position:sticky; top:0; z-index:1035;
}
body.theme-v3-studio #page-wrapper .chrome-tab-bar::before { content:""; position:absolute; left:14px; right:14px; top:0; height:3px; border-radius:0 0 3px 3px; background:linear-gradient(90deg,var(--accent),var(--accent-l) 38%,transparent 80%); }
body.theme-v3-studio .chrome-tab-bar .chrome-tab, body.theme-v3-studio #page-wrapper .chrome-tab-bar a.btn.btn-primary, body.theme-v3-studio #page-wrapper .chrome-tab-bar button.btn.btn-primary {
  position:relative; font-family:var(--font) !important; font-size:var(--fs-large,14px) !important; font-weight:600 !important; color:var(--ink-2) !important;
  background:transparent !important; border:0 !important; border-radius:var(--r-pill) !important; padding:6px 10px 9px !important; margin:0 !important; float:none !important;
  box-shadow:none !important; transform:none !important; transition:background var(--dur),color var(--dur) !important;
}
body.theme-v3-studio .chrome-tab-bar .chrome-tab::after { content:""; position:absolute; left:14px; right:14px; bottom:3px; height:3px; border-radius:3px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .22s cubic-bezier(.3,.7,.3,1); }
body.theme-v3-studio .chrome-tab-bar .chrome-tab:hover { background:var(--paper) !important; color:var(--ink) !important; }
body.theme-v3-studio .chrome-tab-bar .chrome-tab:hover::after { transform:scaleX(.35); background:var(--accent-l); }
body.theme-v3-studio .chrome-tab-bar .chrome-tab.active, body.theme-v3-studio #page-wrapper .chrome-tab-bar a.btn.btn-primary.active {
  background:var(--accent-t) !important; color:var(--accent-x) !important; font-weight:700 !important; border:0 !important;
}
body.theme-v3-studio .chrome-tab-bar .chrome-tab.active::after { transform:scaleX(1); background:var(--accent); }
body.theme-v3-studio #page-wrapper .chrome-tab-bar .collapse14.btn-warning { background:var(--warn-t) !important; color:var(--warn-x) !important; box-shadow:inset 0 0 0 1px var(--warn-l) !important; font-weight:700 !important; }
body.theme-v3-studio #page-wrapper .chrome-tab-bar .chrome-tab-print { background:var(--info-t) !important; color:var(--info-x) !important; box-shadow:inset 0 0 0 1px var(--info) !important; font-weight:700 !important; }
body.theme-v3-studio #page-wrapper .chrome-tab-bar .chrome-tab-approve { background:var(--ok-t) !important; color:var(--ok-x) !important; box-shadow:inset 0 0 0 1px var(--ok-l) !important; font-weight:700 !important; }
body.theme-v3-studio .chrome-tab-bar .chrome-tab-approve[disabled] { opacity:1 !important; background:var(--ok) !important; color:#fff !important; box-shadow:none !important; }
body.theme-v3-studio #page-wrapper .chrome-tab-bar .chrome-tab.active:not(.chrome-tab-print):not(.chrome-tab-approve), body.theme-v3-studio #page-wrapper .chrome-tab-bar .chrome-tab[aria-selected="true"]:not(.chrome-tab-print):not(.chrome-tab-approve) {
  background:var(--accent-t) !important; color:var(--accent-x) !important; border:0 !important; border-radius:var(--r-pill) !important; box-shadow:none !important; outline:0 !important; font-weight:700 !important;
}
body.theme-v3-studio .chrome-tab-bar .chrome-tab-print::after, body.theme-v3-studio .chrome-tab-bar .chrome-tab-approve::after, body.theme-v3-studio .chrome-tab-bar .collapse14::after { display:none; }
body.theme-v3-studio .chrome-tab-bar .chrome-tab-divider { align-self:center; height:22px; margin:0 6px; border-left:1px solid var(--line); }
body.theme-v3-studio .offer-id-strip { background:var(--navy) !important; border-radius:var(--r-lg); box-shadow:var(--e2); }

/* ---- 6. PANELS, DASHBOARD TILES -------------------------------------------------------------------------------------- */
body.theme-v3-studio .panel { border-radius:var(--r-lg); border:1px solid var(--line); box-shadow:var(--e1); background:var(--card); overflow:hidden; }
body.theme-v3-studio .panel-default > .panel-heading { background:linear-gradient(180deg,var(--card-2),var(--card)); color:var(--ink); font-family:var(--serif); font-weight:700; font-size:var(--fs-large,14px); border-bottom:1px solid var(--line-2); }
body.theme-v3-studio .panel-footer { background:var(--card-2); border-top:1px solid var(--line-2); }
body.theme-v3-studio .panel-primary { border-color:#9fb4e6; } body.theme-v3-studio .panel-primary > .panel-heading { background:var(--navy-2); color:#fff; border-color:var(--navy-2); font-family:var(--font); }
body.theme-v3-studio .panel-green { border-color:var(--ok-l); } body.theme-v3-studio .panel-green > .panel-heading { background:var(--ok); color:#fff; border-color:var(--ok); font-family:var(--font); }
body.theme-v3-studio .panel-red { border-color:var(--bad-l); } body.theme-v3-studio .panel-red > .panel-heading { background:var(--bad); color:#fff; border-color:var(--bad); font-family:var(--font); }
body.theme-v3-studio .panel-yellow { border-color:var(--warn-l); } body.theme-v3-studio .panel-yellow > .panel-heading { background:var(--hue-4); color:#fff; border-color:var(--hue-4); font-family:var(--font); }
body.theme-v3-studio .panel-info { border-color:var(--info-l); } body.theme-v3-studio .panel-info > .panel-heading { background:var(--info); color:#fff; border-color:var(--info); font-family:var(--font); }
body.theme-v3-studio .panel-danger { border-color:var(--bad-l); } body.theme-v3-studio .panel-danger > .panel-heading { background:var(--bad-t); color:var(--bad-x); border-color:var(--bad-l); }
body.theme-v3-studio .panel-warning > .panel-heading { background:var(--warn-t); color:var(--warn-x); border-color:var(--warn-l); }
body.theme-v3-studio .panel-success > .panel-heading { background:var(--ok-t); color:var(--ok-x); border-color:var(--ok-l); }
body.theme-v3-studio .panel-primary > a, body.theme-v3-studio .panel-green > a, body.theme-v3-studio .panel-red > a, body.theme-v3-studio .panel-yellow > a, body.theme-v3-studio .panel-info > a { color:var(--ink-2); }
body.theme-v3-studio .panel .huge { font-family:var(--serif); font-weight:700; letter-spacing:-.02em; }
body.theme-v3-studio .panel-footer .pull-left, body.theme-v3-studio .panel-footer .pull-right { font-weight:600; }

/* ---- 7. FORMS ------------------------------------------------------------------------------------------------------ */
body.theme-v3-studio .form-control { background:var(--card); border:1px solid var(--line); border-radius:var(--r-md); color:var(--ink); box-shadow:inset 0 1px 1px rgba(0,40,70,.04); transition:border-color var(--dur),box-shadow var(--dur),background var(--dur); }
body.theme-v3-studio .form-control:hover:not([disabled]):not([readonly]) { border-color:#9fb4c9; }
body.theme-v3-studio .form-control:focus { border-color:var(--accent); box-shadow:var(--focus); background:#fff; outline:none; }
body.theme-v3-studio .form-control[disabled], body.theme-v3-studio .form-control[readonly] { background:var(--cell-calc-bg); color:var(--ink-2); border-color:var(--line); }
body.theme-v3-studio label, body.theme-v3-studio .control-label { color:var(--ink-2); font-weight:600; }
body.theme-v3-studio .input-group-addon { background:var(--paper-2); border-color:var(--line); color:var(--ink-2); }
body.theme-v3-studio input[type=checkbox], body.theme-v3-studio input[type=radio] { accent-color:var(--accent); }
body.theme-v3-studio legend { font-family:var(--serif); color:var(--ink); border-bottom:1px solid var(--line); }

/* ---- 8. TABLES / DATATABLES ------------------------------------------------------------------------------------------- */
body.theme-v3-studio .table { color:var(--ink); }
body.theme-v3-studio .table > thead > tr > th { background:var(--navy-t); color:var(--navy); border-bottom:2px solid var(--accent-l); font-weight:700; }
body.theme-v3-studio .table-bordered, body.theme-v3-studio .table-bordered > thead > tr > th, body.theme-v3-studio .table-bordered > tbody > tr > td { border-color:var(--line-2); }
body.theme-v3-studio .table-striped > tbody > tr:nth-of-type(odd) { background:#f5f8fc; }
body.theme-v3-studio .table-hover > tbody > tr:hover { background:var(--accent-t); }
body.theme-v3-studio table.dataTable thead th { background:var(--paper-2); color:var(--ink); }
body.theme-v3-studio table.dataTable tbody tr:hover > td { background-color:var(--accent-t); }
body.theme-v3-studio .dataTables_wrapper .dataTables_filter input, body.theme-v3-studio .dataTables_wrapper .dataTables_length select { border:1px solid var(--line); border-radius:var(--r-md); background:var(--card); }
body.theme-v3-studio .pagination > li > a, body.theme-v3-studio .pagination > li > span { color:var(--ink-2); background:var(--card); border-color:var(--line); }
body.theme-v3-studio .pagination > .active > a, body.theme-v3-studio .pagination > .active > span { background:var(--accent); border-color:var(--accent-h); color:var(--on-accent); }
body.theme-v3-studio .paginate_button.current, body.theme-v3-studio .dataTables_wrapper .dataTables_paginate .paginate_button.current { background:var(--accent) !important; border-color:var(--accent-h) !important; color:var(--on-accent) !important; border-radius:var(--r-sm); }
body.theme-v3-studio .nav-tabs { border-bottom:1px solid var(--line); }
body.theme-v3-studio .nav-tabs > li > a { color:var(--ink-2); border-radius:var(--r-md) var(--r-md) 0 0; }
body.theme-v3-studio .nav-tabs > li.active > a, body.theme-v3-studio .nav-tabs > li.active > a:hover { background:var(--card); color:var(--accent-x); border-color:var(--line) var(--line) var(--card); box-shadow:inset 0 3px 0 var(--accent); font-weight:700; }

/* ---- 9. TECHNICAL INPUT: cards as colour-keyed ribbons ------------------------------------------------------------------ */
body.theme-v3-studio #unified_ts_root .ts-box { --hue:var(--hue-1); background:var(--card) !important; border:1px solid var(--line) !important; border-top:4px solid var(--hue) !important; border-radius:var(--r-lg) !important; box-shadow:var(--e2) !important; }
body.theme-v3-studio #unified_ts_root .ts-box-1 { --hue:var(--hue-1); }
body.theme-v3-studio #unified_ts_root .ts-box-2 { --hue:var(--hue-2); }
body.theme-v3-studio #unified_ts_root .ts-box-3 { --hue:var(--hue-3); }
body.theme-v3-studio #unified_ts_root .ts-box-4 { --hue:var(--hue-4); }
body.theme-v3-studio #unified_ts_root .ts-card-header { background:linear-gradient(90deg,color-mix(in srgb,var(--hue,var(--navy-2)) 11%,transparent),transparent 62%) !important; border-bottom:1px solid var(--line-2) !important; border-radius:8px 8px 0 0; margin-left:-2px; padding-left:6px !important; }
body.theme-v3-studio #unified_ts_root .ts-card-badge { background:var(--hue,var(--navy-2)) !important; color:#fff !important; box-shadow:0 0 0 3px color-mix(in srgb,var(--hue,var(--navy-2)) 20%,transparent); font-family:var(--serif); font-weight:700; }
body.theme-v3-studio #unified_ts_root .ts-card-title { font-family:var(--serif) !important; font-size:var(--fs-head,19px) !important; font-weight:700 !important; color:var(--navy) !important; letter-spacing:-.005em; }
body.theme-v3-studio #unified_ts_root .ts-card-sub { color:var(--muted) !important; font-style:italic; }
body.theme-v3-studio #unified_ts_root .ts-subcard { background:var(--card-2) !important; border:1px solid var(--line-2) !important; border-radius:var(--r-md) !important; box-shadow:none !important; }

/* spec tables: labels as paper chips, values in cell-language colours */
body.theme-v3-studio #unified_ts_root table.spec-table { border-color:var(--line) !important; border-radius:var(--r-md); box-shadow:var(--e1); }
body.theme-v3-studio #unified_ts_root table.spec-table th, body.theme-v3-studio #unified_ts_root table.th-right th { background:#e8eef5 !important; color:var(--ink-2) !important; font-weight:600; border-color:var(--line) !important; }
body.theme-v3-studio #unified_ts_root table.spec-table td { border-color:var(--line-2) !important; color:var(--ink); }
body.theme-v3-studio #unified_ts_root table.spec-table th.th-equip-count { background:var(--paper-2) !important; }
/* motion tables: header band in the section hue, a stripe per motion row (MH blue, AH teal, CT violet, LT rose) */
body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table > thead th, body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table th[class*="th_"] { background:#e2edf7 !important; border-top:3px solid var(--hue-2) !important; color:var(--ink) !important; }
body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table tr > td:first-child { font-weight:700; }
body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table tr:nth-child(3) > td:first-child { box-shadow:inset 5px 0 0 var(--mh); }
body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table tr:nth-child(4) > td:first-child { box-shadow:inset 5px 0 0 var(--ah); }
body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table tr:nth-child(5) > td:first-child { box-shadow:inset 5px 0 0 var(--ct); }
body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table tr:nth-child(6) > td:first-child { box-shadow:inset 5px 0 0 var(--lt); }
body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table tr.sub-header th { background:#eef3f9 !important; border-top:0 !important; }
body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table td.highlight-yellow { background:var(--warn-t) !important; }

body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table.main-table[data-layout] > thead > tr > th, body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table.main-table[data-layout] > tfoot > tr > th { background:#e2edf7 !important; color:var(--ink) !important; }
body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table.main-table[data-layout] > thead > tr.sub-header > th, body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table.main-table[data-layout] > tfoot > tr.sub-header > th { background:#eef2f7 !important; color:var(--ink-2) !important; }
body.theme-v3-studio #page-wrapper .container.container2 { background:var(--card) !important; }

/* cell language (colours come from the shared variables of elite-ui-r2.css) */
body.theme-v3-studio #unified_ts_root table td:has(input:not([readonly]):not([disabled]):not([type=hidden]):not([type=checkbox]):not([type=radio])) { box-shadow:inset 0 -2px 0 var(--cell-edge-typed); }
body.theme-v3-studio #page-wrapper table td input:focus, body.theme-v3-studio #page-wrapper table td select:focus { box-shadow:var(--focus) !important; background:#fff !important; outline:none; position:relative; z-index:3; }
body.theme-v3-studio #unified_ts_root table td input:hover:not(:focus):not([readonly]):not([disabled]), body.theme-v3-studio #unified_ts_root table td select:hover:not(:focus):not([disabled]) { background-color:rgba(var(--accent-rgb),.08) !important; }
body.theme-v3-studio #unified_ts_root table td input[readonly]:not(.dotted-bg):not(.matched):not(.not_matched) { color:var(--ink-2) !important; }
body.theme-v3-studio #unified_ts_root .btn-warning, body.theme-v3-studio #unified_ts_root .btn-optimise, body.theme-v3-studio #unified_ts_root button.optimise { background:var(--accent) !important; border-color:var(--accent-h) !important; color:var(--on-accent) !important; border-radius:var(--r-pill) !important; box-shadow:var(--e1); }
/* 30 Oct 2026 (owner): the Optimise buttons are a LIGHTER orange (admin Look and feel: LOOK_OPTIMISE), navy text */
body.theme-v3-studio #page-wrapper .btn.drives_optimise, body.theme-v3-studio #page-wrapper .btn.rail_wheel_optimise, body.theme-v3-studio #page-wrapper .btn.dsl_optimise, body.theme-v3-studio #page-wrapper .btn.gantry_optimise, body.theme-v3-studio #page-wrapper .btn.monorail_optimise, body.theme-v3-studio #page-wrapper .btn.btn-warning.freight-opt-btn:not(.freight-opt-btn-off) { background:var(--look-optimise,#F7B070) !important; border-color:var(--look-optimise-edge,#D49861) !important; color:var(--look-optimise-ink,#0B2A40) !important; }
body.theme-v3-studio #page-wrapper .btn.drives_optimise:hover, body.theme-v3-studio #page-wrapper .btn.rail_wheel_optimise:hover, body.theme-v3-studio #page-wrapper .btn.dsl_optimise:hover, body.theme-v3-studio #page-wrapper .btn.gantry_optimise:hover, body.theme-v3-studio #page-wrapper .btn.monorail_optimise:hover, body.theme-v3-studio #page-wrapper .btn.btn-warning.freight-opt-btn:not(.freight-opt-btn-off):hover { background:var(--look-optimise-h,#E6A468) !important; }
body.theme-v3-studio .cell-legend { background:var(--card); border:1px solid var(--line); border-radius:var(--r-pill); padding:3px 14px; font-weight:600; color:var(--ink-2); box-shadow:var(--e1); }
body.theme-v3-studio .cell-legend .cl-typed { box-shadow:inset 0 -2px 0 var(--cell-edge-typed); }
body.theme-v3-studio .cell-legend .cl-calc { outline:1px dashed var(--cell-edge-calc); outline-offset:-3px; }

/* ---- 10. PRICE / BOQ / GTC (the paper stays paper) ----------------------------------------------------------------------- */
body.theme-v3-studio #page-wrapper .collapse.pdf-sheet, body.theme-v3-studio #page-wrapper .collapsing.pdf-sheet { background:var(--paper-3) !important; border-radius:var(--r-lg); }
body.theme-v3-studio #page-wrapper #collapse8 > .container2 { background:var(--paper-3) !important; border-radius:var(--r-lg) !important; }
body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table th:not(.noprint) + th.noprint, body.theme-v3-studio #page-wrapper #collapse8 table#manualEntriesTable td.me-cost-td, body.theme-v3-studio #page-wrapper #collapse8 table#manualEntriesTable th.me-cost-th { border-left-color:var(--paper-3) !important; }
body.theme-v3-studio .pdf-sheet { box-shadow:0 1px 3px rgba(0,40,70,.12),0 14px 38px rgba(0,40,70,.14); }
body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table td.noprint, body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table th.noprint { color:var(--ink-2); background-color:var(--internal-bg) !important; border-color:#c9d6e3 !important; }
body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table th.noprint { background-color:#d5e1ed !important; color:var(--ink-2) !important; }
body.theme-v3-studio #page-wrapper #collapse8 .manual-entries-section.me-internal { background:#dce6f0 !important; border-radius:var(--r-md); }
body.theme-v3-studio #page-wrapper #collapse8 #manualEntriesTable td.noprint, body.theme-v3-studio #page-wrapper #collapse8 #manualEntriesTable th.noprint { background-color:var(--internal-bg) !important; color:var(--ink-2) !important; border-color:#c9d6e3 !important; }
body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table td.noprint input:not([readonly]) { border-color:var(--accent-l) !important; }
body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table td.noprint input[readonly] { background-color:transparent !important; color:var(--ink-2) !important; }
body.theme-v3-studio .me-cost, body.theme-v3-studio .me-margin { border-radius:var(--r-sm); }

/* ---- 11. MODALS, TOASTS, ALERTS, LABELS ---------------------------------------------------------------------------------- */
body.theme-v3-studio .modal-content { border-radius:var(--r-lg); border:1px solid var(--line); box-shadow:var(--e3); background:var(--card); }
body.theme-v3-studio .modal-header { background:linear-gradient(180deg,var(--card-2),var(--card)); border-bottom:1px solid var(--line-2); border-radius:var(--r-lg) var(--r-lg) 0 0; }
body.theme-v3-studio .modal-title { font-family:var(--serif); font-weight:700; color:var(--ink); }
body.theme-v3-studio .modal-footer { background:var(--card-2); border-top:1px solid var(--line-2); border-radius:0 0 var(--r-lg) var(--r-lg); }
body.theme-v3-studio .modal-backdrop.in { opacity:.5; background:#001a2c; }
body.theme-v3-studio .alert { border-radius:var(--r-md); border-width:1px; }
body.theme-v3-studio .alert-success { background:var(--ok-t); border-color:var(--ok-l); color:var(--ok-x); }
body.theme-v3-studio .alert-warning { background:var(--warn-t); border-color:var(--warn-l); color:var(--warn-x); }
body.theme-v3-studio .alert-danger { background:var(--bad-t); border-color:var(--bad-l); color:var(--bad-x); }
body.theme-v3-studio .alert-info { background:var(--info-t); border-color:var(--info-l); color:var(--info-x); }
body.theme-v3-studio .label, body.theme-v3-studio .badge { border-radius:var(--r-pill); font-weight:700; }
body.theme-v3-studio .label-primary, body.theme-v3-studio .badge { background:var(--accent); color:var(--on-accent); }
body.theme-v3-studio .dropdown-menu { background:var(--card); border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--e2); }
body.theme-v3-studio .dropdown-menu > li > a:hover { background:var(--accent-t); color:var(--accent-x); }
body.theme-v3-studio .toast, body.theme-v3-studio .elite-toast { border-radius:var(--r-md); box-shadow:var(--e2); }

/* ---- 12. LAYOUT TOOL (handles stay visible) ------------------------------------------------------------------------------- */
body.theme-v3-studio .fl-handle { opacity:.9; }
body.theme-v3-studio #fl_panel, body.theme-v3-studio .fl-panel { background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--e3); color:var(--ink); }

/* ---- 13. SIGN-IN ----------------------------------------------------------------------------------------------------- */
body.theme-v3-studio .login-panel { border:1px solid var(--line); border-radius:18px; box-shadow:var(--e3); overflow:hidden; background:var(--card); }
body.theme-v3-studio .login-panel .panel-heading { background:var(--navy); color:#fff; font-family:var(--serif); font-size:var(--fs-head,19px); letter-spacing:.01em; border:0; border-bottom:4px solid var(--accent); }
body.theme-v3-studio .login-panel .panel-title { font-family:var(--serif); }
body.theme-v3-studio .login-panel .btn-success, body.theme-v3-studio .login-panel .btn-lg { background:var(--accent); border-color:var(--accent-h); color:var(--on-accent); }
body.theme-v3-studio .login-panel .btn-success:hover { background:var(--accent-h); color:#fff; }
body.theme-v3-studio .login-panel { margin-top:12vh; }
body.theme-v3-studio .login-panel::before { content:"EliteMHE"; display:block; text-align:center; padding:26px 0 0; font-family:var(--serif); font-size:38px; font-weight:700; letter-spacing:-.01em; color:var(--ink); background:var(--card); }
body.theme-v3-studio .login-panel::after { content:"ESTIMATION, ENGINEERED"; display:block; text-align:center; padding:10px 0 14px; margin:0 16px; border-top:1px solid var(--line-2); font-size:var(--fs-small,11.5px); letter-spacing:.22em; color:var(--accent-h); background:var(--card); }

/* ---- 14. SMALL SCREENS ----------------------------------------------------------------------------------------------- */
@media (max-width:767px) {
  body.theme-v3-studio .chrome-tab-bar { padding:6px 6px 4px 6px !important; }
  body.theme-v3-studio .chrome-tab-bar .chrome-tab { padding:6px 10px 8px !important; font-size:var(--fs-base,12.5px) !important; }
  body.theme-v3-studio #unified_ts_root .ts-card-title { font-size:var(--fs-large,14px) !important; }
}

/* ---- 15. DARK (follows the device) ------------------------------------------------------------------------------------ */
@media (prefers-color-scheme: dark) {
  html.studio-dark body.theme-v3-studio {
    --paper:#071c2c; --paper-2:#0b2740; --paper-3:#10324f; --card:#0c2438; --card-2:#102c44;
  --page-bg:#071c2c; --card-edge:#1c3a56; --internal-bg:#0e2438; --accent-rgb:255,154,77; --accent2-rgb:255,154,77; --navy-rgb:0,48,80;
    --ink:#eaf1f8; --ink-2:#c3d3e2; --muted:#93a8bc; --line:#1f3f5a; --line-2:#173449;
    --navy:#6fb3e0; --navy-2:#4aa3d6; --navy-t:#12324d; --orange:#ff9a4d; --on-accent:#1a0f06;
    --accent:#ff9a4d; --accent-h:#ffb070; --accent-t:#3a2a1c; --accent-l:#a65a22; --accent-x:#ffd9bd;
    --ok:#4cae75; --ok-t:#16301f; --ok-l:#2f6a47; --ok-x:#a9e2c0;
    --warn:#e0a13a; --warn-t:#3a2c10; --warn-l:#7a5a1c; --warn-x:#f3d490;
    --bad:#e5645a; --bad-t:#3c1814; --bad-l:#7a3029; --bad-x:#f5b3ad;
    --info:#5da6dd; --info-t:#14283a; --info-l:#2d5575; --info-x:#b4d8f2;
    --hue-1:#4aa3d6; --hue-2:#3cc0cf; --hue-3:#8a9be8; --hue-4:#ffa35c;
    --mh:#4aa3d6; --ah:#3cc2ae; --ct:#8a9be8; --lt:#ef7aa3;
    --cell-typed-bg:#3d2c1c; --cell-select-bg:#0f2b44; --cell-calc-bg:#0e2438; --cell-arrow:#ff9a4d;
    --cell-typed-edge:#8a5a2c; --cell-select-edge:#2c5070; --cell-calc-edge:#1f4260; --cell-edge-typed:#e08a3c; --cell-edge-calc:#5d7a94;
    --e1:0 1px 2px rgba(0,0,0,.4); --e2:0 2px 4px rgba(0,0,0,.35),0 10px 24px rgba(0,0,0,.35); --e3:0 18px 48px rgba(0,0,0,.6);
    --focus:0 0 0 3px rgba(var(--accent-rgb),.42);
    color-scheme:dark;
    background-image:radial-gradient(1100px 420px at 8% -8%,rgba(var(--accent-rgb),.10),transparent 62%),radial-gradient(900px 500px at 100% 0%,rgba(74,163,214,.08),transparent 60%);
  }
  html.studio-dark body.theme-v3-studio .navbar-default { background:rgba(30,26,21,.9); }
  html.studio-dark body.theme-v3-studio .btn-primary { color:#1a0f06; background:var(--accent); border-color:var(--accent-h); }
  html.studio-dark body.theme-v3-studio .btn-primary:hover { color:#1a0f06; background:var(--accent-h); }
  html.studio-dark body.theme-v3-studio .btn-success { color:#07170e; background:var(--ok); border-color:var(--ok-l); }
  html.studio-dark body.theme-v3-studio .btn-danger { color:#2a0805; background:var(--bad); }
  html.studio-dark body.theme-v3-studio .form-control, html.studio-dark body.theme-v3-studio select, html.studio-dark body.theme-v3-studio input[type=text] { color:var(--ink); }
  html.studio-dark body.theme-v3-studio .form-control:focus { background:#10304a; }
  html.studio-dark body.theme-v3-studio .table-striped > tbody > tr:nth-of-type(odd) { background:#0d283f; }
  html.studio-dark body.theme-v3-studio table.dataTable tbody tr:hover > td, html.studio-dark body.theme-v3-studio .table-hover > tbody > tr:hover { background-color:#33261a; }
  html.studio-dark body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table > thead th, html.studio-dark body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table th[class*="th_"] { background:#0f2c4a !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table tr.sub-header th { background:#0c2640 !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table.spec-table th, html.studio-dark body.theme-v3-studio #unified_ts_root table.th-right th { background:#0f2a42 !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root .ts-box-2 table.spec-table td.highlight-yellow { background:#3a2c10 !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper table td input:focus, html.studio-dark body.theme-v3-studio #page-wrapper table td select:focus { background:#123350 !important; }
  html.studio-dark body.theme-v3-studio .panel-primary > .panel-heading { background:#3f63c9; }
  html.studio-dark body.theme-v3-studio .panel-yellow > .panel-heading { background:#9a6410; }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table, html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table.th-right, html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table.main-table { background:var(--card) !important; }
  html.studio-dark body.theme-v3-studio .pdf-sheet, html.studio-dark body.theme-v3-studio .pt-side, html.studio-dark body.theme-v3-studio #collapse8 table.pricing-table:not(.noprint), html.studio-dark body.theme-v3-studio #manualEntriesTable { --cell-typed-bg:#fff1e4; --cell-select-bg:#ffffff; --cell-calc-bg:#eaf0f6; color:#111; }
  html.studio-dark body.theme-v3-studio .pt-side td input:not([readonly]), html.studio-dark body.theme-v3-studio .pdf-sheet td input:not([readonly]) { color:#111 !important; }
  html.studio-dark body.theme-v3-studio .pdf-sheet input, html.studio-dark body.theme-v3-studio .pdf-sheet select, html.studio-dark body.theme-v3-studio .pdf-sheet textarea { color:#111; }
  html.studio-dark body.theme-v3-studio #page-wrapper .btn.btn-primary:not(.chrome-tab) { background:var(--accent) !important; color:#1a0f06 !important; border-color:var(--accent-h) !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table.main-table[data-layout] > thead > tr > th, html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table.main-table[data-layout] > tfoot > tr > th { background:#0f2c4a !important; color:var(--ink) !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table.main-table[data-layout] > thead > tr.sub-header > th, html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table.main-table[data-layout] > tfoot > tr.sub-header > th { background:#0b2338 !important; color:var(--ink-2) !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table td { color:var(--ink) !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td input[readonly], html.studio-dark body.theme-v3-studio #unified_ts_root table td span { color:var(--ink) !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td { background-color:var(--card-2); color:var(--ink); }
  html.studio-dark body.theme-v3-studio #unified_ts_root table input, html.studio-dark body.theme-v3-studio #unified_ts_root table select, html.studio-dark body.theme-v3-studio #unified_ts_root table textarea { color:var(--ink) !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table input.not_matched, html.studio-dark body.theme-v3-studio #unified_ts_root table td.not_matched, html.studio-dark body.theme-v3-studio #unified_ts_root table input.mand-missing { color:#ffd9d5 !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td.matched, html.studio-dark body.theme-v3-studio #unified_ts_root table input.matched, html.studio-dark body.theme-v3-studio #unified_ts_root table td.highlight-green, html.studio-dark body.theme-v3-studio #unified_ts_root table td.highlight-green input { background:#143522 !important; color:#b9f0cf !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td.not_matched, html.studio-dark body.theme-v3-studio #unified_ts_root table input.not_matched { background:#4a1d19 !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td.highlight-yellow { background:#3a2c10 !important; color:#f3d490 !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table th[class*="bg-v"] { background:#2a2145 !important; } html.studio-dark body.theme-v3-studio #unified_ts_root table th[class*="bg-p"] { background:#3a2036 !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table th[class*="bg-g"] { background:#17352a !important; } html.studio-dark body.theme-v3-studio #unified_ts_root table th[class*="bg-y"] { background:#3a2f12 !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table th[class*="bg-b"] { background:#1c2c46 !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root table th { color:var(--ink) !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root tr.row-inactive-dimmed td, html.studio-dark body.theme-v3-studio #unified_ts_root td.chain-na-cell, html.studio-dark body.theme-v3-studio #unified_ts_root td.cb-na-cell, html.studio-dark body.theme-v3-studio #unified_ts_root tr.ah-row.hide_ah td { background:#0a2033 !important; color:var(--muted) !important; }
  html.studio-dark body.theme-v3-studio #unified_ts_root .ts-box, html.studio-dark body.theme-v3-studio #unified_ts_root { color:var(--ink); }
  html.studio-dark body.theme-v3-studio #page-wrapper .panel-default, html.studio-dark body.theme-v3-studio #page-wrapper .panel-body, html.studio-dark body.theme-v3-studio #page-wrapper .container-fluid { background:transparent !important; border-color:var(--line) !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root tr.row-inactive-dimmed td, html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root tr.ah-row.hide_ah td, html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root tr.ah-row.hide_ah td:not(.ah-cap-cell), html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root td.chain-na-cell,
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root tr.cb-na-row > td, html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root tr.cb-na-row > th, html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root td.cb-na-cell { background:#0a2033 !important; color:var(--muted) !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root tr.row-inactive-dimmed td input, html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root td.ah-cap-cell input { background:#12324d !important; color:var(--ink) !important; }
  html.studio-dark body.theme-v3-studio [style*="#cfeef5"], html.studio-dark body.theme-v3-studio [style*="#e8f4f8"], html.studio-dark body.theme-v3-studio [style*="#d9edf7"] { background:#17323a !important; color:var(--ink) !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table td.noprint { background-color:#0f2c46 !important; border-color:#1f4260 !important; color:var(--ink-2); }
  html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table th.noprint { background-color:#143653 !important; color:var(--ink-2) !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 td.noprint, html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 th.noprint { --cell-typed-bg:#3d2c1c; --cell-calc-bg:#0f2c46; --cell-select-bg:#0f2b44; }
  html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 td.noprint input { color:var(--ink) !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 .manual-entries-section.me-internal { background:#0c263c !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 #manualEntriesTable td.noprint, html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 #manualEntriesTable th.noprint { background-color:#0f2c46 !important; color:var(--ink-2) !important; border-color:#1f4260 !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table td.noprint input:not([readonly]), html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table td.noprint select { background:#3d2c1c !important; color:var(--ink) !important; border-color:#8a5a2c !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 label, html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 .text-muted { color:var(--ink-2); }
  html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 > .container2, html.studio-dark body.theme-v3-studio #page-wrapper .collapse.pdf-sheet, html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table th:not(.noprint) + th.noprint { border-left-color:var(--paper-3) !important; }
  html.studio-dark body.theme-v3-studio .login-panel .panel-heading { background:#0b2a40; color:var(--ink); }
  html.studio-dark body.theme-v3-studio .login-panel .btn-success, html.studio-dark body.theme-v3-studio .login-panel .btn-lg { color:#1a0f06; }
  html.studio-dark body.theme-v3-studio .modal-backdrop.in { background:#000; }
  html.studio-dark body.theme-v3-studio *::-webkit-scrollbar-thumb { background:#2a4d6b; }
}

/* ---- 16. DEPTH LAYER (second pass, 30 Oct 2026; owner: "utilise the 3rd axis, depth ... animating borders ... typed character pops up") --------------
   One light source, top-left. Cards float above a textured backdrop, headings are raised plates, typed cells are recessed warm wells that lift on hover
   and sink + glow on focus, calculated cells are flush engraved plates. Only the focused cell and the active card header animate (never hundreds at once);
   hover effects are transitions on the single hovered element. Wells / borders are pseudo-elements of the cell, so the cell's own colours, the motion stripes and the
   form-layout widths are untouched. The tab bar (.chrome-tab-bar) is not styled here. The typed-character echo (#studio-pop) is drawn by elite-v3-studio.js. */
body.theme-v3-studio { background-image:none !important; background-attachment:scroll !important; background-color:#e9eff6 !important; }
/* the studio backdrop: ink blueprint grid (fine every 28 px, stronger every 140 px) + faint grain + soft vignette, one fixed layer (compositor, no repaint on scroll) */
body.theme-v3-studio::before { content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(130% 95% at 50% 18%, transparent 52%, rgba(var(--navy-rgb),.12) 100%),
    radial-gradient(900px 420px at 6% -6%, rgba(var(--accent-rgb),.085), transparent 62%),
    radial-gradient(800px 480px at 100% 0%, rgba(0,74,116,.06), transparent 60%),
    linear-gradient(rgba(var(--navy-rgb),.055) 1px, transparent 1px) 0 0/140px 140px,
    linear-gradient(90deg, rgba(var(--navy-rgb),.055) 1px, transparent 1px) 0 0/140px 140px,
    linear-gradient(rgba(var(--navy-rgb),.028) 1px, transparent 1px) 0 0/28px 28px,
    linear-gradient(90deg, rgba(var(--navy-rgb),.028) 1px, transparent 1px) 0 0/28px 28px,
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .25  0 0 0 0 .18  0 0 0 0 .1  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.55'/></svg>");
}
/* topographic rings in the top-right corner, masked so they fade out */
body.theme-v3-studio::after { content:""; position:fixed; right:0; top:0; width:760px; height:560px; z-index:-1; pointer-events:none;
  background:repeating-radial-gradient(circle at 88% 6%, transparent 0 26px, rgba(var(--accent-rgb),.07) 26px 27px);
  -webkit-mask-image:radial-gradient(closest-side at 88% 6%, #000 0, transparent 100%); mask-image:radial-gradient(closest-side at 88% 6%, #000 0, transparent 100%); }

/* cards float: layered shadow from the top-left light, a lit top edge, no transform (no containing-block side effects) */
body.theme-v3-studio #page-wrapper #unified_ts_root .ts-box {
  background-image:linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,255,255,0) 110px) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95), 0 3px 0 -1px #c9d6e3, 0 4px 0 -1px rgba(0,60,100,.28), 0 8px 10px -3px rgba(0,40,70,.14), 0 20px 28px -12px rgba(0,40,70,.24), 0 40px 60px -28px rgba(0,30,55,.34) !important; }
body.theme-v3-studio #page-wrapper #unified_ts_root .ts-subcard { box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 2px 5px -1px rgba(0,40,70,.09) !important; }
/* card header = raised plate, numbered disc = a small lit sphere, title embossed */
body.theme-v3-studio #page-wrapper #unified_ts_root .ts-card-header { position:relative; box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 1px 0 rgba(0,40,70,.05); }
body.theme-v3-studio #page-wrapper #unified_ts_root .ts-card-badge { background:radial-gradient(circle at 32% 26%, rgba(255,255,255,.62), rgba(255,255,255,0) 46%), var(--hue,var(--navy-2)) !important; box-shadow:inset 0 -2px 3px rgba(0,0,0,.28), 0 2px 4px rgba(0,30,55,.30), 0 0 0 3px color-mix(in srgb,var(--hue,var(--navy-2)) 18%,transparent); text-shadow:0 1px 1px rgba(0,0,0,.35); }
body.theme-v3-studio #page-wrapper #unified_ts_root .ts-card-title { text-shadow:0 1px 0 rgba(255,255,255,.95), 0 -1px 0 rgba(0,40,70,.07); }
/* the header line: grows under the hovered header, and runs slowly along the ACTIVE card's header (the card the cursor is in) */
body.theme-v3-studio #unified_ts_root .ts-card-header::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; pointer-events:none; opacity:0;
  background:linear-gradient(90deg, transparent, var(--accent) 35%, #ffc08a 50%, var(--accent) 65%, transparent) 0 0/45% 100% no-repeat; transition:opacity .25s; }
body.theme-v3-studio #unified_ts_root .ts-card-header:hover::after, body.theme-v3-studio #unified_ts_root .ts-box:focus-within > .ts-box-split .ts-card-header::after, body.theme-v3-studio #unified_ts_root .ts-box:focus-within .ts-card-header::after { opacity:1; animation:st-run 3.2s linear infinite; }
@keyframes st-run { from { background-position:-45% 0; } to { background-position:145% 0; } }

/* headings of the value fields: raised plates (a translucent lit gradient over the existing colour, so MH / AH / CT / LT header colours stay), a line grows under the hovered one */
body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table th {
  position:relative; background-image:linear-gradient(180deg, rgba(255,255,255,.8), rgba(255,255,255,0) 52%, rgba(0,60,100,.11)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 0 rgba(0,60,100,.24), inset 1px 0 0 rgba(255,255,255,.55); text-shadow:0 1px 0 rgba(255,255,255,.85); }
body.theme-v3-studio #unified_ts_root table.spec-table th::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; pointer-events:none; background:linear-gradient(90deg, var(--accent), rgba(var(--accent-rgb),0) 92%); transform:scaleX(0); transform-origin:left center; transition:transform .38s cubic-bezier(.2,.7,.2,1); }
body.theme-v3-studio #unified_ts_root table.spec-table th:hover::after { transform:scaleX(1); }
body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table { box-shadow:0 2px 0 rgba(0,60,100,.22), 0 7px 11px -4px rgba(0,40,70,.20); }

/* value fields: wells. td::before draws the bevel, td::after the animated border (only while a field inside has the focus) */
body.theme-v3-studio #unified_ts_root table td:has(input:not([type=hidden]):not([type=checkbox]):not([type=radio])), body.theme-v3-studio #unified_ts_root table td:has(select) { position:relative; }
body.theme-v3-studio #unified_ts_root table td:has(input:not([type=hidden]):not([type=checkbox]):not([type=radio]))::before, body.theme-v3-studio #unified_ts_root table td:has(select)::before { content:""; position:absolute; inset:1px; border-radius:4px; pointer-events:none; z-index:1; transition:box-shadow .14s ease; }
/* the control sits ABOVE the bevel layer, so its text is never veiled by it */
body.theme-v3-studio #unified_ts_root table td:has(input:not([type=hidden]):not([type=checkbox]):not([type=radio])) > input:not([type=hidden]):not([type=checkbox]):not([type=radio]), body.theme-v3-studio #unified_ts_root table td:has(select) > select { position:relative; z-index:2; }
/* the tray the tables sit on: a shallow recess in the card floor */
body.theme-v3-studio #unified_ts_root .ts-box-inner { box-shadow:inset 0 4px 10px -4px rgba(0,60,100,.18), inset 0 -2px 6px -3px rgba(255,255,255,.9); border-radius:10px; }
/* typed = warm lit well, recessed */
body.theme-v3-studio #unified_ts_root table td:has(input:not([readonly]):not([disabled]):not([type=hidden]):not([type=checkbox]):not([type=radio]))::before { background:linear-gradient(180deg, rgba(var(--accent2-rgb),.14), rgba(255,255,255,.28)); box-shadow:inset 0 3px 5px rgba(var(--accent2-rgb),.34), inset 1px 0 0 rgba(var(--accent2-rgb),.16), inset 0 -1px 0 rgba(255,255,255,.85); }
/* drop-down = a raised key cap */
body.theme-v3-studio #unified_ts_root table td:has(select:not([disabled]))::before { background:linear-gradient(180deg, rgba(255,255,255,.65), rgba(0,60,100,.08)); box-shadow:inset 0 1px 0 rgba(255,255,255,.98), inset 0 -3px 3px rgba(0,50,90,.20), 0 2px 0 rgba(0,60,100,.22), 0 3px 4px rgba(0,40,70,.14); }
/* calculated = flush engraved plate */
body.theme-v3-studio #unified_ts_root table td:has(input[readonly]:not([type=hidden]):not([type=checkbox]):not([type=radio]))::before { box-shadow:inset 0 1px 0 rgba(255,255,255,.6), inset 0 -1px 2px rgba(0,40,70,.09); }
body.theme-v3-studio #unified_ts_root table td:has(input[readonly]:not([type=hidden])) input[readonly] { text-shadow:0 1px 0 rgba(255,255,255,.7); }
/* hover: the well lifts toward the light (a soft outer glow, the inset eases) - one element, a transition */
body.theme-v3-studio #unified_ts_root table td:hover:has(input:not([readonly]):not([disabled]):not([type=hidden]):not([type=checkbox]):not([type=radio]))::before { box-shadow:inset 0 1px 2px rgba(var(--accent2-rgb),.16), inset 0 -1px 0 rgba(255,255,255,.85), 0 3px 8px -2px rgba(var(--accent2-rgb),.30); }
body.theme-v3-studio #unified_ts_root table td:hover:has(select:not([disabled]))::before { box-shadow:inset 0 1px 0 #fff, inset 0 -2px 3px rgba(0,50,90,.12), 0 4px 9px -3px rgba(0,40,70,.32); }
/* focus: the well sinks, lights up, and a thin accent border runs round it */
body.theme-v3-studio #unified_ts_root table td:focus-within { z-index:6; transform:scale(1.035); transition:transform .14s cubic-bezier(.2,.9,.3,1.3); }
body.theme-v3-studio #unified_ts_root table td:focus-within::before { z-index:1; box-shadow:inset 0 4px 9px rgba(0,30,60,.42), inset 0 0 0 1px var(--accent-l), 0 0 0 4px color-mix(in srgb,var(--accent) 30%,transparent), 0 0 26px 2px color-mix(in srgb,var(--accent) 45%,transparent), 0 12px 22px -6px color-mix(in srgb,var(--accent) 55%,transparent); }
body.theme-v3-studio #unified_ts_root table td:focus-within::after { content:""; position:absolute; inset:-1px; padding:3px; border-radius:6px; pointer-events:none; z-index:7;
  background:linear-gradient(100deg, transparent 18%, var(--accent) 42%, #ffd9b8 50%, var(--accent) 58%, transparent 82%) 0 0/260% 100%;
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); animation:st-sweep 2.6s linear infinite; }
@keyframes st-sweep { from { background-position:160% 0; } to { background-position:-60% 0; } }
body.theme-v3-studio #page-wrapper #unified_ts_root table td input:focus, body.theme-v3-studio #page-wrapper #unified_ts_root table td select:focus { box-shadow:none !important; background:transparent !important; }
body.theme-v3-studio #page-wrapper #unified_ts_root table td:focus-within { background-color:#fffaf4 !important; }

/* the typed-character echo (drawn by elite-v3-studio.js): one reused bubble, about twice the field's font size, fades after ~0.65 s, never takes a click */
#studio-pop { display:none; }
body.theme-v3-studio #studio-pop { position:fixed; left:0; top:0; z-index:2147482000; pointer-events:none; display:none; padding:0 2px; white-space:nowrap;
  font-family:var(--font); font-weight:800; line-height:1.1; letter-spacing:.01em; font-variant-numeric:tabular-nums; color:var(--navy,#003050);
  background:none; border:0; box-shadow:none;   /* 30 Oct 2026 (owner): only the digits pop out, no box behind them; a thin halo keeps them readable on any cell colour */
  text-shadow:0 0 3px #fff, 0 0 3px #fff, 0 0 6px #fff, 0 1px 1px rgba(255,255,255,.9); opacity:0; transition:opacity .22s ease, transform .22s ease; transform:translateY(4px) scale(.96); }
body.theme-v3-studio #studio-pop.on { display:block; opacity:1; transform:translateY(0) scale(1); }
body.theme-v3-studio #studio-pop.out { opacity:0; transform:translateY(-3px) scale(.98); }
body.theme-v3-studio #studio-pop::after, body.theme-v3-studio #studio-pop.below::after { content:none; display:none; }   /* no tail without the box */

body.theme-v3-studio #studio-pop span.cut { color:var(--muted); font-weight:600; }
body.theme-v3-studio #studio-pop span.last { color:var(--accent-h, #b8500c); display:inline-block; animation:st-pop .26s cubic-bezier(.2,1.6,.4,1); }
body.theme-v3-studio #studio-pop span.del { font-size:.55em; font-weight:600; color:var(--muted); margin-left:.4em; vertical-align:.25em; }
@keyframes st-pop { 0% { transform:scale(.45) translateY(6px); opacity:.2; } 60% { transform:scale(1.28) translateY(-2px); opacity:1; } 100% { transform:scale(1) translateY(0); } }

/* the printed sheets on screen: the paper lifts off its tray (screen only; print is outside @media screen) */
body.theme-v3-studio #page-wrapper #collapse8 .pricing-unified-container, body.theme-v3-studio #page-wrapper .pdf-sheet > .container, body.theme-v3-studio #page-wrapper .pdf-sheet > .card-body { box-shadow:0 2px 0 rgba(0,60,100,.28), 0 4px 0 -1px rgba(255,255,255,.4), 0 16px 28px -10px rgba(0,40,70,.38) !important; }
body.theme-v3-studio #page-wrapper .collapse.pdf-sheet { box-shadow:inset 0 4px 12px -4px rgba(0,60,100,.30), 0 1px 0 rgba(255,255,255,.7); }

/* dark: the same light, deeper shadows, lit edges instead of white highlights */
@media (prefers-color-scheme: dark) {
  html.studio-dark body.theme-v3-studio { background-color:#04141f !important; }
  html.studio-dark body.theme-v3-studio::before { background:
    radial-gradient(130% 95% at 50% 18%, transparent 50%, rgba(0,0,0,.45) 100%),
    radial-gradient(900px 420px at 6% -6%, rgba(var(--accent-rgb),.12), transparent 62%),
    radial-gradient(800px 480px at 100% 0%, rgba(74,163,214,.10), transparent 60%),
    linear-gradient(rgba(190,215,240,.045) 1px, transparent 1px) 0 0/140px 140px,
    linear-gradient(90deg, rgba(190,215,240,.045) 1px, transparent 1px) 0 0/140px 140px,
    linear-gradient(rgba(190,215,240,.022) 1px, transparent 1px) 0 0/28px 28px,
    linear-gradient(90deg, rgba(190,215,240,.022) 1px, transparent 1px) 0 0/28px 28px; }
  html.studio-dark body.theme-v3-studio::after { background:repeating-radial-gradient(circle at 88% 6%, transparent 0 26px, rgba(var(--accent-rgb),.10) 26px 27px); }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root .ts-box { background-image:linear-gradient(180deg, rgba(200,225,245,.06), rgba(255,255,255,0) 110px) !important; box-shadow:inset 0 1px 0 rgba(200,225,245,.10), 0 3px 0 -1px #020d16, 0 4px 0 -1px rgba(0,0,0,.6), 0 10px 14px -4px rgba(0,0,0,.55), 0 30px 44px -18px rgba(0,0,0,.75) !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root .ts-subcard { box-shadow:inset 0 1px 0 rgba(200,225,245,.07), 0 2px 5px -1px rgba(0,0,0,.5) !important; }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root .ts-card-header { box-shadow:inset 0 1px 0 rgba(200,225,245,.09), 0 1px 0 rgba(0,0,0,.3); }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root .ts-card-title { text-shadow:0 1px 0 rgba(0,0,0,.6); }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table th { background-image:linear-gradient(180deg, rgba(200,225,245,.12), rgba(255,255,255,0) 52%, rgba(0,0,0,.18)) !important; box-shadow:inset 0 1px 0 rgba(200,225,245,.14), inset 0 -1px 0 rgba(0,0,0,.5), inset 1px 0 0 rgba(200,225,245,.05); text-shadow:0 1px 0 rgba(0,0,0,.6); }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table.spec-table { box-shadow:0 2px 0 rgba(0,0,0,.55), 0 8px 12px -4px rgba(0,0,0,.6); }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td:has(input:not([readonly]):not([disabled]):not([type=hidden]):not([type=checkbox]):not([type=radio]))::before { background:linear-gradient(180deg, rgba(0,0,0,.28), rgba(200,225,245,.05)); box-shadow:inset 0 3px 6px rgba(0,0,0,.65), inset 1px 0 0 rgba(0,0,0,.3), inset 0 -1px 0 rgba(190,215,240,.12); }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td:has(select:not([disabled]))::before { background:linear-gradient(180deg, rgba(200,225,245,.10), rgba(0,0,0,.12)); box-shadow:inset 0 1px 0 rgba(200,225,245,.15), inset 0 -3px 3px rgba(0,0,0,.5), 0 2px 0 rgba(0,0,0,.45), 0 3px 4px rgba(0,0,0,.4); }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td:has(input[readonly]:not([type=hidden]):not([type=checkbox]):not([type=radio]))::before { box-shadow:inset 0 1px 0 rgba(200,225,245,.07), inset 0 -1px 2px rgba(0,0,0,.4); }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td:has(input[readonly]:not([type=hidden])) input[readonly] { text-shadow:0 1px 0 rgba(0,0,0,.5); }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td:hover:has(input:not([readonly]):not([disabled]):not([type=hidden]):not([type=checkbox]):not([type=radio]))::before { box-shadow:inset 0 1px 2px rgba(0,0,0,.5), inset 0 -1px 0 rgba(190,215,240,.14), 0 3px 9px -2px rgba(var(--accent-rgb),.35); }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td:hover:has(select:not([disabled]))::before { box-shadow:inset 0 1px 0 rgba(200,225,245,.16), inset 0 -2px 3px rgba(0,0,0,.4), 0 4px 10px -3px rgba(var(--accent-rgb),.35); }
  html.studio-dark body.theme-v3-studio #unified_ts_root table td:focus-within::before { box-shadow:inset 0 3px 8px rgba(0,0,0,.65), inset 0 0 0 1px var(--accent-l), 0 0 0 3px rgba(var(--accent-rgb),.28), 0 8px 20px -5px rgba(var(--accent-rgb),.5); }
  html.studio-dark body.theme-v3-studio #page-wrapper #unified_ts_root table td:focus-within { background-color:#1a3550 !important; }
  html.studio-dark body.theme-v3-studio #studio-pop { color:#eaf1f8; background:none; border:0; box-shadow:none; text-shadow:0 0 3px #04121d, 0 0 3px #04121d, 0 0 6px #04121d; }


}
/* small screens: no glow, no running border */
@media (max-width:767px) {
  body.theme-v3-studio::after { display:none; }
  body.theme-v3-studio #unified_ts_root table td:focus-within::after { animation:none; background:var(--accent); }
  body.theme-v3-studio #unified_ts_root table td:focus-within::before { box-shadow:inset 0 2px 5px rgba(0,30,60,.3), inset 0 0 0 1px var(--accent-l); }
}
/* motion off when the device asks for it */
@media (prefers-reduced-motion: reduce) {
  body.theme-v3-studio #unified_ts_root table td:focus-within::after { animation:none; background:var(--accent); }
  body.theme-v3-studio #unified_ts_root .ts-card-header::after { animation:none !important; }
  body.theme-v3-studio #unified_ts_root table.spec-table th::after { transition:none; }
  body.theme-v3-studio #unified_ts_root table td::before { transition:none; }
  body.theme-v3-studio #studio-pop { display:none !important; }
}

}

/* ==========================================================================
   17. R3 SCREENS ADDED AFTER THE PREVIEW (30 Oct 2026): Admin Setting / Freight rate update section bars, label chips, crane strip, dashboard badge.
   CSS only. The generic heading colour of this look must not override white text on the dark section bars of those pages.
   ========================================================================== */
@media screen {
  body.theme-v3-studio .ss-panel > h3, body.theme-v3-studio .ss-panel > h3 *, body.theme-v3-studio .fr-panel > h3, body.theme-v3-studio .fr-panel > h3 *,
  body.theme-v3-studio .as-sec > h3, body.theme-v3-studio .as-sec > h3 * { color:#fff !important; }
  body.theme-v3-studio .label-success { background-color:#2f7a4d; color:#fff; }
  body.theme-v3-studio .label-danger { background-color:#b42318; color:#fff; }
  body.theme-v3-studio .label-warning { background-color:#a15c07; color:#fff; }
  body.theme-v3-studio .label-info { background-color:#235e8c; color:#fff; }
  body.theme-v3-studio .steel-alert-badge { color:#fff !important; }
  body.theme-v3-studio .btn-warning, body.theme-v3-studio .btn-xs.btn-warning { color:#2a1300 !important; }
  body.theme-v3-studio .ts-card-badge { color:#2a1300; }
  /* the Crane 1 .. N strip (EST, Spare, Offer-tab TS): same language as the tabs: ink text, accent when current */
  body.theme-v3-studio .crane-strip { background:var(--card-2); border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--e1); }
  body.theme-v3-studio .crane-strip .cs-title { color:var(--ink-2); }
  body.theme-v3-studio .crane-strip a.cs-item { color:var(--ink) !important; background:var(--card); border:1px solid var(--line); box-shadow:var(--e1); transition:transform var(--dur), box-shadow var(--dur), border-color var(--dur); }
  body.theme-v3-studio .crane-strip a.cs-item:hover { border-color:var(--accent-l); transform:translateY(-1px); box-shadow:var(--e2); background:var(--accent-t); }
  body.theme-v3-studio .crane-strip a.cs-item.active, body.theme-v3-studio .crane-strip a.cs-item.active:hover { background:var(--accent); border-color:var(--accent-h); color:var(--on-accent) !important; box-shadow:var(--e1); transform:none; }
  body.theme-v3-studio .crane-strip a.cs-item.active small { color:var(--on-accent) !important; }
  body.theme-v3-studio .crane-strip a.cs-item small { background:transparent !important; padding:0 !important; border:0 !important; box-shadow:none !important; font-size:var(--fs-micro,10px); opacity:.85; }
}
@media screen and (prefers-color-scheme: dark) {
  html.studio-dark body.theme-v3-studio .crane-strip a.cs-item { color:var(--ink) !important; }
  html.studio-dark body.theme-v3-studio .pdf-sheet .crane-strip { background:#f8fafc; }
  html.studio-dark body.theme-v3-studio .pdf-sheet .crane-strip a.cs-item { color:#13203a !important; background:#fff; border-color:#94a3b8; }
  html.studio-dark body.theme-v3-studio .pdf-sheet .crane-strip a.cs-item.active { color:#0b2a40 !important; background:var(--accent); }
}

/* ==========================================================================
   18. WHITE PAGE (30 Oct 2026, owner: "remove page background colour and make it white"). Light mode only: the page / desk is plain white, the decorative
   grain / grid / vignette / topographic layers are removed, the cards keep their depth through a thin navy-tinted border and the layered shadow.
   Dark mode keeps its deep navy base (html.studio-dark).
   ========================================================================== */
@media screen {
  html:not(.studio-dark) body.theme-v3-studio { background:var(--page-bg) !important; background-color:var(--page-bg) !important; background-image:none !important; }
  html:not(.studio-dark) body.theme-v3-studio::before, html:not(.studio-dark) body.theme-v3-studio::after { display:none !important; }
  html:not(.studio-dark) body.theme-v3-studio #page-wrapper, html:not(.studio-dark) body.theme-v3-studio #wrapper { background:var(--page-bg) !important; }
  /* the grey desk behind the printed sheets on the Price / GTC / QAP ... tabs is white too; the paper keeps a border and its lift */
  html:not(.studio-dark) body.theme-v3-studio #page-wrapper .collapse.pdf-sheet, html:not(.studio-dark) body.theme-v3-studio #page-wrapper .collapsing.pdf-sheet, html:not(.studio-dark) body.theme-v3-studio #page-wrapper #collapse8 > .container2 { background:var(--page-bg) !important; }
  html:not(.studio-dark) body.theme-v3-studio #page-wrapper .collapse.pdf-sheet { box-shadow:none; }
  html:not(.studio-dark) body.theme-v3-studio #page-wrapper #collapse8 .pricing-unified-container, html:not(.studio-dark) body.theme-v3-studio #page-wrapper .pdf-sheet > .container, html:not(.studio-dark) body.theme-v3-studio #page-wrapper .pdf-sheet > .card-body { border:1px solid var(--card-edge); }
  /* cards: a thin navy-tinted edge so they stay visible on white (the top hue stripe of the Technical Input cards stays) */
  html:not(.studio-dark) body.theme-v3-studio #unified_ts_root .ts-box { border-color:var(--card-edge) !important; border-top-color:var(--hue) !important; }
  html:not(.studio-dark) body.theme-v3-studio .panel, html:not(.studio-dark) body.theme-v3-studio .login-panel, html:not(.studio-dark) body.theme-v3-studio .crane-strip, html:not(.studio-dark) body.theme-v3-studio .cell-legend, html:not(.studio-dark) body.theme-v3-studio .modal-content { border-color:var(--card-edge); }
  html:not(.studio-dark) body.theme-v3-studio .navbar-default { background:var(--card); border-color:var(--card-edge); }
  html:not(.studio-dark) body.theme-v3-studio .sidebar { border-right:1px solid var(--card-edge); box-shadow:6px 0 24px rgba(0,40,70,.05); }
  /* the tray under the Technical Input tables and the spec tables keep a visible edge on white */
  html:not(.studio-dark) body.theme-v3-studio #unified_ts_root .ts-box-inner { box-shadow:inset 0 3px 8px -4px rgba(0,60,100,.16), inset 0 -2px 6px -3px rgba(255,255,255,.9); }
  html:not(.studio-dark) body.theme-v3-studio .login-panel::before, html:not(.studio-dark) body.theme-v3-studio .login-panel::after { background:#ffffff; }

/* ---- 18. ADMIN SWITCHES (Look and feel): depth and animation off ---------------------------------------------------- */
body.theme-v3-studio.look-anim-off *, body.theme-v3-studio.look-anim-off *::before, body.theme-v3-studio.look-anim-off *::after { animation:none !important; }
body.theme-v3-studio.look-depth-off *:not(:focus):not(:focus-visible):not(.fl-handle):not(#studio-pop) { box-shadow:none !important; text-shadow:none !important; }
body.theme-v3-studio.look-depth-off *::before, body.theme-v3-studio.look-depth-off *::after { box-shadow:none !important; }

/* ---- 19. DARK MODE COMPLETION + CONTRAST (30 Oct 2026): dashboard, EST, Spare, BOQ, Admin Setting and the paper sheets ------------------------------------------ */
/* paper stays paper: the estimate / spares sheets, the Offer-tab pages and every card inside a sheet are white with dark text (the cell tokens are the paper ones) */
html.studio-dark body.theme-v3-studio #page-wrapper #collapse1 .container2, html.studio-dark body.theme-v3-studio #page-wrapper #collapse4 .container2, html.studio-dark body.theme-v3-studio #page-wrapper .pdf-sheet .container,
html.studio-dark body.theme-v3-studio #page-wrapper .pdf-sheet .card, html.studio-dark body.theme-v3-studio #page-wrapper .pdf-sheet .card-body, html.studio-dark body.theme-v3-studio #page-wrapper .pdf-sheet .panel-body { --cell-typed-bg:#fff1e4; --cell-select-bg:#ffffff; --cell-calc-bg:#eaf0f6; --cell-select-edge:#c3d0dd; --cell-calc-edge:#c3d0dd; --ink:#0b2a40; --ink-2:#2f4a62; --muted:#566b80; color:#111; }
html.studio-dark body.theme-v3-studio #page-wrapper .pdf-sheet .container, html.studio-dark body.theme-v3-studio #page-wrapper .pdf-sheet .card, html.studio-dark body.theme-v3-studio #page-wrapper .pdf-sheet .card-body,
html.studio-dark body.theme-v3-studio #page-wrapper .pdf-sheet .panel-body { background-color:#ffffff !important; }
html.studio-dark body.theme-v3-studio #page-wrapper #collapse1 .container2 input, html.studio-dark body.theme-v3-studio #page-wrapper #collapse4 .container2 input, html.studio-dark body.theme-v3-studio #page-wrapper #collapse1 .container2 select, html.studio-dark body.theme-v3-studio #page-wrapper #collapse4 .container2 select, html.studio-dark body.theme-v3-studio #page-wrapper #collapse1 .container2 textarea , html.studio-dark body.theme-v3-studio #page-wrapper #collapse4 .container2 textarea { color:#0b2a40; }
html.studio-dark body.theme-v3-studio #page-wrapper #collapse1 .container2 input:not([readonly]):not([disabled]) , html.studio-dark body.theme-v3-studio #page-wrapper #collapse4 .container2 input:not([readonly]):not([disabled]) { background-color:var(--cell-typed-bg); }
html.studio-dark body.theme-v3-studio #page-wrapper #collapse1 .container2 td, html.studio-dark body.theme-v3-studio #page-wrapper #collapse4 .container2 td, html.studio-dark body.theme-v3-studio #page-wrapper #collapse1 .container2 th , html.studio-dark body.theme-v3-studio #page-wrapper #collapse4 .container2 th { color:#0b2a40; }
/* dashboard: cells that carry a light inline background keep dark text; the tiles use the darker hues so white text reads */
html.studio-dark body.theme-v3-studio #page-wrapper td[style*="f0f0f0"], html.studio-dark body.theme-v3-studio #page-wrapper th[style*="f0f0f0"], html.studio-dark body.theme-v3-studio #page-wrapper td[style*="cfe2f3"], html.studio-dark body.theme-v3-studio #page-wrapper th[style*="cfe2f3"],
html.studio-dark body.theme-v3-studio #page-wrapper td[style*="e8f5e9"], html.studio-dark body.theme-v3-studio #page-wrapper th[style*="e8f5e9"] { color:#0b2a40 !important; }
html.studio-dark body.theme-v3-studio .panel-primary > .panel-heading, html.studio-dark body.theme-v3-studio .panel-green > .panel-heading, html.studio-dark body.theme-v3-studio .panel-info > .panel-heading { color:#fff; }
html.studio-dark body.theme-v3-studio .panel-info > .panel-heading { background:#1f6f9e; border-color:#1f6f9e; } html.studio-dark body.theme-v3-studio .panel-green > .panel-heading { background:#2a7a4b; border-color:#2a7a4b; }
html.studio-dark body.theme-v3-studio .panel-primary > .panel-heading { background:#3a58b8; border-color:#3a58b8; }
/* Admin Setting: the panels and rows follow the dark card, chips read on a dark chip */
html.studio-dark body.theme-v3-studio .as-wrap .panel, html.studio-dark body.theme-v3-studio .as-wrap .panel-body, html.studio-dark body.theme-v3-studio .as-wrap .panel-default > .panel-body, html.studio-dark body.theme-v3-studio .as-wrap .as-sec,
html.studio-dark body.theme-v3-studio .as-wrap .as-item, html.studio-dark body.theme-v3-studio .as-wrap table, html.studio-dark body.theme-v3-studio .as-wrap table td { background-color:var(--card) !important; color:var(--ink); }
html.studio-dark body.theme-v3-studio .as-wrap .panel-heading, html.studio-dark body.theme-v3-studio .as-wrap tr.active.as-grp td { background-color:var(--paper-3) !important; color:var(--ink) !important; }
html.studio-dark body.theme-v3-studio .as-wrap .as-chips a, html.studio-dark body.theme-v3-studio .as-wrap .as-chips { background:var(--card-2) !important; color:var(--accent-h) !important; }
html.studio-dark body.theme-v3-studio .as-wrap label, html.studio-dark body.theme-v3-studio .as-wrap .control-label, html.studio-dark body.theme-v3-studio .as-wrap .ss-state, html.studio-dark body.theme-v3-studio .as-wrap strong, html.studio-dark body.theme-v3-studio .as-wrap p.text-muted, html.studio-dark body.theme-v3-studio .as-wrap .text-muted { color:var(--ink) !important; }
html.studio-dark body.theme-v3-studio .as-wrap .help-block, html.studio-dark body.theme-v3-studio .as-wrap small, html.studio-dark body.theme-v3-studio .as-wrap .as-tabhelp { color:var(--ink-2) !important; }
html.studio-dark body.theme-v3-studio .as-wrap .badge, html.studio-dark body.theme-v3-studio .as-wrap .label-danger { background:#b42318 !important; color:#fff !important; }
html.studio-dark body.theme-v3-studio .as-wrap select.form-control.input-lg { color:var(--ink) !important; background-color:var(--card-2) !important; }
/* BOQ tab: the print switch and the pick box read on the dark page */
html.studio-dark body.theme-v3-studio #page-wrapper .boq-print-area-note { color:var(--warn-x) !important; } html.studio-dark body.theme-v3-studio #page-wrapper .boq-print-switch strong, html.studio-dark body.theme-v3-studio #page-wrapper #boq-pick { color:var(--ink) !important; }
html.studio-dark body.theme-v3-studio #page-wrapper #boq-pick { background:var(--card-2) !important; }
html.studio-dark body.theme-v3-studio #elite_guide_btn { background:#0c2438 !important; color:#eaf1f8 !important; border-color:#2d5575 !important; }
html.studio-dark body.theme-v3-studio #calc_float_open { background:#5a4412 !important; color:#ffe8b0 !important; border-color:#a37a1f !important; }

/* ---- light mode contrast: pairs found below 4.5:1 by the audit ----------------------------------------------------------------------------------------- */
body.theme-v3-studio .steel-alert-badge, body.theme-v3-studio .cp-launch-badge, body.theme-v3-studio .badge.label-danger, body.theme-v3-studio .as-wrap .badge[style*="dc3545"], body.theme-v3-studio .as-wrap span.badge { background-color:var(--bad) !important; color:#fff !important; }
body.theme-v3-studio span.f_req { color:#c4161c !important; }
body.theme-v3-studio .as-wrap .as-chips a { color:var(--accent-x) !important; }
body.theme-v3-studio .as-wrap select.form-control.input-lg { color:#1e7e34; }
body.theme-v3-studio #page-wrapper #collapse8 [style*="64748b"] { color:var(--ink-2) !important; }
body.theme-v3-studio { --hue-2:#177a94; --hue-4:#b45309; }
/* the paper areas (customer details and the estimate) are white; Spare keeps dark cells with light text */
html.studio-dark body.theme-v3-studio #page-wrapper #collapse1 .container2 , html.studio-dark body.theme-v3-studio #page-wrapper #collapse4 .container2 { background-color:#ffffff !important; }
/* Spare is a paper sheet too: white cells with dark text (cells that carry their own light background keep it) */
html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 table td:not([style*="background"]), html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 table th:not([style*="background"]) { background-color:#ffffff !important; }
html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 td, html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 th, html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 label, html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 input, html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 select, html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 textarea, html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 .btn-default { color:#0b2a40 !important; }
html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 input:not([readonly]):not([disabled]) { background-color:#fff1e4 !important; }
html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 .btn-default { background-color:#ffffff !important; border-color:#c3d0dd !important; }
html.studio-dark body.theme-v3-studio #page-wrapper .ts-card-badge { color:#0b1c2c !important; }
html.studio-dark body.theme-v3-studio #page-wrapper [style*="color:#666"], html.studio-dark body.theme-v3-studio #page-wrapper [style*="color: #666"] { color:var(--ink-2) !important; }
html.studio-dark body.theme-v3-studio .steel-alert-badge, html.studio-dark body.theme-v3-studio .cp-launch-badge, html.studio-dark body.theme-v3-studio .panel-red > .panel-heading, html.studio-dark body.theme-v3-studio .panel-red { background-color:#c0382c !important; color:#fff !important; }
html.studio-dark body.theme-v3-studio span.f_req { color:#ff8a80 !important; }
html.studio-dark body.theme-v3-studio #page-wrapper [style*="b45309"] { color:#f3b26b !important; }
html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table td.noprint, html.studio-dark body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table td.noprint b { color:var(--ink-2) !important; }
html.studio-dark body.theme-v3-studio .as-wrap .ss-help, html.studio-dark body.theme-v3-studio .as-wrap .ss-rec, html.studio-dark body.theme-v3-studio .as-wrap .ss-unit { color:var(--ink-2) !important; }
html.studio-dark body.theme-v3-studio .as-wrap .ss-rec.ss-diff { color:var(--warn-x) !important; }
html.studio-dark body.theme-v3-studio .as-wrap div[style*="background"]:not(.lk-prev):not(.lk-card), html.studio-dark body.theme-v3-studio .as-wrap p[style*="background"] { background-color:var(--card) !important; }
body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table td.noprint, body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table th.noprint, body.theme-v3-studio #page-wrapper #collapse8 table.pricing-table td.noprint b { color:var(--ink-2) !important; }
html.studio-dark body.theme-v3-studio .as-wrap .ss-label, html.studio-dark body.theme-v3-studio .as-wrap h4 { color:var(--ink) !important; }
html.studio-dark body.theme-v3-studio #page-wrapper td[style*="e3f2fd"], html.studio-dark body.theme-v3-studio #page-wrapper th[style*="e3f2fd"], html.studio-dark body.theme-v3-studio #page-wrapper td[style*="f5f5f5"], html.studio-dark body.theme-v3-studio #page-wrapper th[style*="f5f5f5"], html.studio-dark body.theme-v3-studio #page-wrapper td[style*="f5f5f5"] strong { color:#0b2a40 !important; }
html.studio-dark body.theme-v3-studio .make-reset-all { color:var(--accent-h) !important; }
html.studio-dark body.theme-v3-studio .manual-entries-section b, html.studio-dark body.theme-v3-studio #manualEntriesTable b { color:var(--ink) !important; }

body.theme-v3-studio .as-wrap [style*="28a745"] { color:#1e7e34 !important; }
html.studio-dark body.theme-v3-studio #page-wrapper tr[style*="f5f5f5"] td, html.studio-dark body.theme-v3-studio #page-wrapper tr[style*="f5f5f5"] td strong { color:#0b2a40 !important; }
html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 select { background-color:#ffffff !important; }

/* the Payment terms total (readonly, 100): its colours are set inline with !important by the page markup, so only a filter reaches them in the dark look */
html.studio-dark body.theme-v3-studio #unified_ts_root input.payment_term_total:not(.pay-bad) { filter:invert(.86) hue-rotate(180deg); }

html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 input[readonly], html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 input[disabled], html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 textarea, html.studio-dark body.theme-v3-studio #page-wrapper #collapse12 .spares-table input[type=text] { background-color:#eaf0f6 !important; }
}

@media screen {
/* 2 Nov 2026 (owner: compact, reader friendly): input grids of the master screens (small inputs inside table cells) are one text line high instead of a padded box, so a 24-row master fits one screen */
body.theme-v3-studio .table > tbody > tr > td > .form-control.input-sm,
body.theme-v3-studio .table > tbody > tr > td > select.form-control.input-sm { height: 26px; min-height: 0; padding: 1px 8px; font-size: var(--fs-base, 12.5px); }
body.theme-v3-studio .table-responsive > .table > tbody > tr > td { padding-top: 2px; padding-bottom: 2px; vertical-align: middle; }
body.theme-v3-studio .table-responsive > .table > thead > tr > th { padding-top: 4px; padding-bottom: 4px; }

/* 2 Nov 2026 (owner: compact, reader friendly): the sticky offer ribbon is one line on a 1366 px screen (tabs at the base type size, tighter padding); it wrapped Approve onto a second line on every offer page */
body.theme-v3-studio .chrome-tab-bar .chrome-tab, body.theme-v3-studio #page-wrapper .chrome-tab-bar a.btn.btn-primary, body.theme-v3-studio #page-wrapper .chrome-tab-bar button.btn.btn-primary { font-size: var(--fs-base, 12.5px) !important; padding: 4px 7px 7px !important; }
body.theme-v3-studio #page-wrapper .chrome-tab-bar, body.theme-v3-studio .chrome-tab-bar { padding: 6px 8px 4px 8px !important; gap: 2px 2px; }
body.theme-v3-studio .chrome-tab-bar .chrome-tab::after { left: 8px; right: 8px; bottom: 2px; }
}
