/* ============================================================
   LARYTRICK - app shell e responsividade
   Mobile first (375–430px); desktop = painel centralizado,
   nunca esticado por toda a largura.
   ============================================================ */

.app-shell {
  position: relative;
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  min-height: 100dvh;
  background: var(--lt-bg);
  overflow: hidden;
}

.screen {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  padding-top: var(--safe-top);
  padding-bottom: var(--safe-bottom);
}

/* ---------- telas de auth (activation / renewal / expired) ---------- */

.screen-auth {
  align-items: center;
  justify-content: center;
  padding-left: 24px;
  padding-right: 24px;
}

/* ---------- painel ---------- */

.screen-panel {
  padding-bottom: 0;
}

.panel-topbar {
  flex: 0 0 auto;
  padding: calc(var(--safe-top) + 14px) 20px 14px;
  text-align: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.panel-topbar-title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--lt-primary);
}

.panel-content {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 20px;
  -webkit-overflow-scrolling: touch;
}

.tab-pane {
  min-height: 100%;
}

.tab-bar {
  flex: 0 0 auto;
  display: flex;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(5, 5, 5, 0.92);
  padding-bottom: var(--safe-bottom);
  backdrop-filter: blur(10px);
}

.tab-bar-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 0 8px;
  color: var(--lt-gray);
  transition: color 160ms var(--ease-out);
}

.tab-bar-btn.is-active {
  color: var(--lt-primary);
}

.tab-bar-icon {
  font-size: 18px;
  line-height: 1;
}

.tab-bar-label {
  font-size: 11px;
  font-weight: 600;
}

/* ---------- desktop / tablet: painel centralizado, não esticado ---------- */

@media (min-width: 640px) {
  body {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
  }

  .app-shell {
    min-height: min(860px, 92vh);
    height: min(860px, 92vh);
    border-radius: 28px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(var(--lt-primary-rgb), 0.08);
    overflow: hidden;
  }

  .screen {
    min-height: 100%;
    height: 100%;
  }

  .panel-content {
    overflow-y: auto;
  }
}
