/* InBalHub: the InionSun console look (flat corners, compact type, InionSun blue). */
:root { --bs-border-radius: 0; --bs-primary: #1a73a7; --bs-primary-rgb: 26, 115, 167; --bs-border-color: #dee2e6;
        --bs-link-color: #1a73a7; --bs-link-color-rgb: 26, 115, 167; }
body { background-color: #f5f6f8; font-size: .875rem; }
.navbar-brand { font-weight: 600; letter-spacing: .5px; }
.btn-primary { --bs-btn-bg: #1a73a7; --bs-btn-border-color: #1a73a7; --bs-btn-hover-bg: #155d87; --bs-btn-hover-border-color: #155d87; }
.btn-outline-primary { --bs-btn-color: #1a73a7; --bs-btn-border-color: #1a73a7; --bs-btn-hover-bg: #1a73a7; --bs-btn-hover-border-color: #1a73a7; }
.table th { font-weight: 600; font-size: .8125rem; white-space: nowrap; }
.table td { vertical-align: middle; }
.card { border-color: var(--bs-border-color); }
.font-mono { font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: .8rem; }
.text-tiny { font-size: .72rem; }
.page-head { border-bottom: 1px solid var(--bs-border-color); padding-bottom: .6rem; }
.page-head-icon { width: 2.1rem; height: 2.1rem; display: inline-flex; align-items: center; justify-content: center;
                  background: #1a73a7; color: #fff; font-size: 1rem; }
.kpi .value { font-size: 1.5rem; font-weight: 600; line-height: 1.1; }
.kpi .label { color: #6c757d; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }

/* status palette (same as the InionSun consoles) */
.health-ok      { background: #27ae60 !important; color: #fff !important; }
.health-stale   { background: #f39c12 !important; color: #fff !important; }
.health-error   { background: #c0392b !important; color: #fff !important; }
.health-pending { background: #7f8c8d !important; color: #fff !important; }
.health-off     { background: #dee2e6 !important; color: #495057 !important; }

/* payloads and bodies: escaped text, scrollable */
pre.payload { max-height: 32rem; overflow: auto; background: #f8f9fa; padding: .5rem .75rem; margin: 0;
              font-size: .78rem; white-space: pre; }
dl.facts { display: grid; grid-template-columns: max-content 1fr; gap: .25rem 1rem; margin: 0; }
dl.facts dt { font-weight: 600; color: #495057; font-size: .8rem; }
dl.facts dd { margin: 0; word-break: break-all; }

/* state transition timeline */
ol.timeline { list-style: none; padding-left: 1rem; margin: 0; border-left: 2px solid var(--bs-border-color); }
ol.timeline li { position: relative; padding: 0 0 .75rem .75rem; }
ol.timeline li::before { content: ""; position: absolute; left: -1.42rem; top: .3rem; width: .6rem; height: .6rem;
                         background: #1a73a7; border-radius: 50%; }

.filters .form-label { font-size: .72rem; margin-bottom: .1rem; color: #495057; }
.entrance { max-width: 26rem; }

/* manual document injection: static/js/inject.js adds .js-tabs; without it both source panes show */
.badge-injected { background: #6f42c1; color: #fff; }
.border-injected { border-color: #6f42c1 !important; }
.inject-form:not(.js-tabs) .inject-tabs { display: none; }
.inject-form:not(.js-tabs) .inject-panes > .tab-pane { display: block; opacity: 1; margin-bottom: .75rem; }
.inject-form.js-tabs .inject-panes { border: 1px solid var(--bs-border-color); border-top: 0; padding: .5rem .75rem; }
.inject-production { border: 2px solid #c0392b; }

/* bid Injector and Editor (#22): static/js/bid-editor.js adds .js-points; without it only the points text shows */
.bid-form .form-label { font-size: .75rem; color: #495057; margin-bottom: .15rem; }
.bid-form .form-text { font-size: .72rem; }
.bid-form .card-header { font-weight: 600; font-size: .8125rem; }
.bid-form:not(.js-points) [data-points-ranges], .bid-form:not(.js-points) [data-points-grid],
.bid-form:not(.js-points) .points-views { display: none; }
.bid-form.js-points [data-points]:not(.points-show-text) [data-points-textpane],
.bid-form.js-points [data-points].points-show-text [data-points-ranges],
.bid-form.js-points [data-points].points-show-text [data-points-grid] { display: none; }
.points-grid-scroll { max-height: 32rem; overflow: auto; border: 1px solid var(--bs-border-color); }
.points-grid-scroll thead th { position: sticky; top: 0; z-index: 2; background: #f8f9fa; }
.points-grid-scroll td { padding-top: .1rem; padding-bottom: .1rem; }
.points-grid-scroll input { width: 7.5rem; margin-left: auto; padding-top: .1rem; padding-bottom: .1rem; }
.points-range-table th { font-size: .72rem; color: #495057; }
.points-range-table td:nth-child(1), .points-range-table td:nth-child(2) { min-width: 12rem; }
.points-range-table td:nth-child(3), .points-range-table td:nth-child(4) { width: 7.5rem; }
.points-range-table td:last-child { width: 1.5rem; }
.points-views .btn.active { background: #1a73a7; border-color: #1a73a7; color: #fff; }

/* flatpickr in the console look: flat, InionSun blue, compact */
.flatpickr-calendar { border-radius: 0; border: 1px solid var(--bs-border-color); font-size: .8125rem;
                      box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .12); }
.flatpickr-calendar.arrowTop:before, .flatpickr-calendar.arrowTop:after,
.flatpickr-calendar.arrowBottom:before, .flatpickr-calendar.arrowBottom:after { display: none; }
.flatpickr-months .flatpickr-month { height: 34px; }
.flatpickr-current-month { font-size: .875rem; padding-top: 6px; }
.flatpickr-current-month .flatpickr-monthDropdown-months { font-weight: 600; }
span.flatpickr-weekday { font-size: .72rem; font-weight: 600; color: #6c757d; }
.flatpickr-day { border-radius: 0; height: 34px; line-height: 32px; }
.flatpickr-day:hover, .flatpickr-day:focus { background: #e7f1f7; border-color: #e7f1f7; }
.flatpickr-day.today { border-color: #1a73a7; }
.flatpickr-day.today:hover, .flatpickr-day.today:focus { background: #e7f1f7; border-color: #1a73a7; color: #1a73a7; }
.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.selected:focus,
.flatpickr-day.startRange, .flatpickr-day.endRange { background: #1a73a7; border-color: #1a73a7; color: #fff; }
.flatpickr-time { border-top: 1px solid var(--bs-border-color) !important; }
.flatpickr-time input, .flatpickr-time .flatpickr-time-separator { font-size: .875rem; }
.flatpickr-time input:hover, .flatpickr-time input:focus { background: #e7f1f7; }
input.flatpickr-input { background-color: var(--bs-body-bg); }

/* Tom Select in the console look (over the tom-select.bootstrap5 theme): flat corners, InionSun blue focus */
.ts-wrapper .ts-control, .ts-wrapper.form-select-sm .ts-control, .ts-wrapper.form-control-sm .ts-control,
.ts-dropdown, .ts-dropdown.form-select { border-radius: 0; }
.ts-wrapper.form-select-sm .ts-control { padding: .25rem 2rem .25rem .5rem; min-height: calc(1.5em + .5rem + 2px); }
.ts-wrapper.form-select-sm { font-size: .875rem; }
.ts-wrapper.focus .ts-control { border-color: #1a73a7; box-shadow: 0 0 0 .2rem rgba(26, 115, 167, .2); }
.ts-dropdown { font-size: .8125rem; border-color: var(--bs-border-color); box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .12); }
.ts-dropdown .option { padding: .3rem .5rem; }
.ts-dropdown .active { background: #e7f1f7; color: var(--bs-body-color); }
.ts-dropdown .option.selected { color: #1a73a7; font-weight: 600; }
.ts-dropdown [data-disabled], .ts-dropdown .option.disabled { color: #adb5bd; }
.ts-dropdown [data-selectable] .highlight { background: rgba(26, 115, 167, .15); border-radius: 0; }
.ts-dropdown .no-results { padding: .3rem .5rem; color: #6c757d; }
.filters .ts-wrapper.form-select-sm .ts-control { padding-top: .2rem; padding-bottom: .2rem; }
.filters .ts-dropdown { min-width: 16rem; }
/* a long table in a card (e.g. a bid's points): scrolls inside the card, header kept */
.table-scroll { max-height: 32rem; overflow: auto; }
.table-scroll thead th { position: sticky; top: 0; z-index: 2; background: var(--bs-body-bg); }
.ts-dropdown .dropdown-input-wrap { padding: .35rem .5rem; border-bottom: 1px solid var(--bs-border-color); }
.ts-dropdown .dropdown-input { border-radius: 0; font-size: .8125rem; padding: .2rem .45rem; }
.ts-dropdown .dropdown-input:focus { border-color: #1a73a7; box-shadow: 0 0 0 .2rem rgba(26, 115, 167, .2); }
