@import url("https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap");

/* QUEEN SPA HOUSE R5.0 · ROYAL NOIR · 1.2.9
   Canonical Figma: 00 — ROYAL NOIR SYSTEM */
:root{
  --rn-noir:#080808;--rn-charcoal:#1C1A17;--rn-surface:#24211D;--rn-surface-2:#302A23;
  --rn-gold:#D6A968;--rn-gold-hover:#E2B877;--rn-gold-pressed:#C79956;
  --rn-ivory:#F8F3EA;--rn-muted:#A99D8C;--rn-line:#4A3B2B;--rn-danger:#C43838;--rn-denied:#9E2B2B;
  --bg-main:var(--rn-noir);--bg-card:var(--rn-charcoal);--bg-subtle:var(--rn-surface);
  --primary:var(--rn-ivory);--primary-light:var(--rn-muted);--accent:var(--rn-gold);--accent-dark:var(--rn-gold);
  --accent-soft:rgba(214,169,104,.10);--green:#6FA585;--danger:var(--rn-danger);--border:var(--rn-line);
  --ivory:var(--rn-noir);--surface:var(--rn-charcoal);--surface-2:var(--rn-surface);
  --ink:var(--rn-ivory);--muted:var(--rn-muted);--line:var(--rn-line);--gold:var(--rn-gold);--gold-2:var(--rn-gold);
  --chrome:var(--rn-noir);--chrome-2:#12100E;--chrome-3:var(--rn-charcoal);
  --qsh-bg:var(--rn-noir);--qsh-surface:var(--rn-charcoal);--qsh-surface-alt:var(--rn-surface);
  --qsh-ink:var(--rn-ivory);--qsh-ink-muted:var(--rn-muted);--qsh-primary:var(--rn-gold);--qsh-primary-ink:var(--rn-noir);
  --qsh-accent:var(--rn-gold);--qsh-accent-ink:var(--rn-noir);--qsh-hairline:var(--rn-line);--qsh-nav-active:var(--rn-gold);
  --qsh-danger:var(--rn-danger);
  --r-sm:14px;--r-md:20px;--r-lg:32px;--qsh-radius-sm:14px;--qsh-radius-md:20px;--qsh-radius-lg:24px;
  --qsh-radius-xl:32px;--qsh-radius-pill:999px;
  --shadow-sm:0 2px 12px rgba(0,0,0,.22);--shadow-md:0 10px 30px rgba(0,0,0,.30);--shadow-lg:0 22px 60px rgba(0,0,0,.42);
  --qsh-shadow-card:var(--shadow-sm);--qsh-shadow-float:var(--shadow-lg);color-scheme:dark;
}

html,body{background:var(--rn-noir);color:var(--rn-ivory)}
body,button,input,select,textarea{font-family:"Be Vietnam Pro","Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.serif,.page-head h1,.section-title,.hero h1,.qsh-hero h1,.login h1,.modal h2,.brand b,.action-card b{font-family:"Playfair Display",Georgia,"Times New Roman",serif}
body{background:radial-gradient(circle at 84% -10%,rgba(214,169,104,.08),transparent 32rem),var(--rn-noir)}
.topbar{background:rgba(8,8,8,.94)!important;border-color:var(--rn-line)!important;box-shadow:0 1px 0 rgba(214,169,104,.05)}
.brand b{color:var(--rn-ivory)}.brand small{color:var(--rn-gold)!important}
.brand img,.login img,.qsh-theme-intro-brand img{object-fit:contain;background:transparent!important;border:0!important}
.shell{background:var(--rn-noir)}
.side,.app-rail{background:linear-gradient(180deg,#12100E,var(--rn-noir))!important;border-color:var(--rn-line)!important}
.main{color:var(--rn-ivory)}.nav-label{color:var(--rn-muted)}.nav-item{color:var(--rn-muted)!important}
.nav-item:hover{background:rgba(248,243,234,.05)!important;color:var(--rn-ivory)!important}
.nav-item.active{background:rgba(214,169,104,.12)!important;color:var(--rn-gold)!important;box-shadow:inset 0 0 0 1px rgba(214,169,104,.25)}
.card,.panel,.login,.modal,.notify,.dhub-panel,.item,.table-wrap,.action-card,.qsh-row,.qsh-exception,.qsh-system-card{
 background:var(--rn-charcoal)!important;color:var(--rn-ivory)!important;border-color:var(--rn-line)!important;box-shadow:var(--shadow-sm)}
.card,.panel,.item,.action-card,.qsh-row,.qsh-exception{border-radius:20px}.login,.modal,.notify,.dhub-panel{border-radius:24px}
.card:hover,.item:hover,.action-card:hover,.qsh-row:hover,.qsh-exception:hover{border-color:rgba(214,169,104,.58)!important;box-shadow:var(--shadow-md)}
.kpi .l,.item .meta,.action-card small,.field label,.notify-item small,.qsh-row small,.qsh-exception small,.page-head p,.hero p,.qsh-hero p,.login p,.auth-intro p{color:var(--rn-muted)!important}
.hero,.qsh-hero{position:relative;isolation:isolate;overflow:hidden;min-height:280px;border-radius:32px!important;border:1px solid var(--rn-line)!important;
 background:radial-gradient(circle at 83% 28%,rgba(214,169,104,.16),transparent 22rem),linear-gradient(135deg,#211C16 0%,#0B0A09 68%,#080808 100%)!important;
 color:var(--rn-ivory)!important;box-shadow:var(--shadow-md)}
.hero::after,.qsh-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(8,8,8,.05),rgba(8,8,8,.20) 55%,rgba(214,169,104,.05))}
.hero h1,.qsh-hero h1{color:var(--rn-ivory)!important}
.hero .pill,.pill,.chip{border-radius:999px!important;background:rgba(214,169,104,.09)!important;border:1px solid rgba(214,169,104,.24)!important;color:var(--rn-ivory)!important}
.btn,.icon-btn,.tab,.task-dock button,.pay-method{border-color:var(--rn-line)!important;background:var(--rn-charcoal)!important;color:var(--rn-ivory)!important}
.btn{border-radius:16px!important}
.btn.primary,.btn.gold,.booking-submit{background:var(--rn-gold)!important;color:var(--rn-noir)!important;border-color:var(--rn-gold)!important;box-shadow:0 10px 24px rgba(214,169,104,.18)}
.btn.primary:hover,.btn.gold:hover,.booking-submit:hover{background:var(--rn-gold-hover)!important;border-color:var(--rn-gold-hover)!important}
.btn.primary:active,.btn.gold:active,.booking-submit:active{background:var(--rn-gold-pressed)!important;border-color:var(--rn-gold-pressed)!important}
.btn.soft{background:rgba(248,243,234,.06)!important;border-color:var(--rn-line)!important}
.btn.danger{background:rgba(196,56,56,.10)!important;color:#F7B7B7!important;border-color:rgba(196,56,56,.45)!important}
.btn:disabled,[aria-disabled="true"]{opacity:.42!important;cursor:not-allowed!important}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--rn-gold)!important;outline-offset:3px!important}
.field input,.field select,.field textarea,.search input,.dhub-input input,.qty{background:#141210!important;color:var(--rn-ivory)!important;border-color:var(--rn-line)!important;border-radius:14px!important}
.field input:focus,.field select:focus,.field textarea:focus,.search input:focus,.dhub-input input:focus{border-color:var(--rn-gold)!important;box-shadow:0 0 0 3px rgba(214,169,104,.16)!important}
input::placeholder,textarea::placeholder{color:#81776B;opacity:1}
.tab.active{background:var(--rn-gold)!important;color:var(--rn-noir)!important;border-color:var(--rn-gold)!important}
.task-dock{background:rgba(8,8,8,.94)!important;border-color:var(--rn-line)!important;border-radius:16px!important}
.task-dock button:hover{background:rgba(248,243,234,.06)!important}
.table-wrap{border-radius:20px}.table th{background:#151310!important;color:var(--rn-muted)!important;border-color:var(--rn-line)!important}
.table td{border-color:#2C261F!important;color:var(--rn-ivory)}.table tr:hover td{background:#221E19!important}
.status.pending{background:rgba(214,169,104,.14)!important;color:#F2CF99!important}.status.active{background:rgba(111,165,133,.13)!important;color:#A7D2B6!important}.status.urgent{background:rgba(196,56,56,.13)!important;color:#F0A4A4!important}
.customer-mini,.wallet-card,.qsh-wallet-card{background:linear-gradient(135deg,#2B241B,#151310 70%,#0B0A09)!important;color:var(--rn-ivory)!important;border:1px solid rgba(214,169,104,.34)!important;border-radius:24px!important;box-shadow:var(--shadow-md)}
.customer-mini small,.wallet-card small,.qsh-wallet-card small{color:var(--rn-muted)!important}.wallet-card strong,.qsh-wallet-card strong{color:var(--rn-gold)!important}
.booking-touch,.booking-policy{color:var(--rn-ivory)}.booking-policy,.pos-next,.pos-note,.review-ai{background:var(--rn-surface)!important;border-color:var(--rn-line)!important;color:var(--rn-muted)!important}
.pos-note{border-left-color:var(--rn-gold)!important}.pos-appt{background:var(--rn-charcoal)!important;color:var(--rn-ivory)!important;border-color:var(--rn-line)!important}.pos-appt b{color:var(--rn-gold)!important}
.pay-method:hover,.pay-method.active{background:rgba(214,169,104,.08)!important;border-color:var(--rn-gold)!important}
.qsh-row[data-state="selected"],.booking-slot[data-state="selected"],[data-state="selected"].card{background:#382C1C!important;border-color:var(--rn-gold)!important}
.qsh-row[data-state="error"],.booking-slot[data-state="error"],[data-state="error"].card{background:#3B1212!important;border-color:var(--rn-danger)!important}
.qsh-row[data-state="permission-denied"],.booking-slot[data-state="permission-denied"],[data-state="permission-denied"].card{background:#291010!important;border-color:var(--rn-denied)!important}
.qsh-row[data-state="disabled"],.booking-slot[data-state="disabled"],[data-state="disabled"].card{opacity:.42!important}
.aq-auth,.login-wrap{background:radial-gradient(circle at 78% 18%,rgba(214,169,104,.12),transparent 24rem),var(--rn-noir)!important}
.aq-auth::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 78% 28%,rgba(214,169,104,.10),transparent 24rem)!important}
.aq-auth::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,8,8,.99),rgba(8,8,8,.92) 58%,rgba(8,8,8,.72))!important}
.aq-kicker{color:var(--rn-gold)!important}.login{width:min(430px,100%);border-radius:24px!important}.login h1,.auth-intro h2{color:var(--rn-ivory)!important}
.bottom-nav{background:rgba(12,11,10,.97)!important;border-color:var(--rn-line)!important;box-shadow:0 -8px 32px rgba(0,0,0,.30)!important;backdrop-filter:blur(18px)}
.bottom-nav button{color:var(--rn-muted)!important;min-height:52px}.bottom-nav button.active{color:var(--rn-gold)!important}.bottom-nav button.active b{color:var(--rn-gold)!important}
.qsh-theme-preview-strip,#themeMode,[data-theme-preview],.theme-selector,.theme-switcher,.qsh-theme-control{display:none!important}
.qsh-theme-intro{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:radial-gradient(circle at 50% 34%,rgba(214,169,104,.10),transparent 22rem),var(--rn-noir);color:var(--rn-ivory);animation:qshRnIntroOut .24s ease 1.28s forwards}
.qsh-theme-intro::before{content:"";position:absolute;inset:0;border:1px solid rgba(214,169,104,.08);pointer-events:none}
.qsh-theme-intro-brand{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center}
.qsh-theme-intro-brand img{width:84px;height:84px}.qsh-theme-intro-brand strong{font-family:"Playfair Display",Georgia,serif;font-size:22px;font-weight:500;letter-spacing:.05em}
.qsh-theme-intro-brand small{color:var(--rn-gold);letter-spacing:.12em}@keyframes qshRnIntroOut{to{opacity:0;visibility:hidden}}
.notify{background:var(--rn-charcoal)!important}.dhub-btn{background:var(--rn-gold)!important;color:var(--rn-noir)!important;border-color:var(--rn-gold)!important}.modal-bg{background:rgba(0,0,0,.72)!important}

@media(max-width:1024px){
 .qsh-service-grid,.qsh-needs,.qsh-prompt-grid,.qsh-commerce,.qsh-account-today,.qsh-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .qsh-work-grid,.qsh-system-grid{grid-template-columns:1fr}
}
@media(max-width:767px){
 .main{padding-left:14px!important;padding-right:14px!important;padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
 .shell.staff-shell .main{padding-bottom:28px!important}
 .qsh-hero,.hero{padding:28px 20px 34px!important;border-radius:24px!important}
 .qsh-hero h1,.hero h1{font-size:clamp(36px,11vw,52px)!important;white-space:normal}
 .qsh-service-grid,.qsh-needs,.qsh-prompt-grid,.qsh-commerce,.qsh-account-today,.qsh-metrics{grid-template-columns:1fr}
 .bottom-nav{padding-bottom:max(8px,env(safe-area-inset-bottom))!important}
 .action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:430px){.action-grid{grid-template-columns:1fr}.card,.panel{padding:16px}.login{width:100%;padding:20px 16px}}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
 .qsh-theme-intro{display:none!important}
}


/* Proven touch/POS/booking foundation retained from 1.2.8 */
/* QSH_TOUCH_FOUNDATION_MERGED_V124 */
/* QSH V1.0.7 candidate · touch-first tablet 8.7 + phone 6 */
.app[data-view="pos"] .btn,.app[data-view="pos"] button,.app[data-view="pos"] input,.app[data-view="pos"] select{min-height:48px}
.app[data-view="pos"] input,.app[data-view="pos"] select{font-size:16px}
.pos-mobile-tabs{display:none}
.pos-today{display:grid;gap:8px;margin-bottom:12px}
#posToday{display:grid;gap:6px}
.pos-appt{display:grid;grid-template-columns:52px minmax(0,1fr);gap:2px 8px;width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:left;color:var(--ink)}
.pos-appt b{grid-row:1/3;color:var(--gold-2)}.pos-appt span{font-weight:700}.pos-appt small{color:var(--muted)}
.pos-customer-line,.pos-customer-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.pos-customer-meta{margin:8px 0}
.pos-next,.pos-note{margin:8px 0;padding:9px 10px;border-radius:10px;background:var(--bg-subtle);font-size:12px}.pos-note{border-left:3px solid var(--gold)}
.pos-pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.pos-pay-grid .pay-method{width:100%;border-radius:12px}
.split-pay-rows{display:grid;gap:8px;margin:12px 0}.split-pay-row{display:grid;grid-template-columns:1fr 1.2fr;gap:8px}.split-pay-row select,.split-pay-row input{min-height:48px;font-size:16px}
.booking-touch{max-width:620px;margin:0 auto}.booking-touch select,.booking-touch input,.booking-touch textarea{min-height:50px;font-size:16px}
.booking-policy{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg-subtle)}.booking-policy span{font-size:12px;color:var(--muted);line-height:1.5}
.booking-submit{min-height:54px;font-size:15px}
@media(min-width:981px) and (max-width:1366px){
.app[data-view="pos"] .topbar{height:58px;padding:7px 12px}
.app[data-view="pos"] .app-shell{grid-template-columns:minmax(0,1fr);min-height:calc(100vh - 58px)}
.app[data-view="pos"] .app-rail{display:none}
.app[data-view="pos"] .main[data-context="pos"]{height:calc(100vh - 58px);padding:8px 10px;overflow:hidden}
.app[data-view="pos"] .main[data-context="pos"]>.page-head{margin:0 0 6px}.app[data-view="pos"] .page-head h1{font-size:24px}.app[data-view="pos"] .page-head p{display:none}
.app[data-view="pos"] .pos{height:calc(100vh - 118px);grid-template-columns:minmax(225px,.72fr) minmax(390px,1.35fr) minmax(285px,.9fr);gap:8px}
.app[data-view="pos"] .panel{height:100%!important;max-height:none!important;overflow:auto!important;padding:10px!important;border-radius:14px!important}
.app[data-view="pos"] .catalog{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:7px}.app[data-view="pos"] .item{min-height:76px;padding:10px 11px;border-radius:12px}
.app[data-view="pos"] .bottom-nav{display:none!important}
}
@media(min-width:768px) and (max-width:980px){
.app[data-view="pos"] .app-rail{display:none}.app[data-view="pos"] .app-shell{display:block}.app[data-view="pos"] .main[data-context="pos"]{padding:9px 10px}
.app[data-view="pos"] .pos{grid-template-columns:minmax(230px,.82fr) minmax(0,1.18fr);gap:8px}.app[data-view="pos"] .pos-pane-cart{grid-column:1/-1}
.app[data-view="pos"] .panel{padding:11px}.app[data-view="pos"] .catalog{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
.app[data-view="pos"] .main[data-context="pos"]{padding:8px 8px calc(var(--mobile-nav) + 14px + env(safe-area-inset-bottom))}
.app[data-view="pos"] .pos-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.app[data-view="pos"] .pos-head h1{font-size:22px}.app[data-view="pos"] .pos-head p{display:none}
.pos-mobile-tabs{position:sticky;top:0;z-index:70;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:6px 0;background:var(--ivory)}
.pos-mobile-tabs .btn{min-height:44px;padding:8px 6px}
.app[data-view="pos"] .pos{display:block}.app[data-view="pos"] .pos-pane{display:none}.app[data-view="pos"] .pos-pane.pos-pane-active{display:block}
.app[data-view="pos"] .panel{min-height:0!important;padding:11px!important;border-radius:14px!important}.app[data-view="pos"] .catalog{grid-template-columns:1fr;gap:7px}.app[data-view="pos"] .item{min-height:70px;padding:10px 12px}
.app[data-view="pos"] .payment-panel #cart{max-height:300px}.app[data-view="pos"] #checkout{position:sticky;bottom:calc(var(--mobile-nav) + 10px + env(safe-area-inset-bottom));z-index:80;min-height:54px}
.app[data-view="pos"] .dhub{display:none}
.booking-date-time{grid-template-columns:1fr 1fr}.booking-touch{padding:14px}.booking-touch .field{margin:0}.booking-submit{position:sticky;bottom:calc(var(--mobile-nav) + 10px + env(safe-area-inset-bottom));z-index:40;width:100%}
}
@media(max-width:430px){.split-pay-row{grid-template-columns:1fr}.booking-date-time{grid-template-columns:1fr}.pos-pay-grid{grid-template-columns:1fr 1fr}}
@media(max-width:767px){
.app[data-view="pos"] .pos .pos-pane{display:none!important}
.app[data-view="pos"] .pos .pos-pane.pos-pane-active{display:block!important}
.app[data-view="pos"] .pos .pos-pane.pos-pane-cart.pos-pane-active{display:flex!important;flex-direction:column}
.app[data-view="pos"] .pos-pane-cart #checkout{position:static!important;bottom:auto!important;margin-top:8px}
}

/* V1.0.7 RBAC admin */
.rbac-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,180px) auto;gap:8px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.rbac-row small{display:block;color:var(--muted);margin-top:2px}.rbac-row select{min-height:44px}.rbac-row .btn{min-height:44px}
@media(max-width:767px){.rbac-row{grid-template-columns:1fr}.rbac-row select,.rbac-row .btn{width:100%}}


/* QUEEN SPA HOUSE 1.2.4 R5.0 — Three Theme v3 canonical overlay */
:root{--rn-noir:#080808;--rn-charcoal:#1c1a17;--rn-surface:#161412;--rn-gold:#d6a968;--rn-ivory:#f8f3ea;--rn-muted:#a99d8c;--rn-line:#4a3b2b;--rn-danger:#d46a6a;--rn-radius-hero:30px;--rn-radius-container:24px;--rn-radius-card:20px;--rn-radius-button:15px;--bg-main:var(--rn-noir);--bg-card:var(--rn-charcoal);--bg-subtle:var(--rn-surface);--primary:var(--rn-ivory);--primary-light:var(--rn-muted);--accent:var(--rn-gold);--accent-dark:var(--rn-gold);--accent-soft:#2d271f;--border:var(--rn-line)}
html,body,.app,.main{background:var(--rn-noir)!important;color:var(--rn-ivory)}
body{font-family:"Be Vietnam Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.serif,.page-head h1,.section-title,.hero h1,.login h1,.modal h2,.brand b,.action-card b,.qsh-hero h1,.qsh-section h2,.qsh-account-today h2,.qsh-state h1,.qsh-state h2{font-family:"Playfair Display",Georgia,serif}
.topbar{background:rgba(8,8,8,.96)!important;border-bottom-color:var(--rn-line);color:var(--rn-ivory)}.app-rail{background:linear-gradient(180deg,#080808,#12100e)!important;border-right-color:var(--rn-line)}
.card,.panel,.modal,.notify,.dhub-panel,.login,.item{background:var(--rn-charcoal)!important;border-color:var(--rn-line)!important;color:var(--rn-ivory);box-shadow:none}.field label,.page-head p,.item .meta,.dhub-msg small{color:var(--rn-muted)}
.field input,.field select,.field textarea,.search input{background:#11100f;color:var(--rn-ivory);border-color:var(--rn-line)}.field input:focus,.field select:focus,.field textarea:focus,.search input:focus{border-color:var(--rn-gold);box-shadow:0 0 0 3px rgba(214,169,104,.14)}
.btn{border-radius:var(--rn-radius-button);border-color:var(--rn-line);background:var(--rn-charcoal);color:var(--rn-ivory)}.btn.primary,.btn.gold{background:var(--rn-gold);border-color:var(--rn-gold);color:#080808}.btn.primary:hover,.btn.gold:hover{background:#e1ba7d;border-color:#e1ba7d;color:#080808}.btn:disabled{opacity:.45}
.qsh-eyebrow{display:block;color:var(--rn-gold);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.qsh-section{margin-top:30px}.qsh-section-head{margin-bottom:14px}.qsh-section-head h2{margin:4px 0 0;font-size:28px;font-weight:400}.qsh-section-head p{color:var(--rn-muted)}
.qsh-hero{position:relative;min-height:390px;padding:clamp(28px,6vw,72px);overflow:hidden;border:1px solid var(--rn-line);border-radius:var(--rn-radius-hero);background:linear-gradient(90deg,rgba(8,8,8,.98),rgba(8,8,8,.76)),var(--hero),linear-gradient(135deg,#080808,#1c1a17);background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:center}.qsh-hero h1{max-width:760px;margin:8px 0 12px;font-size:clamp(42px,6vw,76px);line-height:1.02;font-weight:400}.qsh-hero p{max-width:620px;color:var(--rn-muted);font-size:16px}.qsh-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.qsh-needs,.qsh-prompt-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.qsh-need,.qsh-prompt{min-height:84px;padding:16px;border:1px solid var(--rn-line);border-radius:18px;background:var(--rn-charcoal);color:var(--rn-ivory);text-align:left;cursor:pointer}.qsh-need:hover,.qsh-prompt:hover{border-color:var(--rn-gold);transform:translateY(-1px)}
.qsh-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qsh-service{min-height:170px;padding:18px;border:1px solid var(--rn-line);border-radius:20px;background:var(--rn-charcoal);display:flex;flex-direction:column;justify-content:space-between}.qsh-service h3{margin:7px 0;font-size:18px}.qsh-service p{color:var(--rn-muted)}
.qsh-commerce{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.qsh-commerce button{padding:20px;border:1px solid var(--rn-line);border-radius:20px;background:var(--rn-charcoal);color:var(--rn-ivory);text-align:left;cursor:pointer}.qsh-commerce b,.qsh-commerce small{display:block}.qsh-commerce small{margin-top:6px;color:var(--rn-muted)}
.qsh-state{padding:24px;border:1px dashed var(--rn-line);border-radius:20px;background:var(--rn-surface);color:var(--rn-muted)}.qsh-state h1,.qsh-state h2{margin:6px 0;color:var(--rn-ivory);font-weight:400}.qsh-error{border-color:#6f3434;color:#efb0b0}.qsh-state code{display:block;margin:12px 0;padding:8px;border-radius:10px;background:#111;color:var(--rn-gold)}
.qsh-qcare{margin-top:16px}.qsh-qcare-reply{min-height:130px;padding:18px;border-radius:16px;background:var(--rn-surface);color:var(--rn-muted)}.qsh-qcare-reply b{color:var(--rn-gold)}.qsh-qcare-reply p{color:var(--rn-ivory)}
.qsh-booking{max-width:900px}.qsh-booking-steps{display:flex;gap:8px;overflow:auto;padding:0 0 12px;scrollbar-width:none}.qsh-booking-steps span{flex:0 0 auto;padding:8px 12px;border:1px solid var(--rn-line);border-radius:999px;color:var(--rn-muted);font-size:12px}.qsh-booking-steps span.active{border-color:var(--rn-gold);background:#2d271f;color:var(--rn-gold)}.qsh-booking-form{padding:20px}.qsh-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.qsh-slot{min-height:62px;padding:10px 12px;border:1px solid var(--rn-line);border-radius:16px;background:var(--rn-charcoal);color:var(--rn-ivory);text-align:left;cursor:pointer}.qsh-slot b,.qsh-slot small{display:block}.qsh-slot small{margin-top:3px;color:var(--rn-muted)}.qsh-slot.selected{border-color:var(--rn-gold);background:#2d271f}.qsh-booking-review{display:flex;flex-direction:column;gap:5px;margin:14px 0;padding:16px;border:1px solid var(--rn-line);border-radius:16px;background:var(--rn-surface)}.qsh-booking-review small{color:var(--rn-muted)}
.qsh-account-today{display:grid;grid-template-columns:1.25fr .75fr;gap:12px}.qsh-today-card,.qsh-wallet-card{min-height:230px;padding:22px;border:1px solid var(--rn-line);border-radius:24px;background:var(--rn-charcoal)}.qsh-today-card h2,.qsh-wallet-card h2{margin:10px 0 8px;font-size:34px;font-weight:400}.qsh-today-card p,.qsh-wallet-card p{color:var(--rn-muted)}.qsh-wallet-card{background:linear-gradient(145deg,#2c241a,#1c1a17)}.qsh-wallet-card h2 small{font-size:13px;color:var(--rn-muted)}.qsh-journey{max-width:780px}.qsh-progress{height:8px;overflow:hidden;border-radius:999px;background:#2d271f}.qsh-progress i{display:block;height:100%;border-radius:999px;background:var(--rn-gold)}
.qsh-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}.qsh-metric{min-height:100px;padding:16px;border:1px solid var(--rn-line);border-radius:18px;background:var(--rn-charcoal)}.qsh-metric small,.qsh-metric b{display:block}.qsh-metric small{color:var(--rn-muted)}.qsh-metric b{margin-top:8px;font-size:25px}.qsh-role-key{font-size:15px!important;color:var(--rn-gold)}
.qsh-work-grid,.qsh-system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.qsh-row,.qsh-exception{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border:0;border-bottom:1px solid var(--rn-line);background:transparent;color:var(--rn-ivory);text-align:left}.qsh-row span:first-child,.qsh-exception span{display:flex;flex-direction:column;min-width:0}.qsh-row small,.qsh-exception small{color:var(--rn-muted)}.qsh-exception{padding:16px;border:1px solid var(--rn-line);border-radius:16px;margin:8px 0;background:var(--rn-charcoal);cursor:pointer}.qsh-exception strong{color:var(--rn-gold);font-size:22px}
.qsh-system-card{min-height:190px}.qsh-system-card h3{font-family:"Playfair Display",Georgia,serif;font-size:28px;font-weight:400;margin:8px 0}.qsh-system-card p{color:var(--rn-muted)}
@media(max-width:1024px){.qsh-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qsh-needs,.qsh-prompt-grid,.qsh-commerce{grid-template-columns:repeat(2,minmax(0,1fr))}.qsh-account-today{grid-template-columns:1fr 1fr}.qsh-work-grid,.qsh-system-grid{grid-template-columns:1fr}.qsh-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.main{padding-left:14px!important;padding-right:14px!important}.qsh-hero{min-height:0;padding:28px 20px;border-radius:24px}.qsh-hero h1{font-size:clamp(38px,12vw,54px);white-space:normal}.qsh-hero-actions{display:grid;grid-template-columns:1fr 1fr}.qsh-hero-actions .btn{width:100%}.qsh-needs,.qsh-prompt-grid,.qsh-commerce,.qsh-service-grid{grid-template-columns:1fr 1fr}.qsh-service{min-height:150px}.qsh-account-today{grid-template-columns:1fr}.qsh-today-card,.qsh-wallet-card{min-height:190px;padding:18px}.qsh-booking-form{padding:16px}.qsh-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.qsh-metrics{grid-template-columns:1fr 1fr}.qsh-metric{min-height:88px}.qsh-system-grid{grid-template-columns:1fr}.qsh-workspace-hero{align-items:flex-start!important}.bottom-nav{padding-bottom:max(8px,env(safe-area-inset-bottom))!important}.dhub{bottom:calc(88px + env(safe-area-inset-bottom))!important}}
@media(max-width:430px){.qsh-needs,.qsh-prompt-grid,.qsh-commerce{grid-template-columns:1fr 1fr}.qsh-service-grid{grid-template-columns:1fr}.qsh-hero-actions{grid-template-columns:1fr}.qsh-metrics{grid-template-columns:1fr 1fr}.qsh-metric b{font-size:20px}.qsh-booking-steps{margin-right:0}.qsh-state{padding:18px}}
@media(max-width:360px){.qsh-needs,.qsh-prompt-grid,.qsh-commerce,.qsh-metrics{grid-template-columns:1fr}.qsh-slots{grid-template-columns:1fr 1fr}.brand{max-width:62vw}.brand b{font-size:12px}.main{padding-left:12px!important;padding-right:12px!important}}
@supports(padding:max(0px)){.main{padding-bottom:max(90px,calc(82px + env(safe-area-inset-bottom)))}.login-wrap{padding-bottom:max(18px,env(safe-area-inset-bottom))}}

/* QA hardening: touch targets + bottom-nav clearance */
@media(max-width:767px){
.top-actions .icon-btn{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
.mode-workspace .main,.mode-customer .main{padding-bottom:calc(112px + env(safe-area-inset-bottom))!important}
.qty{min-height:44px}
.cart-line .icon-btn{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
.cart-line{grid-template-columns:minmax(0,1fr) 52px minmax(64px,82px) 44px}
}

/* RC1 deep QA — admin mobile controls and anchor targets */
a.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none}
.mode-workspace .main[data-context="admin"] input,
.mode-workspace .main[data-context="admin"] select{min-height:44px;padding:10px 12px;border:1px solid var(--rn-line);border-radius:12px;background:#11100f;color:var(--rn-ivory)}
@media(max-width:430px){.mode-workspace .main[data-context="admin"] input,.mode-workspace .main[data-context="admin"] select{width:100%}}

.auth-remember{min-height:44px;display:flex;align-items:center;gap:10px;cursor:pointer}.auth-remember input[type="checkbox"]{width:20px;height:20px;flex:0 0 20px}

/* R5 THEME ENGINE — Three Theme v3 DAY/NIGHT */
:root[data-color-mode="night"]{color-scheme:dark}
:root[data-color-mode="day"]{color-scheme:light;--rn-noir:#f7f2ea;--rn-charcoal:#fffaf2;--rn-surface:#f0e7dc;--rn-gold:#b78343;--rn-ivory:#241f1a;--rn-muted:#74695e;--rn-line:#d6c1a7;--rn-danger:#b64f4f;--bg-main:var(--rn-noir);--bg-card:var(--rn-charcoal);--bg-subtle:var(--rn-surface);--primary:var(--rn-ivory);--primary-light:var(--rn-muted);--accent:var(--rn-gold);--accent-dark:#8f642f;--accent-soft:#efe1cf;--border:var(--rn-line)}
:root[data-color-mode="day"] html,:root[data-color-mode="day"] body,:root[data-color-mode="day"] .app,:root[data-color-mode="day"] .main{background:var(--rn-noir)!important;color:var(--rn-ivory)}
:root[data-color-mode="day"] .topbar{background:rgba(247,242,234,.96)!important;border-bottom-color:var(--rn-line);color:var(--rn-ivory)}
:root[data-color-mode="day"] .app-rail{background:linear-gradient(180deg,#f7f2ea,#efe4d5)!important;border-right-color:var(--rn-line)}
:root[data-color-mode="day"] .card,:root[data-color-mode="day"] .panel,:root[data-color-mode="day"] .modal,:root[data-color-mode="day"] .notify,:root[data-color-mode="day"] .dhub-panel,:root[data-color-mode="day"] .login,:root[data-color-mode="day"] .item{background:var(--rn-charcoal)!important;border-color:var(--rn-line)!important;color:var(--rn-ivory)}
:root[data-color-mode="day"] .field input,:root[data-color-mode="day"] .field select,:root[data-color-mode="day"] .field textarea,:root[data-color-mode="day"] .search input{background:#fffdf8;color:var(--rn-ivory);border-color:var(--rn-line)}
:root[data-color-mode="day"] .btn{background:#fffaf2;color:var(--rn-ivory);border-color:var(--rn-line)}
:root[data-color-mode="day"] .btn.primary,:root[data-color-mode="day"] .btn.gold{background:var(--rn-gold);border-color:var(--rn-gold);color:#080808}
:root[data-color-mode="day"] .brand small{color:#7a6245!important}
:root[data-color-mode="day"] .qsh-hero{background:linear-gradient(90deg,rgba(247,242,234,.98),rgba(247,242,234,.82)),var(--hero),linear-gradient(135deg,#f7f2ea,#efe1cf)}
:root[data-color-mode="day"] .qsh-need,:root[data-color-mode="day"] .qsh-prompt,:root[data-color-mode="day"] .qsh-service,:root[data-color-mode="day"] .qsh-commerce button,:root[data-color-mode="day"] .qsh-slot,:root[data-color-mode="day"] .qsh-metric,:root[data-color-mode="day"] .qsh-exception{background:var(--rn-charcoal);color:var(--rn-ivory);border-color:var(--rn-line)}
:root[data-color-mode="day"] .qsh-wallet-card{background:linear-gradient(145deg,#f0e1ce,#fffaf2)}
:root[data-color-mode="day"] .qsh-state code{background:#fffaf2;color:#8f642f}
:root[data-color-mode="day"] .mode-workspace .main[data-context="admin"] input,:root[data-color-mode="day"] .mode-workspace .main[data-context="admin"] select{background:#fffdf8;color:var(--rn-ivory);border-color:var(--rn-line)}
:root[data-color-mode="day"] .bottom-nav{background:rgba(255,250,242,.97);border-color:var(--rn-line)}

/* QSH_AUTH_COMPACT_V1 */
.login-wrap{
  min-height:100vh;
  min-height:100svh;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:max(16px,env(safe-area-inset-top)) clamp(16px,4vw,24px) max(20px,env(safe-area-inset-bottom));
}
.login{
  width:100%;
  max-width:432px;
  margin:0 auto;
  box-sizing:border-box;
  padding:clamp(20px,4vw,28px);
  border-radius:20px;
}
.login h1{
  margin:0 0 8px;
  font-size:clamp(28px,7.2vw,38px);
  line-height:1.08;
}
.login form{
  display:grid;
  gap:12px;
  margin-top:16px;
}
.login label{display:grid;gap:6px;}
.login input,
.login select,
.login textarea{
  width:100%;
  box-sizing:border-box;
  min-height:48px;
  padding:0 14px;
  border-radius:14px;
}
.login textarea{min-height:88px;padding-block:12px;}
.login button,
.login .btn{
  min-height:48px;
  border-radius:14px;
}
.login .auth-remember{
  margin:2px 0;
  gap:8px;
}
.login .auth-remember input[type="checkbox"]{
  width:20px;
  min-width:20px;
  height:20px;
  min-height:20px;
  padding:0;
}
.login p{margin-block:8px;}
@media (max-width:430px){
  .login-wrap{
    align-items:flex-start;
    padding:max(14px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));
  }
  .login{
    max-width:none;
    padding:18px 16px 16px;
    border-radius:18px;
  }
  .login h1{font-size:clamp(26px,8vw,34px);}
  .login form{margin-top:14px;}
}
@media (max-height:700px){
  .login-wrap{align-items:flex-start;}
  .login{padding-block:16px;}
  .login form{gap:10px;margin-top:12px;}
}

/* Royal Noir final compatibility bridge after retained touch rules */
:root{--ivory:var(--rn-noir);--surface:var(--rn-charcoal);--surface-2:var(--rn-surface);--ink:var(--rn-ivory);--muted:var(--rn-muted);--line:var(--rn-line);--gold:var(--rn-gold);--gold-2:var(--rn-gold);--chrome:var(--rn-noir)}
