/* Shared navigation and responsive layouts for public and signed-in pages. */
.public-menu-toggle { display: none; }
.public-site-nav a { min-height: 44px; display: inline-flex; align-items: center; }
.public-site-footer > span { overflow-wrap: anywhere; }
.public-site-footer > span a { display: inline-block; padding-block: 8px; }
.public-product-shot { margin: 0; min-width: 0; }
.public-product-shot > a { display: block; border: 1px solid #cad8d7; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 20px 55px rgba(33,56,64,.12); }
.public-product-shot img { display: block; width: 100%; height: auto; }
.public-product-shot figcaption { margin-top: 12px; color: var(--app-text-muted); font-size: 14px; line-height: 1.6; }
.public-product-shot figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.public-content-hero:has(.public-product-shot) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.public-site-nav a:focus-visible, .public-menu-toggle:focus-visible, .public-product-shot a:focus-visible { outline: 3px solid var(--app-primary); outline-offset: 3px; }
.sidebar-backdrop { display: none; }

@media (max-width: 1100px) {
  .public-site-header { height: auto; min-height: 78px; flex-wrap: wrap; gap: 12px; padding-block: 12px; }
  .public-site-nav { width: 100%; flex-direction: column; align-items: stretch; gap: 4px; padding-block: 8px; }
  .public-site-nav .public-nav-secondary, .public-site-nav > a:first-child { display: flex; }
  .public-site-nav .public-login-link { margin: 0; }
  .public-site-nav .public-primary-link { justify-content: center; }
  .navigation-ready .public-menu-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1px solid #cbd6d5; border-radius: 9px; color: var(--app-text); background: #fff; font-weight: 650; }
  .navigation-ready .public-site-nav:not(.is-open) { display: none; }
}

@media (max-width: 1199px) {
  .sidebar { width: min(300px, calc(100vw - 48px)); visibility: hidden; }
  body.toggle-sidebar .sidebar { visibility: visible; }
  body.mobile-navigation-open { overflow: hidden; }
  .sidebar-backdrop.is-visible { display: block; position: fixed; inset: var(--app-header-height) 0 0; z-index: 995; background: rgba(20,35,42,.38); border: 0; }
}

@media (max-width: 820px) {
  .public-content-hero:has(.public-product-shot) { grid-template-columns: minmax(0, 1fr); }
  .public-content-hero h1, .public-hero-copy h1 { overflow-wrap: break-word; font-size: clamp(32px, 8vw, 46px); }
  .public-content-hero > *, .public-split-section > *, .public-bottom-cta > * { min-width: 0; }
  .public-site-footer { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .public-site-footer > span { display: block; }
  .public-site-footer nav { flex-wrap: wrap; }
  .public-site-footer nav a { display: inline-flex; align-items: center; min-height: 44px; }
  .public-bottom-cta .public-cta-primary { white-space: normal; text-align: center; }
  .guide-breadcrumb { flex-wrap: wrap; }
  .guide-entry-table { max-width: 100%; }
  .guide-sources a, .public-legal-content a { overflow-wrap: anywhere; }
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea { font-size: 16px; }
  main, .modal-body { overflow-wrap: break-word; }
  main input, main select, main textarea { max-width: 100%; min-width: 0; }
}

.invoice-move-button { display: none; }
@media (max-width: 820px), (pointer: coarse) {
  .invoice-move-button { display: inline-grid; }
  .invoice-drag-handle { display: none; }
  .invoice-row-actions { flex-wrap: wrap; }
  .document-zoom-controls { grid-template-columns: 44px 68px 44px; }
  .invoice-row-actions .icon-action, .invoice-table-actions .icon-action,
  .sidebar-toggle, .document-zoom-controls button { min-width: 44px; min-height: 44px; }
  .invoice-line > .invoice-row-actions { grid-column: 1 / -1; }
  .sidebar .nav-link, .sidebar .nav-content a { min-height: 44px; }
  .app-breadcrumb { flex-wrap: wrap; }
}
@media (max-width: 760px) {
  .posting-template-form-grid { grid-template-columns: minmax(0, 1fr); }
  .posting-template-form { min-width: 0; padding: 18px; }
  .posting-template-lines { min-width: 0; padding: 14px; }
  .posting-template-lines-heading { align-items: stretch; flex-direction: column; gap: 12px; }
  .posting-template-form-grid > *, .posting-template-preview > * { min-width: 0; }
}
/* Size invoice rows to their workspace, including when the desktop sidebar is open. */
.invoice-lines { container-type: inline-size; min-width: 0; }
@container (max-width: 1100px) {
  .invoice-line { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .invoice-line-description, .invoice-rot-rut-wrap { grid-column: 1 / -1; }
  .invoice-line > .invoice-line-total { grid-column: auto; }
  .invoice-line > .invoice-row-actions { grid-column: auto; }
  .invoice-text-line > .invoice-row-actions { grid-column: 1 / -1; }
}
@container (max-width: 550px) {
  .invoice-line { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .invoice-line > .invoice-row-actions { grid-column: 1 / -1; }
}
