/* Application only: print documents deliberately do not load this stylesheet. */
:root {
  --type-base:16px;
  --type-body:14px;
  --type-small:12px;
  --type-label:13px;
  --type-title:22px;
  --type-action:18px;
  --ink:#354b60;
  --ink-muted:#526b80;
}
body {font-size:var(--type-base);color:var(--ink);line-height:1.5}
#application,dialog {font-size:var(--type-body)}
#top-nav button,#top-nav summary {font-size:14px;padding:12px 10px}
.topbar {height:auto;min-height:70px;gap:20px;padding:12px 18px}
#top-nav {flex-wrap:wrap;height:auto}
.topbar-right {flex-shrink:0}
.country,.topbar-right #notification-count {font-size:var(--type-small)}
.quickbar {height:auto;min-height:90px;gap:16px;padding:12px 14px}
.quick-actions {overflow-x:auto;min-width:0}
.quick-actions button {font-size:12px;padding:6px 10px;min-height:64px;flex-shrink:0;min-width:92px}
.quick-actions button:first-child {min-width:150px}
.quick-actions button span {font-size:29px}
.layout {grid-template-columns:244px minmax(0,1fr)}
.no-sidebar .layout {grid-template-columns:minmax(0,1fr)}
#sidebar {min-width:0}
#side-nav button {font-size:14px;padding:12px 10px;line-height:1.45;color:var(--ink)}
#side-nav button span {flex-shrink:0}
.sidebar-heading {font-size:12px;color:var(--ink-muted);letter-spacing:1px}
.quick-search h3 {font-size:14px}
.quick-search input,.quick-search select {font-size:14px;min-height:42px}
.sidebar-help,.sidebar-help small {font-size:12px;color:var(--ink-muted)}
#workspace {min-width:0;padding:26px}
.page-heading {gap:16px;flex-wrap:wrap;align-items:center}
.page-heading h1 {font-size:var(--type-title);line-height:1.3;color:var(--ink)}
.page-heading .muted,.muted,.record-count,small,.eyebrow,.statusbar,.audit-row,
.empty p,.calendar-item p,.calendar-date small,.form-note,.form-error,
.client-profile .muted,.client-photo>small,.company-logo-section small,
.availability-top span,.availability-legend,.reserve-counts small,.metric small,.metric em,
.finance-navigation button small,.detail-item small,.modal-heading small,.attachment-list,
.form-total small,.date-filter,.badge-counter {font-size:var(--type-small);color:var(--ink-muted)}
.statusbar {color:#edf6fa;flex-wrap:wrap;gap:10px 20px}
.card h2,.empty h3,.calendar-item h3,.finance-navigation button strong {font-size:16px}
.metric strong {font-size:25px;white-space:normal}
.financial-row>div {font-size:13px}
.financial-row strong,.detail-item strong {font-size:14px}
.button,.primary,.heading-actions .button,.table-footer button,.tabs button,
.client-tabs button,.document-tabs button {font-size:14px;min-height:40px;line-height:1.4}
.heading-actions {flex-wrap:wrap;gap:8px}
.search-tools {flex-wrap:wrap;gap:10px}
.search-input {min-width:200px;max-width:100%;flex:1 1 280px}
.search-input input,.search-tools select {font-size:14px;min-height:42px}
.record-count {white-space:nowrap}
table,.client-table table {font-size:var(--type-body)}
th,.client-table th {font-size:var(--type-small);color:var(--ink);padding:13px 14px;letter-spacing:.35px}
td {padding:15px 14px;line-height:1.5;max-width:none;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.table-wrap,.client-table {max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.table-wrap table {min-width:900px}
.table-wrap td:first-child {min-width:150px}
.actions {gap:6px;flex-wrap:wrap;justify-content:flex-end}
.actions .button {padding:8px 10px}
.action-button {width:36px;min-width:36px;height:36px;font-size:var(--type-action)}
.action-button svg {width:18px;height:18px}
.tag {font-size:12px;line-height:1.4;padding:4px 8px}
.table-footer {font-size:12px;flex-wrap:wrap;gap:12px}
label,.auth-form-wrap label,.client-field>span {font-size:var(--type-label);color:var(--ink)}
label input,label select,label textarea,input,select,textarea,
.client-field input,.client-field select,.client-field textarea {font-size:14px;line-height:1.5;min-height:42px;max-width:100%}
textarea {min-height:96px}
.client-card h2,.company-logo-section h3 {font-size:18px}
.client-field {min-width:0}
.form-grid {gap:0 20px}
.form-error {color:#b32941;font-size:13px}
.form-note,.alert {font-size:13px;line-height:1.6;color:var(--ink-muted)}
dialog {max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}
.modal-heading h2 {font-size:21px}
.close-button {min-width:36px;height:36px;font-size:22px}
.toast {font-size:14px;max-width:calc(100vw - 24px)}
.auth-form-wrap input {font-size:16px}
.auth-form-wrap .muted,.auth-note,.auth-footer,.setup-note {font-size:13px}
.product-strip {height:auto;min-height:25px;font-size:12px}
.product-strip small {font-size:12px;color:#edf6fa}
/* Module-specific controls inherit the same hierarchy, including flow dialogs. */
#rental-flow label,#rental-flow small,#rental-flow .form-note,.flow-client-card dt {font-size:13px}
#rental-flow button,#rental-flow input,#rental-flow select,#rental-flow textarea,
.flow-client-card dd,.flow-list-row {font-size:14px}
.rental-print-menu button,.document-models button {font-size:14px}
.model-list-tools {display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;max-width:100%}
.model-list-tools label {min-width:0;margin-bottom:0}
.model-list-tools #model-new {min-height:42px;align-self:flex-end}
@media(max-width:1200px) {
  .topbar {gap:14px;flex-wrap:wrap}
  #top-nav {order:3;flex-basis:100%;gap:4px}
  .topbar-right {margin-left:auto}
  .metrics {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px) {
  .layout,.no-sidebar .layout {grid-template-columns:minmax(0,1fr)}
  #workspace {padding:20px 16px}
  .quickbar {gap:10px}
  .quick-actions button {min-width:86px}
  body.mobile-menu-open #sidebar {max-height:65dvh}
  .metrics {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px) {
  #workspace {padding:18px 12px}
  .topbar {padding:12px}
  #top-nav {gap:2px}
  #top-nav button,#top-nav summary {padding:10px 8px;white-space:normal;text-align:left}
  .quickbar {align-items:flex-start}
  .quickbar #toggle-sidebar {min-width:44px;width:44px;padding:10px}
  #toggle-sidebar>span:last-child {display:none}
  .page-heading h1 {font-size:21px}
  .search-tools .search-input {flex-basis:100%;min-width:0;width:100%}
  .record-count {margin-left:0}
  .heading-actions {width:100%}
  .heading-actions .button,.heading-actions .primary {white-space:normal}
  .metrics {grid-template-columns:minmax(0,1fr)}
  .product-strip {flex-wrap:wrap}
  .product-strip small {display:none}
  .form-grid,.detail-grid {grid-template-columns:minmax(0,1fr)}
  .date-filter {flex-wrap:wrap}
  .client-contact-card>.client-grid {grid-template-columns:minmax(0,1fr)}
}
