/* Screen-only enhancement. Print documents and desktop geometry are untouched. */
.responsive-header, .responsive-account-label { display: none; }
@media print {
  .responsive-header, .responsive-drawer { display: none !important; }
}
@media screen and (max-width: 1100px) {
  body > .sidebar { display:none !important; }
  html:has(.responsive-drawer[open]), body:has(> .responsive-drawer[open]) { overflow:hidden; overscroll-behavior:none; }
  .session-pending .responsive-header { display: none; }
  .responsive-header { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:68px; padding:8px max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left)); background:var(--deep,#004747); color:#fff; }
  .responsive-brand { min-width:0; }
  .responsive-header .brand { display:flex; align-items:center; gap:10px; padding:0; margin:0; }
  .responsive-header .brand-mark { width:32px; height:32px; }
  .responsive-header .brand strong { font-size:17px; }
  .responsive-header .brand small { display:none; }
  .responsive-header .salviato-logo { display:block; width:154px; max-width:100%; height:auto; max-height:54px; object-fit:contain; }
  .responsive-menu-button, .responsive-close { display:flex; align-items:center; justify-content:center; gap:9px; min-height:44px; border:1px solid #ffffff60; border-radius:10px; padding:10px 13px; font:inherit; font-weight:700; color:#fff; background:transparent; cursor:pointer; }
  .responsive-menu-button span, .responsive-close span { font-size:22px; line-height:1; }
  .responsive-drawer { position:fixed; inset:0 auto 0 0; width:min(360px,calc(100% - 28px)); max-width:100%; height:100%; height:100dvh; max-height:100%; margin:0; padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left)); border:0; background:var(--deep,#004747); color:white; overflow-y:auto; overscroll-behavior:contain; }
  .responsive-drawer::backdrop { background:#092c32a6; }
  .responsive-drawer[open] { display:flex; flex-direction:column; }
  .responsive-close { flex-shrink:0; align-self:flex-end; margin-bottom:14px; }
  .responsive-drawer .responsive-nav-content { position:static; inset:auto; display:flex; flex-direction:column; align-items:stretch; flex-wrap:nowrap; width:100%; height:auto; min-height:0; padding:0; gap:12px; overflow:visible; flex:1; visibility:visible; }
  .responsive-drawer .responsive-nav-content .brand { display:none; }
  .responsive-drawer .responsive-nav-content .main-nav { display:flex; flex-direction:column; flex:0 0 auto; width:100%; min-width:0; margin:0; padding:0; gap:5px; overflow:visible; }
  .responsive-drawer .nav-item { width:100%; min-width:0; min-height:48px; padding:12px 14px; font-size:16px; white-space:normal; text-decoration:none; }
  .responsive-drawer .nav-item > span { flex:0 0 22px; font-size:19px; }
  .responsive-drawer .sidebar-note, .responsive-drawer .security-card { display:none; }
  .responsive-drawer .account-card { display:grid; grid-template-columns:auto minmax(0,1fr); margin: auto 0 0; padding:14px; gap:12px; }
  .responsive-drawer .account-card > div:nth-child(2) { display:block; }
  .responsive-drawer .account-card strong, .responsive-drawer .account-card small { white-space:normal; overflow-wrap:anywhere; overflow:visible; }
  .responsive-drawer .account-card strong { font-size:15px; }
  .responsive-drawer .account-card small { font-size:13px; }
  .responsive-drawer .account-card button { grid-column:1/-1; width:100%; height:auto; min-height:44px; padding:10px; display:flex; justify-content:center; align-items:center; gap:10px; font-size:16px; }
  .responsive-account-label { display:inline; }
  .responsive-drawer :focus-visible, .responsive-menu-button:focus-visible { outline:3px solid #78e6c6; outline-offset:3px; }
  .app-shell { margin-left:0; min-width:0; }
  .topbar { position:static; min-height:0; padding:18px max(16px,env(safe-area-inset-right)) 18px max(16px,env(safe-area-inset-left)); gap:16px; flex-wrap:wrap; }
  .topbar h1 { font-size:clamp(22px,3vw,30px); overflow-wrap:anywhere; }
  #app { min-width:0; padding-left:max(14px,env(safe-area-inset-left)); padding-right:max(14px,env(safe-area-inset-right)); }
  #app :is(.content-stack,.card,.card-body,.field,.form-grid,.position-form,.branding-layout,.dealer-create-form) { min-width:0; }
  .top-actions, .archive-actions, .parameter-actions, .direct-product-actions, .position-head-actions { flex-wrap:wrap; }
  .top-actions .button, .button, .mini-button { min-height:44px; white-space:normal; }
  input:not([type=checkbox]):not([type=radio]), select, textarea,
  .direct-quote-workflow input, .direct-quote-workflow select, .direct-quote-workflow textarea { min-width:0; max-width:100%; font-size:16px; }
  input:not([type=checkbox]):not([type=radio]), select { min-height:44px; }
  textarea { min-height:100px; }
  .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kpi-card { min-width:0; padding:16px; }
  .kpi-card small, .kpi-card strong { white-space:normal; overflow-wrap:anywhere; }
  .kpi-card small { font-size:12px; line-height:1.4; }
  .kpi-card strong { font-size:clamp(18px,2.8vw,26px); }
  .table-wrap { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
  dialog:not(.responsive-drawer) { box-sizing:border-box; max-width:calc(100% - 24px); max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); overflow:auto; overscroll-behavior:contain; padding-bottom:env(safe-area-inset-bottom); }
  dialog :is(.card-header,.installation-dialog-head) { gap:12px; flex-wrap:wrap; }
  dialog :is(.card-body,.installation-dialog-body) { min-width:0; overflow-wrap:anywhere; }
  dialog input[type=file] { width:100%; }
  .login-screen { overflow-y:auto; align-items:safe center; padding-top:max(14px,env(safe-area-inset-top)); padding-bottom:max(14px,env(safe-area-inset-bottom)); }
  .toast { max-width:calc(100% - 28px); right:max(14px,env(safe-area-inset-right)); bottom:calc(100px + env(safe-area-inset-bottom)); overflow-wrap:anywhere; }
}
@media screen and (max-width: 700px) {
  .topbar { display:block; }
  .top-actions { display:flex; margin-top:14px; gap:8px; }
  .top-actions .button { flex:1 1 calc(50% - 8px); font-size:14px; padding:10px 12px; }
  .top-actions .button.primary { flex-basis:100%; }
  .card-header { flex-wrap:wrap; gap:14px; }
  .card-header > div { min-width:0; }
  .archive-card .card-header .button { width:100%; }
  .quote-archive-filter, .quote-archive-filter label { display:flex; flex-direction:column; align-items:stretch; gap:8px; }
  .quote-archive-filter select { width:100%; min-width:0; }
  .quote-archive-filter > span { min-width:0; }
  #app > label:has([data-document-archive]) { display:grid; gap:8px; margin-bottom:12px; }
  .form-grid, .position-form, .advanced-form-grid, .dealer-create-form,
  .direct-quote-workflow .form-grid, .customer-dialog .form-grid { grid-template-columns:minmax(0,1fr); }
  .field.span-2, .field.span-4 { grid-column:1/-1; }
  .direct-product-actions .button { flex:1 1 calc(50% - 8px); }
  .quote-workflow-nav { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .quote-workflow-nav button { min-height:64px; font-size:13px; }
  .quote-step-actions { flex-wrap:wrap; gap:10px; }
  .quote-step-actions .button { flex:1 1 140px; max-width:100%; min-height:48px; }
  .responsive-records, .responsive-records tbody { display:block; width:100%; min-width:0; }
  .responsive-records thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .responsive-records tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; margin:12px; padding:16px; border:1px solid var(--line,#dce8e5); border-radius:12px; background:#fff; }
  .responsive-records tbody td { display:block; width:auto; min-width:0; padding:0; border:0; text-align:left; white-space:normal; overflow-wrap:anywhere; }
  .responsive-records tbody td::before { content:attr(data-mobile-label); display:block; margin-bottom:5px; font-size:12px; font-weight:650; color:var(--muted,#66807c); }
  .responsive-records tbody td:first-child, .responsive-records tbody td:nth-child(2), .responsive-records tbody td:last-child, .responsive-records td[colspan] { grid-column:1/-1; }
  .responsive-records tbody td.archive-actions { display:flex; gap:8px; flex-wrap:wrap; }
  .responsive-records .archive-actions::before { width:100%; }
  .responsive-records .archive-actions button:first-of-type { flex-basis:100%; background:var(--mint,#dff2ec); }
  .responsive-records .mini-button { padding:10px 12px; font-size:14px; }
  .mobile-action-bar { flex-wrap:wrap; padding-bottom:max(12px,env(safe-area-inset-bottom)); }
  .mobile-action-bar .button { min-height:44px; font-size:13px; }
  .mobile-total { flex:1 1 90px; }
  .mobile-total strong { white-space:normal; overflow-wrap:anywhere; }
  #app { padding-bottom:calc(145px + env(safe-area-inset-bottom)); }
  dialog .installation-filters, dialog .eko-pricing-fields { grid-template-columns:minmax(0,1fr); }
  dialog .dialog-actions, dialog .installation-dialog-actions { flex-wrap:wrap; }
  dialog .dialog-actions .button, dialog .installation-dialog-actions .button { width:100%; }
}
