/* OddStorm — arbs SPA base layer. Replaces the site's CUSTOMIZED Bootstrap
   v3.3.2 build (public/javascripts/bootstrap/css/bootstrap.css, hand-edited:
   .btn 2px/5px, .input-sm 20px, .dropdown-menu 90px, label without margin,
   body without font-size, .container min-width:1090px) with the exact subset
   the SPA uses. Every value below is VERBATIM from that build — geometry must
   not move. Colors stay out of here where possible — oddstorm-arbs.css (OSDS
   tokens) loads after this file and recolors.

   Inventory this file serves (2026-06-10 audit):
     grid .row/.col-xs-*/.container(-fluid)  ·  .hidden (97 JS toggles)
     .form-control/.input-sm/.input-group(-btn)/.checkbox/.form-group
     .btn/.caret  ·  dropdowns  ·  .nav-tabs/.tab-pane  ·  .table(-condensed)
     8 glyphicons (font copied to /fonts/glyphicons/)
   JS behaviors (tabs + dropdowns) live in oddstorm-arbs-base.js. */

/* ── Normalize subset (what their build's reset provided) ────────────────── */
*,
*:before,
*:after { box-sizing: border-box; }

body {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  /* No font-size on purpose — their build removed it; style.css's
     body font (62.5% → 10px) is what the SPA cascade actually inherits. */
  line-height: 1.42857143;
}

button,
input,
select,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}
button { overflow: visible; text-transform: none; }
button,
html input[type='button'],
input[type='reset'],
input[type='submit'] { -webkit-appearance: button; cursor: pointer; }
button[disabled],
html input[disabled] { cursor: default; }
button::-moz-focus-inner,
input::-moz-focus-inner { padding: 0; border: 0; }
select { text-transform: none; }
input { line-height: normal; }
img { vertical-align: middle; border: 0; }

label {
  display: inline-block;
  max-width: 100%;
  font-weight: normal;
}

input[type='radio'],
input[type='checkbox'] { margin: 0; padding: 0; line-height: normal; }
input[type='file']:focus,
input[type='radio']:focus,
input[type='checkbox']:focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}

/* ── Utilities ───────────────────────────────────────────────────────────── */
.hidden { display: none !important; visibility: hidden !important; }
.show { display: block !important; }
.invisible { visibility: hidden; }

/* ── Grid ────────────────────────────────────────────────────────────────── */
.container,
.container-fluid {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}
/* Their custom build replaces the stock responsive widths with this. */
@media (min-width: 300px) { .container { min-width: 1090px; } }

.row { margin-right: -15px; margin-left: -15px; }

.row:before, .row:after,
.container:before, .container:after,
.container-fluid:before, .container-fluid:after { display: table; content: ' '; }
.row:after,
.container:after,
.container-fluid:after { clear: both; }

.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6,
.col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  position: relative;
  min-height: 1px;
  padding-right: 15px;
  padding-left: 15px;
  float: left;
}

.col-xs-1  { width: 8.33333333%; }
.col-xs-2  { width: 16.66666667%; }
.col-xs-3  { width: 25%; }
.col-xs-4  { width: 33.33333333%; }
.col-xs-5  { width: 41.66666667%; }
.col-xs-6  { width: 50%; }
.col-xs-7  { width: 58.33333333%; }
.col-xs-8  { width: 66.66666667%; }
.col-xs-9  { width: 75%; }
.col-xs-10 { width: 83.33333333%; }
.col-xs-11 { width: 91.66666667%; }
.col-xs-12 { width: 100%; }

.col-xs-offset-8 { margin-left: 66.66666667%; }

/* ── Forms ───────────────────────────────────────────────────────────────── */
.form-group { margin-bottom: 15px; }

.form-control {
  display: block;
  width: 100%;
  height: 34px;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::placeholder { color: #999; opacity: 1; }
.form-control[disabled],
.form-control[readonly] {
  cursor: not-allowed;
  background-color: #eee;
  opacity: 1;
}

/* Their custom small-control metrics (stock is 30px). */
.input-sm {
  height: 20px;
  padding: 2px;
  font-size: 15px;
  line-height: 1.5;
  border-radius: 3px;
}
select.input-sm { height: 20px; line-height: 20px; }

.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
  display: table-cell;
}
.input-group-btn {
  position: relative;
  display: table-cell;
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
  font-size: 0;
}
.input-group-btn > .btn { position: relative; }
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active { z-index: 2; }
.input-group .form-control:first-child {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .dropdown-toggle {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group-btn:last-child > .btn { margin-left: -1px; }

.checkbox {
  position: relative;
  display: block;
  margin-top: 5px;
  margin-bottom: 5px;
}
.checkbox label {
  margin: 0;
  min-height: 20px;
  padding-left: 20px;
  font-weight: normal;
  cursor: pointer;
}
.checkbox input[type='checkbox'] {
  position: absolute;
  margin-top: 4px;
  margin-left: -20px;
}
.checkbox + .checkbox { margin-top: -5px; }
input[type='checkbox'][disabled],
input[type='checkbox'].disabled { cursor: not-allowed; }
.checkbox.disabled label { cursor: not-allowed; }

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.btn {
  display: inline-block;
  padding: 2px 5px 2px 5px;
  margin-bottom: 0;
  width: auto;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.42857143;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 4px;
}
.btn:focus,
.btn:active:focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus { text-decoration: none; }
.btn:active {
  background-image: none;
  outline: 0;
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled] {
  pointer-events: none;
  cursor: not-allowed;
  box-shadow: none;
  opacity: 0.65;
}
.btn .caret { margin-left: 0; }

.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;
}

/* ── Dropdowns (open state toggled by oddstorm-arbs-base.js) ─────────────── */
.dropdown { position: relative; }
.dropdown-toggle:focus { outline: 0; }
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 90px;
  padding: 5px 0;
  margin: 2px 0 0;
  font-size: 14px;
  text-align: left;
  list-style: none;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
}
.dropdown-menu-right { right: 0; left: auto; }
.open > .dropdown-menu { display: block; }
.open > a { outline: 0; }
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  color: #fff;
  text-decoration: none;
  background-color: #3399ff;
}

/* ── Tabs (activation toggled by oddstorm-arbs-base.js) ──────────────────── */
.nav {
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.nav:before, .nav:after { display: table; content: ' '; }
.nav:after { clear: both; }
.nav > li { position: relative; display: block; }
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eee;
}

.nav-tabs { border-bottom: 1px solid #ddd; }
.nav-tabs > li { float: left; margin-bottom: -1px; }
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 4px 4px 0 0;
}
.nav-tabs > li > a:hover { border-color: #eee #eee #ddd; }
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555;
  cursor: default;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
}

.tab-content > .tab-pane { display: none; visibility: hidden; }
.tab-content > .active { display: block; visibility: visible; }

/* ── Tables ──────────────────────────────────────────────────────────────── */
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 20px;
  border-spacing: 0;
  border-collapse: collapse;
}
.table > thead > tr > th,
.table > tbody > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
  text-align: left;
}
.table > thead:first-child > tr:first-child > th { border-top: 0; }
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > td { padding: 5px; }

/* ── Glyphicons (the 8 icons the SPA uses) ───────────────────────────────── */
@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('/fonts/glyphicons/glyphicons-halflings-regular.woff2') format('woff2'),
       url('/fonts/glyphicons/glyphicons-halflings-regular.woff') format('woff'),
       url('/fonts/glyphicons/glyphicons-halflings-regular.ttf') format('truetype');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-plus:before          { content: '\2b'; }
.glyphicon-minus:before         { content: '\2212'; }
.glyphicon-ok:before            { content: '\e013'; }
.glyphicon-remove:before        { content: '\e014'; }
.glyphicon-stop:before          { content: '\e074'; }
.glyphicon-remove-circle:before { content: '\e088'; }
.glyphicon-filter:before        { content: '\e138'; }
.glyphicon-new-window:before    { content: '\e164'; }
