:root {
  --ob-canvas: #f8fafc; --ob-surface: #ffffff; --ob-raised: #f1f5f9;
  --ob-text: #172033; --ob-muted: #475569; --ob-border: #cbd5e1;
  --ob-accent: #1d4ed8; --ob-on-accent: #ffffff; --ob-focus: #2563eb;
  --ob-danger: #b91c1c; --ob-success: #166534; --ob-warning: #854d0e;
}
[data-theme="dark"], [data-bs-theme="dark"] {
  color-scheme: dark;
  --ob-canvas: #0f172a; --ob-surface: #1e293b; --ob-raised: #27364d;
  --ob-text: #f1f5f9; --ob-muted: #cbd5e1; --ob-border: #64748b;
  --ob-accent: #93c5fd; --ob-on-accent: #10203b; --ob-focus: #93c5fd;
  --ob-danger: #fca5a5; --ob-success: #86efac; --ob-warning: #fde68a;
  --bs-body-bg: var(--ob-canvas); --bs-body-color: var(--ob-text);
  --bs-secondary-color: var(--ob-muted); --bs-tertiary-color: var(--ob-muted);
  --bs-border-color: var(--ob-border); --bs-secondary-bg: var(--ob-raised);
  --bs-tertiary-bg: var(--ob-surface); --bs-emphasis-color: var(--ob-text);
  --bs-heading-color: var(--ob-text); --bs-link-color: var(--ob-accent);
}
html[data-theme="dark"] body, html[data-theme="dark"] .bp-content { background-color:var(--ob-canvas)!important; color:var(--ob-text); }
[data-theme="dark"] :is(.card,.modal-content,.dropdown-menu,.offcanvas,.list-group-item,.popover,.toast,.stat,.bp-card,.report-card) {
  background-color:var(--ob-surface)!important; color:var(--ob-text)!important; border-color:var(--ob-border)!important;
}
[data-theme="dark"] :is(.card-header,.card-footer,.modal-header,.modal-footer,.bg-light,.bg-white,.table-light,.input-group-text) { background-color:var(--ob-raised)!important; color:var(--ob-text)!important; border-color:var(--ob-border)!important; }
[data-theme="dark"] :is(.text-dark,.text-black,.text-body,.text-muted,.text-secondary,.form-text,.form-label,.col-form-label,.breadcrumb-item,.dropdown-item,.nav-tabs .nav-link) { color:var(--ob-muted)!important; }
[data-theme="dark"] :is(h1,h2,h3,h4,h5,h6,.card-title,.modal-title) {color:var(--ob-text);}
[data-theme="dark"] :is(input,select,textarea,.form-control,.form-select) {background-color:var(--ob-surface)!important;color:var(--ob-text)!important;border-color:var(--ob-border)!important;}
[data-theme="dark"] :is(input,textarea)::placeholder {color:var(--ob-muted);opacity:1;}
[data-theme="dark"] :is(input,select,textarea):disabled {background-color:var(--ob-raised)!important;color:var(--ob-muted)!important;}
[data-theme="dark"] .table {--bs-table-color:var(--ob-text);--bs-table-bg:var(--ob-surface);--bs-table-border-color:var(--ob-border);--bs-table-striped-color:var(--ob-text);--bs-table-striped-bg:var(--ob-raised);--bs-table-hover-color:var(--ob-text);--bs-table-hover-bg:var(--ob-raised);}
[data-theme="dark"] :is(.text-danger,.invalid-feedback){color:var(--ob-danger)!important;}
[data-theme="dark"] .text-success{color:var(--ob-success)!important;}
[data-theme="dark"] .text-warning{color:var(--ob-warning)!important;}
[data-theme="dark"] :is(.badge.bg-warning,.text-bg-warning){color:#172033!important;}
[data-theme="dark"] :is(.bp-kpi-label,.bp-kpi-sub){color:var(--ob-muted)!important;}
[data-theme="dark"] .bp-kpi-value{color:var(--ob-text)!important;}
[data-theme="dark"] :is(.dropdown-item:hover,.dropdown-item:focus,.list-group-item-action:hover){background-color:var(--ob-raised)!important;color:var(--ob-text)!important;}
[data-theme="dark"] .btn-outline-secondary{color:var(--ob-muted);border-color:var(--ob-border);}
[data-theme="dark"] .text-primary{color:var(--ob-accent)!important;}
[data-theme="dark"] .btn-outline-primary{color:var(--ob-accent);border-color:var(--ob-accent);}
[data-theme="dark"] .btn-outline-primary:hover{color:var(--ob-on-accent);background:var(--ob-accent);}
[data-theme="dark"] .table-danger{--bs-table-bg:#4a1e29;--bs-table-color:#fecaca;}
[data-theme="dark"] .table-success{--bs-table-bg:#123528;--bs-table-color:#bbf7d0;}
[data-theme="dark"] .table-warning{--bs-table-bg:#433416;--bs-table-color:#fef08a;}
[data-theme="dark"] .btn-close{filter:invert(1) grayscale(100%) brightness(200%);}
:is(button,a,input,select,textarea):focus-visible{outline:3px solid var(--ob-focus);outline-offset:2px;}
/* Contextual summary cards use a neutral surface and a semantic border in both themes. */
.card.text-white:is(.bg-success,.bg-danger,.bg-primary,.bg-warning,.bg-info){background:var(--ob-surface)!important;color:var(--ob-text)!important;border-left:4px solid var(--ob-accent)!important;}
.card.text-white.bg-success{border-left-color:var(--ob-success)!important;}
.card.text-white.bg-danger{border-left-color:var(--ob-danger)!important;}
.card.text-white.bg-warning{border-left-color:var(--ob-warning)!important;}
.card.text-white:is(.bg-success,.bg-danger,.bg-primary,.bg-warning,.bg-info) :is(.card-title,.card-subtitle,.text-white-50){color:var(--ob-text)!important;}
.card:is(.accounting-card-primary,.accounting-card-info,.accounting-card-danger,.accounting-card-success){background:var(--ob-surface)!important;color:var(--ob-text)!important;border-color:var(--ob-border)!important;border-left:4px solid var(--ob-accent)!important;}
.card:is(.accounting-card-primary,.accounting-card-info,.accounting-card-danger,.accounting-card-success) :is(.card-title,.accounting-card-subtitle){color:var(--ob-text)!important;opacity:1;}
.onebiz-offline-panel {background:var(--ob-surface);color:var(--ob-text);border:1px solid var(--ob-border);border-radius:.5rem;padding:.75rem;margin-bottom:1rem;}
.v33-payment-panel{display:block;color:var(--ob-text);}
.v33-paybill-status{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.1rem;margin:0 0 1rem;border:1px solid var(--ob-border);border-left:5px solid var(--ob-accent);border-radius:.65rem;background:var(--ob-surface);}
.v33-paybill-status-icon{width:.8rem;height:.8rem;flex:0 0 .8rem;margin-top:.35rem;border-radius:50%;background:var(--ob-accent);box-shadow:0 0 0 .25rem color-mix(in srgb,var(--ob-accent) 18%,transparent);}
.v33-paybill-status-copy{display:flex;flex-direction:column;gap:.2rem;}
.v33-paybill-status-copy strong{font-size:1rem;}
.v33-paybill-status-copy span{color:var(--ob-muted);}
.v33-paybill-status-approved{border-left-color:var(--ob-success);}.v33-paybill-status-approved .v33-paybill-status-icon{background:var(--ob-success);box-shadow:0 0 0 .25rem color-mix(in srgb,var(--ob-success) 18%,transparent);}
.v33-paybill-status-pending{border-left-color:var(--ob-warning);}.v33-paybill-status-pending .v33-paybill-status-icon{background:var(--ob-warning);box-shadow:0 0 0 .25rem color-mix(in srgb,var(--ob-warning) 18%,transparent);}
.v33-paybill-status-not-requested{border-left-color:var(--ob-accent);}
.v33-paybill-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:.85rem;padding:1rem;margin-bottom:1rem;border:1px solid var(--ob-border);border-radius:.65rem;background:var(--ob-raised);}
.v33-paybill-grid>label{font-size:.78rem;font-weight:700;color:var(--ob-muted);display:flex;flex-direction:column;gap:.3rem;}
.v33-paybill-grid .v33-paybill-switch{justify-content:center;}
.v33-paybill-section{padding:1rem;margin:0 0 1rem;border:1px solid var(--ob-border);border-radius:.65rem;background:var(--ob-surface);}
.v33-paybill-section h4{font-size:1rem;margin:0 0 .75rem;color:var(--ob-text);}
.v33-paybill-switch{display:flex;align-items:center;gap:.55rem;padding:.45rem .6rem;border-radius:.4rem;cursor:pointer;}
.v33-paybill-switch:hover{background:var(--ob-raised);}
@media (max-width:700px){.v33-paybill-grid{grid-template-columns:1fr;}}
.onebiz-offline-panel summary{font-weight:700;cursor:pointer;}
.onebiz-provisional-receipt{max-width:800px;width:90vw;border:1px solid var(--ob-border);border-radius:.5rem;padding:1rem;background:var(--ob-surface);color:var(--ob-text);}
.onebiz-provisional-receipt td,.onebiz-provisional-receipt th{padding:.4rem;}
#onebizConnectionStatus[data-state="Online"]{background:#15803d;color:#fff;border-color:#15803d;}
#onebizConnectionStatus[data-state="Offline"],#onebizConnectionStatus[data-state="Server unavailable"],#onebizConnectionStatus[data-state="Authentication required"],#onebizConnectionStatus[data-state="Synchronization errors"]{background:#b91c1c;color:#fff;border-color:#b91c1c;}
#onebizConnectionStatus[data-state="Synchronizing"]{background:#1d4ed8;color:#fff;border-color:#1d4ed8;}
#onebizConnectionStatus[data-state="Pending"]{background:#a16207;color:#fff;border-color:#a16207;}
#onebizConnectionStatus .sync-time{display:block;font-size:.68rem;font-weight:400;line-height:1.1;}
@media print {.onebiz-offline-panel{display:none!important;}.receipt{background:#fff!important;color:#000!important;}}
