/* ═══════════════════════════════════════════════════════════
   EPCH ExpoManager — Light Theme
   White background · Large readable fonts · Clean design
   ═══════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&family=DM+Sans:wght@400;500;600&display=swap');

:root {
  --bg:     #f4f7fa;
  --bg2:    #ffffff;
  --bg3:    #edf1f7;
  --bg4:    #e2e8f0;
  --bd:     #d0dbe8;
  --bd2:    #b0bdd0;
  --t:      #1a2535;
  --t2:     #4a5568;
  --t3:     #718096;
  --accent: #e67e22;
  --accent2:#d35400;
  --gold:   #c8980a;
  --green:  #27ae60;
  --red:    #e53e3e;
  --blue:   #2980b9;
  --purple: #8e44ad;
  --occ:    #1a6bbf;
  --occ-bg: #dbeafe;
  --vac:    #1e8449;
  --vac-bg: #d4efdf;
  --hold:   #b7950b;
  --hold-bg:#fef9c3;
  --r:  8px;  --r2: 12px;
  --sh: 0 1px 6px rgba(0,0,0,.07), 0 3px 14px rgba(0,0,0,.05);
  --sh2: 0 4px 20px rgba(0,0,0,.13);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--t);font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.65;min-height:100vh}

::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:var(--bg3)}
::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:4px}

/* ── LOGIN ── */
.login-body{background:linear-gradient(135deg,#1a2535 0%,#2c3e50 55%,#e67e22 100%);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-bg{display:none}
.login-grid{display:none}
.login-wrap{width:100%;max-width:440px}
.login-card{background:#fff;border-radius:18px;padding:44px 40px;box-shadow:0 8px 40px rgba(0,0,0,.25)}
.lc-logo{font-size:36px;text-align:center;margin-bottom:10px;color:var(--accent)}
.lc-title{font-family:'Rajdhani',sans-serif;font-size:30px;font-weight:700;text-align:center;color:var(--t);margin-bottom:4px}
.lc-title span{color:var(--accent)}
.lc-sub{text-align:center;font-size:15px;color:var(--t2);margin-bottom:4px}
.lc-event{display:block;text-align:center;font-size:13px;color:var(--t3);margin-bottom:20px}
.login-form{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}
.fg{display:flex;flex-direction:column;gap:5px}
.fg label{font-size:13px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.5px}
.fg input,.inp{width:100%;background:var(--bg3);border:1.5px solid var(--bd);border-radius:var(--r);padding:11px 15px;font-size:15px;color:var(--t);font-family:'DM Sans',sans-serif;transition:border-color .15s}
.fg input:focus,.inp:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(230,126,34,.15)}
.btn-login{background:var(--accent);color:#fff;border:none;border-radius:var(--r);padding:13px;font-size:16px;font-weight:700;cursor:pointer;width:100%;transition:background .15s;font-family:'DM Sans',sans-serif}
.btn-login:hover{background:var(--accent2)}
.lc-roles{display:flex;flex-direction:column;gap:7px;padding-top:16px;border-top:1px solid var(--bd)}
.role-hint{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--t2)}
.role-hint code{font-size:12px;background:var(--bg3);padding:2px 8px;border-radius:4px;color:var(--t2)}
.rh-badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:12px;text-transform:uppercase;letter-spacing:.5px}
.rh-badge.admin{background:#fde8d8;color:#c0550a}
.rh-badge.hall_manager{background:#dbeafe;color:#1a5fa0}
.rh-badge.user{background:#d4efdf;color:#1a6b3c}
.rh-badge.exhibitor{background:#f3e8ff;color:#7c3aed}

/* ── NAVBAR ── */
.navbar{background:#1a2535;border-bottom:3px solid var(--accent);display:flex;flex-wrap:wrap;align-items:center;padding:8px 20px;min-height:58px;position:sticky;top:0;z-index:200;gap:6px;row-gap:8px;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.nav-brand{display:flex;align-items:center;gap:9px;font-family:'Rajdhani',sans-serif;font-size:20px;font-weight:700;color:#fff;text-decoration:none;white-space:nowrap;flex-shrink:0;margin-right:8px}
.nav-brand em{color:var(--accent);font-style:normal}
.brand-hex{color:var(--accent);font-size:22px}
.nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:2px;flex:1;min-width:160px;overflow:visible}
.nav-link{color:rgba(255,255,255,.72);text-decoration:none;font-size:14px;font-weight:500;padding:6px 12px;border-radius:6px;transition:all .15s;white-space:nowrap}
.nav-link:hover,.nav-link.active{color:#fff}
.nav-link.active{background:var(--accent)}
.nav-link:hover:not(.active){background:rgba(255,255,255,.1)}
.nav-right{display:flex;align-items:center;gap:9px;flex-shrink:0;margin-left:auto}
.role-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:.5px;background:rgba(255,255,255,.15);color:#fff}
.role-badge.admin{background:rgba(230,126,34,.35);color:#ffd0a0}
.role-badge.executive{background:rgba(34,211,238,.25);color:#a5f3fc}
.nav-username{color:rgba(255,255,255,.75);font-size:13px;white-space:nowrap}
.nav-icon-btn{width:33px;height:33px;background:rgba(255,255,255,.1);border:none;border-radius:7px;color:rgba(255,255,255,.75);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;text-decoration:none;transition:all .15s}
.nav-icon-btn:hover{background:rgba(255,255,255,.2);color:#fff}
.logout-btn:hover{background:rgba(231,76,60,.4)!important}
.sec-link,.fm-link{opacity:.85}

/* ── LAYOUT ── */
.page-wrap{max-width:1440px;margin:0 auto;padding:24px}
.flash-stack{margin-bottom:18px;display:flex;flex-direction:column;gap:8px}
.flash{padding:12px 16px;border-radius:var(--r);font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:space-between;gap:12px}
.flash button{background:none;border:none;cursor:pointer;font-size:16px;opacity:.6;padding:0 4px}
.flash button:hover{opacity:1}
.flash-success{background:#d4efdf;color:#1e6b3c;border-left:4px solid var(--green)}
.flash-error{background:#fde8e8;color:#9b1c1c;border-left:4px solid var(--red)}
.flash-info{background:#dbeafe;color:#1a4d8a;border-left:4px solid var(--blue)}
.flash-warn, .flash-warning{background:#fef3cd;color:#7c5c00;border-left:4px solid var(--gold)}

/* ── PAGE HEADER ── */
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.page-title{font-family:'Rajdhani',sans-serif;font-size:28px;font-weight:700;color:var(--t);margin-bottom:2px}
.page-sub{font-size:14px;color:var(--t2)}

/* ── DASHBOARD ── */
.dashboard{}
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:18px}
.stat-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r2);padding:26px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;box-shadow:var(--sh);position:relative;overflow:hidden;transition:transform .15s,box-shadow .15s}
.stat-card:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--bd)}
.stat-card.s-total::before{background:var(--blue)}
.stat-card.s-occ::before{background:var(--occ)}
.stat-card.s-vac::before{background:var(--green)}
.stat-card.s-hold::before{background:var(--gold)}
.sc-icon{font-size:24px;margin-bottom:2px}
.sc-val{font-family:'Rajdhani',sans-serif;font-size:48px;font-weight:700;line-height:1}
.stat-card.s-total .sc-val{color:var(--blue)}
.stat-card.s-occ .sc-val{color:var(--occ)}
.stat-card.s-vac .sc-val{color:var(--green)}
.stat-card.s-hold .sc-val{color:var(--gold)}
.stat-card:not(.s-total):not(.s-occ):not(.s-vac):not(.s-hold) .sc-val{color:var(--purple)}
.sc-lbl{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--t2)}
.sc-pct{font-size:14px;font-weight:600;color:var(--t3)}
.dash-warn{background:#fff8e1;border:1px solid #f9a825;border-left:4px solid #f9a825;border-radius:var(--r);padding:14px 18px;margin-bottom:20px;font-size:14px;color:#7c5c00;line-height:1.7}
.dash-warn a{color:var(--accent);font-weight:600}
.dash-cols{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-top:24px}
.dash-left,.dash-right{}

/* Hall cards */
.halls-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.hall-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r2);padding:18px 16px;text-decoration:none;color:inherit;box-shadow:var(--sh);display:block;transition:all .15s;cursor:pointer}
.hall-card:hover{transform:translateY(-2px);box-shadow:var(--sh2);border-color:var(--accent)}
.hc-num{font-family:'Rajdhani',sans-serif;font-size:22px;font-weight:700;color:var(--t);margin-bottom:10px}
.hc-bar{height:8px;background:var(--bg3);border-radius:4px;margin-bottom:10px;overflow:hidden}
.hc-fill{height:100%;border-radius:4px;background:var(--occ);transition:width .4s}
.hc-stats{display:flex;gap:12px;font-size:13px;color:var(--t2);flex-wrap:wrap}
.hc-occ{color:var(--occ);font-weight:600}
.hc-vac{color:var(--green);font-weight:600}
.hc-hold{color:var(--hold);font-weight:600}
.hc-arrow{float:right;color:var(--t3);font-size:18px}

/* Vacant box */
.size-btns{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.sz-btn{padding:6px 16px;border:1.5px solid var(--bd);border-radius:20px;background:var(--bg3);color:var(--t2);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}
.sz-btn.active,.sz-btn:hover{border-color:var(--accent);color:var(--accent)}
.vacant-box{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r2);padding:18px;box-shadow:var(--sh)}
.vacant-box.hidden{display:none}
.vb-count{font-family:'Rajdhani',sans-serif;font-size:28px;font-weight:700;color:var(--green);margin-bottom:10px}
.vb-chips{display:flex;flex-wrap:wrap;gap:7px}

/* ── TOOL CARDS ── */
.tool-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r2);padding:22px;margin-bottom:18px;box-shadow:var(--sh)}
.tool-head{font-size:16px;font-weight:600;color:var(--t);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;gap:12px}

/* ── TABLES ── */
.tbl-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--bd)}
.data-tbl{width:100%;border-collapse:collapse;font-size:14px}
.data-tbl th{background:var(--bg3);padding:11px 14px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--t2);border-bottom:2px solid var(--bd);white-space:nowrap}
.data-tbl td{padding:11px 14px;border-bottom:1px solid var(--bd);vertical-align:middle}
.data-tbl tbody tr:hover{background:var(--bg3)}
.data-tbl tbody tr:last-child td{border-bottom:none}
.tbl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}

/* ── BUTTONS ── */
.btn,.btn-primary,.btn-secondary,.btn-danger,.btn-blue,.btn-green,.btn-info,.btn-warn,.btn-ok{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:var(--r);border:none;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;font-family:'DM Sans',sans-serif;text-decoration:none;white-space:nowrap}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent2)}
.btn-secondary{background:var(--bg3);color:var(--t);border:1.5px solid var(--bd)}
.btn-secondary:hover{background:var(--bg4)}
.btn-danger{background:var(--red);color:#fff}
.btn-danger:hover{background:#c0392b}
.btn-blue,.btn-info{background:var(--blue);color:#fff}
.btn-blue:hover,.btn-info:hover{background:#1a5fa0}
.btn-green,.btn-ok{background:var(--green);color:#fff}
.btn-green:hover,.btn-ok:hover{background:#1e8449}
.btn-warn{background:var(--gold);color:#fff}
.btn-warn:hover{background:#a07800}
.btn-sm{padding:6px 13px;font-size:13px}
.btn-xs{padding:4px 10px;font-size:12px}
.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--t2);text-decoration:none;font-size:14px;font-weight:500;margin-bottom:16px}
.back-link:hover{color:var(--accent)}

/* ── FORMS ── */
.form-stack{display:flex;flex-direction:column;gap:14px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{font-size:13px;font-weight:600;color:var(--t2);display:block;margin-bottom:5px;text-transform:uppercase;letter-spacing:.4px}
input[type=text],input[type=password],input[type=email],input[type=number],input[type=search],select,textarea{width:100%;background:var(--bg2);border:1.5px solid var(--bd);border-radius:var(--r);padding:10px 13px;font-size:15px;color:var(--t);transition:border-color .15s;font-family:'DM Sans',sans-serif}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(230,126,34,.12)}
textarea{resize:vertical;min-height:80px}
input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}
.srch-inp{width:100%;background:var(--bg2);border:1.5px solid var(--bd);border-radius:var(--r);padding:9px 13px;font-size:14px;color:var(--t);transition:border-color .15s;font-family:'DM Sans',sans-serif}
.srch-inp:focus{outline:none;border-color:var(--accent)}
.clear-option{font-size:13px;color:var(--t3);padding:8px 12px;background:var(--bg3);border-radius:var(--r);margin-bottom:10px}
.clear-warn{color:var(--red);font-size:13px;font-weight:500}
.help-txt{font-size:12px;color:var(--t3);margin-top:4px}
.code-pre{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:12px 16px;font-size:13px;font-family:monospace;overflow-x:auto;white-space:pre}

/* ── BADGES / PILLS ── */
.badge,.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}
.badge-occ{background:var(--occ-bg);color:var(--occ)}
.badge-vac{background:var(--vac-bg);color:var(--vac)}
.badge-hold{background:var(--hold-bg);color:var(--hold)}
.stand-chip{display:inline-flex;align-items:center;padding:4px 12px;border-radius:6px;font-size:13px;font-weight:600;background:var(--bg3);color:var(--t);border:1px solid var(--bd);text-decoration:none}
.stand-chip:hover{border-color:var(--accent);color:var(--accent)}

/* ── HALL VIEW ── */
.hall-page{max-width:1440px;margin:0 auto;padding:24px}
.ctrl-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.ctrl-label{font-family:'Rajdhani',sans-serif;font-size:22px;font-weight:700;color:var(--t)}
.ctrl-filters,.ctrl-views{display:flex;gap:8px;flex-wrap:wrap}
.flt-btn,.vw-btn{padding:7px 16px;border-radius:20px;border:1.5px solid var(--bd);background:var(--bg2);color:var(--t2);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}
.flt-btn:hover,.vw-btn:hover{border-color:var(--accent);color:var(--accent)}
.flt-btn.active,.vw-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}
.stand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px}
.stand-lbl{font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:700;color:var(--t);margin-bottom:3px}
.stand-area-lbl{font-size:12px;color:var(--t3)}
.stand-g{background:var(--bg2);border:1.5px solid var(--bd);border-radius:var(--r);padding:13px 11px;cursor:pointer;transition:all .15s;box-shadow:var(--sh)}
.stand-g:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.stand-g.occupied{border-color:#90bce8;background:#f0f7ff}
.stand-g.vacant{border-color:#7dcc9a;background:#f0faf4}
.stand-g.hold{border-color:#d4ac0d;background:#fffdf0}
.scc-no{font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:700;color:var(--t)}
.scc-name{font-size:13px;font-weight:600;color:var(--t);margin-top:3px}
.scc-area{font-size:12px;color:var(--t3)}
.scc-status,.scc-corner{font-size:11px;font-weight:700}
.scc-status.occupied{color:var(--occ)}
.scc-status.vacant{color:var(--green)}
.scc-multi{font-size:12px;color:var(--purple);font-weight:600}
.aisle-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--t3);padding:10px 4px 4px;grid-column:1/-1}

/* ── MODAL ── */
.modal-bg,.lp-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:500;display:flex;align-items:center;justify-content:center;padding:16px}
/* Pop-up boxes built as <div class="modal"> with the backdrop and the box
   side by side (Users page: Reset password, Edit user). The box must sit
   ABOVE the backdrop — before, the backdrop covered it, so tapping the
   password field hit the backdrop and closed the box. */
.modal{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:16px}
.modal.hidden{display:none!important}
.modal > .modal-bg{position:absolute;inset:0;z-index:0;padding:0}
.modal > .modal-box{position:relative;z-index:1}
.modal-box,.lp-modal-box{background:var(--bg2);border-radius:var(--r2);padding:28px;max-width:640px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--sh2)}
.modal-head,.lp-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--bd)}
.modal-head h3,.lp-modal-head h3{font-family:'Rajdhani',sans-serif;font-size:22px;font-weight:700;color:var(--t)}
.modal-x{background:none;border:none;font-size:22px;cursor:pointer;color:var(--t2);padding:2px 6px;border-radius:5px;transition:all .15s}
.modal-x:hover{background:var(--red);color:#fff}
.modal-parts,.modal-vacant{margin-bottom:18px}
.p-card,.pc-top{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:14px;margin-bottom:10px}
.pc-org,.ov-name{font-size:16px;font-weight:700;color:var(--t);margin-bottom:3px}
.pc-ref,.ov-sno{font-size:12px;color:var(--t3)}
.pc-fascia{font-size:14px;color:var(--t2);margin-top:4px}
.pc-grid,.p-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.pc-field,.pi-meta{font-size:13px;color:var(--t2)}
.pi-name{font-size:15px;font-weight:700;color:var(--t)}
.pi-sno{font-size:13px;color:var(--t3);margin-bottom:3px}
.pig-item{background:var(--bg3);border-radius:6px;padding:10px;text-align:center}
.notes-wrap{margin-top:14px}
.notes-wrap textarea{width:100%;border:1.5px solid var(--bd);border-radius:8px;padding:10px 12px;font-size:14px;font-family:'DM Sans',sans-serif;color:var(--t);background:var(--bg);resize:vertical;min-height:80px}
.notes-wrap textarea:focus{outline:none;border-color:var(--accent)}
.save-status{font-size:13px;color:var(--green);margin-top:6px}
.track-section{margin-bottom:16px}
.track-title{font-size:14px;font-weight:600;color:var(--t2);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}
.track-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.chk-lbl{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--r);border:1.5px solid var(--bd);background:var(--bg3);font-size:14px;cursor:pointer;transition:all .15s}
.chk-lbl:hover{border-color:var(--green)}
.chk-lbl.checked{background:var(--vac-bg);border-color:var(--green);color:var(--vac)}
.track-help{font-size:12px;color:var(--t3);margin-top:8px}

/* Booth banner exhibitor */
.booth-banner{background:var(--bg2);border:2px solid var(--accent);border-radius:var(--r2);padding:22px;margin-bottom:20px}
.bb-sno{font-family:'Rajdhani',sans-serif;font-size:32px;font-weight:700;color:var(--t)}
.bb-status{font-size:14px;font-weight:600;margin-top:4px}
.bb-left{flex:1}
.bb-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.bb-meta{font-size:13px;color:var(--t2)}
.balance-alert{background:#fde8e8;border:1px solid var(--red);border-radius:var(--r);padding:12px 16px;color:var(--red);font-size:14px;font-weight:500;margin-bottom:14px}
.fin-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.fin-item{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:14px;flex:1;min-width:120px;text-align:center}
.fin-row .fin-item.bal-due .fin-item-val{color:var(--red)}
.fin-item-label{font-size:12px;color:var(--t2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.fin-item-val{font-family:'Rajdhani',sans-serif;font-size:24px;font-weight:700;color:var(--t)}
.view-panel{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r2);padding:20px;box-shadow:var(--sh)}
.mv-icon{font-size:20px;margin-bottom:4px}
.mv-msg{font-size:14px;font-weight:500;color:var(--t)}
.mv-detail{font-size:13px;color:var(--t2);margin-top:3px}
.upd-info{font-size:12px;color:var(--t3);text-align:right;margin-top:8px}

/* ── IMPORT PAGES ── */
.admin-page{max-width:1100px;margin:0 auto}
.ir-banner{background:var(--bg2);border-radius:var(--r2);padding:24px;margin-bottom:24px;box-shadow:var(--sh);display:flex;align-items:center;gap:16px}
.ir-banner-icon{font-size:40px}
.ir-banner-title{font-family:'Rajdhani',sans-serif;font-size:24px;font-weight:700;color:var(--t)}
.ir-fail .ir-banner-title{color:var(--red)}
.imp-stat-grid,.stats-row.four-col{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}
.imp-stat,.sc-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r2);padding:20px 16px;text-align:center;box-shadow:var(--sh)}
.imp-stat-icon{font-size:28px;margin-bottom:6px}
.imp-stat-val{font-family:'Rajdhani',sans-serif;font-size:38px;font-weight:700;line-height:1;margin-bottom:4px}
.imp-stat-lbl{font-size:12px;font-weight:600;text-transform:uppercase;color:var(--t2)}
.ir-headers{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.ir-header-chip{padding:5px 12px;border-radius:20px;font-size:13px;font-weight:500}
.ir-col-ok{background:var(--vac-bg);color:var(--vac)}
.ir-col-miss{background:#fde8e8;color:var(--red)}
.ir-required-check{font-size:14px;margin-bottom:6px}
.ir-error-detail{font-size:13px;color:var(--t2);margin-top:6px}

@keyframes spin{to{transform:rotate(360deg)}}

/* LP Tooltip */

/* LP Panel */

/* LP Search dropdown */

/* ── LAYOUT EDITOR ── */
.editor-page{display:flex;flex-direction:column;height:100vh;overflow:hidden}
.editor-header{background:#1a2535;color:#fff;padding:12px 20px;display:flex;align-items:center;gap:14px;flex-shrink:0}
.editor-toolbar{background:var(--bg2);border-bottom:1px solid var(--bd);padding:10px 16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;flex-shrink:0}
.editor-body{display:flex;flex:1;overflow:hidden}
.editor-canvas-wrap{flex:1;overflow:auto;background:#e5eaf2;position:relative}
.editor-canvas{position:relative}
.overlays-layer{position:absolute;top:0;left:0;pointer-events:none}
.floor-plan-img{display:block}
.ov-name{font-size:10px;font-weight:700;text-align:center;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.ov-sno{font-size:10px;color:rgba(255,255,255,.9);text-align:center}
.ov-resize{position:absolute;bottom:1px;right:1px;width:10px;height:10px;cursor:se-resize;background:rgba(255,255,255,.5)}
.stand-palette{width:260px;background:var(--bg2);border-left:1px solid var(--bd);display:flex;flex-direction:column;overflow:hidden}
.palette-title{font-size:14px;font-weight:600;padding:12px 14px;border-bottom:1px solid var(--bd)}
.palette-legend{display:flex;flex-direction:column;gap:6px;padding:10px 14px}
.palette-list{flex:1;overflow-y:auto;padding:8px}
.palette-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r);cursor:pointer;transition:background .1s}
.palette-item:hover{background:var(--bg3)}
.col-guide{width:12px;height:12px;border-radius:3px;flex-shrink:0}
.corner,.corner-b,.gk{font-size:11px;color:var(--t3)}

/* ── LAYOUT GROUPS GRID ── */
.layout-groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.lg-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r2);padding:18px;box-shadow:var(--sh);transition:all .15s}
.lg-card:hover{box-shadow:var(--sh2)}
.lg-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.lg-title{font-family:'Rajdhani',sans-serif;font-size:19px;font-weight:700;color:var(--t)}
.lg-dot{width:10px;height:10px;border-radius:50%;background:var(--bd2)}
.lg-dot.has-layout{background:var(--green)}
.lg-preview{height:120px;background:var(--bg3);border-radius:var(--r);overflow:hidden;margin-bottom:12px;display:flex;align-items:center;justify-content:center}
.lg-thumb{width:100%;height:100%;object-fit:cover}
.lg-empty{text-align:center;color:var(--t3)}
.lg-empty-icon{font-size:32px;margin-bottom:6px}
.lg-halls{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.lg-item{font-size:11px;padding:2px 8px;border-radius:12px;background:var(--occ-bg);color:var(--occ);font-weight:600}
.lg-meta{font-size:13px;color:var(--t2);margin-bottom:12px}
.lg-overlay-count{font-size:12px;color:var(--t3);margin-bottom:10px}
.lg-actions{display:flex;gap:8px;flex-wrap:wrap}
.lg-file-label,.layout-upload-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--r);border:1.5px dashed var(--bd2);background:var(--bg3);color:var(--t2);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}
.lg-file-label:hover,.layout-upload-btn:hover{border-color:var(--accent);color:var(--accent)}
.lg-upload-form{margin-bottom:10px}
.layout-view-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r);background:var(--occ-bg);color:var(--occ);font-size:13px;font-weight:600;text-decoration:none;transition:all .15s}
.layout-view-btn:hover{background:var(--occ);color:#fff}
.lg-has-layout{border-color:var(--green)!important}
.map-wrap{background:var(--bg3);border-radius:var(--r2);padding:8px;overflow:auto}
.map-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--t2);margin-top:8px}
.legend-bar{width:20px;height:10px;border-radius:3px;display:inline-block;margin-right:5px}
.hall-svg{display:block;max-width:100%}
.mh-sno{font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:700}
.mh-meta{font-size:10px}
.mh-left,.mh-meta{color:var(--t2)}

/* ── FILE MANAGER ── */
.fm-file-list{display:flex;flex-direction:column;gap:6px}
.fm-file-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);transition:all .15s}
.fm-file-row:hover{border-color:var(--bd2)}
.fm-file-icon{font-size:22px;flex-shrink:0}
.fm-file-info{flex:1;min-width:0}
.fm-file-name{font-size:14px;font-weight:600;color:var(--t)}
.fm-file-meta,.fm-file-path{font-size:12px;color:var(--t3)}
.fm-file-actions{display:flex;gap:6px;flex-shrink:0}
.fm-btn-download{padding:5px 12px;border-radius:6px;background:var(--occ-bg);color:var(--occ);border:none;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .15s}
.fm-btn-download:hover{background:var(--occ);color:#fff}
.fm-empty{text-align:center;padding:40px;color:var(--t3)}
.fm-quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:20px}
.fm-quick-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px;background:var(--bg2);border:1.5px solid var(--bd);border-radius:var(--r2);cursor:pointer;transition:all .15s;text-decoration:none}
.fm-quick-btn:hover{border-color:var(--accent)}
.fq-icon{font-size:28px}
.fq-label{font-size:14px;font-weight:600;color:var(--t)}
.fq-sub{font-size:12px;color:var(--t3);text-align:center}
.fq-blue{border-color:var(--occ-bg)!important}
.fq-green{border-color:var(--vac-bg)!important}
.fq-orange{border-color:rgba(230,126,34,.3)!important}
.fq-purple{border-color:rgba(142,68,173,.2)!important}
.fm-section-head{font-size:16px;font-weight:700;color:var(--t);margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--bd)}
.fm-db-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg3);border-radius:var(--r);margin-bottom:6px}
.fm-notice{background:#fff8e1;border:1px solid var(--gold);border-radius:var(--r);padding:12px 16px;font-size:14px;color:#7c5c00;margin-bottom:16px}
.fm-protected-badge{font-size:11px;padding:2px 8px;border-radius:12px;background:#fde8e8;color:var(--red);font-weight:600}
.fm-root-banner{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r2);padding:16px;margin-bottom:16px}
.fm-root-label{font-weight:600;font-size:14px;color:var(--t);margin-bottom:4px}
.fm-root-path{font-size:13px;font-family:monospace;color:var(--t2)}
.fm-restore-section{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r2);padding:18px;margin-top:18px}
.fm-restore-title{font-size:16px;font-weight:700;color:var(--t);margin-bottom:6px}
.fm-restore-warn{font-size:13px;color:var(--red);margin-bottom:12px}
.fm-restore-form{display:flex;flex-direction:column;gap:10px}
.fm-thumb-wrap{display:flex;align-items:center;justify-content:center;height:100px}
.fm-thumb{max-width:100%;max-height:100px;border-radius:4px}
.fm-file-input{font-size:14px;color:var(--t)}
.fm-sec-icon{font-size:28px;margin-bottom:6px}
.fm-sec-sub{font-size:13px;color:var(--t2)}

/* ── SECURITY / ACTIVITY ── */
.sec-rule{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);padding:14px;margin-bottom:10px;display:flex;align-items:flex-start;gap:12px}
.sr-icon{font-size:22px;flex-shrink:0}
.sr-title{font-size:15px;font-weight:600;color:var(--t);margin-bottom:3px}
.sr-desc{font-size:13px;color:var(--t2)}
.sw-result{padding:8px 12px;background:var(--bg3);border-radius:var(--r);font-size:14px;font-weight:500;margin-bottom:8px}
.swap-row{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;margin-bottom:14px}
.swap-arr{font-size:24px;color:var(--t3);text-align:center}
.action-cell{display:flex;gap:6px}
.sno-cell{font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:700;color:var(--t)}
.poss-date{font-size:12px;color:var(--t3)}
.multi{font-size:12px;color:var(--purple);font-weight:600}
.tbl-row{display:flex;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--bd)}
.hidden{display:none!important}
.count{font-family:'Rajdhani',sans-serif;font-size:22px;font-weight:700}
.free{color:var(--green)}
.occupied{color:var(--occ)}
.hold{color:var(--hold)}
.rcv{color:var(--green)}
.bal-due{color:var(--red)}
.active{color:var(--green)}
.layout{color:var(--occ)}
.exhibitor-portal{max-width:900px;margin:0 auto}

/* ── MKS FOOTER ── */
.mks-footer{background:#1a2535;padding:22px 20px;margin-top:40px;border-top:2px solid rgba(230,126,34,.4)}
.mks-footer-inner{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}
.mks-logo-wrap{display:flex;align-items:center}
.mks-svg{width:100px;height:40px}
.mks-letter{animation:mksStroke 3s ease-in-out infinite alternate}
@keyframes mksStroke{0%{stroke-dashoffset:0;opacity:.7}100%{stroke-dashoffset:20;opacity:1}}
.mks-underline{animation:mksSlide 2.5s ease-in-out infinite alternate}
@keyframes mksSlide{0%{stroke-dasharray:0 80}100%{stroke-dasharray:80 0}}
.mks-dot{animation:mksPulse 2s ease-in-out infinite}
@keyframes mksPulse{0%,100%{r:4;opacity:1}50%{r:5.5;opacity:.7}}
.mks-dot2{animation:mksPulse 2.4s ease-in-out infinite}
.mks-dot3{animation:mksPulse 2.8s ease-in-out infinite}
.mks-footer-text{text-align:center}
.mks-copy{display:flex;align-items:center;gap:6px;font-size:13px;color:rgba(255,255,255,.5);margin-bottom:3px;justify-content:center}
.mks-copy-c,.mks-year,.mks-sep,.mks-rights{color:rgba(255,255,255,.45)}
.mks-brand-name{color:var(--accent);font-weight:700}
.mks-designed{font-size:12px;color:rgba(255,255,255,.4);display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
.mks-author{color:rgba(255,255,255,.65);font-weight:600}
.mks-tag{background:rgba(230,126,34,.2);color:var(--accent);padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600}
.mks-particles{display:none}
.mks-p{display:none}

/* ── UTILITIES ── */
.hidden{display:none!important}
.text-muted{color:var(--t2)}
.text-small{font-size:13px}
.fw-600{font-weight:600}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.col-guide{width:12px;height:12px;border-radius:3px;flex-shrink:0}
.free{color:var(--green);font-weight:700}
a{color:inherit}
strong{font-weight:700}
hr{border:none;border-top:1px solid var(--bd);margin:16px 0}

@media(max-width:768px){
  .stats-row{grid-template-columns:1fr 1fr}
  .halls-grid{grid-template-columns:1fr 1fr}
  .imp-stat-grid{grid-template-columns:1fr 1fr}
  .page-wrap{padding:14px}
  /* Mobile menu: ☰ opens a panel that fits the screen and scrolls, so
     every item is reachable. The "More" items are listed directly in it —
     a dropdown inside a phone menu would open off-screen. */
  .navbar{flex-wrap:wrap;height:auto;min-height:58px;padding:8px 12px;gap:8px}
  .nav-brand{order:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .nav-mobile-toggle{display:flex!important;order:2}
  .nav-right{order:3;flex:0 0 100%;justify-content:flex-start;gap:8px}
  .nav-username{display:none}
  .navbar .nav-links{order:4;flex:0 0 100%;display:none!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch;gap:6px;
    padding:8px 0 10px;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);
    overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .navbar .nav-links.mobile-open{display:flex!important}
  .nav-links .nav-link{display:block;padding:12px 16px;border-radius:12px;background:rgba(255,255,255,.06);font-size:15px}
  .navbar .nav-links .nav-dropdown{width:100%}
  .navbar .nav-links .nav-dd-btn{display:none!important}
  .navbar .nav-links .nav-dd-menu{display:block!important;position:static!important;box-shadow:none!important;border:none!important;
    background:transparent!important;min-width:0!important;padding:0!important;margin:0!important;border-radius:0!important}
  .navbar .nav-links .nav-dd-menu::before{content:'More';display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;
    color:rgba(255,255,255,.45);padding:12px 6px 4px}
  .navbar .nav-links .nav-dd-item{display:block;padding:12px 16px;border-radius:12px;background:rgba(255,255,255,.04);
    margin-top:6px;font-size:14.5px}
  body.menu-open{overflow:hidden}
  /* Side-by-side panels (e.g. Users page: Add user + Import) stack on
     phones — squeezed into half-width they spilled over the users list
     and blocked its buttons (Reset PW, Edit, Delete). */
  .two-col{grid-template-columns:1fr!important}
  .two-col > *{min-width:0}
  .tool-card{min-width:0;overflow-x:auto}
  .login-card{padding:32px 24px}
  .dash-cols{grid-template-columns:1fr}
}
.nav-mobile-toggle{display:none;background:rgba(255,255,255,.08);border:none;color:#fff;font-size:22px;line-height:1;
  width:42px;height:42px;border-radius:10px;align-items:center;justify-content:center;cursor:pointer}
.nav-icon-btn svg{width:18px;height:18px;display:block}
