/* Keep the shared office scale above legacy page rules loaded after the base. */
.office-ui .record-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem 1rem; }
.office-ui .record-heading > :first-child { min-width: 0; overflow-wrap: anywhere; }
.office-ui .record-meta { margin-inline-start: auto; color: var(--muted); font-size: .8rem; overflow-wrap: anywhere; }
:root .office-ui {
  --register-radius: 2px;
  --control-height: 2.75rem;
  --control-font: .875rem;
  --icon-action-size: 2rem;
}
:root .office-ui :is(button, .ui-button, .secondary-action, .more, .record-edit-link,
  .record-actions a, .row-action, .add-person-button,
  .wizard-next-action, .wizard-support-action, .documents-download,
  a.new-case, .primary-button, .pagination a, .pagination button,
  .current-result-action, .primary-action, .download-action, .download-button,
  .case-card-action, .case-card-admin-action, .bundle-open-button, .error-action) {
  min-height: var(--control-height); border-width: 1px; border-radius: var(--register-radius);
  padding: .6rem .85rem; box-shadow: none; font-size: var(--control-font);
  font-weight: 650; line-height: 1.35; text-decoration: none;
}
:root .office-ui :is(.ui-button, .secondary-action, .more, .record-edit-link, .row-action,
  .documents-download) {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  border: 1px solid var(--line); background: var(--surface); color: var(--green-dark);
}
:root .office-ui :is(.ui-button, .secondary-action, .more, .record-edit-link, .row-action,
  .documents-download):hover {
  border-color: var(--green); background: var(--green-soft);
}
:root .office-ui .ui-button.is-primary { border-color: var(--green); background: var(--green); color: #fff; }
:root .office-ui .ui-button.is-primary:hover { background: var(--green-dark); }
:root .office-ui button.ui-danger { border-color: var(--danger); background: var(--danger); color: #fff; }
:root .office-ui button.ui-danger:hover { filter: brightness(.9); }
:root .office-ui .account-danger .record-edit-link { color: var(--danger); }
:root .office-ui button:hover, :root .office-ui a:hover { transform: none; }
:root .office-ui :is(input:where(:not([type=hidden]):not([type=checkbox]):not([type=radio])), select, textarea) {
  min-height: var(--control-height); border: 1px solid #bdc8d5; border-radius: var(--register-radius);
  padding: .6rem .75rem; background: #fff; color: var(--ink); font-size: var(--control-font);
  font-weight: 450; line-height: 1.4; box-shadow: none;
}
:root .office-ui textarea { min-height: 6rem; }
:root .office-ui .rate-input-wrap { min-height: var(--control-height); border: 1px solid #bdc8d5; border-radius: var(--register-radius); box-shadow: none; }
:root .office-ui .rate-input-wrap input { min-height: calc(var(--control-height) - 2px); padding: .6rem .35rem .6rem .75rem; border: 0; border-radius: 0; font-size: var(--control-font); font-weight: 450; }
:root .office-ui .rate-input-wrap:focus-within { border-color: var(--green); outline: 2px solid #87a5f1; outline-offset: 2px; }
:root .office-ui .rate-input-wrap input:focus-visible { outline: none; }
:root .office-ui .rate-input-wrap.has-error { border-color: var(--danger); }
:root .office-ui .rate-input-wrap:has(input:disabled) { background: #edf0f4; }
:root .office-ui :is(input, select, textarea):focus-visible { border-color: var(--green); outline: 2px solid #87a5f1; outline-offset: 2px; }
:root .office-ui :is(input, select, textarea)[aria-invalid=true] { border-color: var(--danger); }
:root .office-ui :is(input, select, textarea):disabled { background: #edf0f4; color: var(--muted); cursor: not-allowed; }
:root .office-ui input[readonly] { background: #f3f5f7; color: var(--muted); }
:root .office-ui input[type=file] { padding: .35rem; }
.office-ui input[type=file]::file-selector-button {
  min-height: 2rem; margin-right: .75rem; padding: .35rem .7rem; border: 1px solid var(--line);
  border-radius: var(--register-radius); background: #edf0f4; color: var(--ink); font: inherit; cursor: pointer;
}
:root .office-ui button:disabled { box-shadow: none; cursor: not-allowed; opacity: .6; }
:root .office-ui [data-submitting] [aria-disabled=true] { cursor: wait; opacity: .65; }
.office-ui [data-submitting-button]::after {
  content: ""; display: inline-block; width: .8em; height: .8em;
  margin-inline-start: .55em; border: 2px solid currentColor;
  border-inline-end-color: transparent; border-radius: 50%; vertical-align: -.1em;
}
@media (prefers-reduced-motion: no-preference) {
  .office-ui [data-submitting-button]::after { animation: office-submit-spin .8s linear infinite; }
}
@keyframes office-submit-spin { to { transform: rotate(360deg); } }
:root .office-ui label { font-size: var(--control-font); font-weight: 650; }
.office-ui :is(.form-actions, .form-inline-actions) { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }
:root .office-ui :is(.form-actions, .form-inline-actions, .page-form-actions, .record-actions) {
  justify-content: flex-start; gap: .65rem;
}
:root .office-ui :is(.form-actions, .form-inline-actions, .page-form-actions, .record-actions) > :is(button, a, form) {
  min-width: 0; max-width: 100%;
}
:root .office-ui :is(.form-actions, .form-inline-actions, .page-form-actions, .record-actions) :is(button, a) {
  max-width: 100%; white-space: normal; overflow-wrap: anywhere;
}
:root .office-ui :is(.page-form-actions, .record-actions) :is(button, a) > span { min-width: 0; }
:root .office-ui .wizard-next-action { min-width: 12rem; }
:root .office-ui .wizard-next-action > strong { font-size: var(--control-font); font-weight: 650; }
:root .office-ui .wizard-next-action .wizard-next-kicker { font-size: .65rem; }
:root .office-ui :is(.switch-field, .toggle-field) { min-height: var(--control-height); padding: .65rem .75rem; background: #f7f9fc; border-color: var(--line); }
:root .office-ui .switch-track { width: 2.8rem; height: 1.6rem; border-radius: var(--register-radius); background: #7a8797; }
:root .office-ui .switch-input:checked + .switch-track { background: var(--green); }
:root .office-ui .switch-track span { width: 1.1rem; height: 1.1rem; left: .25rem; top: .25rem; border-radius: 1px; box-shadow: none; }
:root .office-ui .switch-input:checked + .switch-track span { transform: translateX(1.2rem); }
:root .office-ui :is(.section-number, .decision-number, .valuation-decision-number) { border-radius: var(--register-radius); background: #edf1f7; color: var(--muted); }
:root .office-ui :is(.copy-button, .inventory-copy-button, .bundle-copy-button, .tag-remove, .picker-focus-button, .ol-control button) { min-width: 2rem; min-height: 2rem; padding: .25rem; }
:root .office-ui :is(a, button, span, summary).icon-action,
:root .office-ui .parcel-row-actions :is(a, button).icon-action {
  box-sizing: border-box; width: var(--icon-action-size); min-width: var(--icon-action-size);
  height: var(--icon-action-size); min-height: var(--icon-action-size);
  flex: 0 0 var(--icon-action-size); display: inline-flex; align-items: center;
  justify-content: center; gap: 0; padding: 0; border: 1px solid var(--line);
  border-radius: var(--register-radius); background: var(--surface); color: var(--green-dark);
  line-height: 1; text-decoration: none;
}
:root .office-ui .icon-action svg {
  width: 1rem; height: 1rem; flex: none; fill: none; stroke: currentColor; stroke-width: 2;
}
.building-icon { width: 1.25rem; height: 1.25rem; flex: none; vertical-align: -.2em; }
:root .office-ui .icon-action:hover { border-color: var(--green); background: var(--green-soft); }
:root .office-ui .icon-action:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
:root .office-ui :is(.inventory-copy-button, .bundle-copy-button) { width: 2rem; height: 2rem; max-width: none; max-height: none; flex: none; }
:root .office-ui [data-copy-icon] { font-size: 1.3rem; line-height: 1; }
:root .office-ui .ol-control button { width: 2rem; height: 2rem; padding: 0; }
:root .office-ui .ol-zoom button { font-size: 1.25rem; }
:root .office-ui :is(th, td) { padding: .65rem .75rem; font-size: .875rem; }
:root .office-ui thead th { font-size: .72rem; font-weight: 650; letter-spacing: .045em; }
:root .office-ui tbody th { background: inherit; color: var(--ink); text-transform: none; letter-spacing: normal; }
:root .office-ui :is(.decision-card, .valuation-decision-card, .add-card, .account-card, .issue-report-card, .form-section) { box-shadow: none; border-radius: var(--register-radius); }
:root .office-ui :is(.decision-title, .valuation-decision-title) { display: block; }
:root .office-ui :is(.decision-number, .valuation-decision-number) { display: none; }
.office-ui :is(.decision-title, .valuation-decision-title) .heading-with-help { justify-content: space-between; }
:root .office-ui :is(.decision-title, .valuation-decision-title) h3 { font-size: 1rem; }
:root .office-ui .primary-field { margin-top: .75rem; }
:root .office-ui :is(.settings-section, .valuation-settings) { margin-top: 1.75rem; }
:root .office-ui :is(.step-intro, .page-heading, .detail-heading) { margin-bottom: 1rem; }
:root .office-ui :is(.page-heading, .detail-heading) h1 { font-size: clamp(1.55rem,3vw,2.2rem); }
.office-ui .muted { color: var(--muted); }
.office-ui .section-meta { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem .8rem; margin: .75rem 0; color: var(--muted); font-size: .875rem; }
.office-ui .section-meta > p { margin: 0; }
.office-ui .section-meta > a:last-child:not(:only-child) { margin-left: auto; }
.table-scroll-hint { display: none; }
.office-ui .hint, .office-ui .field-note { margin: .4rem 0; color: var(--muted); font-size: .8rem; }
.office-ui .optional { color: var(--muted); font-size: .8rem; font-weight: 400; }
.office-ui .save-consequence { margin: 1rem 0; color: var(--muted); font-size: .875rem; }
:root .office-ui .record-operations .operation-section { grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); padding: 1.25rem; gap: 1.5rem; }
:root .office-ui .operation-copy h2 { font-size: 1.15rem; }
:root .office-ui .operation-copy > .context-help { margin-top: .5rem; }
:root .office-ui .record-operations .operation-copy { display: grid; grid-template-columns: minmax(0,1fr) auto; align-content: start; align-items: start; gap: .5rem; }
:root .office-ui .record-operations .operation-copy > :is(h2,.context-help) { margin: 0; }
:root .office-ui .record-operations .operation-copy > :not(h2):not(.context-help) { grid-column: 1 / -1; }
:root .office-ui .inventory-review-card { display: block; }
:root .office-ui .inventory-review-copy { margin-bottom: .9rem; padding: 0; border: 0; }
:root .office-ui .inventory-review-copy h2 { font-size: 1rem; }
:root .office-ui :is(.section-heading, .valuation-settings-heading, .rates-card-heading, .panel-heading, .inventory-results-heading, .proposal-export-heading) h2 { font-size: 1.35rem; }
:root .office-ui .summary-grid { gap: 1px; border: 1px solid var(--line); background: var(--line); }
:root .office-ui .summary-card { min-height: 0; justify-content: flex-start; gap: .5rem; padding: .9rem 1rem; border: 0; border-radius: 0; background: var(--surface); }
:root .office-ui .summary-card > strong { font-size: 1.1rem; line-height: 1.35; }
:root .office-ui .summary-card.value-card { background: #f7f9fd; }
:root .office-ui .summary-card.value-card > strong { font-size: 1.5rem; }
:root .office-ui :is(.ownership-card li, .parcel-building-list li) { background: #f1f4f8; }
:root .office-ui .content-section { margin-top: 1.75rem; }
:root .office-ui :is(.record-details, .scratch-details) { margin-top: 1.25rem; }
:root .office-ui :is(.record-details, .scratch-details, .advanced-settings, .inactive-settings, .valuation-advanced, .valuation-inactive, .solve-history, .technical-details, .provenance-details, .grant-details, .explain-card) > summary { min-height: var(--control-height); padding-block: .65rem; font-size: .9rem; }
:root .office-ui :is(.current-result-mark, .readiness-icon, .binding-mark, .publish-mark) { width: 2.5rem; height: 2.5rem; border-radius: var(--register-radius); font-size: 1rem; }
:root .office-ui :is(.auth-form button, .auth-secondary-form button) { min-height: var(--control-height); }
@media (max-width: 43rem) {
  :root .office-ui { --control-font: 1rem; }
  .table-scroll-hint {
    display: flex; align-items: center; gap: .4rem; margin: .75rem 0 .45rem;
    color: var(--muted); font-size: .78rem;
  }
  .table-scroll-hint::before { content: "↔"; color: var(--green-dark); font-weight: 850; }
  :root .office-ui :is(th, td) { font-size: .9rem; }
  :root .office-ui :is(.people-table td, .inventory-table td, .rates-table td) { padding: .25rem 0; }
  :root .office-ui .section-meta > a:last-child { margin-left: 0; }
  :root .office-ui .wizard-next-action { min-width: 0; }
  :root .office-ui .record-operations .operation-section { grid-template-columns: minmax(0,1fr); gap: 1rem; padding: 1rem; }
}
@media (pointer: coarse) {
  :root .office-ui { --control-height: 3rem; --icon-action-size: 2.75rem; }
  :root .office-ui :is(.copy-button, .inventory-copy-button, .bundle-copy-button, .tag-remove, .picker-focus-button, .ol-control button) { min-width: 2.75rem; min-height: 2.75rem; }
}

.office-ui .map-action svg {
  width: 1.15rem; height: 1.15rem; flex: none; fill: none; stroke: currentColor;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}

:root .office-ui .bundle-own-marker {
  width: 1.15rem; height: 1.15rem; display: inline-flex; align-items: center;
  justify-content: center; flex: none; border-radius: var(--register-radius);
  color: var(--green-dark); vertical-align: middle; cursor: help;
}
.bundle-own-marker svg { width: .9rem; height: .9rem; fill: currentColor; }
.bundle-own-marker:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.bundle-own-marker { position: relative; vertical-align: middle; margin-left: .25rem; line-height: 1; }
.bundle-own-marker:is(:hover, :focus-visible)::after { content: attr(aria-label); position: absolute; bottom: calc(100% + .4rem); left: 50%; transform: translateX(-50%); z-index: 50; padding: .25rem .5rem; border-radius: var(--register-radius); background: var(--register-navy); color: var(--surface); font-size: .75rem; font-weight: 600; white-space: nowrap; }
