/* ============================================================================
   bootstrap-shim.css  (task B1 — shed Bootstrap CSS from v8 pages)

   Replaces bootstrap.min.css + todc-bootstrap.min.css. Loads in the SAME slot
   (first, before components.css) in the first slot. Carries ONLY
   the structural/behavioural rules v8 pages still need: bootstrap's JS
   (collapse/modal/dropdown/tab, JSResources.tpl:18) is frozen and keeps
   toggling these classes at runtime, so their CSS must survive. Every visual
   surface is already owned by the v8 sheets, which load AFTER this and win on
   specificity (.x = 0,2,0 > bare = 0,1,0), so the design is unchanged.

   Values are verbatim from layouts/v7/lib/todc/css/bootstrap.min.css.
   NOT carried (this is the shed): all todc material, bootstrap typography,
   link colours, .btn/.label/.badge/.alert/.well/.panel skins, and the global
   input[type=radio|checkbox] material override (v8 accent controls take over).
   ========================================================================= */

/* --- Global box model — the whole app's border-box comes only from here.
   Tailwind preflight is off; drop this and every padded box reverts to
   content-box and grows. bootstrap.min.css: *{...box-sizing:border-box} */
*,*::before,*::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}

/* --- Body reset bootstrap/todc supplied globally. Without margin:0 the UA's
   8px body margin shifts the whole shell down; line-height is todc's EFFECTIVE
   1.4 (it overrode bootstrap's 1.42857, and we drop todc too), the base rhythm
   every un-leaded element inherits — Inter's intrinsic ~1.5 otherwise. */
body{margin:0;line-height:1.4}

/* --- Structural normalize bootstrap supplied (decorative typography is NOT
   reproduced — v8 utilities own headings/text/links). table collapse kills the
   UA 2px border-spacing between rows; the control font:inherit is a documented
   v8 dependency (main.src.css:32 leans on it instead of per-control font-family).
   th{text-align:left} overrides the UA default (center) — list/related headers
   carry no explicit alignment and relied on this global to line up with values. */
table{border-collapse:collapse;border-spacing:0}
td,th{padding:0}
th{text-align:left}
button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}
input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}
img{border:0;vertical-align:middle}

/* --- Link reset. Kept (NOT the blind delete v7-compat's marker implies): the
   marker only accounted for bootstrap's a:hover underline / link blue, but the
   browser UA default still underlines bare a[href]. This preserves current look. */
a{color:inherit;text-decoration:none}

/* --- Visibility toggles (JS visibility contracts; .show must beat .hide) */
.hide{display:none!important}
.show{display:block!important}
.hidden{display:none!important;visibility:hidden!important}
.invisible{visibility:hidden}

/* --- Collapse (bootstrap collapse plugin: accordions, settings sidebar) */
.collapse{display:none;visibility:hidden}
.collapse.in{display:block;visibility:visible}
.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}

/* --- Tabs (bootstrap tab plugin: dashboard, settings, calendar quick create) */
.tab-content>.tab-pane{display:none;visibility:hidden}
.tab-content>.active{display:block;visibility:visible}

/* --- Dropdowns (bootstrap dropdown plugin adds .open). Full rule kept; the
   v8 look (components.css:91) overrides inside, this stays faithful
   outside it. background-color:#fff is load-bearing — components sets no bg. */
.dropdown{position:relative}
/* bootstrap positioned .btn-group too; without it an absolutely-positioned .dropdown-menu
   inside one resolves to the initial containing block — 100vh down an unscrollable page.
   Position only: display/layout stays with the utilities on each group. */
.btn-group{position:relative}
.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}
.dropdown-menu.pull-right{right:0;left:auto}
.dropdown-menu-right{right:0;left:auto}
.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}
.open>.dropdown-menu{display:block}
.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}

/* --- Nav list reset (list-style:none is load-bearing for related/tab bars) */
.nav{padding-left:0;margin-bottom:0;list-style:none}

/* --- Floats + clearfix (grid + v7 fragments) */
.pull-left{float:left!important}
.pull-right{float:right!important}
.clearfix::before,.clearfix::after,.row::before,.row::after,.nav::before,.nav::after,.panel-body::before,.panel-body::after,.modal-footer::before,.modal-footer::after,.btn-toolbar::before,.btn-toolbar::after{display:table;content:" "}
.clearfix::after,.row::after,.nav::after,.panel-body::after,.modal-footer::after,.btn-toolbar::after{clear:both}

/* --- Modal skeleton (chrome.css skins content/body/footer/backdrop look;
   THIS is the plumbing it assumes). NOTE: .modal-backdrop has NO z-index in
   this todc build — do not add one, layering depends on its absence. */
.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}
.modal-open{overflow:hidden}
.modal-open .modal{overflow-x:hidden;overflow-y:auto}
.modal-dialog{position:relative;width:auto;margin:10px}
@media(min-width:768px){.modal-dialog{width:600px;margin:30px auto}}
/* --- Modal size classes (15 v8 templates emit .modal-lg); after the 600px cap so
   they win on source order, and under the .modal-mode-* selectors in chrome.css. */
@media(min-width:768px){.modal-sm{width:300px}}
@media(min-width:992px){.modal-lg{width:900px}}
.modal-content{position:relative}
/* --- bootstrap's JS appends a div.modal-scrollbar-measure to measure the scrollbar
   width; without this rule it measures 0 and the .modal-open padding compensation
   no-ops, so the page shifts by the scrollbar width when a modal opens. */
.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}
.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000}
.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%)}
.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}

/* --- Fade (modal entrance + the backdrop's initial opacity:0) */
.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}
.fade.in{opacity:1}

/* --- Popover plumbing (bootstrap.min.css) — the frozen popover JS (Tag.js edit
   box, Products bundle preview) sets inline top/left assuming position:absolute;
   without this block the tip lands in body flow over the sidebar. Arrow
   triangles are not carried — the template's .arrow div renders nothing. */
.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2)}
.popover.top{margin-top:-10px}
.popover.right{margin-left:10px}
.popover.bottom{margin-top:10px}
.popover.left{margin-left:-10px}
.popover-content{padding:9px 14px}
.popover>.arrow{display:none}

/* --- Settings spacing bootstrap supplied (until those groups are re-authored) */
.form-group{margin-bottom:15px}
.panel-group .panel+.panel{margin-top:5px}
