:root {
  --obbo-navy: #102642;
  --obbo-navy-deep: #091a30;
  --obbo-copper: #c96f32;
  --obbo-copper-hover: #ad5926;
  --obbo-teal: #063f46;
  --obbo-jade: #15a887;
  --obbo-jade-dark: #0c8068;
  --obbo-amber: #f2a93b;
  --obbo-canvas: #f4f7fb;
  --obbo-surface: #fff;
  --obbo-border: #d9e3ec;
  --obbo-muted: #60738a;
  --obbo-focus: rgba(21, 168, 135, .24);
  --obbo-shadow: 0 16px 42px rgba(16, 38, 66, .10);
  --erp-bg: var(--obbo-canvas);
  --erp-card: rgba(255, 255, 255, .96);
  --erp-border: rgba(16, 38, 66, .14);
  --erp-text: var(--obbo-navy);
  --erp-muted: var(--obbo-muted);
  --erp-primary: var(--obbo-jade);
  --erp-secondary: var(--obbo-teal);
  --erp-purple: #4658a6;
  --erp-amber: var(--obbo-amber);
  --erp-red: #c4414f;
  --erp-green: var(--obbo-jade-dark);
  --erp-shadow: var(--obbo-shadow);
}

body { color: var(--obbo-navy); }
a { color: var(--obbo-jade-dark); }
a:hover { color: var(--obbo-copper-hover); }
.header { border-bottom-color: rgba(16, 38, 66, .10); }
.header-left { border-right-color: rgba(16, 38, 66, .10); }
.header-left .logo img, .login-logo img { object-fit: contain; }
.header-left .logo img { max-height: 54px; width: auto; }
.header-left .logo-small img { max-height: 42px; width: 42px; }
.sidebar .sidebar-menu > ul > li > a.active,
.sidebar .sidebar-menu > ul > li > a:hover { color: var(--obbo-copper); background: rgba(201, 111, 50, .09); }

.btn-primary, .btn-login, .btn.btn-login,
.erp-button--primary, .workspace-primary-action, .swal2-confirm.swal2-styled {
  background-color: var(--obbo-jade) !important;
  border-color: var(--obbo-jade) !important;
  color: #fff !important;
}
.btn-primary:hover, .btn-login:hover, .btn.btn-login:hover,
.erp-button--primary:hover, .workspace-primary-action:hover, .swal2-confirm.swal2-styled:hover {
  background-color: var(--obbo-jade-dark) !important;
  border-color: var(--obbo-jade-dark) !important;
}
.btn-warning { background-color: var(--obbo-copper); border-color: var(--obbo-copper); color: #fff; }
.btn-warning:hover { background-color: var(--obbo-copper-hover); border-color: var(--obbo-copper-hover); }
input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible,
.form-control:focus, .select2-container--focus .select2-selection {
  border-color: var(--obbo-jade) !important;
  box-shadow: 0 0 0 .2rem var(--obbo-focus) !important;
  outline: 0;
}
.page-header, .erp-breadcrumb-shell, .workspace-breadcrumb-shell { border-color: rgba(16, 38, 66, .12); }
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.page-item.active .page-link { background: var(--obbo-jade) !important; border-color: var(--obbo-jade) !important; color: #fff !important; }
.badge.bg-primary, .bg-primary { background-color: var(--obbo-jade) !important; }
.text-primary { color: var(--obbo-jade-dark) !important; }
.obbo-brand-lockup { display: inline-flex; align-items: center; text-decoration: none; }
.obbo-brand-lockup img { display: block; width: auto; height: 48px; max-width: min(310px, 68vw); }
.obbo-public-brand { margin-bottom: 24px; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.ops-brand img { height: 40px; max-width: 220px; }
.ops-primary-nav > a:not(.ops-brand):hover, .ops-primary-nav > a:not(.ops-brand):focus-visible,
.ops-breadcrumb a, .ops-row-action { color: var(--obbo-jade-dark); }
.ops-hero { background: linear-gradient(120deg, var(--obbo-navy), var(--obbo-teal)); }
.ops-eyebrow { color: #77e3cd; }
.ops-button--primary { background: var(--obbo-jade); color: #fff; }
.ops-button--warning { background: var(--obbo-copper); color: #fff; }
.ops-control:focus, .ops-form input:focus, .ops-form select:focus, .ops-form textarea:focus { border-color: var(--obbo-jade); outline-color: var(--obbo-focus); }
.branch-admin { width: min(1180px, calc(100% - 28px)); margin: 0 auto; color: var(--obbo-navy); }
.branch-admin__crumbs { display: flex; align-items: center; gap: 10px; overflow-x: auto; padding: 12px 2px; white-space: nowrap; font-size: .88rem; }
.branch-admin__hero { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: clamp(22px, 4vw, 34px); border: 1px solid rgba(16,38,66,.12); border-radius: 20px; background: linear-gradient(125deg, rgba(16,38,66,.98), rgba(6,63,70,.95)); color: #fff; box-shadow: var(--obbo-shadow); }
.branch-admin__hero p, .branch-admin__panel-heading p { margin: 0 0 5px; color: #79e0cb; font-size: .72rem; font-weight: 820; letter-spacing: .12em; }
.branch-admin__hero h2, .branch-admin__panel-heading h3 { margin: 0 0 6px; }
.branch-admin__hero span { color: #dbece9; }
.branch-admin__help { flex: 0 0 auto; min-height: 42px; padding: 9px 14px; border: 1px solid rgba(255,255,255,.38); border-radius: 11px; background: rgba(255,255,255,.1); color: #fff; font-weight: 750; }
.branch-admin__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
.branch-admin__panel { padding: clamp(18px, 3vw, 28px); border: 1px solid var(--obbo-border); border-radius: 18px; background: #fff; box-shadow: 0 10px 28px rgba(16,38,66,.07); }
.branch-admin__panel-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 20px; }
.branch-admin__panel-heading p { color: var(--obbo-jade-dark); }
.branch-admin__panel-heading span { color: var(--obbo-muted); font-size: .86rem; }
.branch-admin__form { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); gap: 18px; align-items: start; }
.branch-admin__form .form-group { margin: 0; }
.branch-admin__form small { display: block; margin-top: 5px; color: var(--obbo-muted); }
.branch-admin__form-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.branch-admin__table { overflow-x: auto; }
.branch-admin__table table { min-width: 680px; margin-bottom: 0; }
.branch-admin__badge { display: inline-flex; align-items: center; min-height: 26px; padding: 4px 9px; border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .02em; white-space: nowrap; }
.branch-admin__badge--active { background: #d8f3e8; color: #075d48; }
.branch-admin__badge--closed { background: #e8edf3; color: #46566b; }
.branch-admin__badge--billable { background: #dce8ff; color: #184f9c; }
.branch-admin__badge--neutral { background: #f1f3f5; color: #505b68; }
@media (max-width: 575px) {
  .header-left .logo img { max-height: 44px; }
  .obbo-brand-lockup img { height: 40px; }
  .branch-admin { width: calc(100% - 18px); }
  .branch-admin__hero, .branch-admin__panel-heading { align-items: stretch; flex-direction: column; }
  .branch-admin__help { align-self: flex-start; }
  .branch-admin__form { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Shared Settings / branch register allowance card. */
.branch-allowance { margin: 20px 0; padding: clamp(18px,3vw,28px); border: 1px solid #d5e6e2; border-radius: 18px; background: linear-gradient(130deg,#f2faf7,#fff 65%); color: #102642; }
.branch-allowance__heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.branch-allowance__eyebrow { margin: 0 0 6px; color: #08786b; font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
.branch-allowance h3 { margin: 0 0 8px; font-size: clamp(19px,2vw,24px); font-weight: 800; }
.branch-allowance__heading p:not(.branch-allowance__eyebrow), .branch-allowance__detail { color: #52667e; font-size: .9rem; line-height: 1.65; }
.branch-allowance__plan { padding: 7px 12px; background: #dff5ec; color: #065f46; border-radius: 10px; font-weight: 750; flex-shrink: 0; }
.branch-allowance__metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin: 20px 0 12px; }
.branch-allowance__metrics>div { padding: 15px; background: #fff; border: 1px solid #e1ebe8; border-radius: 12px; }
.branch-allowance__metrics dt { font-size: .78rem; font-weight: 600; color: #52667e; }
.branch-allowance__metrics dd { font-size: 30px; line-height: 1.4; margin: 4px 0 0; font-weight: 800; }
.branch-allowance__notice { padding: 12px 14px; border-left: 4px solid #b91c1c; background: #fef2f2; color: #b91c1c; border-radius: 8px; font-weight: 650; }
.branch-allowance__pricing { margin-top: 15px; border-top: 1px solid #d5e6e2; padding-top: 14px; font-size: .88rem; line-height: 1.65; }
.branch-allowance__pricing summary { cursor: pointer; font-weight: 750; color: #08786b; }
.branch-allowance__pricing p { margin: 12px 0 0; }
.branch-allowance__pricing ul { margin: 12px 0; padding-left: 22px; }
[data-branch-form] .invalid-feedback, [data-branch-form] .error { display: block; color: #b91c1c; }
.branch-allowance summary:focus-visible, [data-branch-action]:focus-visible, [data-branch-settings-url]:focus-visible { outline: 3px solid #08786b; outline-offset: 4px; }
@media(max-width:767px) { .branch-allowance__metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } .branch-allowance__heading { flex-direction: column; } }
@media(max-width:575px) { .settings-workspace .settings-tabs { flex-wrap: wrap; overflow-x: visible; } }
