#device-wrap {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
}

#mobile-frame {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  position: relative;
  overflow: hidden;
  background: var(--ground);
}

/* Telefon çerçevesi YALNIZCA fareli masaüstü tarayıcıda (önizleme). Tablette ve
   uygulama içinde (dokunmatik) ekran tam dolar — eskiden 7-10 inç tablette
   uygulama ortada küçük bir telefon resmi olarak açılıyordu. Uygulama kabuğu
   (html.in-app, head.php) fareli cihazda da (Chromebook, masaüstü) çerçevesiz. */
@media (min-width: 540px) and (hover: hover) and (pointer: fine) {
  html:not(.in-app) #mobile-frame {
    width: 390px;
    height: 844px;
    border-radius: 48px;
    box-shadow:
      0 0 0 1px rgba(255, 255, 255, 0.05),
      0 0 0 10px #0e0e0e,
      0 0 0 11px rgba(255, 255, 255, 0.035),
      0 50px 100px rgba(0, 0, 0, 0.85),
      0 0 160px rgba(255, 82, 0, 0.03);
  }
}

#screen-container {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}

/* ── Screen base ── */
.screen {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  background: var(--ground);
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.screen::-webkit-scrollbar {
  display: none;
}

/* ── Transition classes (applied by app.js) ── */
.screen-slide-in {
  transform: translateX(100%);
}

.screen-slide-in.active {
  transform: translateX(0);
  transition: transform 360ms var(--ease-out);
}

.screen-slide-out {
  transform: translateX(0);
}

.screen-slide-out.active {
  transform: translateX(-28%);
  opacity: 0;
  transition: transform 360ms var(--ease-out), opacity 360ms ease;
}

.screen-slide-in-back {
  transform: translateX(-100%);
}

.screen-slide-in-back.active {
  transform: translateX(0);
  transition: transform 360ms var(--ease-out);
}

.screen-slide-out-back {
  transform: translateX(0);
}

.screen-slide-out-back.active {
  transform: translateX(100%);
  transition: transform 360ms var(--ease-out);
}

/* ── Shared components ── */
.btn-primary {
  width: 100%;
  padding: 17px 24px;
  background: var(--accent);
  color: #fff;
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: var(--radius-full);
  border: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform 140ms var(--ease-spring), box-shadow 140ms ease;
  box-shadow: 0 8px 32px var(--accent-glow);
  -webkit-tap-highlight-color: transparent;
}

.btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.13) 0%, transparent 55%);
  pointer-events: none;
}

.btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 40px rgba(255, 82, 0, 0.34);
}

.btn-primary:active {
  transform: scale(0.964);
  box-shadow: 0 4px 16px var(--accent-glow);
}

.btn-ghost {
  padding: 14px 24px;
  color: var(--text-secondary);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 400;
  background: none;
  border: none;
  cursor: pointer;
  transition: color 180ms ease;
  -webkit-tap-highlight-color: transparent;
}

.btn-ghost:hover,
.btn-ghost:active {
  color: var(--text);
}

.btn-ghost strong {
  color: var(--accent);
  font-weight: 600;
}
