@import url("glyphicons.css");
@import url("app-utilities.css");
@import url("app-bootstrap-dimensions.css");

/* FEATURE-0057 Blazor typography and CSS ownership - The web hosts use a normal
   document font. Existing component dimensions retain their established scale;
   hosts which never loaded the old stylesheet keep their own rem-based scale. */
:root {
    font-size: 100%;
    font-family: sans-serif;
    --bp-layout-unit: 10px;
}

/* Retained visual values were adapted from Bootstrap under the MIT license;
   attribution is preserved in ../fonts/LICENSE-Glyphicons-Halflings.txt.
   App typography is shared by menus, cards, forms and dialogs. Component styles and
   theme tokens load afterwards and retain ownership of their visual variants. */
body {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.42857143;
    color: #333;
    background-color: #fff;
}
input, button, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; }
a { color: #337ab7; text-decoration: none; }
a:hover, a:focus { color: #23527c; text-decoration: underline; }
p { margin: 0 0 10px; }
ul, ol { margin-top: 0; margin-bottom: 10px; padding-left: 40px; }
ul ul, ul ol, ol ol, ol ul { margin-bottom: 0; }
dl { margin-top: 0; margin-bottom: 20px; }
dd { margin-left: 0; }
dt, dd { line-height: 1.42857143; }
small, .small { font-size: 85%; }
figure { margin: 0; }
summary { display: block; }
hr { margin: 20px 0; border: 0; border-top: 1px solid #eee; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: inherit; font-weight: 500; line-height: 1.1; color: inherit;
}
h1, h2, h3, .h1, .h2, .h3 { margin-top: 20px; margin-bottom: 10px; }
h4, h5, h6, .h4, .h5, .h6 { margin-top: 10px; margin-bottom: 10px; }
h1, .h1 { font-size: 36px; }
h2, .h2 { font-size: 30px; }
h3, .h3 { font-size: 24px; }
h4, .h4 { font-size: 18px; }
h5, .h5 { font-size: 16px; }
h6, .h6 { font-size: 12px; }
.lead { margin-bottom: 20px; font-size: 16px; font-weight: 300; line-height: 1.4; }
@media (min-width: 768px) { .lead { font-size: 21px; } }

/* Shared form contract: field heights, label spacing and keyboard focus are
   deliberate app dimensions, independent of the document's font-size. */
label { display: inline-block; max-width: 100%; margin-bottom: 5px; font-weight: 700; }
legend { width: 100%; padding: 0; margin-bottom: 20px; font-size: 21px; line-height: inherit; color: #333; border-bottom: 1px solid #e5e5e5; }
.form-group { margin-bottom: 15px; }
.form-control {
    display: block; width: 100%; height: 34px; padding: 6px 12px;
    font-size: 16px; 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 rgb(0 0 0 / 7.5%);
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}
.form-control:focus { border-color: #66afe9; outline: 0; box-shadow: inset 0 1px 1px rgb(0 0 0 / 7.5%), 0 0 8px rgb(102 175 233 / 60%); }
.form-control::placeholder { color: #999; opacity: 1; }
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { background-color: #eee; opacity: 1; }
textarea.form-control, select[multiple].form-control, select[size].form-control { height: auto; }
input[type="file"] { display: block; }
input[type="checkbox"], input[type="radio"] { margin: 4px 0 0; line-height: normal; }
.checkbox, .radio { position: relative; display: block; margin-top: 10px; margin-bottom: 10px; }
.checkbox label, .radio label { min-height: 20px; padding-left: 20px; margin-bottom: 0; font-weight: 400; cursor: pointer; }
.checkbox input[type="checkbox"], .radio input[type="radio"] { position: absolute; margin-left: -20px; }
.form-select { padding: 3.75px 22.5px 3.75px 7.5px; font-size: 10px; border-radius: 2.5px; }
.form-select.form-control { padding: 6px 12px; font-size: 16px; border-radius: 4px; }
.form-text { margin-top: 2.5px; }
.form-check { min-height: 15px; padding-left: 1.5em; margin-bottom: 1.25px; }
.form-switch { padding-left: 2.5em; }
.input-group { display: table; border-collapse: separate; }
.input-group .form-control { position: relative; z-index: 2; float: left; width: 100%; margin-bottom: 0; }

/* site.css owns button colors and 14pt text. These rules preserve the border,
   line box and interaction states previously supplied by the removed bundle. */
.btn { margin-bottom: 0; font-weight: 400; line-height: 1.42857143; white-space: nowrap; vertical-align: middle; touch-action: manipulation; border: 1px solid transparent; }
.btn-sm, .btn-group-sm > .btn, .btn-xs { font-size: 12px; line-height: 1.5; }
.btn-lg, .btn-group-lg > .btn { font-size: 18px; line-height: 1.3333333; }
.btn:active, .btn.active { background-image: none; outline: 0; box-shadow: inset 0 3px 5px rgb(0 0 0 / 12.5%); }
.btn.disabled, .btn:disabled, .btn[disabled], fieldset[disabled] .btn { cursor: not-allowed; opacity: .65; box-shadow: none; }
.btn-default { color: #333; background-color: #fff; border-color: #ccc; }
.btn-default:hover { color: #333; background-color: #e6e6e6; border-color: #adadad; }
.btn-default:focus { color: #333; background-color: #e6e6e6; border-color: #8c8c8c; }
.btn-danger { color: #fff; background-color: #d9534f; border-color: #d43f3a; }
.btn-danger:hover { color: #fff; background-color: #c9302c; border-color: #ac2925; }
.btn-warning { color: #fff; background-color: #f0ad4e; border-color: #eea236; }
.btn-warning:hover { background-color: #ec971f; border-color: #d58512; }
.btn-success { color: #fff; background-color: #5cb85c; border-color: #4cae4c; }
.btn-success:hover { background-color: #449d44; border-color: #398439; }
.btn-info { color: #fff; background-color: #5bc0de; border-color: #46b8da; }
.btn-info:hover { background-color: #31b0d5; border-color: #269abc; }
.btn-link { font-weight: 400; color: #337ab7; border-radius: 0; border-color: transparent; box-shadow: none; }
.btn-block { display: block; width: 100%; }
.btn-block + .btn-block { margin-top: 5px; }

/* Navigation and overlay primitives still used by app markup. Bootstrap 5
   remains the only framework; these are the app's retained visual contracts. */
.navbar { min-height: 50px; margin-bottom: 20px; border: 1px solid transparent; }
.navbar-brand { float: left; height: 50px; padding: 15px; margin-right: 10px; font-size: 18px; line-height: 20px; }
.navbar-toggler { padding: 2.5px 7.5px; font-size: 12.5px; border-radius: 2.5px; }
.navbar-nav { margin: 7.5px -15px; }
.navbar-nav > li > a { padding-top: 10px; padding-bottom: 10px; line-height: 20px; }
.nav { padding-left: 0; margin-bottom: 0; list-style: none; }
.nav > li { position: relative; display: block; }
.nav > li > a { position: relative; display: block; padding: 10px 15px; }
/* These layout boxes also preserve the existing gap at either end of a sidebar. */
.nav::before, .nav::after { display: table; content: " "; }
.nav::after { clear: both; }
.navbar-nav { margin-bottom: 7.5px; }
.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 .nav-link { border-top-left-radius: 2.5px; border-top-right-radius: 2.5px; }
@media (min-width: 768px) {
    .navbar { border-radius: 4px; }
    .navbar-nav { float: left; margin: 0; }
    .navbar-nav > li { float: left; }
    .navbar-nav > li > a { padding-top: 15px; padding-bottom: 15px; }
}
.dropdown-menu { min-width: 160px; padding: 5px 0; margin: 2px 0 0; font-size: 16px; color: #333; border: 1px solid rgb(0 0 0 / 15%); border-radius: 4px; box-shadow: 0 6px 12px rgb(0 0 0 / 17.5%); }
.dropdown-menu > li > a { display: block; padding: 3px 20px; clear: both; font-weight: 400; line-height: 1.42857143; color: #333; white-space: nowrap; }
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { color: #262626; text-decoration: none; background-color: #f5f5f5; }
.open > .dropdown-menu { display: block; }
.collapse.in { display: block; }
.modal-dialog { margin: 10px; }
.modal-content { border: 1px solid rgb(0 0 0 / 20%); border-radius: 6px; box-shadow: 0 3px 9px rgb(0 0 0 / 50%); }
.modal-header, .modal-body, .modal-footer { padding: 15px; }
.modal-header { border-bottom: 1px solid #e5e5e5; border-radius: 2px 2px 0 0; }
.modal-title { margin: 0; line-height: 1.42857143; }
.modal-footer { text-align: right; border-top: 1px solid #e5e5e5; border-radius: 0 0 2px 2px; }
.modal-footer > * { margin: 2.5px; }
.modal-footer .btn { margin-bottom: 0; }
.modal-footer .btn + .btn { margin-bottom: 0; margin-left: 5px; }
.close { float: right; font-size: 21px; font-weight: 700; line-height: 1; color: #000; text-shadow: 0 1px 0 #fff; opacity: .2; }
.modal-header .close { margin-top: -2px; }
button.close { padding: 0; cursor: pointer; background: transparent; border: 0; }
@media (min-width: 768px) {
    .modal-dialog { width: 600px; margin: 30px auto; }
    .modal-content { box-shadow: 0 5px 15px rgb(0 0 0 / 50%); }
}

.alert { padding: 15px; margin-bottom: 20px; border: 1px solid transparent; border-radius: 4px; }
.alert-success { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; }
.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; }
.badge { display: inline-block; min-width: 10px; padding: 3px 7px; font-size: 12px; font-weight: 700; line-height: 1; color: #fff; vertical-align: middle; white-space: nowrap; background-color: #777; border-radius: 10px; }
.table { width: 100%; max-width: 100%; margin-bottom: 20px; }
.table > :not(caption) > * > * { 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; }
.table > thead:first-child > tr:first-child > th { border-top: 0; }
.table-striped > tbody > tr:nth-of-type(odd) { background-color: #f9f9f9; }
.table-hover > tbody > tr:hover { background-color: #f5f5f5; }
.table-bordered { border: 1px solid #ddd; }
.table-bordered > :not(caption) > * > * { border: 1px solid #ddd; }
.table-condensed > :not(caption) > * > * { padding: 5px; }
.table-responsive { min-height: .01%; overflow-x: auto; }
@media (max-width: 767px) {
    .table-responsive { width: 100%; margin-bottom: 15px; overflow-y: hidden; border: 1px solid #ddd; }
    .table-responsive > .table { margin-bottom: 0; }
    .table-responsive > .table > :not(caption) > * > * { white-space: nowrap; }
}
.container, .container-fluid { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; }
.row { --bs-gutter-x: 30px; margin-right: -15px; margin-left: -15px; }
.text-right { text-align: right; }
.text-left { text-align: left; }
.pull-right { float: right !important; }
.pull-left { float: left !important; }
.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
