/* Back office density: the screens were built with marketing-site spacing. Scoped to .admin-ui so the public site and
   client portal are untouched. These win over Tailwind's single-class utilities by specificity, not order. */
.admin-ui { font-size: 14px; }

/* headings */
.admin-ui .text-5xl { font-size: 2rem; line-height: 2.25rem; }
.admin-ui .text-4xl { font-size: 1.75rem; line-height: 2rem; }
.admin-ui .text-3xl { font-size: 1.5rem; line-height: 2rem; }
.admin-ui .text-2xl { font-size: 1.2rem; line-height: 1.6rem; }
.admin-ui .text-xl { font-size: 1.05rem; line-height: 1.5rem; }

/* padding */
.admin-ui .p-14 { padding: 1.75rem; }
.admin-ui .p-12 { padding: 1.5rem; }
.admin-ui .p-10 { padding: 1.5rem; }
.admin-ui .p-8 { padding: 1.25rem; }
.admin-ui .p-6 { padding: 1rem; }
.admin-ui .p-5 { padding: 0.875rem; }
.admin-ui .px-8 { padding-left: 1.25rem; padding-right: 1.25rem; }
.admin-ui .px-6 { padding-left: 1rem; padding-right: 1rem; }
.admin-ui .px-5 { padding-left: 1rem; padding-right: 1rem; }
.admin-ui .py-20 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.admin-ui .py-14 { padding-top: 2rem; padding-bottom: 2rem; }
.admin-ui .py-8 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.admin-ui .py-4 { padding-top: 0.75rem; padding-bottom: 0.75rem; }

/* form controls and buttons: inputs, dropdowns, date pickers and the search bar share these */
.admin-ui .py-3\.5 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.admin-ui .py-3 { padding-top: 0.45rem; padding-bottom: 0.45rem; }
.admin-ui .py-2\.5 { padding-top: 0.35rem; padding-bottom: 0.35rem; }

/* text inputs built with all-round padding (search boxes, settings fields): shorter, sides untouched */
.admin-ui input.p-4, .admin-ui input.p-3, .admin-ui select.p-3 { padding-top: 0.45rem; padding-bottom: 0.45rem; }
.admin-ui button.rounded-full > svg { width: 15px; height: 15px; }

/* tables: lawyers scan these all day, so rows and headers are compact */
.admin-ui table { font-size: 0.8125rem; }
.admin-ui table th, .admin-ui table td { padding: 0.4rem 0.75rem !important; line-height: 1.25rem; vertical-align: middle; }
.admin-ui table th { font-size: 0.65rem; letter-spacing: 0.06em; }
.admin-ui table tbody tr { transition: background-color 0.1s; }
.admin-ui table tbody tr:hover { background-color: rgb(248 250 252); }

/* gaps and stacks */
.admin-ui .gap-8 { gap: 1.25rem; }
.admin-ui .gap-6 { gap: 1rem; }
.admin-ui .space-y-10 > :not([hidden]) ~ :not([hidden]) { margin-top: 1.5rem; }
.admin-ui .space-y-8 > :not([hidden]) ~ :not([hidden]) { margin-top: 1.25rem; }
.admin-ui .space-y-6 > :not([hidden]) ~ :not([hidden]) { margin-top: 1rem; }
.admin-ui .mb-10 { margin-bottom: 1.5rem; }
.admin-ui .mb-8 { margin-bottom: 1.25rem; }
.admin-ui .mb-6 { margin-bottom: 1rem; }
.admin-ui .mt-8 { margin-top: 1.25rem; }

/* corners */
.admin-ui .rounded-3xl { border-radius: 1.1rem; }
.admin-ui .rounded-\[2rem\] { border-radius: 1.1rem; }

/* wide screens: stop content stretching edge to edge */
.admin-ui-content { max-width: 1500px; margin-inline: auto; }

/* phones: tighter still, and tables scroll instead of breaking the page */
@media (max-width: 640px) {
  .admin-ui .p-8, .admin-ui .p-10, .admin-ui .p-12, .admin-ui .p-14 { padding: 1rem; }
  .admin-ui .p-6 { padding: 0.875rem; }
  .admin-ui .text-3xl { font-size: 1.3rem; line-height: 1.75rem; }
  .admin-ui .px-5 { padding-left: 0.75rem; padding-right: 0.75rem; }
}
