/* Final polish: fluid type, safe wrapping, touch targets, small-device behaviour */
:root{--radius:16px;--ring:rgba(140,243,193,.55)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
body{overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding-bottom:env(safe-area-inset-bottom)}
img,svg,video,canvas,iframe{max-width:100%}
h1,h2,h3,p,li,label,small,strong,a,td,th{overflow-wrap:anywhere}
.page-main,.page-main-auth,.app-main,.admin-panel,.card,.table-card,.plan-card,.summary-card,.tenant-card{min-width:0}
h1{font-size:clamp(28px,5.4vw,52px);line-height:1.12}
h2{font-size:clamp(20px,3.4vw,32px);line-height:1.2}
.table-card,.admin-table-wrap,.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
::selection{background:rgba(140,243,193,.28)}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#243349;border-radius:99px;border:2px solid #070d17}::-webkit-scrollbar-track{background:transparent}

/* Sticky, blurred mobile header with a proper 44px menu button */
.mobile-header{position:sticky;top:0;z-index:40;background:rgba(9,15,25,.88)!important;backdrop-filter:blur(14px);padding-top:env(safe-area-inset-top)}
.menu-toggle{min-width:44px;min-height:44px;border-radius:12px;border:1px solid rgba(148,163,184,.14);background:rgba(255,255,255,.04);color:#e6edf7;font-size:20px;line-height:1;cursor:pointer;transition:background .18s ease,border-color .18s ease}
.menu-toggle:hover,.menu-toggle[aria-expanded="true"]{background:rgba(140,243,193,.1);border-color:rgba(140,243,193,.35)}

/* Guest nav: tidy dropdown card on small screens */
@media(max-width:860px){
  .site-header{position:sticky;top:0;z-index:60}
  .guest-nav{max-height:calc(100dvh - 90px);overflow-y:auto}
  .guest-nav a{min-height:46px;display:flex;align-items:center}
}

/* Touch devices: comfortable targets, no iOS input zoom */
@media(hover:none),(max-width:760px){
  .btn,.landing-btn,.admin-primary,.admin-secondary,.admin-small,.admin-danger,button.btn{min-height:44px}
  input,select,textarea{font-size:16px!important;min-height:44px}
  .side-nav a{min-height:46px}
  .plan-card:hover,.summary-card:hover,.tenant-card:hover,.btn:hover,.landing-btn:hover{transform:none}
}

@media(max-width:760px){
  .page-main,.page-main-auth{padding-left:max(14px,env(safe-area-inset-left))!important;padding-right:max(14px,env(safe-area-inset-right))!important}
  .plan-grid,.plans-grid,.tenant-grid,.summary-grid,.landing-feature-grid,.landing-steps{grid-template-columns:1fr!important}
  .page-heading-row,.dashboard-heading{flex-direction:column;align-items:stretch;gap:12px}
  .page-heading-row .btn,.dashboard-heading .btn{width:100%;justify-content:center}
  .site-footer{flex-direction:column;align-items:flex-start;gap:14px;text-align:left}
  .site-footer nav{display:flex;flex-wrap:wrap;gap:8px 16px}
  .landing-hero{padding-top:28px!important;padding-bottom:28px!important}
  .landing-hero .landing-btn,.landing-cta .landing-btn{width:100%;justify-content:center}
  .tenant-card form,.tenant-card .actions{flex-wrap:wrap}
  table{font-size:13px}
}
@media(max-width:380px){
  h1{font-size:26px}
  .auth-card{padding:22px 16px!important}
  .summary-card strong{font-size:22px}
}
@media(max-width:760px){
  .purchase-dialog{max-height:calc(100dvh - 20px);overflow-y:auto;overscroll-behavior:contain}
}

/* Landscape phones: avoid oversized hero / sticky sidebar overflow */
@media(max-height:480px) and (orientation:landscape){
  .app-shell-auth .sidebar{overflow-y:auto}
  .auth-wrap{min-height:auto;padding:16px 0}
  .purchase-modal{align-items:flex-start;overflow-y:auto}
}
