/* core.css — Minimal Bootstrap 3 replacement */

/* === Reset & Box Sizing === */
*, *::before, *::after { box-sizing: border-box; }
html { font-family: sans-serif; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
body { margin: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.42857; color: #333; background-color: #fff; }
img { max-width: 100%; height: auto; vertical-align: middle; border: 0; }
a { color: #337ab7; text-decoration: none; }
a:hover, a:focus { color: #23527c; text-decoration: underline; }
h1, h2, h3, h4, h5, h6 { font-family: inherit; font-weight: 500; line-height: 1.1; color: inherit; }
h1 { font-size: 36px; margin-top: 20px; margin-bottom: 10px; }
h2 { font-size: 30px; margin-top: 20px; margin-bottom: 10px; }
h3 { font-size: 24px; margin-top: 20px; margin-bottom: 10px; }
h4 { font-size: 18px; margin-top: 10px; margin-bottom: 10px; }
h5 { font-size: 14px; margin-top: 10px; margin-bottom: 10px; }
h6 { font-size: 12px; margin-top: 10px; margin-bottom: 10px; }
p { margin: 0 0 10px; }
ul, ol { margin-top: 0; margin-bottom: 10px; }
figure { margin: 0; }
fieldset { padding: 0; margin: 0; border: 0; min-width: 0; }
label { display: inline-block; max-width: 100%; margin-bottom: 5px; font-weight: bold; }
input, button, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; }
button { cursor: pointer; }
select { text-transform: none; }

/* === Container === */
.container { width: 100%; max-width: 1170px; margin-left: auto; margin-right: auto; padding-left: 15px; padding-right: 15px; }

/* === Grid === */
.row { display: flex; flex-wrap: wrap; margin-left: -15px; margin-right: -15px; }
.row::after { content: ''; display: table; clear: both; }

[class*="col-"] { position: relative; min-height: 1px; padding-left: 15px; padding-right: 15px; flex: 0 0 100%; max-width: 100%; }

/* xs (default — applies at all sizes) */
.col-xs-1  { flex: 0 0 8.333%; max-width: 8.333%; }
.col-xs-2  { flex: 0 0 16.667%; max-width: 16.667%; }
.col-xs-3  { flex: 0 0 25%; max-width: 25%; }
.col-xs-4  { flex: 0 0 33.333%; max-width: 33.333%; }
.col-xs-5  { flex: 0 0 41.667%; max-width: 41.667%; }
.col-xs-6  { flex: 0 0 50%; max-width: 50%; }
.col-xs-7  { flex: 0 0 58.333%; max-width: 58.333%; }
.col-xs-8  { flex: 0 0 66.667%; max-width: 66.667%; }
.col-xs-9  { flex: 0 0 75%; max-width: 75%; }
.col-xs-10 { flex: 0 0 83.333%; max-width: 83.333%; }
.col-xs-11 { flex: 0 0 91.667%; max-width: 91.667%; }
.col-xs-12 { flex: 0 0 100%; max-width: 100%; }

/* sm (≥768px) */
@media (min-width: 768px) {
  .container { max-width: 750px; }
  .col-sm-1  { flex: 0 0 8.333%; max-width: 8.333%; }
  .col-sm-2  { flex: 0 0 16.667%; max-width: 16.667%; }
  .col-sm-3  { flex: 0 0 25%; max-width: 25%; }
  .col-sm-4  { flex: 0 0 33.333%; max-width: 33.333%; }
  .col-sm-5  { flex: 0 0 41.667%; max-width: 41.667%; }
  .col-sm-6  { flex: 0 0 50%; max-width: 50%; }
  .col-sm-7  { flex: 0 0 58.333%; max-width: 58.333%; }
  .col-sm-8  { flex: 0 0 66.667%; max-width: 66.667%; }
  .col-sm-9  { flex: 0 0 75%; max-width: 75%; }
  .col-sm-10 { flex: 0 0 83.333%; max-width: 83.333%; }
  .col-sm-11 { flex: 0 0 91.667%; max-width: 91.667%; }
  .col-sm-12 { flex: 0 0 100%; max-width: 100%; }
  .col-sm-push-6 { left: 50%; }
  .col-sm-pull-6 { right: 50%; }
}

/* md (≥992px) */
@media (min-width: 992px) {
  .container { max-width: 970px; }
  .col-md-1  { flex: 0 0 8.333%; max-width: 8.333%; }
  .col-md-2  { flex: 0 0 16.667%; max-width: 16.667%; }
  .col-md-3  { flex: 0 0 25%; max-width: 25%; }
  .col-md-4  { flex: 0 0 33.333%; max-width: 33.333%; }
  .col-md-5  { flex: 0 0 41.667%; max-width: 41.667%; }
  .col-md-6  { flex: 0 0 50%; max-width: 50%; }
  .col-md-7  { flex: 0 0 58.333%; max-width: 58.333%; }
  .col-md-8  { flex: 0 0 66.667%; max-width: 66.667%; }
  .col-md-9  { flex: 0 0 75%; max-width: 75%; }
  .col-md-10 { flex: 0 0 83.333%; max-width: 83.333%; }
  .col-md-11 { flex: 0 0 91.667%; max-width: 91.667%; }
  .col-md-12 { flex: 0 0 100%; max-width: 100%; }
  .col-md-push-6 { left: 50%; }
  .col-md-pull-6 { right: 50%; }
}

/* lg (≥1200px) */
@media (min-width: 1200px) {
  .container { max-width: 1170px; }
  .col-lg-1  { flex: 0 0 8.333%; max-width: 8.333%; }
  .col-lg-2  { flex: 0 0 16.667%; max-width: 16.667%; }
  .col-lg-3  { flex: 0 0 25%; max-width: 25%; }
  .col-lg-4  { flex: 0 0 33.333%; max-width: 33.333%; }
  .col-lg-5  { flex: 0 0 41.667%; max-width: 41.667%; }
  .col-lg-6  { flex: 0 0 50%; max-width: 50%; }
  .col-lg-7  { flex: 0 0 58.333%; max-width: 58.333%; }
  .col-lg-8  { flex: 0 0 66.667%; max-width: 66.667%; }
  .col-lg-9  { flex: 0 0 75%; max-width: 75%; }
  .col-lg-10 { flex: 0 0 83.333%; max-width: 83.333%; }
  .col-lg-11 { flex: 0 0 91.667%; max-width: 91.667%; }
  .col-lg-12 { flex: 0 0 100%; max-width: 100%; }
}

/* === Navbar === */
.navbar { position: relative; min-height: 50px; margin-bottom: 20px; border: 1px solid transparent; }
.navbar::after { content: ''; display: table; clear: both; }
.navbar-default { background-color: #f8f8f8; border-color: #e7e7e7; }
.navbar-header { float: left; }
.navbar-header::after { content: ''; display: table; clear: both; }
.navbar-brand { float: left; padding: 15px; font-size: 18px; line-height: 20px; text-decoration: none; color: #777; }
.navbar-brand:hover { text-decoration: none; }
.navbar-brand img { display: block; }
.navbar-toggle { display: block; float: right; padding: 9px 10px; margin-top: 8px; margin-right: 15px; margin-bottom: 8px; background-color: transparent; border: 1px solid #ddd; border-radius: 4px; cursor: pointer; }
.navbar-toggle .icon-bar { display: block; width: 22px; height: 2px; background-color: #888; border-radius: 1px; }
.navbar-toggle .icon-bar + .icon-bar { margin-top: 4px; }
.navbar-collapse { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.navbar-collapse.in { max-height: 500px; }
.navbar-nav { list-style: none; margin: 0; padding: 0; }
.navbar-nav > li { display: block; }
.navbar-nav > li > a { display: block; padding: 10px 15px; text-decoration: none; line-height: 20px; }
.navbar-nav > li > a:hover { text-decoration: none; }

@media (min-width: 768px) {
  .navbar-header { float: left; }
  .navbar-toggle { display: none; }
  .navbar-collapse { display: block !important; max-height: none !important; overflow: visible !important; }
  .navbar-nav { float: left; }
  .navbar-nav > li { float: left; }
  .navbar-right { float: right !important; }
}

/* === Dropdown === */
.dropdown { position: relative; }
.dropdown-toggle { cursor: pointer; }
.dropdown-menu { display: none; position: absolute; top: 100%; left: 0; z-index: 1000; min-width: 160px; padding: 5px 0; margin: 2px 0 0; list-style: none; background-color: #fff; border: 1px solid #ccc; border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.175); }
.dropdown-menu > li > a { display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: 1.42857; color: #333; white-space: nowrap; text-decoration: none; }
.dropdown-menu > li > a:hover { background-color: #f5f5f5; color: #262626; text-decoration: none; }
.open > .dropdown-menu { display: block; }
.caret { display: inline-block; width: 0; height: 0; margin-left: 2px; vertical-align: middle; border-top: 4px dashed; border-right: 4px solid transparent; border-left: 4px solid transparent; }

/* === Buttons === */
.btn { display: inline-block; padding: 6px 12px; font-size: 14px; font-weight: normal; line-height: 1.42857; text-align: center; white-space: nowrap; vertical-align: middle; cursor: pointer; border: 1px solid transparent; border-radius: 4px; text-decoration: none; -webkit-user-select: none; user-select: none; }
.btn:hover, .btn:focus { text-decoration: none; }
.btn-default { color: #333; background-color: #fff; border-color: #ccc; }
.btn-default:hover, .btn-default:focus { background-color: #e6e6e6; border-color: #adadad; }
.btn-primary { color: #fff; background-color: #337ab7; border-color: #2e6da4; }
.btn-primary:hover, .btn-primary:focus { background-color: #286090; border-color: #204d74; }
.btn-group { position: relative; display: inline-flex; vertical-align: middle; }
.btn-group > .btn { position: relative; float: left; }
.btn-group > .btn + .btn { margin-left: -1px; }
.input-group { position: relative; display: flex; border-collapse: separate; }
.input-group .form-control { position: relative; flex: 1 1 auto; width: 1%; }
.input-group-btn { position: relative; white-space: nowrap; display: flex; }
.input-group-btn > .btn { position: relative; }

/* === Forms === */
.form-control { display: block; width: 100%; height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857; color: #555; background-color: #fff; border: 1px solid #ccc; border-radius: 4px; transition: border-color ease-in-out .15s; }
.form-control:focus { border-color: #66afe9; outline: 0; }
.form-group { margin-bottom: 15px; }
@media (min-width: 768px) {
  .form-inline .form-group { display: inline-block; margin-bottom: 0; vertical-align: middle; }
  .form-inline .form-control { display: inline-block; width: auto; vertical-align: middle; }
  .form-inline .btn { display: inline-block; vertical-align: middle; }
}
.has-feedback { position: relative; }
.has-feedback .form-control { padding-right: 42.5px; }
.form-control-feedback { position: absolute; top: 0; right: 0; z-index: 2; display: block; width: 34px; height: 34px; line-height: 34px; text-align: center; pointer-events: none; }
.has-error .form-control { border-color: #a94442; }
.form-horizontal .form-group { display: flex; flex-wrap: wrap; margin-left: -15px; margin-right: -15px; }

/* === Alerts === */
.alert { padding: 15px; margin-bottom: 20px; border: 1px solid transparent; border-radius: 4px; }
.alert-info { color: #31708f; background-color: #d9edf7; border-color: #bce8f1; }
.alert-warning { color: #8a6d3b; background-color: #fcf8e3; border-color: #faebcc; }
.alert-danger { color: #a94442; background-color: #f2dede; border-color: #ebccd1; }
.alert-success { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; }

/* === Breadcrumb === */
.breadcrumb { padding: 8px 15px; margin-bottom: 20px; list-style: none; background-color: #f5f5f5; border-radius: 4px; }
.breadcrumb > li { display: inline-block; }
.breadcrumb > li + li::before { content: "/ "; padding: 0 5px; color: #ccc; }
.breadcrumb > .active { color: #777; }

/* === Pagination === */
.pagination { display: inline-flex; padding-left: 0; margin: 20px 0; list-style: none; border-radius: 4px; }
.pagination > li { display: inline; }
.pagination > li > a, .pagination > li > span { position: relative; float: left; padding: 6px 12px; margin-left: -1px; line-height: 1.42857; text-decoration: none; color: #337ab7; background-color: #fff; border: 1px solid #ddd; }
.pagination > li:first-child > a, .pagination > li:first-child > span { margin-left: 0; border-radius: 4px 0 0 4px; }
.pagination > li:last-child > a, .pagination > li:last-child > span { border-radius: 0 4px 4px 0; }
.pagination > li > a:hover { color: #23527c; background-color: #eee; border-color: #ddd; }
.pagination > .active > a, .pagination > .active > span { z-index: 2; color: #fff; background-color: #337ab7; border-color: #337ab7; cursor: default; }
.pagination > .disabled > a, .pagination > .disabled > span { color: #777; background-color: #fff; border-color: #ddd; cursor: not-allowed; pointer-events: none; }

/* === Nav Tabs === */
.nav { list-style: none; padding-left: 0; margin-bottom: 0; }
.nav > li { position: relative; display: block; }
.nav > li > a { position: relative; display: block; padding: 10px 15px; text-decoration: none; }
.nav > li > a:hover { text-decoration: none; background-color: #eee; }
.nav-tabs { border-bottom: 1px solid #ddd; display: flex; }
.nav-tabs > li { float: left; margin-bottom: -1px; }
.nav-tabs > li > a { margin-right: 2px; line-height: 1.42857; 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 { color: #555; background-color: #fff; border: 1px solid #ddd; border-bottom-color: transparent; cursor: default; }
.tab-content > .tab-pane { display: none; }
.tab-content > .active { display: block; }

/* === Table === */
.table { width: 100%; max-width: 100%; margin-bottom: 20px; border-collapse: collapse; }
.table > thead > tr > th, .table > tbody > tr > th, .table > thead > tr > td, .table > tbody > tr > td { padding: 8px; line-height: 1.42857; vertical-align: top; border-top: 1px solid #ddd; }
.table > thead > tr > th { vertical-align: bottom; border-bottom: 2px solid #ddd; }
.table-striped > tbody > tr:nth-of-type(odd) { background-color: #f9f9f9; }

/* === Thumbnails === */
.thumbnail { display: block; padding: 4px; margin-bottom: 20px; line-height: 1.42857; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; }
.thumbnail img { display: block; max-width: 100%; height: auto; margin-left: auto; margin-right: auto; }
.caption { padding: 9px; color: #333; }

/* === Media === */
.media { display: flex; align-items: flex-start; margin-top: 15px; }
.media:first-child { margin-top: 0; }
.media-body { flex: 1; }
.media-heading { margin-top: 0; margin-bottom: 5px; }

/* === Jumbotron === */
.jumbotron { padding: 30px 15px; margin-bottom: 30px; background-color: #eee; border-radius: 6px; }
.jumbotron h1 { font-size: 36px; }
.jumbotron p { font-size: 21px; }

/* === Panel === */
.panel { margin-bottom: 20px; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; }
.panel-body { padding: 15px; }
.panel-title { margin-top: 0; margin-bottom: 0; font-size: 16px; }
.panel-heading { padding: 10px 15px; border-bottom: 1px solid #ddd; border-radius: 3px 3px 0 0; }

/* === Modal (basic structure) === */
.modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1050; overflow-y: auto; background-color: rgba(0,0,0,.5); }
.modal.in { display: block; }
.modal-dialog { position: relative; width: auto; margin: 30px auto; max-width: 600px; }
.modal-content { position: relative; background-color: #fff; border: 1px solid #999; border-radius: 6px; box-shadow: 0 3px 9px rgba(0,0,0,.5); outline: 0; }
.modal-header { padding: 15px; border-bottom: 1px solid #e5e5e5; }
.modal-body { position: relative; padding: 15px; }
.modal-footer { padding: 15px; text-align: right; border-top: 1px solid #e5e5e5; }

/* === hr === */
hr { margin-top: 20px; margin-bottom: 20px; border: 0; border-top: 1px solid #eee; }

/* === Visibility Utilities === */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.center-block { margin-left: auto; margin-right: auto; }
.center-block:not(.row) { display: block; }
.clearfix::after { content: ''; display: table; clear: both; }
.list-unstyled { padding-left: 0; list-style: none; }
.list-inline { padding-left: 0; list-style: none; }
.list-inline > li { display: inline-block; padding-right: 5px; padding-left: 5px; }
.img-responsive { display: block; max-width: 100%; height: auto; }
.pull-left { float: left !important; }
.pull-right { float: right !important; }
.hide { display: none !important; }
.show { display: block !important; }

/* Responsive visibility — hidden by default, shown at matching breakpoint */
.visible-xs, .visible-sm, .visible-md, .visible-lg { display: none !important; }

/* xs: <768px */
@media (max-width: 767px) {
  .visible-xs { display: block !important; }
  img.visible-xs, span.visible-xs, a.visible-xs { display: inline-block !important; }
  .hidden-xs { display: none !important; }
}
@media (min-width: 768px) {
  .hidden-xs { display: block !important; }
}
/* sm: 768–991px */
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm { display: block !important; }
  img.visible-sm, span.visible-sm, a.visible-sm { display: inline-block !important; }
  .hidden-sm { display: none !important; }
}
/* md: 992–1199px */
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md { display: block !important; }
  img.visible-md, span.visible-md, a.visible-md { display: inline-block !important; }
  .hidden-md { display: none !important; }
}
/* lg: ≥1200px */
@media (min-width: 1200px) {
  .visible-lg { display: block !important; }
  img.visible-lg, span.visible-lg, a.visible-lg { display: inline-block !important; }
  .hidden-lg { display: none !important; }
}

/* === Label / Badge === */
.label { display: inline; padding: .2em .6em .3em; font-size: 75%; font-weight: bold; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: .25em; }

/* === Collapse === */
.collapse { display: none; }
.collapse.in { display: block; }

/* === Close === */
.close { float: right; font-size: 21px; font-weight: bold; line-height: 1; color: #000; opacity: .2; cursor: pointer; background: none; border: 0; padding: 0; }
.close:hover { opacity: .5; }
