/* Default screen theme for every NAB portal entry point and embedded tool. */
:root {
  color-scheme: dark;
  --bg: #080f17;
  --ink: #e8f1f8;
  --muted: #adbfce;
  --line: #304354;
  --navy: #050b10;
  --navy2: #152a3c;
  --green: #73dab0;
  --red: #ff8498;
  --nab-primary: #0071b5;
  --nab-blue-ink: #79cfff;
  --focus-ring: #79cfff;
  --dark-panel: #111e2b;
  --dark-raised: #172838;
  --dark-input: #0a1621;
  --dark-hover: #1a3347;
  --dark-text: #e8f1f8;
  --dark-muted: #adbfce;
  --dark-line: #304354;
  --dark-blue: #79cfff;
  --dark-success: #8de5ba;
  --dark-warning: #f8d28a;
  --dark-danger: #ffa0b0;
}
html,
body {
  background: var(--bg);
  color: var(--dark-text);
}
body {
  scrollbar-color: #49647b #0c1722;
}
::selection {
  background: #23577a;
  color: #fff;
}
p,
.fine {
  color: var(--dark-muted);
}
h1,
h2,
h3,
h4,
h5,
h6,
.page-title h1,
.panel-heading h2,
.stats b {
  color: var(--dark-text);
}
input,
select,
textarea,
option,
optgroup {
  color-scheme: dark;
  background: var(--dark-input);
  color: var(--dark-text);
  border-color: #526c82;
}
input::placeholder,
textarea::placeholder {
  color: #9bb0c2;
  opacity: 1;
}
input:focus,
select:focus,
textarea:focus {
  outline-color: var(--focus-ring);
}
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--dark-text);
  -webkit-box-shadow: 0 0 0 1000px var(--dark-input) inset;
  caret-color: var(--dark-text);
}
input[type="checkbox"],
input[type="radio"] {
  accent-color: #008ddd;
}
input[type="file"]::file-selector-button {
  background: #233d52;
  color: var(--dark-text);
  border: 1px solid #526c82;
  border-radius: 4px;
  padding: 8px 12px;
}
button.secondary,
.secondary,
.ux-quick-actions button {
  background: var(--dark-raised);
  color: #daebf8;
  border-color: #49647b;
}
button.secondary:hover,
.secondary:hover,
.ux-quick-actions button:hover {
  background: var(--dark-hover);
}
button.text-button,
button.icon-button,
.text-button,
.icon-button {
  background: transparent;
  color: var(--dark-blue);
  border-color: transparent;
}
button.danger-outline,
.danger-outline {
  background: #301a27;
  color: var(--dark-danger);
  border-color: #93516a;
}
.eyebrow,
.tabs button.active,
.office-box > svg {
  color: var(--dark-blue);
}
.topbar {
  background: #0a1520;
  color: var(--dark-text);
  border-bottom-color: #25495f;
  box-shadow: 0 2px 12px #0003;
}
.private-label,
.workspace-label,
.sidebar-bottom {
  color: var(--dark-muted);
}
.sidebar nav button.nav-active {
  background: #12364f;
  border-color: #286182;
  color: #fff;
  box-shadow: inset 3px 0 #009cf3;
}
.avatar {
  background: #23435c;
  color: #ddf1ff;
}
.stats > div,
.panel,
.ticket-card,
.site-card,
.crew-card,
.shiftbar,
.time-widget,
.loading,
.messaging {
  background: var(--dark-panel);
  color: var(--dark-text);
  border-color: var(--dark-line);
}
.panel,
.time-widget,
.ticket-card,
.site-card,
.modal,
.loading {
  box-shadow: 0 3px 16px #0002;
}
.panel-heading {
  background: #142535;
  border-color: var(--dark-line);
}
.stats span,
.stats small,
.shift-info span,
.ticket-number,
.ticket-row-main span,
.card-top,
.ticket-card p,
.ticket-meta,
.card-bottom > span:last-child,
.ticket-card .card-bottom > span:last-child {
  color: var(--dark-muted);
}
.ticket-row {
  background: var(--dark-panel);
  color: var(--dark-text);
  border-color: var(--dark-line);
}
.ticket-card:hover,
.site-card:hover,
.ticket-row:hover {
  background: #162c3d;
  border-color: #47718f;
}
.card-bottom,
.crew-shift,
.crew-location,
.location-state,
.check-item,
.details-grid,
.drawer-heading,
.drawer-tabs,
.chat-head,
.chat-compose,
.conversation-list,
.segment-list > div,
.correction-form,
.trail-row {
  border-color: var(--dark-line);
}
.shift-indicator {
  background: #233446;
  color: #b4cadb;
}
.shift-indicator.on {
  background: #163b30;
  color: var(--dark-success);
}
.location-state,
.location-message,
.crew-top small,
.crew-shift,
.crew-location span,
.pending-signin,
.drawer-heading span,
.details-grid small,
.inline-form label,
.check-item,
.field > span,
.shift-summary span,
.segment-list small,
.trail-row small {
  color: var(--dark-muted);
}
.crew-location a,
.trail-row a,
.loading a,
.office-box a {
  color: var(--dark-blue);
}
.notice,
.site-box,
.sites-file-summary,
.carrier-site-picker,
.time-current,
.ticket-time-summary,
.workday-activity,
.closeout-site {
  background: #142c3e;
  color: #c5e3f6;
  border-color: #36566d;
}
.notice b,
.site-box b,
.time-current {
  color: #d0ebff;
}
.empty,
.empty h3,
.sites-setup > svg,
.sites-setup p,
.carrier-site-results small,
.carrier-linked-site small,
.sites-file-summary span {
  color: var(--dark-muted);
}
.search {
  background: var(--dark-input);
  color: var(--dark-muted);
  border-color: #526c82;
}
.search input {
  background: transparent;
  color: var(--dark-text);
}
.badge,
.carrier-badge,
.ops-workspace .carrier {
  background: #233447;
  color: #d2deea;
  border-color: #4c6278;
}
.badge.en_route,
.badge.assigned,
.badge.accepted,
.badge.travel,
.badge.on_site,
.badge.in_progress,
.badge.work,
.carrier-badge.att {
  background: #113950;
  color: #95dcff;
  border-color: #326480;
}
.badge.completed,
.site-active {
  background: #143b2d;
  color: var(--dark-success);
  border-color: #3b7157;
}
.badge.blocked,
.badge.urgent,
.carrier-badge.verizon {
  background: #441c2b;
  color: #ffb0bf;
  border-color: #8b435a;
}
.badge.high {
  background: #45351a;
  color: #ffdb95;
}
.badge.cancelled,
.badge.break {
  background: #332b47;
  color: #ddc5fa;
}
.badge.low,
.badge.normal {
  background: #253345;
  color: #c5d2e0;
}
.carrier-badge.tmobile {
  background: #421b37;
  color: #ffb2dd;
  border-color: #844169;
}
.site-card-code,
.site-card p,
.site-card-meta,
.site-details-grid small,
.site-info-record dt,
.site-info-empty,
.site-map-caption small,
.site-info-panel p.site-map-fine {
  color: var(--dark-muted);
}
.site-card-meta,
.site-info-record > div,
.site-info-modal .modal-heading,
.sites-preview,
.sites-preview td,
.carrier-checks,
.upload-form,
.photo-grid figure,
.evidence-checklist li,
.evidence-upload,
.admin-time-history,
.admin-time-history p,
.closeout-section,
.workday-row {
  border-color: var(--dark-line);
}
.site-info-panel,
.closeout-section,
.evidence-upload,
.evidence-checklist li {
  background: var(--dark-panel);
  color: var(--dark-text);
}
.site-active.archived {
  background: #283244;
  color: #c1d0df;
  border-color: #526273;
}
.site-contact-name,
.site-map-placeholder b {
  color: var(--dark-text);
}
.site-map-tabs {
  border-color: #486177;
}
.site-map-tabs button {
  background: var(--dark-raised);
  color: #c8dbea;
}
.site-map-tabs button.chosen {
  background: #205274;
  color: #fff;
}
.site-action {
  background: #0071b5;
  border-color: #0071b5;
  color: #fff;
}
.site-map-link {
  color: var(--dark-blue);
}
.site-copy-message {
  background: #133e59;
  color: #b7e6ff;
}
.site-map,
.site-leaflet-map {
  background: #101f2b;
}
.site-map-placeholder {
  background: linear-gradient(135deg, #152a3b, #0e1c29);
  color: var(--dark-muted);
  border-color: var(--dark-line);
}
.file-label {
  background: #142535;
  color: #bdd3e4;
  border-color: #52758f;
}
.file-label input {
  background: transparent;
}
.photo-grid figure {
  background: #0c1722;
  color: var(--dark-text);
}
.photo-grid figcaption,
.photo-grid small,
.activity-list b,
.activity-list time,
.evidence-requirement-copy small,
.evidence-checklist li span,
.ticket-photo-count,
.closeout-site span {
  color: var(--dark-muted);
}
.activity-dot {
  background: #6c92b0;
}
.overlay,
.ux-more-overlay {
  background: #02070dcc;
}
.drawer,
.modal,
.ux-more-overlay section {
  background: var(--dark-panel);
  color: var(--dark-text);
}
.drawer-tabs button {
  color: #b9ccdc;
}
.drawer-tabs button.active {
  color: var(--dark-blue);
  border-bottom-color: var(--dark-blue);
}
.conversation-list button {
  color: var(--dark-muted);
}
.conversation-list h3,
.conversation-list h4,
.chat-head span,
.chat-message time {
  color: var(--dark-muted);
}
.conversation-list button.chosen {
  background: #17374f;
  color: #dcf1ff;
}
.chat-body {
  background: #09141e;
}
.chat-message {
  background: #172838;
  border-color: #3b5267;
}
.chat-message.mine {
  background: #143b53;
  border-color: #34647f;
}
.chat-message b {
  color: #a4dcff;
}
.chat-message p {
  color: #dceaf5;
}
th,
.sites-preview th {
  background: #172c3e;
  color: #bfd5e6;
  border-color: var(--dark-line);
}
td,
td small {
  color: var(--dark-muted);
  border-color: var(--dark-line);
}
.error,
.sites-alert {
  background: #381b28;
  color: var(--dark-danger);
  border-color: #8c4b60;
}
.error button {
  background: transparent;
  color: inherit;
}
.success,
.sites-notice {
  background: #173a2d;
  color: var(--dark-success);
  border-color: #41765d;
}
.site-invalid {
  color: var(--dark-danger);
}
.toast {
  background: #153e2e;
  color: #d6ffe7;
  border: 1px solid #4e8f6f;
}
.time-widget p,
.time-widget .time-hint,
.time-widget label,
.ticket-time-summary small {
  color: var(--dark-muted);
}
.time-widget select,
.evidence-panel select,
.admin-time-panel select,
.admin-time-panel input,
.admin-time-panel textarea {
  background: var(--dark-input);
  color: var(--dark-text);
  border-color: #526c82;
}
.time-widget.time-on-break {
  background: #30281a;
  border-color: #81632d;
}
.time-widget .time-break-note {
  color: var(--dark-warning);
}
.workday button[aria-pressed="true"],
.admin-time-tabs .active {
  background: #205274;
  color: #fff;
  border-color: #4f86aa;
}
.workday-open {
  background: transparent;
  color: var(--dark-blue);
  border-color: transparent;
}
.workday-open:hover {
  background: #17364c;
}
.workday-reasons span,
.evidence-reminder,
.closeout-banner,
.closeout-timer-notice {
  background: #382d1a;
  color: var(--dark-warning);
  border-color: #8c6c32;
}
.evidence-reminder p,
.closeout-banner p {
  color: inherit;
}
.evidence-checklist li.done {
  border-left-color: #68cb98;
}
.evidence-checklist li.missing {
  border-left-color: #e4b65e;
}
.closeout-checks .done {
  color: var(--dark-success);
}
.closeout-checks .missing {
  color: var(--dark-warning);
}
.closeout-banner.ready {
  background: #153a2c;
  color: var(--dark-success);
  border-color: #67c791;
}
.closeout-row {
  background: var(--dark-panel);
  color: var(--dark-text);
  border-color: var(--dark-line);
}
.closeout-row:hover {
  background: #182e40;
}
.closeout-row span,
.closeout-row small {
  color: var(--dark-muted);
}
.closeout-search input {
  background: var(--dark-input);
  color: var(--dark-text);
  border-color: #526c82;
}
/* Embedded operations retain their own component scope and semantic states. */
.ops-workspace {
  --ink: #e8f1f8;
  --muted: #adbfce;
  --line: #304354;
  --blue: #79cfff;
  color: var(--dark-text);
  border-color: var(--dark-line);
}
.ops-workspace aside,
.ops-workspace .card,
.ops-workspace .metric {
  background: var(--dark-panel);
  border-color: var(--dark-line);
}
.ops-workspace nav a.active {
  background: #163a52;
  color: #b6e8ff;
}
.ops-workspace .eyebrow,
.ops-workspace a {
  color: var(--dark-blue);
}
.ops-workspace .ops-tabs {
  background: var(--bg);
  border-color: var(--dark-line);
}
.ops-workspace .ops-tabs button:not(.active),
.ops-workspace button.secondary,
.ops-workspace .button.secondary {
  background: var(--dark-raised);
  color: #daebf8;
  border-color: #49647b;
}
.ops-workspace .ops-tabs button.active {
  background: #205274;
  color: #fff;
  border-color: #4f86aa;
}
.ops-workspace button.danger-outline {
  background: #301a27;
  color: var(--dark-danger);
  border-color: #93516a;
}
.ops-workspace button.text-button,
.ops-workspace button.icon-button {
  background: transparent;
  color: var(--dark-blue);
  border-color: transparent;
}
.ops-workspace input,
.ops-workspace select,
.ops-workspace textarea {
  background: var(--dark-input);
  color: var(--dark-text);
  border-color: #526c82;
}
.ops-workspace #ops-status {
  background: #15384e;
  color: #c7e9ff;
  border-color: #44758f;
}
.ops-workspace #ops-status.error {
  background: #381b28;
  color: var(--dark-danger);
  border-color: #8c4b60;
}
.ops-workspace .site-result {
  background: var(--dark-panel);
  color: var(--dark-text);
  border-color: var(--dark-line);
}
.ops-workspace .site-result:hover {
  background: #163248;
}
.ops-workspace .carrier.att {
  background: #113950;
  color: #95dcff;
}
.ops-workspace .carrier.verizon {
  background: #441c2b;
  color: #ffb0bf;
}
.ops-workspace .carrier.tmobile {
  background: #421b37;
  color: #ffb2dd;
}
.ops-workspace .priority-urgent,
.ops-workspace .job-failed {
  color: var(--dark-danger);
}
.ops-workspace .job-warning {
  color: var(--dark-warning);
}
.ops-workspace .job-success {
  color: var(--dark-success);
}
.ops-workspace .chip {
  background: #243a4d;
  color: var(--dark-text);
}
.ops-workspace th {
  background: #172c3e;
  color: #bfd5e6;
}
.ops-workspace .site-picker-hint {
  color: var(--dark-muted);
}
.ops-workspace .notice.unread {
  border-left-color: #009cf3;
}
/* Map imagery and evidence pixels stay unchanged; chrome follows the theme. */
.leaflet-container {
  background: #0d1d29;
  color: var(--dark-text);
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip,
.leaflet-tooltip,
.nab-site-label {
  background: #112b3e;
  color: #ecf7ff;
  border-color: #6a9abd;
}
.leaflet-container a {
  color: #8cd6ff;
}
.leaflet-container a.leaflet-popup-close-button,
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
  color: #d6e8f5;
}
.leaflet-bar a,
.leaflet-bar a:hover,
.leaflet-bar a:focus,
.leaflet-control-layers {
  background: #112b3e;
  color: #ecf7ff;
  border-color: #56738a;
}
.leaflet-control-layers-toggle {
  filter: invert(1) grayscale(1);
}
.leaflet-container .leaflet-control-attribution {
  background: #07131de6;
  color: #b8cfdf;
}
.leaflet-bar a.leaflet-disabled {
  background: #142330;
  color: #94aabf;
}
.leaflet-control-scale-line {
  background: #07131de6;
  color: #c7dce9;
  border-color: #8eabc1;
}
.leaflet-tooltip-top:before {
  border-top-color: #112b3e;
}
.leaflet-tooltip-bottom:before {
  border-bottom-color: #112b3e;
}
.leaflet-tooltip-left:before {
  border-left-color: #112b3e;
}
.leaflet-tooltip-right:before {
  border-right-color: #112b3e;
}
/* Account pages, loading, and clock-in must match the signed-in portal. */
.nab-auth {
  background: radial-gradient(ellipse at 14% 0, #12354b 0, transparent 55%), #080f16;
  color: var(--dark-text);
}
.nab-auth main {
  background: var(--dark-panel);
  border-color: #36546c;
  box-shadow: 0 24px 80px #0006;
}
.nab-auth-content {
  background: var(--dark-panel);
  color: var(--dark-text);
}
.nab-auth-content h1,
.nab-auth-content h2 {
  color: var(--dark-text);
}
.nab-auth-content .eyebrow,
.nab-auth-content a {
  color: var(--dark-blue);
}
.nab-auth-content p,
.nab-auth-content label,
.nab-auth-content .fine,
.checks {
  color: var(--dark-muted);
}
.nab-auth-content input,
.nab-auth-content select {
  background: var(--dark-input);
  color: var(--dark-text);
  border-color: #526c82;
}
.checks {
  border-color: var(--dark-line);
}
.checks .ok {
  color: var(--dark-success);
}
.checks .bad {
  color: var(--dark-danger);
}
.clock-gate {
  background: radial-gradient(ellipse at 0 0, #112d43 0, transparent 65%), var(--bg);
}
.clock-gate-card {
  background: var(--dark-panel);
  color: var(--dark-text);
  box-shadow: 0 14px 55px #0004;
}
.clock-gate-card .portal-brand,
.clock-gate-card .nab-brand-caption {
  color: #c9e8fc;
}
.clock-gate-icon {
  background: #153b55;
  color: var(--dark-blue);
}
.clock-gate-signout,
.clock-gate-footnote {
  color: var(--dark-muted);
}
.clock-gate .time-widget {
  background: transparent;
}
.mobile-nav,
.ux-mobile-nav {
  background: #0a1520;
  border-color: #36546c;
}
.mobile-nav button {
  color: #adbfce;
}
.ux-mobile-nav button.active,
.mobile-nav button.active {
  background: #153951;
  color: #9bdcff;
}
.ux-more-heading {
  border-color: #36546c;
}
.ux-more-heading button,
.ux-more-overlay section > button {
  background: var(--dark-raised);
  color: var(--dark-text);
  border-color: #49647b;
}
.nab-footer {
  color: var(--dark-muted);
  border-color: var(--dark-line);
}
.nab-footer strong {
  color: #c1dff3;
}
@media print {
  :root {
    color-scheme: light;
    --bg: #fff;
    --ink: #111;
    --muted: #444;
    --line: #bbb;
    --dark-text: #111;
    --dark-muted: #444;
    --dark-panel: #fff;
    --dark-raised: #eee;
    --dark-input: #fff;
    --dark-line: #bbb;
    --dark-blue: #005587;
  }
  html,
  body,
  .nab-auth,
  .nab-auth main,
  .nab-auth-content,
  .main-shell,
  .panel,
  .stats > div,
  .ticket-card,
  .site-card,
  .crew-card,
  .drawer,
  .modal,
  .time-widget,
  th,
  td {
    background: #fff;
    color: #111;
    box-shadow: none;
  }
}
