/* QueenSpa all-pages responsive overlay v1.2 — presentation only. */
:root{--qmobile-ink:#173d50;--qmobile-accent:#117d8c}
html{width:100%;max-width:100%;-webkit-text-size-adjust:100%;scroll-padding-top:78px}
body{max-width:100%;overflow-x:clip}
*,*::before,*::after{box-sizing:border-box}
img,video,canvas{max-width:100%;height:auto}
svg{max-width:100%}
input,button,select,textarea{max-width:100%;font:inherit}
:where(.page-content,.panel,.app-shell,.main-area,.topbar,.site-header,.hero,.hero-content,.hero-visual,.section,.booking-inner,.booking-card,.member-layout,.auth-layout,.auth-content,.auth-brand,.modal,.modal-content){min-width:0}
:where(.data-table,.table-wrap,.table-scroll,.table-responsive,.overflow-table){-webkit-overflow-scrolling:touch}
:where(.data-table,.table-wrap,.table-scroll,.table-responsive){max-width:100%;overflow-x:auto}
:where(.modal,.modal-content,[role="dialog"]){max-width:calc(100vw - 20px);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}
:where(.form-grid,.field-row,.booking-datetime-row,.customer-fields) > *{min-width:0}
:where(.qsa-widget){z-index:10000}
@media(max-width:900px){
 .site-nav{max-height:calc(100dvh - 76px);overflow:auto}
 .hero,.booking-inner{min-width:0}
 .hero-visual,.hero-promotions{max-width:100%}
 .member-layout,.auth-layout{width:100%;max-width:100%}
 .page-content{min-width:0}
 .dashboard-grid,.bottom-grid,.assistant-layout,.settings-grid{grid-template-columns:minmax(0,1fr)}
 .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .booking-settings-fields{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px){
 body{min-width:0}
 .site-header{min-height:65px;height:auto;padding:10px 13px;gap:8px;flex-wrap:wrap}
 .site-brand{min-width:0;max-width:100%;font-size:clamp(16px,4.7vw,21px);gap:6px;letter-spacing:0}
 .site-brand small{font-size:clamp(6px,1.6vw,9px);letter-spacing:.3px;white-space:normal}
 .site-logo{flex:0 0 30px;width:30px;height:30px}
 .header-actions{flex:0 0 auto;gap:6px;margin-left:auto}
 .header-actions .button-small{font-size:11px;padding:9px 10px;white-space:nowrap}
 .mobile-menu{min-width:42px;min-height:42px}
 .site-nav{width:min(370px,calc(100vw - 22px));max-width:100%;overflow-y:auto}
 .hero{grid-template-columns:minmax(0,1fr);padding:30px 16px;gap:20px}
 .hero h1{font-size:clamp(34px,10.7vw,54px);line-height:1.1;overflow-wrap:break-word}
 .hero-content>p{font-size:14px;line-height:1.7}
 .hero-actions{flex-wrap:wrap;gap:12px}
 .hero-visual{min-width:0;display:block}
 .hero-photo{height:auto;min-height:300px;max-height:440px;overflow:hidden}
 .hero-photo img{width:100%;height:100%;min-height:300px;object-fit:cover}
 .hero-promotions{position:static;width:100%;max-width:100%;margin:12px 0 0;inset:auto}
 .section,.package-inner{padding-left:16px;padding-right:16px}
 .service-grid,.package-grid,.menu-grid{grid-template-columns:minmax(0,1fr)}
 .service-grid>*,.package-grid>*,.menu-grid>*{min-width:0;max-width:100%}
 .booking-inner{display:grid;grid-template-columns:minmax(0,1fr);padding:42px 14px;gap:25px}
 .booking-card{width:100%;padding:20px 15px}
 .booking-datetime-row,.customer-fields,.field-row,.form-grid{grid-template-columns:minmax(0,1fr)}
 .field-label input,.field-label select,.booking-card input,.booking-card select,.booking-card textarea{width:100%;min-width:0;font-size:16px}
 .date-shortcuts,.choice-tabs{flex-wrap:wrap}
 .choice-tab{flex:1;min-width:0}
 .booking-total{flex-wrap:wrap;gap:10px}
 .booking-total b{font-size:clamp(22px,6vw,30px)}
 .addon-list{grid-template-columns:minmax(0,1fr)}
 .footer-main,.footer-bottom{min-width:0;overflow-wrap:anywhere}
 .member-layout,.auth-layout,.setup-layout{width:100%;max-width:100%;margin:0 auto;padding:clamp(16px,5vw,28px)}
 .member-layout input,.auth-layout input,.setup-layout input,.member-layout select,.auth-layout select{width:100%;min-width:0;font-size:16px}
 .member-layout form,.auth-content form{min-width:0;width:100%}
 #memberBookings{width:100%;overflow-x:auto;overflow-wrap:anywhere}
 #memberForms nav{display:flex;gap:8px;flex-wrap:wrap}
 #memberForms nav button{flex:1;min-width:110px}
 .auth-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
 .auth-brand,.auth-content{padding:18px;min-width:0}
 .auth-brand h1{font-size:clamp(25px,7vw,38px)}
 /* Administration */
 .app-shell{min-width:0}
 .sidebar{width:58px;padding:12px 5px;overflow-y:auto;overflow-x:hidden}
 .main-area{margin-left:58px;width:calc(100% - 58px);min-width:0}
 .sidebar .brand-name,.sidebar .sidebar-art,.sidebar .sidebar-spacer{display:none}
 .sidebar .brand{padding:3px 4px 16px;justify-content:center}
 .sidebar .main-nav{gap:5px}
 .sidebar .nav-item{height:44px;min-width:0;padding:0;justify-content:center;font-size:0}
 .sidebar .nav-item .nav-icon{display:flex;align-items:center;justify-content:center;font-size:19px;width:35px;min-width:35px}
 .sidebar .nav-count,.sidebar .live-dot{display:none}
 .topbar{min-height:58px;height:auto;padding:9px 8px;gap:6px}
 .top-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}
 .topbar .search-input{width:min(48vw,220px);max-width:100%;min-width:0}
 .topbar .primary-button{font-size:11px;padding:10px 9px}
 .page-content{padding:17px 10px 34px}
 .welcome-row,.page-heading{flex-direction:column;align-items:flex-start;gap:12px}
 .welcome-row h1,.page-heading h1{font-size:clamp(20px,6vw,27px)}
 .stats-grid,.report-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .dashboard-grid,.bottom-grid,.assistant-layout,.settings-grid,.team-hero{grid-template-columns:minmax(0,1fr)}
 .panel,.stat-card{min-width:0;padding:12px}
 .calendar-toolbar,.quick-actions{flex-wrap:wrap;max-width:100%}
 .catalog-row{min-width:0}
 .data-table{min-width:600px}
 .modal,.modal-content,[role="dialog"]{max-width:calc(100vw - 14px);max-height:calc(100dvh - 14px);padding:12px}
 .modal-actions{flex-wrap:wrap}
 .form-grid{grid-template-columns:minmax(0,1fr)}
 .qsa-panel{max-width:100vw}
}
@media(max-width:360px){.header-actions .button-small{font-size:10px;padding:8px}.site-brand{font-size:16px}.page-content{padding:12px 7px}.stats-grid{grid-template-columns:minmax(0,1fr)}}
