html, body { max-width:100%; overflow-x:hidden; }
body.coral-nav-open { overflow:hidden; }
.coral-topbar { min-height:64px; }
.nav-drawer-head { display:none; }
.coral-nav-backdrop { display:none; }
main { width:100%; }
img, video, canvas, svg { max-width:100%; }
.table-wrap { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.modal { max-width:calc(100vw - 28px); }
.form-row { flex-wrap:wrap; }
.grid-2, .report-grid, .task-grid, .room-grid { min-width:0; }
input, select, textarea, button { font:inherit; }
.nav-menu-trigger { -webkit-appearance:none; appearance:none; }
@media (max-width:1050px) {
  .coral-topbar { position:sticky; top:0; z-index:90; flex-wrap:nowrap; padding:10px 14px; min-height:62px; }
  .coral-brand-link { min-width:0; }
  .coral-topbar .brand-tagline { display:block; font-size:.58rem; overflow:hidden; text-overflow:ellipsis; }
  .nav-mobile-toggle { display:inline-flex !important; align-items:center; justify-content:center; width:42px; height:42px; margin-left:auto; padding:0; border-radius:12px; }
  .topbar nav.coral-nav { display:flex !important; position:fixed; top:0; right:0; bottom:0; width:min(88vw,360px); height:100dvh; z-index:110; margin:0; padding:0 16px 24px; flex-direction:column; align-items:stretch; flex-wrap:nowrap; overflow-y:auto; background:#151517; border-left:1px solid var(--border); box-shadow:-24px 0 60px rgba(0,0,0,.5); transform:translateX(105%); transition:transform .22s ease; }
  .topbar nav.coral-nav.open { transform:translateX(0); }
  .coral-nav-backdrop { position:fixed; inset:0; z-index:100; background:rgba(0,0,0,.58); backdrop-filter:blur(2px); }
  body.coral-nav-open .coral-nav-backdrop { display:block; }
}@media (max-width:1050px) {
  .nav-drawer-head { display:flex; position:sticky; top:0; z-index:2; align-items:center; justify-content:space-between; gap:12px; padding:18px 2px 14px; background:#151517; border-bottom:1px solid var(--border); margin-bottom:8px; }
  .nav-drawer-head strong, .nav-drawer-head small { display:block; }
  .nav-drawer-head strong { color:var(--gold); font-size:1.05rem; letter-spacing:.08em; text-transform:uppercase; }
  .nav-drawer-head small { color:var(--muted); font-size:.68rem; margin-top:2px; }
  .nav-drawer-head button { width:38px; height:38px; border-radius:10px; border:1px solid var(--border); background:var(--panel-2); color:var(--text); font-size:1.5rem; line-height:1; }
  .coral-topbar .coral-nav > a { width:100%; margin:0 !important; padding:12px 12px !important; border-radius:10px; font-size:.94rem; text-align:left; }
  .coral-nav .nav-menu { width:100%; }
  .coral-nav .nav-menu-trigger { width:100%; min-height:46px; display:flex; align-items:center; justify-content:space-between; padding:11px 12px !important; margin:0; border:0 !important; border-radius:10px !important; background:transparent !important; color:var(--text) !important; text-align:left; font-size:.91rem !important; box-shadow:none !important; }
  .coral-nav .nav-menu-trigger span { transition:transform .18s ease; }
  .coral-nav .nav-menu.expanded .nav-menu-trigger span { transform:rotate(180deg); }
  .coral-nav .nav-menu-panel { display:none !important; position:static !important; min-width:0 !important; margin:0 0 7px 12px !important; padding:2px 0 5px 10px !important; border:0 !important; border-left:1px solid var(--border) !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; }
  .coral-nav .nav-menu.expanded .nav-menu-panel { display:grid !important; }
  .coral-nav .nav-menu-panel a { margin:0 !important; padding:10px 12px !important; border:0 !important; border-radius:8px; font-size:.86rem; color:var(--muted); }
  .coral-nav .property-switcher { width:100%; max-width:none; margin:10px 0 4px !important; }
  .coral-nav .staff-chip { margin:12px 2px 4px !important; padding-top:12px; border-top:1px solid var(--border); white-space:normal; }
  .coral-nav .tiny-btn, .coral-nav .lang-toggle { width:100%; margin:4px 0 !important; min-height:44px; }
}@media (max-width:760px) {
  main, main.dashboard-main { padding:20px 14px 42px !important; max-width:100% !important; }
  h1 { font-size:1.42rem; line-height:1.2; }
  .subtitle { font-size:.82rem; line-height:1.5; }
  .grid-2, .report-grid, .pos-layout { grid-template-columns:1fr !important; }
  .room-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:9px; }
  .task-grid { grid-template-columns:1fr !important; }
  .line-row { grid-template-columns:1fr !important; }
  .form-row { display:grid !important; grid-template-columns:1fr !important; gap:8px; }
  .form-row > * { width:100% !important; max-width:none !important; margin-left:0 !important; margin-right:0 !important; }
  .card, .command-card, .stat-card { padding:15px !important; border-radius:14px !important; }
  .modal-backdrop { align-items:flex-end; padding:0; }
  .modal { width:100% !important; max-width:100% !important; max-height:88dvh; border-radius:18px 18px 0 0 !important; padding:20px 16px calc(20px + env(safe-area-inset-bottom)) !important; }
  main table { display:block; width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; white-space:nowrap; }
  th, td { padding:9px 10px; font-size:.8rem; }
  .tab-row { overflow-x:auto; flex-wrap:nowrap !important; padding-bottom:4px; }
  .tab-btn { flex:0 0 auto; }
  .ai-chat-msg { max-width:92% !important; }
  .ai-chat-input-row { flex-direction:column; }
  .ai-chat-input-row .btn { width:100%; }
  .toast { left:14px; right:14px; bottom:calc(14px + env(safe-area-inset-bottom)); }
  .qr-box { max-width:100%; overflow:auto; }
}@media (max-width:760px) {
  .dashboard-hero { display:block !important; margin-bottom:18px !important; }
  .dashboard-hero h1 { font-size:2rem !important; line-height:1.05; }
  .automation-badge { margin-top:10px; }
  .kpi-grid { grid-template-columns:1fr 1fr !important; gap:9px !important; }
  .kpi-card { min-height:128px !important; padding:14px !important; border-radius:15px !important; }
  .kpi-value { margin-top:14px !important; font-size:1.75rem !important; }
  .kpi-value.money { font-size:1.2rem !important; }
  .kpi-meta { font-size:.64rem !important; line-height:1.35; }
  .dashboard-grid { grid-template-columns:1fr !important; gap:10px !important; }
  .ops-grid { grid-template-columns:1fr 1fr !important; gap:8px !important; }
  .quick-actions { display:grid !important; grid-template-columns:1fr 1fr; gap:7px !important; }
  .quick-action { text-align:center; padding:9px 8px !important; }
  .card-heading { gap:10px !important; }
  .card-heading .text-link { white-space:nowrap; }
  .automation-jobs { grid-template-columns:1fr !important; }
}
@media (max-width:390px) {
  .kpi-grid { grid-template-columns:1fr !important; }
  .room-grid { grid-template-columns:1fr !important; }
  .quick-actions { grid-template-columns:1fr !important; }
  .coral-topbar .brand-tagline { display:none; }
}@media (max-width:1050px) {
  .coral-nav .nav-menu-panel a.current-page, .coral-nav > a.current-page { color:var(--gold) !important; background:rgba(201,166,63,.10) !important; }
  body.rtl .topbar nav.coral-nav { right:auto; left:0; border-left:0; border-right:1px solid var(--border); box-shadow:24px 0 60px rgba(0,0,0,.5); transform:translateX(-105%); }
  body.rtl .topbar nav.coral-nav.open { transform:translateX(0); }
  body.rtl .coral-nav .nav-menu-panel { margin-left:0 !important; margin-right:12px !important; padding-left:0 !important; padding-right:10px !important; border-left:0 !important; border-right:1px solid var(--border) !important; }
}
@media (hover:none) and (pointer:coarse) {
  button, .btn, .tiny-btn, .quick-action, .nav-menu-panel a { min-height:44px; }
}
/* Loyalty + QR Center */
.loyalty-modal-card{width:min(920px,calc(100vw - 30px))!important}
.loyalty-detail-grid{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:20px;align-items:start}
.staff-card{min-height:360px}.staff-card .preferred-card-qr{display:block}
.qr-center-grid{align-items:start}.qr-preview-card{text-align:center;min-height:360px;display:flex;align-items:center;justify-content:center}
.qr-large{display:block;width:min(280px,75vw);height:auto;margin:14px auto;background:white;padding:10px;border-radius:18px}
.qr-target{font-size:.75rem;line-height:1.45;color:var(--muted);word-break:break-all;margin:12px 0}
.qr-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
@media(max-width:760px){.loyalty-detail-grid{grid-template-columns:1fr}.qr-center-grid{grid-template-columns:1fr!important}.staff-card{min-height:0}}
@media print{.coral-topbar,.qr-center-grid>div:first-child,.qr-actions{display:none!important}.qr-center-grid{display:block!important}.qr-preview-card{border:0;box-shadow:none}.qr-large{width:320px}}

/* User & Module Access */
.access-layout{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:18px;margin-top:22px;align-items:start}
.access-users h2,.access-editor h2{margin-top:0}.access-user{width:100%;display:flex;flex-direction:column;gap:4px;text-align:left;padding:12px 13px;margin:0 0 8px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:inherit;cursor:pointer}.access-user span{font-size:.76rem;color:var(--muted)}.access-user.active{outline:2px solid currentColor}
.access-user-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap}.module-group{margin-top:20px}.module-group h3{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.module-tile{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:12px;padding:11px;cursor:pointer}.module-tile input{width:auto;margin-top:2px}.module-tile strong,.module-tile small{display:block}.module-tile small{margin-top:3px;color:var(--muted);font-size:.7rem}
@media(max-width:760px){.access-layout{grid-template-columns:1fr}.module-grid{grid-template-columns:1fr}}
