/* Shared mobile hamburger menu (index, login, register) */

.hamburger{
  display:none;
  position:relative;
  width:48px;
  height:48px;
  background:rgba(255,255,255,0.85);
  backdrop-filter:blur(10px);
  border:2px solid var(--border);
  border-radius:12px;
  cursor:pointer;
  transition:all 0.3s ease;
  box-shadow:0 2px 8px rgba(0,0,0,0.04);
  z-index:10001;
  touch-action:manipulation;
}

.hamburger:hover{
  background:#fff;
  border-color:var(--primary);
  box-shadow:0 8px 24px rgba(0,0,0,0.08);
  transform:scale(1.05);
}

.mobile-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.6);
  opacity:0;
  visibility:hidden;
  transition:all 0.3s ease;
  z-index:9998;
  pointer-events:none;
}

.mobile-overlay.active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  touch-action:none;
  overscroll-behavior:none;
}

body.mobile-menu-open{
  position:fixed;
  left:0;
  right:0;
  width:100%;
  overflow:hidden;
}

.mobile-panel{
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  height:100dvh;
  max-height:100dvh;
  width:min(85vw, 400px);
  background:linear-gradient(180deg, #f0f9fa 0%, #fff 28%, #fff 100%);
  transform:translateX(100%);
  opacity:0;
  visibility:hidden;
  transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow:-4px 0 32px rgba(0,0,0,0.2);
  overflow:hidden;
  z-index:9999;
  padding:0;
  display:flex;
  flex-direction:column;
}

.mobile-panel::before{
  content:'';
  position:absolute;
  top:-80px;
  right:-60px;
  width:220px;
  height:220px;
  background:radial-gradient(circle, rgba(31,110,115,0.12) 0%, transparent 70%);
  pointer-events:none;
}

.mobile-panel::after{
  content:'';
  position:absolute;
  bottom:120px;
  left:-40px;
  width:160px;
  height:160px;
  background:radial-gradient(circle, rgba(245,165,74,0.1) 0%, transparent 70%);
  pointer-events:none;
}

.mobile-panel.active{
  transform:translateX(0);
  opacity:1;
  visibility:visible;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

.mobile-panel-close{
  position:absolute;
  top:20px;
  right:20px;
  width:48px;
  height:48px;
  background:linear-gradient(135deg, var(--primary) 0%, var(--primary-900) 100%);
  color:#fff;
  border:none;
  border-radius:12px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  font-weight:700;
  z-index:10000;
  transition:all 0.3s ease;
  box-shadow:0 4px 16px rgba(31,110,115,0.25);
}

.mobile-panel-close:hover{
  transform:scale(1.1);
  box-shadow:0 8px 24px rgba(31,110,115,0.35);
}

.mobile-panel-scroll{
  flex:1;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:72px 0 12px;
  position:relative;
  z-index:1;
}

.mobile-panel-intro{
  padding:0 20px 20px;
  text-align:center;
}

.mobile-panel-intro img{
  height:44px;
  margin-bottom:14px;
}

.mobile-panel-greeting{
  font-size:20px;
  font-weight:800;
  color:var(--dark);
  letter-spacing:-0.02em;
  margin-bottom:6px;
}

.mobile-panel-tagline{
  font-size:14px;
  color:var(--text-light);
  line-height:1.45;
  max-width:280px;
  margin:0 auto;
}

.mobile-nav-label{
  padding:0 20px 10px;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--text-light);
}

.mobile-nav-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:0 16px 8px;
}

.mobile-nav-item{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  color:var(--dark);
  text-decoration:none;
  box-shadow:0 2px 8px rgba(15,23,42,0.04);
  transition:all 0.25s ease;
  flex-shrink:0;
  touch-action:manipulation;
}

.mobile-nav-item:hover,
.mobile-nav-item:active{
  border-color:rgba(31,110,115,0.35);
  box-shadow:0 6px 20px rgba(31,110,115,0.1);
  transform:translateY(-1px);
}

.mobile-nav-icon{
  width:44px;
  height:44px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  flex-shrink:0;
}

.mobile-nav-icon-teal{background:rgba(31,110,115,0.12);color:var(--primary)}
.mobile-nav-icon-orange{background:rgba(245,165,74,0.15);color:#c2781a}
.mobile-nav-icon-purple{background:rgba(139,92,246,0.12);color:var(--tenant, #8B5CF6)}
.mobile-nav-icon-slate{background:rgba(100,116,139,0.12);color:var(--text-light)}

.mobile-nav-text{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.mobile-nav-text strong{
  font-size:15px;
  font-weight:700;
  color:var(--dark);
}

.mobile-nav-text small{
  font-size:12px;
  color:var(--text-light);
  line-height:1.35;
}

.mobile-nav-arrow{
  color:var(--border);
  font-size:18px;
  flex-shrink:0;
  transition:transform 0.2s ease, color 0.2s ease;
}

.mobile-nav-item:hover .mobile-nav-arrow,
.mobile-nav-item:active .mobile-nav-arrow{
  color:var(--primary);
  transform:translateX(2px);
}

.mobile-panel-actions{
  flex:0 0 auto;
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  padding:14px 0 calc(16px + env(safe-area-inset-bottom, 0px));
  border-top:1px solid var(--border);
  background:linear-gradient(180deg, rgba(255,255,255,0.97) 0%, #fff 100%);
  position:relative;
  z-index:1;
}

.mobile-actions-hint{
  text-align:center;
  font-size:13px;
  color:var(--text-light);
  line-height:1.4;
  padding:0 20px 10px;
}

.mobile-menu-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:calc(100% - 32px);
  margin:8px 16px;
  padding:16px 20px;
  min-height:52px;
  height:auto;
  max-height:none;
  font-size:16px;
  font-weight:700;
  line-height:1.3;
  text-align:center;
  box-sizing:border-box;
  border:none;
  border-radius:14px;
  cursor:pointer;
  text-decoration:none;
  touch-action:manipulation;
  flex-shrink:0;
  overflow:visible;
  position:relative;
  z-index:1;
  -webkit-appearance:none;
  appearance:none;
}

.mobile-menu-btn::before{display:none !important}

.mobile-menu-btn-primary{
  background:linear-gradient(135deg, var(--primary) 0%, var(--primary-900) 100%);
  color:#fff;
  box-shadow:0 4px 16px rgba(31,110,115,0.25);
}

.mobile-menu-btn-accent{
  background:linear-gradient(135deg, var(--accent) 0%, #E68E2C 100%);
  color:#1a1a1a;
  box-shadow:0 4px 16px rgba(245,165,74,0.25);
}

.mobile-menu-btn span{
  flex:0 1 auto;
  line-height:1.3;
}

.mobile-menu-btn i{
  flex-shrink:0;
  font-size:1.15em;
}

.mobile-menu-btn:active{
  transform:translateY(1px);
  opacity:0.95;
}

@supports (-webkit-touch-callout: none){
  .mobile-panel{
    height:-webkit-fill-available;
    max-height:-webkit-fill-available;
  }
}

@media (max-width: 968px){
  .hamburger{
    display:flex;
    align-items:center;
    justify-content:center;
    position:absolute;
    right:24px;
    top:50%;
    transform:translateY(-50%);
  }
}

@media (max-width: 640px){
  .hamburger{right:16px}
  .mobile-panel{width:100%}
  .mobile-panel-scroll{padding-top:68px}
  .mobile-panel-intro{padding:0 16px 16px}
  .mobile-panel-greeting{font-size:18px}
  .mobile-nav-list{padding:0 12px 8px}
  .mobile-nav-item{padding:12px 14px;gap:12px}
  .mobile-nav-icon{width:40px;height:40px;font-size:20px}
  .mobile-menu-btn{
    width:calc(100% - 24px);
    margin:8px 12px;
    min-height:50px;
    font-size:15px;
  }
}

@media (max-width: 375px), (max-height: 700px){
  .mobile-nav-item{padding:11px 12px}
  .mobile-nav-text strong{font-size:14px}
  .mobile-nav-text small{font-size:11px}
  .mobile-panel-actions{
    padding-top:10px;
    padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px));
  }
  .mobile-menu-btn{
    width:calc(100% - 20px);
    margin:6px 10px;
    min-height:50px;
    padding:15px 16px;
    font-size:15px;
  }
}
