:root { --sgf-sidebar-width: 16rem; --sgf-touch-size: 44px; color-scheme: light; }
html { overflow-x:hidden;-webkit-text-size-adjust:100%; }
body { min-width:320px;overflow-x:hidden; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
input, select, textarea { max-width: 100%; }
.sgf-menu-button, .sgf-menu-close, .sgf-menu-backdrop { display: none; }
.sgf-table-scroll { contain:layout paint;max-width:100%;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch; }

@media (max-width: 1023px) {
  .sgf-menu-button { align-items:center;background:#f6c928;border:1px solid rgba(255,255,255,.35);border-radius:.6rem;box-shadow:0 4px 14px rgba(0,0,0,.18);color:#3f4143;display:flex;font-size:.9rem;font-weight:700;gap:.45rem;left:max(1rem,env(safe-area-inset-left));min-height:var(--sgf-touch-size);padding:.55rem .8rem;position:fixed;top:max(1rem,env(safe-area-inset-top));z-index:60; }
  .sgf-sidebar { bottom:0;height:100dvh!important;left:0;max-width:min(88vw,var(--sgf-sidebar-width));padding-bottom:max(1.25rem,env(safe-area-inset-bottom))!important;position:fixed!important;top:0;transform:translateX(-105%);transition:transform .2s ease;width:var(--sgf-sidebar-width);z-index:80; }
  .sgf-menu-close { align-items:center;background:rgba(255,255,255,.12);border-radius:999px;color:white;display:flex;flex:0 0 var(--sgf-touch-size);font-size:1.75rem;height:var(--sgf-touch-size);justify-content:center;line-height:1; }
  .sgf-menu-backdrop { background:rgba(15,23,42,.58);border:0;bottom:0;display:block;left:0;opacity:0;pointer-events:none;position:fixed;right:0;top:0;transition:opacity .2s ease;z-index:70; }
  .sgf-menu-is-open { overflow:hidden; }
  .sgf-menu-is-open .sgf-sidebar { transform:translateX(0); }
  .sgf-menu-is-open .sgf-menu-backdrop { opacity:1;pointer-events:auto; }
  .sgf-portal-header { padding-top:calc(4.75rem + env(safe-area-inset-top))!important; }
  .sgf-page-content { padding-bottom:calc(1rem + env(safe-area-inset-bottom)); }
  main h1 { font-size:clamp(1.5rem,7vw,2rem)!important;line-height:1.15!important; }
  main h2 { line-height:1.2!important; }
  main form .grid { grid-template-columns:minmax(0,1fr)!important; }
  main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), main select, main textarea { font-size:16px!important;min-height:var(--sgf-touch-size); }
  main button, main a.rounded, main a[class*="px-"] { min-height:var(--sgf-touch-size); }
  main table { min-width:max-content;width:100%; }
  main .sgf-table-scroll { overscroll-behavior-inline:contain; }
  main th, main td { min-width:7.5rem; }
  main th:first-child, main td:first-child { min-width:9rem; }
  main .overflow-auto, main .overflow-x-auto { -webkit-overflow-scrolling:touch; }
  main img, main svg, main canvas { max-width:100%; }
  #installation-calendar-panel .print-sheet { contain:layout paint;overflow-x:auto!important;-webkit-overflow-scrolling:touch; }
  #installation-calendar-panel .grid.grid-cols-7 { min-width:52rem; }
}

@media (max-width: 639px) {
  .sgf-portal-header .max-w-7xl { align-items:stretch;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sgf-portal-header .max-w-7xl > span { grid-column:1/-1; }
  .sgf-portal-header a { align-items:center;border:1px solid rgba(255,255,255,.15);border-radius:.5rem;display:flex;min-height:var(--sgf-touch-size);padding:.55rem .7rem; }
  main .flex.justify-between, main .flex.items-start.justify-between { align-items:stretch!important;flex-direction:column; }
  main .flex.flex-wrap { align-items:stretch; }
  main .flex.flex-wrap > a, main .flex.flex-wrap > button { justify-content:center; }
  main [class*="max-w-"] { max-width:100%; }
}

@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto!important;transition-duration:.01ms!important; } }
