
/* =========================================================
   Sprint33 Strict Requested Only
   Scope: auth pages + teacher/parent dashboard pages ONLY.
   No homepage / knowledge / difficulties section changes.
   ========================================================= */

html.s33-auth-page,
html.s33-dashboard-page {
  overflow-x: hidden;
}

html.s33-auth-page *,
html.s33-dashboard-page * {
  box-sizing: border-box;
}

/* Login/Register mobile polish only */
@media (max-width: 768px) {
  html.s33-auth-page body {
    min-height: 100svh;
    overflow-x: hidden;
    background:
      radial-gradient(circle at 12% 8%, rgba(15,143,113,.10), transparent 34%),
      linear-gradient(180deg, #f8fbf9 0%, #edf7f2 100%) !important;
  }

  html.s33-auth-page :is(main, .auth-container, .login-container, .auth-wrapper, .login-wrapper) {
    width: 100% !important;
    max-width: 100vw !important;
    min-height: 100svh !important;
    padding: 16px 14px 26px !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
  }

  html.s33-auth-page :is(.auth-card, .login-card, .auth-panel, .login-panel, .auth-box, .login-box) {
    width: min(100%, 430px) !important;
    max-width: calc(100vw - 28px) !important;
    margin: 0 auto !important;
    padding: 18px !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.94) !important;
    border: 1px solid rgba(15,143,113,.16) !important;
    box-shadow: 0 18px 44px rgba(15,143,113,.10) !important;
    overflow: hidden !important;
  }

  html.s33-auth-page h1 {
    font-size: clamp(2rem, 10vw, 3.2rem) !important;
    line-height: 1.08 !important;
    margin: 14px 0 10px !important;
    letter-spacing: -0.035em;
  }

  html.s33-auth-page :is(p, .subtitle, .auth-subtitle, .login-subtitle) {
    font-size: clamp(1rem, 4.2vw, 1.28rem) !important;
    line-height: 1.75 !important;
    color: #65756f !important;
    margin: 8px 0 16px !important;
  }

  html.s33-auth-page :is(.role-tabs, .auth-tabs, .login-tabs, .auth-role-switcher, .tabs) {
    width: 100% !important;
    max-width: 100% !important;
    margin: 12px 0 18px !important;
    padding: 6px !important;
    border-radius: 24px !important;
    display: flex !important;
    gap: 6px !important;
    background: rgba(15,143,113,.08) !important;
    border: 1px solid rgba(15,143,113,.16) !important;
    overflow: hidden !important;
  }

  html.s33-auth-page :is(.role-tabs, .auth-tabs, .login-tabs, .auth-role-switcher, .tabs) > :is(a, button, .tab) {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    min-height: 48px !important;
    border-radius: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.02rem !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
  }

  html.s33-auth-page :is(label) {
    font-size: 1rem !important;
    font-weight: 900 !important;
    margin-bottom: 8px !important;
    display: block !important;
  }

  html.s33-auth-page :is(input, textarea, select) {
    width: 100% !important;
    min-height: 54px !important;
    border-radius: 18px !important;
    font-size: 16px !important;
    padding-inline: 16px !important;
    border: 1px solid rgba(6,34,28,.16) !important;
  }

  html.s33-auth-page :is(button[type="submit"], .btn-primary, .primary-btn, .login-button) {
    width: 100% !important;
    min-height: 58px !important;
    border-radius: 18px !important;
    font-size: 1.16rem !important;
    font-weight: 950 !important;
  }
}

/* Dashboard mobile top menu/header polish only */
@media (max-width: 768px) {
  html.s33-dashboard-page body {
    overflow-x: hidden;
  }

  html.s33-dashboard-page :is(main, .dashboard-shell, .dashboard-layout, .dashboard-main, .parent-dashboard, .teacher-dashboard) {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  html.s33-dashboard-page :is(.dashboard-header, .workspace-header, .teacher-hero, .parent-hero, .dashboard-hero) {
    width: calc(100% - 24px) !important;
    max-width: 720px !important;
    margin: 12px auto 18px !important;
    padding: 18px !important;
    border-radius: 28px !important;
    overflow: hidden !important;
  }

  html.s33-dashboard-page :is(.dashboard-header, .workspace-header, .teacher-hero, .parent-hero, .dashboard-hero) h1 {
    font-size: clamp(2.2rem, 11vw, 3.8rem) !important;
    line-height: 1.08 !important;
    margin: 10px 0 !important;
    letter-spacing: -0.035em;
  }

  html.s33-dashboard-page :is(.dashboard-header, .workspace-header, .teacher-hero, .parent-hero, .dashboard-hero) p {
    font-size: clamp(1.02rem, 4.6vw, 1.55rem) !important;
    line-height: 1.75 !important;
    margin: 8px 0 14px !important;
  }

  html.s33-dashboard-page :is(.dashboard-actions, .header-actions, .workspace-actions, .top-actions, .quick-actions, .dashboard-nav, .dashboard-tabs, .dashboard-menu, .mobile-dashboard-menu) {
    width: calc(100% - 24px) !important;
    max-width: 720px !important;
    margin: 10px auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 6px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.76) !important;
    border: 1px solid rgba(15,143,113,.16) !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch;
  }

  html.s33-dashboard-page :is(.dashboard-actions, .header-actions, .workspace-actions, .top-actions, .quick-actions, .dashboard-nav, .dashboard-tabs, .dashboard-menu, .mobile-dashboard-menu)::-webkit-scrollbar {
    display: none;
  }

  html.s33-dashboard-page :is(.dashboard-actions, .header-actions, .workspace-actions, .top-actions, .quick-actions, .dashboard-nav, .dashboard-tabs, .dashboard-menu, .mobile-dashboard-menu) > :is(a, button, .btn, .tab, .nav-item, div) {
    flex: 0 0 auto !important;
    min-height: 40px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    white-space: nowrap !important;
    font-size: .95rem !important;
    font-weight: 850 !important;
  }
}

/* Assistant button only inside auth/dashboard pages */
html.s33-dashboard-page :is(.ai-assistant-toggle, .ai-toggle, .ai-fab, .ai-assistant-button, #aiAssistantToggle, #ai-toggle),
html.s33-auth-page :is(.ai-assistant-toggle, .ai-toggle, .ai-fab, .ai-assistant-button, #aiAssistantToggle, #ai-toggle) {
  position: fixed !important;
  left: 18px !important;
  right: auto !important;
  bottom: max(18px, env(safe-area-inset-bottom)) !important;
  z-index: 9999 !important;
  border-radius: 999px !important;
  min-height: 48px !important;
  padding: 0 18px !important;
  background: linear-gradient(135deg, #0f8f71, #0b7f64) !important;
  color: #fff !important;
  box-shadow: 0 16px 36px rgba(15,143,113,.26) !important;
}

@media (max-width: 768px) {
  html.s33-dashboard-page :is(.ai-assistant-toggle, .ai-toggle, .ai-fab, .ai-assistant-button, #aiAssistantToggle, #ai-toggle),
  html.s33-auth-page :is(.ai-assistant-toggle, .ai-toggle, .ai-fab, .ai-assistant-button, #aiAssistantToggle, #ai-toggle) {
    left: 14px !important;
    right: auto !important;
    bottom: max(14px, env(safe-area-inset-bottom)) !important;
    max-width: calc(100vw - 28px) !important;
  }

  html.s33-dashboard-page :is(.ai-assistant-panel, .ai-chat-panel, .ai-widget-panel),
  html.s33-auth-page :is(.ai-assistant-panel, .ai-chat-panel, .ai-widget-panel) {
    left: 12px !important;
    right: auto !important;
    bottom: calc(72px + env(safe-area-inset-bottom)) !important;
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
  }
}

/* Account menu */
.s33-account-menu {
  position: relative;
  display: inline-flex;
}

.s33-account-trigger {
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(15,143,113,.16);
  background: #fff;
  color: #0b342b;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.s33-account-panel {
  position: fixed;
  inset-inline-end: 16px;
  top: 84px;
  width: min(360px, calc(100vw - 32px));
  background: rgba(255,255,255,.98);
  border: 1px solid rgba(15,143,113,.16);
  box-shadow: 0 24px 60px rgba(0,0,0,.14);
  border-radius: 24px;
  padding: 16px;
  z-index: 10000;
  display: none;
  direction: rtl;
}

.s33-account-panel.is-open {
  display: block;
}

.s33-account-panel h3 {
  margin: 0 0 12px;
  font-size: 1.15rem;
}

.s33-account-panel label {
  font-size: .88rem;
  font-weight: 850;
  color: #50655f;
  margin: 10px 0 5px;
  display: block;
}

.s33-account-panel input {
  width: 100%;
  min-height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(6,34,28,.14);
  padding: 0 12px;
  font-size: 16px;
}

.s33-account-panel .s33-account-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.s33-account-panel button {
  min-height: 42px;
  border-radius: 14px;
  padding: 0 12px;
  font-weight: 900;
}

/* Context back */
.s33-dashboard-back {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(15,143,113,.16);
  background: color-mix(in srgb, #fff 88%, #0f8f71 7%);
  color: #0f8f71;
  font-weight: 950;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(15,143,113,.08);
  margin-inline: 8px;
}
