/**
 * AI Knowledge Hub — shared shell, rhythm, states, empty UI.
 * Load after akh-design-tokens.css on main hub, Learn, Sandbox (and optionally other AKH pages).
 */

body.akh-ak-premium .akh-page {
  font-family: var(--akh-font-sans);
  line-height: var(--akh-leading-normal);
  min-height: 100vh;
  margin: 0;
}

.akh-hub-footer {
  padding: clamp(14px, 2vw, 18px) max(16px, env(safe-area-inset-left, 16px)) clamp(18px, 2.5vw, 22px) max(16px, env(safe-area-inset-right, 16px));
  text-align: center;
  font-size: var(--akh-fs-md);
  color: var(--akh-muted);
  border-top: 1px solid var(--akh-border);
  background: var(--akh-card);
}

.akh-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--akh-space-3) var(--akh-space-4);
  padding: var(--akh-space-3) clamp(14px, 3vw, 28px);
  padding-left: max(var(--akh-space-3), env(safe-area-inset-left, 0px));
  padding-right: max(var(--akh-space-3), env(safe-area-inset-right, 0px));
}

.akh-topbar .akh-logo {
  display: flex;
  align-items: center;
}

.akh-topbar .akh-logo img {
  height: 40px;
  width: auto;
}

.akh-topbar .akh-nav a {
  margin-left: 0;
}

/* Default hub / tool container rhythm (Learn widens via body.akh-learn-premium below) */
body.akh-ak-premium .akh-container {
  width: 100%;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  padding: clamp(18px, 3vw, 28px) clamp(16px, 3vw, 32px) clamp(32px, 5vw, 48px);
}

body.akh-ak-premium.akh-learn-premium .akh-container {
  max-width: min(1820px, calc(100vw - clamp(16px, 4vw, 72px)));
  padding: clamp(20px, 2.5vw, 36px) clamp(16px, 3vw, 40px) clamp(36px, 4vw, 56px);
}

@media (max-width: 768px) {
  body.akh-ak-premium.akh-learn-premium .akh-container {
    padding: 16px max(14px, env(safe-area-inset-left, 14px)) 36px max(14px, env(safe-area-inset-right, 14px));
  }
}

@media (max-width: 576px) {
  body.akh-hub-v2 .akh-hero-v2 {
    margin-left: 0;
    margin-right: 0;
    border-radius: 12px;
    padding: 24px 20px 28px;
  }

  body.akh-hub-v2 .akh-hero-v2 h1 {
    font-size: var(--akh-fs-3xl);
  }
}

/* Inline status / error banners */
.akh-state-banner {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 12px 0;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: var(--akh-fs-base);
  line-height: var(--akh-leading-snug);
  border: 1px solid transparent;
}

.akh-state-banner--loading {
  color: color-mix(in srgb, var(--akh-text) 70%, #6366f1);
  background: color-mix(in srgb, var(--akh-primary) 10%, var(--akh-card));
  border-color: color-mix(in srgb, var(--akh-primary) 22%, var(--akh-border));
}

body.akh-learn-premium .akh-tutor-card .akh-state-banner--loading {
  color: var(--color-text-secondary);
  background: rgba(99, 102, 241, 0.14);
  border-color: rgba(129, 140, 248, 0.35);
}

.akh-state-banner--error {
  color: var(--color-text-danger);
  background: #fef2f2;
  border-color: #fecaca;
}

body.akh-learn-premium .akh-tutor-card .akh-state-banner--error {
  color: var(--color-text-danger);
  background: rgba(127, 29, 29, 0.28);
  border-color: rgba(248, 113, 113, 0.4);
}

body.akh-dark .akh-state-banner--error {
  color: var(--color-text-danger);
  background: rgba(127, 29, 29, 0.35);
  border-color: rgba(248, 113, 113, 0.35);
}

.akh-state-banner--info {
  color: var(--color-text-primary);
  background: color-mix(in srgb, var(--akh-primary) 7%, var(--akh-card));
  border-color: var(--akh-border);
}

/* Empty / hint blocks */
.akh-empty-state {
  margin: 8px 0 12px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px dashed color-mix(in srgb, var(--akh-border) 85%, var(--akh-primary));
  background: color-mix(in srgb, var(--akh-card) 92%, transparent);
  color: var(--color-text-secondary);
  font-size: var(--akh-fs-base);
  line-height: var(--akh-leading-normal);
}

/* Global `style.css` sets `p { color: #666 }` — beat it for hub empty / chat hints */
body.akh-ak-premium .akh-empty-state p.akh-empty-state__title {
  color: var(--color-text-primary);
}

body.akh-ak-premium .akh-empty-state p.akh-empty-state__text {
  color: var(--color-text-secondary);
}

.akh-empty-state .akh-empty-state__title {
  margin: 0 0 6px;
  font-size: var(--akh-fs-base);
  font-weight: 600;
}

.akh-empty-state .akh-empty-state__text {
  margin: 0;
}

.akh-chat-empty.is-hidden {
  display: none !important;
}

/* Follow-up chat failure */
.akh-msg.akh-msg--error {
  color: var(--color-text-danger) !important;
  background: #fef2f2 !important;
  border: 1px solid #fecaca;
}

body.akh-learn-premium .akh-tutor-card .akh-msg.akh-msg--error {
  color: var(--color-text-danger) !important;
  background: rgba(127, 29, 29, 0.38) !important;
  border-color: rgba(248, 113, 113, 0.45);
}

@media (prefers-reduced-motion: reduce) {
  .akh-spinner {
    animation: none !important;
    opacity: 0.75;
  }
}

/* —— Shared tool pages (Quiz, Review, Glossary, Interview, Progress, Sandbox) —— */
body.akh-ak-premium .akh-breadcrumb {
  font-size: var(--akh-fs-md);
  color: var(--color-text-secondary);
  margin-bottom: var(--akh-space-5);
}

body.akh-ak-premium .akh-breadcrumb a {
  color: var(--akh-primary);
  text-decoration: none;
}

body.akh-ak-premium .akh-breadcrumb a:hover {
  text-decoration: underline;
}

body.akh-ak-premium .akh-breadcrumb .sep {
  margin: 0 8px;
}

/* Locale + other hub `<select>` — avoid OS default dark text on dark fills */
body.akh-ak-premium .akh-breadcrumb-row select,
body.akh-ak-premium select#akhLocale {
  color: var(--color-text-primary);
  background-color: var(--akh-card);
  border: 1px solid var(--akh-border);
  border-radius: 10px;
  padding: 6px 12px;
}

body.akh-ak-premium .akh-card {
  background: var(--akh-card);
  border: 1px solid var(--akh-border);
  border-radius: 14px;
  padding: clamp(24px, 4vw, 40px);
  margin-bottom: var(--akh-space-5);
  box-shadow: 0 4px 20px rgba(109, 40, 217, 0.06);
}

body.akh-ak-premium .akh-card h2 {
  font-size: var(--akh-fs-2xl);
  margin-bottom: var(--akh-space-4);
  color: var(--color-text-primary);
}

body.akh-ak-premium .akh-page-loading {
  text-align: center;
  padding: var(--akh-space-6) var(--akh-space-4);
  color: var(--color-text-secondary);
  font-size: var(--akh-fs-md);
}

body.akh-ak-premium.akh-hub-login .akh-page {
  box-sizing: border-box;
  padding: clamp(24px, 5vw, 48px) clamp(16px, 4vw, 24px);
  max-width: 100%;
}

body.akh-ak-premium table,
body.akh-ak-premium .akh-table {
  font-size: var(--akh-fs-lg);
}

body.akh-ak-premium th,
body.akh-ak-premium td {
  font-size: inherit;
}
