* { box-sizing: border-box; }
:root {
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #18212f;
  background: #f5f7fb;
}
body { margin: 0; background: #f5f7fb; }
button, input, textarea { font: inherit; }
button { cursor: pointer; border: 0; border-radius: 8px; padding: 10px 15px; }
.primary { background: #1f6feb; color: white; }
.secondary { background: #e9edf3; color: #18212f; }
.danger { background: #dc3545; color: white; }
.hidden { display: none !important; }

.top-tabs { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px; }
.top-tabs button, .timesheet-subtabs button { background:#e9edf3; color:#18212f; }
.top-tabs button.active, .timesheet-subtabs button.active { background:#1f6feb; color:white; }

.screen { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.login-card {
  width: min(420px, 100%); background: white; padding: 32px;
  border-radius: 16px; box-shadow: 0 12px 40px rgba(0,0,0,.08);
}
.login-card h1 { margin-top: 0; }
.login-card label, label { display: block; font-weight: 600; font-size: 14px; }
.login-card input, label input, textarea {
  width: 100%; margin-top: 7px; border: 1px solid #ccd3df;
  border-radius: 8px; padding: 10px 12px; background: white;
}
.login-card label { margin: 16px 0; }
.login-card button { width: 100%; }
.error { color: #c62828; min-height: 22px; margin-top: 10px; }

.topbar {
  min-height: 72px; padding: 8px 24px; background: white;
  display: flex; align-items: center; justify-content: space-between; gap:12px;
  border-bottom: 1px solid #e3e7ee;
}
.topbar > button { flex-shrink:0; }
.topbar h1 { margin: 0; font-size: 22px; }
.topbar span { color: #687386; font-size: 13px; }
.main { max-width: 1400px; margin: 0 auto; padding: 24px; }
.calendar-toolbar {
  display: flex; gap: 8px; align-items: center; margin-bottom: 16px;
}
.calendar-toolbar h2 { margin: 0 12px; font-size: 22px; }
.calendar-toolbar .schedule-toolbar-heading { margin: 0 0 0 8px; font-size: 32px; line-height: 1.1; font-weight: 700; color: #000; }
.calendar-toolbar .primary { margin-left: auto; }

.calendar {
  display: grid; grid-template-columns: repeat(7, 1fr);
  background: white; border: 1px solid #dfe4ec; border-radius: 12px; overflow: hidden;
}
.day-name {
  padding: 12px; text-align: center; font-weight: 700;
  background: #f0f3f8; border-right: 1px solid #e3e7ee;
}
.day {
  min-height: 150px; padding: 8px; border-top: 1px solid #e3e7ee;
  border-right: 1px solid #e3e7ee; background: #fff;
}
.day:nth-child(7n) { border-right: 0; }
.day.other-month { background: #fafbfc; color: #a0a8b5; }
.day-number { font-weight: 700; margin-bottom: 6px; }
.day.today .day-number {
  display: inline-flex; width: 28px; height: 28px; border-radius: 50%;
  align-items: center; justify-content: center; background: #1f6feb; color: white;
}

.job {
  position: relative;
  display: block; width: 100%; text-align: left; margin: 5px 0;
  padding: 7px 24px 7px 8px; background: #eaf2ff; border-left: 4px solid #1f6feb;
  border-radius: 6px; font-size: 12px;
}

.job strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.job span { color: #526176; }
.job .job-resize-handle {
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  cursor: ew-resize;
  font-size: 16px;
  font-weight: 700;
  color: #1f6feb;
  user-select: none;
}

.modal {
  position: fixed; inset: 0; background: rgba(17, 24, 39, .48);
  display: grid; place-items: center; padding: 20px; z-index: 10;
}
.modal-card {
  width: min(950px, 100%); max-height: 94vh; overflow: auto;
  background: white; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.25);
}

.modal-card {
  box-sizing: border-box;
  overflow-x: hidden;
}

.modal-header {
  position: sticky; top: 0; z-index: 2; background: white;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 22px; border-bottom: 1px solid #e5e9ef;
}
.modal-header h2 { margin: 0; }
.icon-btn { background: transparent; font-size: 28px; padding: 0 6px; }
#jobForm { padding: 0 22px 22px; }
#standaloneTimesheetForm {
  padding: 0 22px 22px;
}
section { padding: 18px 0; border-bottom: 1px solid #e8ebf0; }
section h3 { margin: 0 0 14px; font-size: 16px; }
.grid { display: grid; gap: 14px; }
.grid.two { grid-template-columns: 1fr 1fr; }
.grid.two .full {
  grid-column: 1 / -1;
}
.hint { color: #687386; font-size: 13px; margin-top: 7px; }
.form-actions { display: flex; gap: 8px; padding-top: 18px; }
.spacer { flex: 1; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; margin-top: 14px; }
.photo { position: relative; border-radius: 8px; overflow: hidden; border: 1px solid #dce2eb; }
.photo img { width: 100%; height: 120px; object-fit: cover; display: block; }
.photo button { position: absolute; right: 5px; top: 5px; padding: 4px 8px; background: rgba(0,0,0,.65); color: white; }

.workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 18px;
  align-items: start;
}

.sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.sidebar-actions {
  display: grid;
  gap: 10px;
}

.sidebar-actions button {
  width: 100%;
}

.inquiries-panel {
  background: white;
  border: 1px solid #dfe4ec;
  border-radius: 12px;
  padding: 14px;
}

.inquiries-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.inquiries-header h3 {
  margin: 0;
}

#inquiryCount {
  min-width: 26px;
  height: 26px;
  padding: 0 7px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eaf2ff;
  color: #1f6feb;
  font-weight: 700;
  font-size: 12px;
}

.inquiry-list {
  display: grid;
  gap: 8px;
}

.inquiry-card {
  width: 100%;
  text-align: left;
  padding: 10px;
  background: #f8fafc;
  border: 1px solid #dfe4ec;
  border-left: 4px solid #1f6feb;
  border-radius: 8px;
}

.inquiry-card strong,
.inquiry-card span {
  display: block;
}

.inquiry-card span {
  color: #526176;
  font-size: 12px;
  margin-top: 3px;
}

.inquiry-card p {
  margin: 7px 0 0;
  color: #687386;
  font-size: 12px;
  line-height: 1.35;
}

#allInquiriesList .inquiry-card-description {
  font-size: 14px;
  line-height: 1.5;
  white-space: pre-wrap;
}

#inquiryForm {
  padding: 0 22px 22px;
}

@media (max-width: 1000px) {
  .workspace {
    grid-template-columns: 1fr;
  }

  .sidebar {
    order: -1;
  }

  .sidebar-actions {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 800px) {
  .calendar-toolbar { flex-wrap: wrap; }
  .calendar-toolbar .primary { margin-left: 0; }
  .day { min-height: 120px; }
  .grid.two { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .main { padding: 10px; }
  .topbar { padding: 8px 12px; }
  .day { min-height: 90px; padding: 5px; }
  .day-name { font-size: 11px; padding: 8px 2px; }
  .job { padding: 5px; font-size: 10px; }
  .job span { display: none; }
}

/* Pay-period dashboard only. */
#timesheetsPage .pay-period-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 24px;
}
#timesheetsPage .pay-period-toolbar h3 { flex: 1; margin: 0; }
#timesheetsPage .pay-employee {
  background: white; border: 1px solid #dfe4ec; border-radius: 12px;
  padding: 18px; margin-top: 18px;
}
#timesheetsPage .pay-week + .pay-week { border-top: 1px solid #dfe4ec; margin-top: 18px; }
#timesheetsPage .pay-week > h3 { margin: 0; color: #526176; }
#timesheetsPage .pay-day { margin: 14px 0; }
#timesheetsPage .pay-day h5 { margin: 0 0 8px; font-size: 17px; font-weight: 700; color: #1f6feb; }
#timesheetsPage .pay-entry {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 8px; width: 100%; text-align: left; background: #f8fafc;
  border: 1px solid #dfe4ec; padding: 12px; margin: 6px 0; overflow-wrap: anywhere;
}
#timesheetsPage .pay-entry:hover { background: #eaf2ff; }
#timesheetsPage .pay-description { grid-column: 1 / -1; white-space: pre-wrap; }
#timesheetsPage .pay-hours-total { font-size: 14px; font-weight: 600; line-height: 1.6; }
#timesheetsPage .pay-scoreboard-summary { border-bottom: 1px solid #dfe4ec; padding-bottom: 8px; }
#timesheetsPage .pay-scoreboard-summary h4 { font-size: 20px; margin: 0 0 8px; }
#timesheetsPage .pay-scoreboard-summary p { margin: 6px 0; }
#timesheetsPage .pay-scoreboard-total { font-size: 26px; font-weight: 700; color: #1f6feb; }
#timesheetsPage .pay-entry-date { grid-column: 1 / -1; color: #526176; }
#timesheetsPage .pay-period-summary { margin-top: 18px; }

#timesheetsPage .pay-approval { margin: 16px 0; padding: 14px; background: white; border: 1px solid #dfe4ec; border-radius: 8px; }
#timesheetsPage #payApprovalStatus { font-weight: 700; }
#timesheetsPage #approvePayPeriodBtn:disabled { opacity: .6; cursor: default; }

#timesheetsPage .pay-period-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 175px), 1fr));
  grid-auto-flow: row;
  gap: 8px;
  margin: 16px 0;
}
#timesheetsPage .pay-overview-day {
  min-width: 0;
  padding: 10px;
  background: white;
  border: 1px solid #dfe4ec;
  border-radius: 8px;
}
#timesheetsPage .pay-overview-day h4 {
  margin: 0 0 8px;
  font-size: 14px;
  color: #1f6feb;
}
#timesheetsPage .pay-overview-employee {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin: 5px 0;
  font-size: 13px;
}
#timesheetsPage .pay-overview-employee span { min-width: 0; overflow-wrap: anywhere; }
#timesheetsPage .pay-overview-employee strong { white-space: nowrap; }
#timesheetsPage .pay-overview-empty { margin: 0; font-size: 12px; color: #687386; }

.payroll-email-panel { padding: 0 22px 22px; }
.payroll-email-panel > label { margin: 12px 0; }
.payroll-email-body { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; background: #f8fafc; padding: 12px; border-radius: 8px; }
.payroll-send-confirm input { width: auto; margin: 0 6px 0 0; }
#confirmSendAccountantBtn:disabled { opacity: .6; cursor: not-allowed; }

.address-fields { border: 1px solid #dfe4ec; border-radius: 8px; padding: 12px; display: grid; gap: 10px; }
.address-fields legend { font-weight: 600; }
.inquiry-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); grid-auto-flow: row; gap: 8px; margin: 12px 0 24px; max-height: 420px; overflow-y: auto; }
.inquiry-overview-day { background: white; border: 1px solid #dfe4ec; border-radius: 8px; padding: 10px; min-width: 0; }
.inquiry-overview-day h4 { color: #1f6feb; margin: 0 0 8px; }
.inquiry-overview-link { display: block; width: 100%; text-align: left; background: #f1f5f9; color: #233349; padding: 8px; margin: 6px 0; white-space: normal; overflow-wrap: anywhere; }
.inquiry-received { display: block; font-weight: 700; color: #1f6feb; }
.inquiry-age { display: block; font-weight: 700; }
.inquiry-card.follow-up-due, .inquiry-overview-link.follow-up-due { background: #fff3df; border: 2px solid #ba6400; color: #703b00; }
#timesheetsPage button.pay-overview-employee { width: 100%; color: #233349; background: #f1f5f9; padding: 6px; text-align: left; }
#timesheetsPage button.pay-overview-employee:hover, .inquiry-overview-link:hover { background: #dceaff; }

#inquiryModal button:disabled { opacity: .6; cursor: default; }

/* Calendar dates keep seven weekday columns; narrow screens scroll instead of reordering days. */
.calendar-scroll { min-width: 0; overflow-x: auto; padding: 3px; }
.calendar-window-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; }
.calendar-window-toolbar h3 { flex: 1; margin: 8px; font-size: 16px; }
.calendar, #timesheetsPage .pay-period-overview, .inquiry-overview {
  grid-template-columns: repeat(7, minmax(0, 1fr)); min-width: 770px; grid-auto-flow: row;
}
.inquiry-overview { max-height: none; overflow: visible; }
.calendar-weekday { padding: 8px 3px; text-align: center; font-size: 12px; font-weight: 700; background: #edf1f7; color: #38475a; }
.calendar-weekday:first-child, .calendar-weekday:nth-child(7) { color: #a32424; background: #ffebeb; }
.calendar-padding { background: #edf1f7; border-radius: 6px; min-height: 40px; }
.inquiry-overview-day { min-height: 125px; }
#timesheetsPage .pay-overview-day { padding: 8px; }
.calendar-date-link { background: transparent; color: #1f6feb; font-weight: 700; padding: 4px; text-align: left; font-size: 14px; }
.calendar-date-link:hover { text-decoration: underline; }
.day.calendar-weekend, .day.calendar-holiday,
.inquiry-overview-day.calendar-weekend, .inquiry-overview-day.calendar-holiday,
#timesheetsPage .pay-overview-day.calendar-weekend, #timesheetsPage .pay-overview-day.calendar-holiday {
  background: #fff0f0; border-top: 3px solid #c64141;
}
.calendar-holiday-label { font-size: 11px; font-weight: 700; color: #a32424; margin: 3px 0 7px; overflow-wrap: anywhere; }
.calendar-today { box-shadow: inset 0 0 0 2px #426dc8; }
.job.job-type-repair, .inquiry-overview-link.job-type-repair { background: #ffe0e0; border-left: 5px solid #b42318; color: #751b16; }
.job.job-type-install, .inquiry-overview-link.job-type-install { background: #dceaff; border-left: 5px solid #1f6feb; color: #143d7e; }
.job.job-type-unset { background: #eef0f3; border-left-color: #7b8798; }
.job.job-type-repair span { color: #751b16; }
.job.job-type-install span { color: #143d7e; }
.job { cursor: grab; }
.job:active { cursor: grabbing; }
.inquiry-card.job-type-repair { border-left: 5px solid #b42318; }
.inquiry-card.job-type-install { border-left: 5px solid #1f6feb; }
.inquiry-overview-link.follow-up-due { outline: 2px solid #ba6400; outline-offset: -2px; }
.job-type-selector { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; border: 0; padding: 0; margin: 0 0 18px; }
.job-type-selector legend { font-size: 16px; font-weight: 700; margin-bottom: 10px; }
.type-option { position: relative; cursor: pointer; }
.type-option input { width: auto; margin: 0 6px 0 0; }
.type-option span { display: inline-block; padding: 8px; border: 1px solid #b8c2cf; border-radius: 6px; }
.type-option input:checked + span { background: #ffe0e0; border-color: #b42318; color: #751b16; }
.type-option input[value="Install"]:checked + span { background: #dceaff; border-color: #1f6feb; color: #143d7e; }
/* An independent overlay leaves permanent holiday, type, follow-up and selection styles intact. */
.navigation-highlight { position: relative; }
.navigation-highlight::after { content: ''; pointer-events: none; position: absolute; inset: 0; z-index: 3; border: 3px solid #ce8700; border-radius: inherit; background: rgba(255,216,76,.20); animation: navigation-target-fade 2.5s ease-out forwards; }
@keyframes navigation-target-fade { 0%, 65% { opacity: 1; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .navigation-highlight::after { animation: none; } }

/* Service is green; repair remains red and install blue, independently of day styling. */
.job.job-type-service, .inquiry-overview-link.job-type-service { background: #dcfce7; border-left: 5px solid #15803d; color: #14532d; }
.job.job-type-service span { color: #14532d; }
.inquiry-card.job-type-service { border-left: 5px solid #15803d; }
.type-option input[value="Service"]:checked + span { background: #dcfce7; border-color: #15803d; color: #14532d; }

.emails-toolbar { display:flex; align-items:center; gap:14px; margin:16px 0; }
.emails-workspace { display:grid; grid-template-columns:minmax(260px, 340px) minmax(0,1fr); gap:20px; align-items:start; }
.email-list-pane, .email-message-pane { background:white; border:1px solid #dfe3e9; border-radius:10px; padding:16px; min-width:0; }
.email-list-pane { max-height:75vh; overflow:auto; }
.email-list-item { display:block; width:100%; text-align:left; background:#f7f8fb; color:#263445; padding:12px; margin-bottom:10px; border:1px solid #dfe3e9; overflow-wrap:anywhere; }
.email-list-item span,.email-list-item small { display:block; margin-top:6px; }
.email-list-item p { font-size:12px; margin-bottom:0; }
.email-unread { border-left:4px solid #2563eb; }
.email-selected { outline:2px solid #2563eb; background:#edf4ff; }
.email-body { font-family:inherit; white-space:pre-wrap; overflow-wrap:anywhere; max-height:55vh; overflow:auto; line-height:1.55; padding:14px; background:#f8fafc; border:1px solid #e2e8f0; }
#emailReviewForm { border-top:1px solid #dfe3e9; margin-top:24px; padding-top:16px; }
#emailMatches { margin:12px 0; color:#475569; }
@media(max-width:800px) { .emails-workspace { grid-template-columns:1fr; } .email-list-pane { max-height:40vh; } }

.mail-client-layout { grid-template-columns:150px minmax(250px,320px) minmax(0,1fr); gap:16px; }
.mail-folders { display:flex; flex-direction:column; gap:8px; }
.mail-folders button { text-align:left; overflow-wrap:anywhere; }
.mail-folders button.active { background:#dceaff; color:#143d7e; box-shadow:inset 3px 0 #2563eb; }
.mail-action-bar { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
#mailMessageAttachments { display:flex; flex-direction:column; gap:8px; margin:12px 0; overflow-wrap:anywhere; }
.mail-composer-card { width:min(850px,96vw); display:flex; flex-direction:column; overflow:hidden; }
.mail-composer-card .modal-header { flex-shrink:0; }
#mailComposerContext { margin:12px 22px; flex-shrink:0; }
#mailComposerForm { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.mail-composer-fields { border:0; padding:0 22px; margin:0; min-width:0; overflow:auto; }
#mailComposerStatus { margin:10px 22px; flex-shrink:0; }
#mailComposerForm .form-actions { margin:0; padding:12px 22px; flex-shrink:0; border-top:1px solid #e5e9ef; }
.mail-composer-fields details { margin-bottom:16px; }
.mail-composer-fields summary { color:#2563eb; cursor:pointer; margin-bottom:12px; }
.mail-attachment-row { display:flex; align-items:center; gap:12px; margin:8px 0; overflow-wrap:anywhere; }
.mail-attachment-row span { flex:1; }
@media(max-width:1100px) { .mail-client-layout { grid-template-columns: minmax(240px,300px) minmax(0,1fr); } .mail-folders { grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; } .mail-folders input,.mail-folders .hint { display:none; } }
@media(max-width:750px) { .mail-client-layout { grid-template-columns:1fr; } .mail-folders { grid-column:1; } }
.files-workspace {display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:24px;align-items:start}
.project-card {width:min(900px,95vw)}
.project-padding {padding:18px 22px}
.project-padding form {margin-bottom:20px}
.project-padding details {margin-top:20px}
.project-choice {display:block;width:100%;text-align:left;margin:10px 0;white-space:pre-line;overflow-wrap:anywhere}
#filesProjectDetail {background:white;padding:22px;border:1px solid #dfe3e9;border-radius:12px;min-width:0}
.project-file-row {padding:12px 0;border-bottom:1px solid #e5e9ef;overflow-wrap:anywhere}
.project-file-row button,.project-file-row a {margin:6px 8px 0 0;display:inline-block}
.project-email-toolbar {display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0}
.project-file-row small {display:block;color:#657084;margin-top:6px}
#projectChoices {max-height:28vh;overflow:auto}
#mailSearchForm {min-width:0}
#mailSearchForm input {display:block!important;width:100%;box-sizing:border-box}
#mailSearchForm button {margin:4px 0}
@media(max-width:750px){.files-workspace{grid-template-columns:1fr}}
#mailAttachmentPanel {background:#f5f8fc;border:1px solid #dce4ef;border-radius:8px;padding:14px;margin:14px 0}
#mailAttachmentPanel h4 {margin:0 0 10px}
.attachment-choice {display:grid;grid-template-columns:20px minmax(0,1fr);gap:6px 10px;align-items:start;padding:7px 0;font-weight:normal;overflow-wrap:anywhere}
.attachment-choice input {width:auto;margin:3px 0 0}
.attachment-choice small {grid-column:2;color:#46634b}
.attachment-actions {display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-top:12px}
.attachment-actions label {margin:0;min-width:180px;flex:1}
.attachment-actions select {margin:4px 0 0}
.attachment-preview-image {display:block;max-width:100%;height:auto;margin:auto}
#attachmentPreviewBody {overflow:auto;max-height:70vh}

.preview-navigation{display:flex;align-items:center;gap:12px;flex-wrap:wrap;position:sticky;top:0;background:white;padding:8px 0}.attachment-choice small{white-space:pre-line}.project-file-row .attachment-choice{margin:0}.attachment-preview-image{max-width:100%}

.inquiry-drag-handle { cursor:grab; touch-action:none; user-select:none; }
.inquiry-drag-handle.inquiry-dragging { cursor:grabbing; }

.inquiry-planning-draggable { cursor:grab; touch-action:none; user-select:none; }
.inquiry-planning-dragging { opacity:.55; cursor:grabbing; }
.inquiry-overview-day.inquiry-planning-target { outline:3px solid #2563eb; outline-offset:-3px; }
.inquiry-planning-date { padding:3px 6px; margin-bottom:5px; font-size:11px; }

#employeesList small, #jobAssignmentSelectors small {display:block;color:#526176;font-size:12px;line-height:1.5;}
#employeeMessagePreview {white-space:pre-wrap;overflow-wrap:anywhere;}
#employeeNotificationHistory {max-height:400px;overflow:auto;font-size:13px;}
#employeeNotificationHistory section {border-top:1px solid #dfe4ec;padding:8px 0;}

.command-list {height:420px;overflow-y:auto;overscroll-behavior-x:contain;overscroll-behavior-y:auto;display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.command-list.hidden {display:none;}
.command-list .command-card {flex:none;min-height:126px;}
.command-card[data-record-kind="inquiry"] {--command-source-color:#c2680a;border-left-color:var(--command-source-color);}
.command-card[data-record-kind="job"] {--command-source-color:#1f6feb;border-left-color:var(--command-source-color);}
.command-card p {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.inquiries-header h3 {font-size:15px;margin:0;}
.inquiries-header button {padding:5px 9px;}
@keyframes inquiry-alarm {0%,100% {box-shadow:inset 0 0 0 2px #c27812;background-color:#fff6e5;}50% {box-shadow:inset 0 0 0 3px #df8a18;background-color:#ffe1a6;}}
.inquiry-alarm-pulse {animation:inquiry-alarm 2s ease-in-out infinite;}
@media(prefers-reduced-motion:reduce){.inquiry-alarm-pulse{animation:none;outline:2px solid #c27812;background:#fff0cc;}}
/* Preserve record identity during the due pulse, independently of status. */
@keyframes command-source-alarm {0%,100% {box-shadow:inset 0 0 0 1px var(--command-source-color);background-color:#f8fafc;}50% {box-shadow:inset 0 0 0 3px var(--command-source-color);background-color:#eef2f6;}}
.command-card.inquiry-alarm-pulse {animation-name:command-source-alarm;}
@media(prefers-reduced-motion:reduce){.command-card.inquiry-alarm-pulse{animation:none;outline-color:var(--command-source-color);background:#f8fafc;}}
#inquiryReminderSection {border-top:1px solid #dfe4ec;padding-top:12px;margin-bottom:20px;}

.inquiry-search-toolbar {display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.inquiry-search-toolbar input {flex:1;min-width:180px;max-width:420px;width:320px;}

.inquiry-detail-open {display:block;width:100%;padding:0;border:0;border-radius:0;background:transparent;color:inherit;text-align:left;font:inherit;}
.inquiry-email {margin-top:10px;}

button.calendar-weekday {border:0;border-radius:0;cursor:pointer;}
button.calendar-weekday:hover {text-decoration:underline;}

.contacts-toolbar {display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.contacts-toolbar input {width:320px;max-width:100%;}
.contacts-list {display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;}
.contact-card {padding:16px;background:white;border:1px solid #dfe4ec;border-radius:10px;overflow-wrap:anywhere;}
.contact-card h3 {margin:0 0 10px;}
.contact-card > div {margin-top:4px;}
.contact-actions {display:flex;gap:8px;padding-top:12px;}
.contact-fields {border:0;padding:0;margin:0;display:grid;gap:8px;}

.contact-actions {flex-wrap:wrap;}
.contact-actions button {padding:8px;font-size:13px;}
#contactShareModal .modal-card {width:min(480px,100%);}

/* Saved Inquiry state; opening/configuring a control does not change its color. */
.inquiry-state-action {background:#a52c36;color:#fff;border:1px solid #88232c;}
.inquiry-state-action.is-active {background:#237345;border-color:#185b34;}
.inquiry-state-action:focus-visible {outline:3px solid #427ac6;outline-offset:3px;}
.inquiry-calendar-status {display:flex;justify-content:flex-end;gap:3px;margin:2px 0 9px;}
.inquiry-calendar-status button {padding:2px 5px;min-width:24px;font-size:12px;background:#fff;color:#475569;border:1px solid #cbd5e1;border-radius:4px;}
.inquiry-calendar-status button[aria-pressed="true"] {background:#1e4779;color:#fff;border-color:#1e4779;box-shadow:0 0 0 1px #1e4779;font-weight:700;}

.inquiry-status-wording, .job .inquiry-status-wording {display:block;color:#000;font-weight:600;}

#jobStatusControls .job-calendar-status {justify-content:flex-start;}
.command-card .inquiry-status-wording {color:#000;font-weight:600;}
.job-upload-control::file-selector-button {background:#a52c36;color:#fff;border:1px solid #88232c;border-radius:6px;padding:10px 14px;cursor:pointer;margin-right:10px;}
.job-upload-control.is-active::file-selector-button {background:#237345;border-color:#185b34;}

#mailComposeBody {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:400;font-size:16px;line-height:1.5;}
.mail-message-actions {display:flex;gap:6px;flex-wrap:wrap;margin:8px 0;}
.mail-message-actions button {padding:5px 9px;font-size:13px;}
#mailComposer {z-index:12;}
.mail-message-header {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.mail-message-header > div:first-child {min-width:0;overflow-wrap:anywhere;}
.mail-message-header .mail-message-actions {justify-content:flex-end;margin:0;flex-shrink:0;}
@media(max-width:650px){.mail-message-header{flex-wrap:wrap;}.mail-message-header .mail-message-actions{margin-left:auto;}}
.mail-conversation-card {border:1px solid #dfe4ec;border-radius:8px;background:#fff;padding:14px;margin:12px 0;}
.mail-conversation-card h3 {margin:0 0 6px;font-size:15px;}
.mail-conversation-card .email-body {margin:12px 0;font-weight:400;}
.mail-conversation-card details {margin-top:8px;}
.mail-conversation-card summary {cursor:pointer;color:#526176;font-size:13px;}

.general-reminder-card {background:white;border:1px solid #dfe4ec;border-radius:10px;padding:14px;margin:12px 0;max-width:850px;}
.general-reminder-card p {margin:0 0 10px;white-space:pre-wrap;overflow-wrap:anywhere;}
#generalReminderFields {border:0;padding:0;margin:0;} #generalReminderDescription {width:100%;box-sizing:border-box;}
#generalReminderSave.general-reminder-active {background:#167440;color:white;}
#generalReminderSave.general-reminder-inactive {background:#b42318;color:white;}
.command-card[data-record-kind="general_reminder"] {--command-source-color:#7c3aed;border-left-color:var(--command-source-color);}

.customer-lookup { position:relative; }
.customer-suggestions { position:absolute; top:100%; left:0; right:0; z-index:25; max-height:240px; overflow-y:auto; background:white; border:1px solid #cbd5e1; border-radius:6px; box-shadow:0 4px 12px #0002; }
.customer-suggestions button { display:block; width:100%; text-align:left; white-space:normal; border:0; border-radius:0; background:white; color:#172033; padding:10px; }
.customer-suggestions button:hover,.customer-suggestions button[aria-selected="true"] { background:#e8f0fb; }

.project-summary { display:block; text-align:left; border-left:5px solid #94a3b8; }
.project-summary > strong { display:block; font-size:1.1rem; }
.project-date { display:block; font-size:.85rem; color:#64748b; margin:4px 0 9px; }
.project-customer-line { font-weight:400; font-size:.9rem; line-height:1.5; }
.project-summary.project-type-service { border-left-color:#16a34a; }
.project-summary.project-type-install { border-left-color:#2563eb; }
.project-summary.project-type-repair { border-left-color:#dc2626; }

/* Schedule utilities share existing Notes/Reminder records; calendar geometry is untouched. */
.main:has(#homePage:not(.hidden)) { max-width:1900px; }
#workspace.schedule-workspace { grid-template-columns:280px minmax(0,1fr) 280px; gap:18px; }
.schedule-calendar,.schedule-utilities { min-width:0; }
.schedule-utilities { display:grid; gap:16px; }
.utility-card { background:white; border:1px solid #dfe4ec; border-radius:12px; padding:14px; min-width:0; }
.utility-card h3 { margin:0 0 10px; }
.utility-card fieldset { border:0; padding:0; margin:0; min-width:0; }
.utility-card textarea { min-height:80px; resize:vertical; }
.utility-card select,.utility-card input { min-width:0; max-width:100%; }
.utility-card .contact-actions { margin-top:10px; }
.utility-card p:empty { display:none; }
.utility-card details { margin-top:8px; }
.utility-interval { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.reminder-notes-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; align-items:start; }
.general-note-card { background:white; border:1px solid #dfe4ec; border-radius:10px; padding:14px; margin:12px 0; }
.general-note-card p { white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:1350px) {
 #workspace.schedule-workspace { grid-template-columns:minmax(0,1fr) 280px; }
 .schedule-calendar { grid-column:1; grid-row:1; }
 #workspace .sidebar { grid-column:2; grid-row:1; order:0; }
 .schedule-utilities { grid-column:1 / -1; grid-row:2; grid-template-columns:1fr 1fr; }
}
@media(max-width:850px) {
 #workspace.schedule-workspace,.reminder-notes-workspace { grid-template-columns:minmax(0,1fr); }
 .schedule-calendar,#workspace .sidebar,.schedule-utilities { grid-column:1; grid-row:auto; }
 .schedule-utilities { grid-template-columns:1fr; }
 .schedule-calendar .calendar { min-width:650px; }
}

/* Match section padding (18px), toolbar line height + button padding (20px),
   bottom gap (16px), and scroll inset (3px). Stacked columns keep their spacing. */
@media (min-width:1351px) {
 #workspace .schedule-utilities { margin-top:calc(1lh + 57px); }
}
@media (min-width:851px) {
 #workspace.schedule-workspace > .sidebar { margin-top:calc(1lh + 57px); }
}

/* Project Notes use one compact editor; longer text scrolls inside it. */
.project-note-editor,.project-note-choices { width:100%; max-width:70ch; }
.project-note-text { box-sizing:border-box; line-height:1.5; height:calc(6em + 22px); min-height:0; max-height:calc(6em + 22px); resize:none; overflow-y:auto; overflow-wrap:anywhere; }
.project-note-choices { display:flex; flex-wrap:wrap; gap:6px; }
.project-note-choices button { max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.project-note-choices button[aria-pressed="true"] { outline:2px solid #2563eb; outline-offset:1px; }

.inquiry-command-name { padding:0; background:transparent; color:inherit; font-weight:700; text-align:left; text-decoration:underline; }

/* Shared opt-in working windows: fixed header, one scrollable existing body. */
.modal[data-pbms-window] { grid-template-columns:minmax(0,1fr); }
.pbms-window-card { display:flex; flex-direction:column; overflow:hidden; max-height:calc(100dvh - 40px); max-width:100%; }
.pbms-window-card > .modal-header { flex-shrink:0; position:relative; gap:12px; }
.pbms-window-body { min-height:0; overflow:auto; overscroll-behavior-x:contain; overscroll-behavior-y:auto; }
.pbms-window-controls { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.pbms-window-toggle { display:grid; place-items:center; width:28px; height:28px; padding:0; border:1px solid #ccd3df; border-radius:50%; background:white; color:#374151; font-size:20px; line-height:1; }

/* Schedule working windows leave uncovered workspace controls accessible. */
.modal[data-pbms-floating="true"] { pointer-events:none; background:transparent; }
.modal[data-pbms-floating="true"] > .modal-card { pointer-events:auto; }

/* QuickBooks views reuse PBMS grid, button and movable-modal components. */
.qbo-transaction-card{display:block;width:100%;text-align:left;margin:8px 0;padding:12px;}
.qbo-line{border:1px solid #d5dde5;border-radius:8px;padding:12px;margin:12px 0;display:grid;gap:8px;}

/* Estimate editor: keep PBMS controls, with a horizontally scrollable line table. */
.qbo-customer-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;}
.qbo-mapping {margin:12px 0;}
.qbo-mapping summary {cursor:pointer;font-weight:600;}
.qbo-transaction-editor .project-card {width:min(1120px,95vw);}
.qbo-lines-scroll {overflow-x:auto;}
.qbo-transaction-editor .qbo-line-head,.qbo-transaction-editor .qbo-transaction-line {display:grid;grid-template-columns:minmax(150px,1.4fr) minmax(170px,2fr) 80px 100px 95px minmax(125px,1fr) 90px;gap:10px;min-width:900px;align-items:start;padding:12px;}
.qbo-line-head {background:#edf2f7;font-weight:600;border-radius:6px;}
.qbo-transaction-editor .qbo-transaction-line {margin:0;border-radius:0;border-width:0 0 1px;}
.qbo-transaction-line label {min-width:0;font-size:12px;}
.qbo-transaction-line input,.qbo-transaction-line select,.qbo-transaction-line textarea {width:100%;box-sizing:border-box;}
.qbo-transaction-line output {display:block;padding-top:10px;font-size:15px;font-variant-numeric:tabular-nums;}
.qbo-transaction-line button {align-self:center;}
.qbo-transaction-footer {display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;margin-top:18px;}
.qbo-totals p {display:flex;justify-content:space-between;gap:16px;}
.qbo-grand-total {border-top:1px solid #d5dde5;padding-top:12px;font-size:18px;}

#accountingFields {min-width:0;border:0;padding:0;margin:0;}

.pbms-form-feedback {padding:10px 14px;margin:8px 12px;border:1px solid #86c89b;border-radius:8px;background:#eaf8ee;color:#176b35;font-size:16px;font-weight:700;}
.pbms-form-error {background:#fff0f0;color:#9b2424;border-color:#e1aaaa;}
.modal-header .pbms-form-feedback {flex:1;text-align:center;}

.pbms-command-highlight {outline:3px solid #1f6feb;outline-offset:2px;animation:pbms-command-pulse .6s ease-in-out 3;}
@keyframes pbms-command-pulse {50% {box-shadow:0 0 0 6px rgba(31,111,235,.28);}}
@media(prefers-reduced-motion:reduce){.pbms-command-highlight{animation:none;}}
.pbms-command-notice {position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:1000;padding:10px 16px;border-radius:8px;background:#18212f;color:white;max-width:calc(100vw - 32px);box-shadow:0 4px 16px #0002;pointer-events:none;}

.schedule-contact-search { flex: 1 1 180px; min-width: 0; margin: 0; }
.schedule-contact-search input { width: 100%; min-width: 0; font-size: 18px; }
.contact-select { padding: 0; background: transparent; color: inherit; font: inherit; text-align: left; text-decoration: underline; text-underline-offset: 3px; }
.contact-card.contact-selected { outline: 2px solid #1f6feb; outline-offset: 2px; }

.schedule-contact-search { position: relative; }
.schedule-contact-results { position: absolute; top: 100%; left: 0; right: 0; z-index: 30; max-height: 280px; overflow-y: auto; background: white; border: 1px solid #ccd4df; border-radius: 8px; padding: 6px; box-shadow: 0 4px 12px #0002; }
.schedule-contact-results button { display: block; width: 100%; text-align: left; background: white; color: #111; }
.schedule-contact-results button:hover, .schedule-contact-results button[aria-selected="true"] { background: #e8f0fe; }

.general-note-card.saved-entry-selected, .general-reminder-card.saved-entry-selected { outline: 2px solid #1f6feb; outline-offset: -2px; background: #e8f0fe; }
.general-note-card[tabindex], .general-reminder-card[tabindex] { cursor: pointer; }

/* Shared contained history panels, following the Schedule command-list pattern. */
.saved-entry-list { box-sizing: border-box; height: 280px; overflow-y: auto; overscroll-behavior-x: contain; overscroll-behavior-y: auto; margin-top: 10px; padding: 8px; border: 1px solid #dfe4ec; border-radius: 10px; background: #f8fafc; }
.saved-entry-list .general-note-card, .saved-entry-list .general-reminder-card { min-width: 0; }
.saved-entry-list p { white-space: pre-wrap; overflow-wrap: anywhere; }

.reminder-notes-workspace .entry-column-header { margin-bottom: 16px; }
.reminder-notes-workspace .entry-column-header h2 { margin: 0 0 12px; font-size: 22px; font-weight: 700; line-height: 1.3; }

.project-note-choices.saved-entry-list { display: block; }
.project-note-choices.saved-entry-list button { display: block; width: 100%; margin-bottom: 8px; white-space: pre-wrap; overflow-wrap: anywhere; text-align: left; }
.entry-column-header h3 { font-size: 22px; font-weight: 700; margin: 0 0 12px; }
.entry-column-header { margin-bottom: 16px; }

.qbo-environment-panel { border: 2px solid #cbd5e1; border-radius: 10px; padding: 16px; margin-bottom: 16px; }
.qbo-environment-badge { display: inline-block; padding: 6px 10px; background: #e8f0fe; color: #111; border-radius: 6px; }
.qbo-live-badge { background: #ffe0b2; border: 2px solid #9a4500; color: #111; }

/* Deliberately separate from the sandbox editor; reuse its line and totals layout. */
.qbo-live-test {margin-top:20px;padding:16px;border:2px solid #a82727;border-radius:8px;background:#fffafa;}
.qbo-live-test fieldset {border:0;margin:0;padding:0;min-width:0;}
#liveTestRecipient {font-weight:700;}
#liveTestConfirmation,#liveTestSaved {margin-top:16px;padding:14px;border:1px solid #a82727;border-radius:6px;}
#liveTestConfirmationText {white-space:pre-line;font-weight:600;}

/* Employee permissions are also enforced server-side; these are presentation aids. */
.employee-workday-row { display:flex; flex-wrap:wrap; gap:10px; align-items:end; margin:12px 0; }
.employee-workday-row label { flex:1 1 130px; }
.pbms-field-view .sidebar,.pbms-field-view .schedule-utilities,.pbms-field-view .job-resize-handle { display:none; }
.pbms-no-integration-admin .qbo-environment-panel > a,.pbms-no-integration-admin .qbo-environment-panel > button,.pbms-no-integration-admin .qbo-environment-panel > details { display:none; }
[hidden] { display:none !important; }
.pbms-field-view .schedule-workspace { grid-template-columns:minmax(0,1fr); }

/* Field keeps the existing calendar, without the hidden Admin side tracks. */
.pbms-field-view #workspace.schedule-workspace { grid-template-columns: minmax(0,1fr); width: 90%; margin-inline: auto; }
.pbms-field-view .schedule-calendar { min-width: 0; }
.pbms-field-view #calendar { min-width: 0; grid-template-columns: repeat(7,minmax(0,1fr)); }
.pbms-field-view .job.assigned-to-me { outline: 3px solid #2563eb; outline-offset: -3px; }
.assigned-label { font-weight: 700; }
@media(max-width:850px){ .pbms-field-view #workspace.schedule-workspace { width:100%; } }

.timesheet-subtabs {display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
#employeeAutomation {max-width:720px;background:white;padding:20px;border-radius:12px;}
#employeeAutomation input[type=checkbox] {width:auto;accent-color:#1f6feb;}
#employeeAutomation input[type=time] {max-width:160px;}
.pbms-full-workspace {position:fixed;inset:0;z-index:9;background:#f5f7fb;overflow:auto;padding:24px;}
.pbms-full-workspace > header {display:flex;justify-content:space-between;align-items:center;gap:16px;}
.pbms-full-workspace > section {max-width:1200px;margin:auto;}
.pbms-full-workspace .saved-entry-list {height:auto;max-height:none;overflow:visible;}
.pbms-full-workspace .general-note-card p, .pbms-full-workspace .general-reminder-card p {max-height:none;overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere;}
@media(max-width:600px){.pbms-full-workspace {padding:12px;}}

.pbms-fullscreen-open #appScreen > .topbar, .pbms-fullscreen-open #appScreen > .main {visibility:hidden;}

#standaloneWorkDays {display:flex;flex-wrap:wrap;gap:8px 16px;margin:12px 0;border:1px solid #dfe4ec;border-radius:8px;}
#standaloneWorkDays input {width:auto;margin:0 6px 0 0;accent-color:#1f6feb;}
#qboContactSyncStatus {white-space:pre-wrap;}

/* Keep optional sync diagnostics bounded within the Contacts workspace. */
#qboContactSyncResults { margin-block: 12px; min-width: 0; }
#qboContactSyncDetails { max-height: 240px; overflow-y: auto; white-space: pre-wrap; overflow-wrap: anywhere; margin-top: 8px; }

/* Same header row, with a compact loopback-only development notice. */
#localDevelopmentWarning { flex:1; text-align:center; color:#8a2900; background:#fff0d6; border:1px solid #cf6800; border-radius:6px; padding:8px 10px; font-size:clamp(11px,1.05vw,15px); line-height:1.3; }
#localDevelopmentWarning[hidden] { display:none; }
@media(max-width:760px) { .topbar:has(#localDevelopmentWarning:not([hidden])) { flex-wrap:wrap; } #localDevelopmentWarning { order:3; flex-basis:100%; } }

.reminder-description { width:100%; min-height:100px; resize:vertical; font:inherit; line-height:1.5; }
.general-reminder-card > p { white-space:pre-wrap; overflow-wrap:anywhere; }
.general-reminder-card .contact-actions { margin-top:8px; }

.stripe-consent-card {max-width:780px;margin:32px auto;padding:24px;background:white;}
.stripe-terms {white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.5;}

/* Project origin is a view of existing folders, not a second folder system. */
.project-categories{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}
.project-categories button{flex:1;min-width:200px;font-weight:700}
.project-categories button[aria-pressed="true"]{background:#1f6feb;color:#fff;box-shadow:inset 0 -3px 0 rgba(0,0,0,.2)}
#filesOnlineSettings{margin-bottom:16px}

#f280-settings .f280-area-rates{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}#f280-settings .f280-area-rates label{display:grid;gap:5px}#f280-settings{margin-bottom:24px}

.accounting-review-columns{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
@media(max-width:800px){.accounting-review-columns{grid-template-columns:1fr}}

/* Keep the real authorization input prominent and together with its label. */
.invoice-authorization-panel{text-align:left}
.invoice-authorization-panel .invoice-authorization-choice{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:fit-content;max-width:100%;margin:12px 0;cursor:pointer;text-align:left}
.invoice-authorization-panel .invoice-authorization-choice input[type="checkbox"]{width:28px;height:28px;min-width:28px;flex:0 0 28px;margin:0;accent-color:var(--pipeology-primary,#126195);cursor:pointer}
.invoice-authorization-panel .invoice-authorization-choice strong{font-weight:700}
.invoice-authorization-panel .invoice-authorization-choice:has(input:checked){color:var(--pipeology-primary,#126195)}
.invoice-authorization-panel .invoice-authorization-choice input:focus-visible{outline:3px solid var(--pipeology-primary,#126195);outline-offset:3px}

/* Contain genuine modal boundaries, while floating working forms can chain to the workspace. */
html:has(.modal:not(.hidden):not([data-pbms-floating="true"]),dialog:modal),
body:has(.modal:not(.hidden):not([data-pbms-floating="true"]),dialog:modal) { overflow:hidden; }
.modal:not([data-pbms-floating="true"]) > .modal-card,dialog:modal { overscroll-behavior:contain; }

/* Estimate editor totals: presentation only; amounts retain existing calculators. */
.qbo-transaction-footer>*{min-width:0}
.qbo-totals{padding:20px;background:#f5f8fb;border-radius:10px;min-width:0}
.qbo-totals h3{margin:0 0 18px;font-size:16px;letter-spacing:.04em}
.qbo-totals p{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;margin:12px 0;align-items:baseline}
.qbo-totals p[hidden],#accountingTaxRows[hidden]{display:none}
.qbo-totals strong{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.qbo-totals .qbo-grand-total{margin-top:18px;padding-top:18px;border-top:1px solid #c7d4df;font-weight:700}
.qbo-grand-total strong{font-size:26px}
#accountingTotalsReview{display:block;margin-top:14px;font-size:12px;line-height:1.5;color:#465565}
#accountingQuoteTaxControls{margin-bottom:18px;font-size:13px}
#accountingQuoteTaxControls details{margin:10px 0}
#accountingQuoteTaxControls label{overflow-wrap:anywhere}
@media(max-width:600px){.qbo-transaction-footer{grid-template-columns:minmax(0,1fr)}.qbo-totals{padding:14px}.qbo-grand-total strong{font-size:23px}.qbo-totals p{gap:10px}}
