/**
 * Phase 16-0 — app shell + container + responsive grid (tokens only; RTL-safe).
 * Scope layout variables on .rastan-app-shell to avoid leaking globals.
 */
.rastan-app-shell {
  --layout-content-max: 72rem;
  --layout-content-pad-inline: var(--spacing-md);
  --layout-content-pad-block: var(--spacing-md);
  --layout-header-pad-block: var(--spacing-sm);
  --layout-header-pad-inline: var(--spacing-md);
  --layout-footer-pad-block: var(--spacing-sm);
  --layout-footer-pad-inline: var(--spacing-md);
  box-sizing: border-box;
  min-block-size: 100vh;
  display: flex;
  flex-direction: column;
  color: var(--color-text);
  background-color: var(--color-background);
}

@media (min-width: 48em) {
  .rastan-app-shell {
    --layout-content-pad-inline: var(--spacing-lg);
    --layout-header-pad-inline: var(--spacing-lg);
  }
}

.rastan-app-shell__header {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-md);
  padding-block: var(--layout-header-pad-block);
  padding-inline: var(--layout-header-pad-inline);
  border-block-end: 1px solid var(--color-muted);
  background-color: var(--color-surface);
}

.rastan-app-shell__brand {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--spacing-sm);
  min-inline-size: 0;
  flex: 1 1 auto;
}

.rastan-app-shell__logo-mark {
  flex-shrink: 0;
  inline-size: 2.25rem;
  block-size: 2.25rem;
  border-radius: var(--radius-md);
  background-color: var(--color-primary);
}

.rastan-app-shell__logo-mark--hidden {
  display: none;
}

.rastan-app-shell__logo-img {
  display: none;
  flex-shrink: 0;
  max-inline-size: 2.75rem;
  max-block-size: 2.75rem;
  object-fit: contain;
}

.rastan-app-shell__logo-img--visible {
  display: block;
}

.rastan-app-shell__titles {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  min-inline-size: 0;
}

.rastan-app-shell__title {
  margin: 0;
  font-family: var(--font-family-sans);
  font-size: calc(var(--font-scale-base) * 1.15);
  font-weight: 700;
  line-height: 1.2;
}

.rastan-app-shell__subtitle {
  margin: 0;
  font-family: var(--font-family-sans);
  font-size: calc(var(--font-scale-base) * 0.92);
  font-weight: 500;
  color: var(--color-muted);
  line-height: 1.3;
}

.rastan-app-shell__actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--spacing-sm);
  flex-shrink: 0;
}

.rastan-app-shell__main {
  flex: 1 1 auto;
  min-block-size: 0;
  display: flex;
  flex-direction: column;
}

.rastan-app-shell__footer {
  box-sizing: border-box;
  padding-block: var(--layout-footer-pad-block);
  padding-inline: var(--layout-footer-pad-inline);
  border-block-start: 1px solid var(--color-muted);
  background-color: var(--color-surface);
}

.rastan-app-shell__footer-text {
  margin: 0;
  font-family: var(--font-family-sans);
  font-size: calc(var(--font-scale-base) * 0.88);
  color: var(--color-muted);
}

/* --- container (mobile-first) --- */
.rastan-container {
  box-sizing: border-box;
  inline-size: 100%;
  max-inline-size: var(--layout-content-max);
  margin-inline: auto;
  padding-inline: var(--layout-content-pad-inline);
  padding-block: var(--layout-content-pad-block);
}

/* --- grid (mobile-first; no fixed widths) --- */
.rastan-grid {
  box-sizing: border-box;
  display: grid;
  gap: var(--spacing-md);
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 40em) {
  .rastan-grid--sm-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 60em) {
  .rastan-grid--md-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.rastan-stack {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
}

.rastan-stack--tight {
  gap: var(--spacing-sm);
}
