/* Soma SaaS refresh layer. Keeps existing markup and avoids navbar hover motion. */
:root {
  --soma-ease-lift:cubic-bezier(.22,.61,.36,1);
  --soma-ease-soft:cubic-bezier(.22,.61,.36,1);
  --soma-app-bg:#f6f8fb;
  --soma-ink:#111827;
  --soma-panel:#ffffff;
  --soma-panel-2:#f9fbfd;
  --soma-border:rgba(15,23,42,.10);
  --soma-blue:#2563eb;
  --soma-teal:#0f766e;
  --soma-amber:#f59e0b;
  --soma-shadow:0 18px 44px rgba(15,23,42,.10);
  --soma-shadow-hover:0 26px 64px rgba(15,23,42,.16);
  --soma-hover-glow:color-mix(in srgb, var(--soma-blue) 16%, transparent);
  --soma-navbar-top:14px;
  --soma-navbar-offset:112px;
}

body[data-theme="dark"],
[data-theme="dark"] {
  --soma-app-bg:#0d1217;
  --soma-ink:#f3f7fb;
  --soma-panel:#121922;
  --soma-panel-2:#161f29;
  --soma-border:rgba(255,255,255,.13);
  --soma-shadow:0 18px 44px rgba(0,0,0,.34);
  --soma-shadow-hover:0 28px 70px rgba(0,0,0,.50);
  --soma-hover-glow:color-mix(in srgb, var(--soma-blue) 20%, transparent);
}

body {
  background:
    radial-gradient(circle at 18% 0%, rgba(37,99,235,.08), transparent 28rem),
    radial-gradient(circle at 88% 12%, rgba(15,118,110,.08), transparent 24rem),
    var(--soma-app-bg)!important;
  padding-top:var(--soma-navbar-offset)!important;
}

.container {
  max-width:1240px!important;
}

.navbar {
  position:fixed!important;
  isolation:isolate;
  top:var(--soma-navbar-top)!important;
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
  width:min(calc(100% - 24px),1180px)!important;
  max-width:1180px!important;
  margin:0!important;
  box-sizing:border-box;
  z-index:1030!important;
  border-radius:14px!important;
  border-color:rgba(15,118,110,.24)!important;
  box-shadow:0 14px 40px rgba(15,23,42,.12)!important;
}

.navbar *,
.navbar *:hover,
.navbar *:focus {
  transition-duration:.16s!important;
  transition-timing-function:var(--soma-ease-soft)!important;
  transform:none!important;
}

.navbar::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  border-radius:inherit;
  background:radial-gradient(circle 260px at var(--soma-glow-x, 50%) var(--soma-glow-y, 50%), var(--soma-hover-glow), transparent 68%);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s var(--soma-ease-lift);
}

.navbar:hover::before {
  opacity:1;
}

.navbar > * {
  position:relative;
  z-index:1;
}

.navbar .container,
.navbar-collapse {
  min-width:0;
}

.navbar .container {
  width:100%!important;
  padding-left:1rem!important;
  padding-right:1rem!important;
}

.profile-dropdown {
  flex:0 0 auto;
}

.profile-dropdown > .dropdown-toggle {
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:42px;
  height:42px;
}

.text-primary,
.card-header .text-primary,
.card-header .fa-graduation-cap,
#learning-modules > .card-header h2 i {
  color:var(--soma-blue)!important;
}

.theme-toggle input:checked + .slider,
input#themeToggle:checked + .slider {
  background:var(--soma-blue)!important;
  border-color:color-mix(in srgb, var(--soma-blue) 46%, transparent)!important;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--soma-blue) 13%, transparent)!important;
}

.theme-toggle input:focus + .slider,
input#themeToggle:focus + .slider {
  box-shadow:0 0 0 3px color-mix(in srgb, var(--soma-blue) 16%, transparent)!important;
}

.theme-toggle input:checked + .slider::before,
input#themeToggle:checked + .slider::before {
  box-shadow:0 4px 14px color-mix(in srgb, var(--soma-blue) 34%, transparent)!important;
}

.soma-account-modal {
  position:fixed;
  inset:0;
  z-index:12000;
  display:grid;
  place-items:start center;
  padding:calc(var(--soma-navbar-offset, 112px) + .75rem) 1rem 1.25rem;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s var(--soma-ease-lift);
}

.soma-account-modal.is-open {
  opacity:1;
  pointer-events:auto;
}

.soma-account-backdrop {
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.24);
  backdrop-filter:blur(12px);
}

.soma-account-panel {
  position:relative;
  z-index:1;
  width:min(100%, 560px);
  max-height:calc(100vh - var(--soma-navbar-offset, 112px) - 2rem);
  overflow:auto;
  border:1px solid var(--soma-border);
  border-radius:18px;
  background:linear-gradient(180deg, var(--soma-panel), var(--soma-panel-2));
  color:var(--soma-ink);
  box-shadow:0 28px 80px rgba(15,23,42,.22);
  transform:translateY(-10px) scale(.985);
  transition:
    transform .26s var(--soma-ease-lift),
    box-shadow .26s var(--soma-ease-lift);
}

.soma-account-modal.is-open .soma-account-panel {
  transform:translateY(0) scale(1);
}

.soma-account-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:1.15rem 1.2rem .95rem;
  border-bottom:1px solid var(--soma-border);
}

.soma-account-title {
  margin:0;
  color:var(--soma-ink);
  font-size:1.15rem;
  font-weight:850;
}

.soma-account-subtitle {
  margin:.25rem 0 0;
  color:var(--muted-text);
  font-size:.92rem;
}

.soma-account-close {
  display:inline-grid;
  flex:0 0 auto;
  width:38px;
  height:38px;
  place-items:center;
  border:1px solid var(--soma-border);
  border-radius:50%;
  background:var(--soma-panel);
  color:var(--soma-ink);
  cursor:pointer;
}

.soma-account-body {
  display:grid;
  gap:1rem;
  padding:1.2rem;
}

.soma-account-avatar-row {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:1rem;
  align-items:center;
  padding:.85rem;
  border:1px solid var(--soma-border);
  border-radius:14px;
  background:rgba(37,99,235,.055);
}

.soma-account-avatar-preview {
  width:74px;
  height:74px;
  overflow:hidden;
  border:2px solid rgba(37,99,235,.38);
  border-radius:50%;
  background:var(--soma-panel);
  box-shadow:var(--soma-shadow);
}

.soma-account-avatar-preview img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.soma-account-upload {
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin-bottom:.35rem;
  color:var(--soma-blue);
  font-weight:800;
  cursor:pointer;
}

.soma-account-hint {
  margin:0;
  color:var(--muted-text);
  font-size:.86rem;
}

.soma-account-field {
  display:grid;
  gap:.45rem;
}

.soma-account-label {
  color:var(--soma-ink);
  font-weight:800;
}

.soma-account-input {
  width:100%;
  min-height:46px;
  padding:.68rem .78rem;
  border:1px solid var(--soma-border);
  border-radius:12px;
  background:var(--soma-panel);
  color:var(--soma-ink);
  outline:none;
}

.soma-account-input:focus {
  border-color:var(--soma-blue);
  box-shadow:0 0 0 .2rem rgba(37,99,235,.16);
}

.soma-account-colors {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  align-items:center;
}

.soma-account-swatch {
  width:34px;
  height:34px;
  border:2px solid transparent;
  border-radius:50%;
  background:var(--swatch);
  cursor:pointer;
  box-shadow:0 0 0 1px var(--soma-border);
}

.soma-account-swatch.is-selected {
  border-color:var(--soma-panel);
  box-shadow:0 0 0 3px var(--soma-blue);
}

.soma-account-color-input {
  width:46px;
  height:34px;
  padding:0;
  border:1px solid var(--soma-border);
  border-radius:999px;
  background:transparent;
  cursor:pointer;
}

.soma-account-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  align-items:center;
  justify-content:space-between;
  padding:0 1.2rem 1.2rem;
}

.soma-account-save,
.soma-account-deactivate {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  min-height:44px;
  padding:.68rem 1rem;
  border-radius:12px;
  font-weight:850;
  cursor:pointer;
}

.soma-account-save {
  border:1px solid var(--soma-blue);
  background:var(--soma-blue);
  color:#fff;
}

.soma-account-deactivate {
  border:1px solid rgba(225,29,72,.32);
  background:rgba(225,29,72,.08);
  color:var(--danger, #e11d48);
}

.soma-account-status {
  min-height:1.3rem;
  margin:0 1.2rem 1.15rem;
  color:var(--muted-text);
  font-size:.88rem;
}

body.soma-account-open {
  overflow:hidden;
}

[data-theme="dark"] .soma-account-backdrop,
body[data-theme="dark"] .soma-account-backdrop {
  background:rgba(0,0,0,.48);
}

[data-theme="dark"] .soma-account-avatar-row,
body[data-theme="dark"] .soma-account-avatar-row {
  background:rgba(56,189,248,.07);
}

@media (max-width:575.98px) {
  .soma-account-modal {
    padding:calc(var(--soma-navbar-offset, 96px) + .5rem) .75rem 1rem;
  }

  .soma-account-panel {
    border-radius:14px;
  }

  .soma-account-header,
  .soma-account-body {
    padding:1rem;
  }

  .soma-account-avatar-row {
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
  }

  .soma-account-actions {
    flex-direction:column-reverse;
    align-items:stretch;
    padding:0 1rem 1rem;
  }

  .soma-account-save,
  .soma-account-deactivate {
    width:100%;
  }

  .soma-account-status {
    margin:0 1rem 1rem;
  }
}

@media (min-width:992px) {
  .navbar .container {
    flex-wrap:nowrap!important;
  }

  .navbar-collapse {
    flex:1 1 auto;
    align-items:center!important;
    gap:.75rem;
  }

  .navbar-nav {
    flex:1 1 auto;
    justify-content:center;
    min-width:0;
    margin-left:auto!important;
    margin-right:auto!important;
    flex-wrap:nowrap!important;
  }

  .navbar .nav-link {
    white-space:nowrap;
  }

  .navbar .d-flex.align-items-center.flex-wrap {
    flex:0 1 auto;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:.5rem;
    min-width:0;
    margin-left:auto!important;
  }

  .navbar .theme-toggle {
    flex:0 0 auto;
    margin-right:.25rem!important;
  }

  .navbar .search-form {
    flex:1 1 160px;
    width:clamp(160px, 18vw, 260px)!important;
    max-width:260px!important;
    margin-right:.35rem!important;
  }

  .navbar .input-group {
    flex-wrap:nowrap;
  }

  .navbar .input-group .form-control {
    min-width:0;
  }

  .navbar .profile-dropdown,
  .navbar .notepad-dropdown {
    align-self:center!important;
    margin-left:0!important;
  }
}

@media (min-width:768px) and (max-width:991.98px) {
  :root {
    --soma-navbar-top:12px;
    --soma-navbar-offset:108px;
  }

  .navbar {
    width:min(calc(100% - 20px),900px)!important;
  }

  .navbar .d-flex.align-items-center.flex-wrap {
    flex-direction:row;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-end!important;
  }

  .navbar .theme-toggle {
    flex:0 0 auto;
    width:auto;
    justify-content:center;
  }

  .navbar .search-form {
    flex:1 1 260px;
    width:auto!important;
    max-width:360px!important;
  }

  .navbar .profile-dropdown,
  .navbar .notepad-dropdown {
    align-self:center!important;
    margin-left:0!important;
  }
}

@media (min-width:576px) and (max-width:767.98px) {
  :root {
    --soma-navbar-top:10px;
    --soma-navbar-offset:102px;
  }

  .navbar {
    width:calc(100% - 16px)!important;
  }
}

@media (max-width:575.98px) {
  :root {
    --soma-navbar-top:8px;
    --soma-navbar-offset:96px;
  }

  .navbar {
    width:calc(100% - 12px)!important;
  }

  .navbar .container {
    padding-left:.75rem!important;
    padding-right:.75rem!important;
  }
}

.hero-section,
.hero-section-redesigned .cta-section {
  border-radius:16px!important;
}

.hero-section {
  box-shadow:var(--soma-shadow)!important;
}

#learning-modules.card,
.auth-container,
.benefits-section,
.feature-card,
.feature-card-new,
.subject-card-new,
.testimonial-card {
  border-radius:14px!important;
  border:1px solid var(--soma-border)!important;
  background:var(--soma-panel)!important;
  box-shadow:var(--soma-shadow)!important;
}

#learning-modules > .card-header {
  background:linear-gradient(180deg, var(--soma-panel-2), var(--soma-panel))!important;
  padding:1.65rem 1.8rem!important;
}

#learning-modules > .card-header h2 {
  font-size:clamp(1.45rem, 2vw, 2rem);
  font-weight:850!important;
}

#topicsAccordion {
  padding:.75rem;
}

#topicsAccordion > .accordion-item {
  border-radius:12px!important;
  border:1px solid var(--soma-border)!important;
  background:var(--soma-panel)!important;
  box-shadow:0 6px 20px rgba(15,23,42,.055)!important;
}

#topicsAccordion .accordion-button {
  min-height:64px;
  font-size:1.02rem;
}

#topicsAccordion .accordion-button:not(.collapsed) {
  background:linear-gradient(90deg, rgba(37,99,235,.12), rgba(15,118,110,.08))!important;
}

.subject-badge {
  background:rgba(15,118,110,.12)!important;
  color:var(--soma-teal)!important;
}

.card:not(.navbar),
.feature-card,
.feature-card-new,
.subject-card-new,
.testimonial-card,
#topicsAccordion > .accordion-item,
.model-container,
.soma-topic-expansion,
.soma-note-card,
.soma-model-slot,
.comparison-item,
.process-step,
.model-grid-item,
.btn:not(.nav-link) {
  transition:
    transform .24s var(--soma-ease-lift),
    box-shadow .24s var(--soma-ease-lift),
    border-color .32s var(--soma-ease-soft),
    background-color .32s var(--soma-ease-soft)!important;
}

.card:not(.navbar):hover,
.feature-card:hover,
.feature-card-new:hover,
.subject-card-new:hover,
.testimonial-card:hover,
#topicsAccordion > .accordion-item:hover,
.model-container:hover,
.soma-topic-expansion:hover,
.soma-note-card:hover,
.soma-model-slot:hover,
.comparison-item:hover,
.process-step:hover,
.model-grid-item:hover {
  transform:translateY(-3px)!important;
  box-shadow:var(--soma-shadow-hover)!important;
}

.btn:not(.nav-link):hover {
  transform:translateY(-2px)!important;
}

.navbar .btn,
.navbar .btn:hover,
.navbar .btn:focus {
  transform:none!important;
}

.accordion-body > .subtopic-panel {
  width:calc(100% + var(--soma-panel-pad) + var(--soma-panel-pad))!important;
  max-width:calc(100% + var(--soma-panel-pad) + var(--soma-panel-pad))!important;
  margin-left:calc(0px - var(--soma-panel-pad))!important;
  margin-right:calc(0px - var(--soma-panel-pad))!important;
}

:where(
  #learning-modules.card,
  .feature-card,
  .feature-card-new,
  .subject-card-new,
  .testimonial-card,
  #topicsAccordion > .accordion-item,
  .accordion-body > .subtopic-panel,
  .model-container,
  .soma-topic-expansion,
  .soma-note-card,
  .soma-model-slot,
  .comparison-item,
  .process-step,
  .model-grid-item
) {
  position:relative;
  isolation:isolate;
  overflow:hidden;
}

:where(
  #learning-modules.card,
  .feature-card,
  .feature-card-new,
  .subject-card-new,
  .testimonial-card,
  #topicsAccordion > .accordion-item,
  .accordion-body > .subtopic-panel,
  .model-container,
  .soma-topic-expansion,
  .soma-note-card,
  .soma-model-slot,
  .comparison-item,
  .process-step,
  .model-grid-item
)::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:radial-gradient(circle 220px at var(--soma-glow-x, 50%) var(--soma-glow-y, 50%), var(--soma-hover-glow), transparent 68%);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s var(--soma-ease-lift);
}

:where(
  #learning-modules.card,
  .feature-card,
  .feature-card-new,
  .subject-card-new,
  .testimonial-card,
  #topicsAccordion > .accordion-item,
  .accordion-body > .subtopic-panel,
  .model-container,
  .soma-topic-expansion,
  .soma-note-card,
  .soma-model-slot,
  .comparison-item,
  .process-step,
  .model-grid-item
):hover::before {
  opacity:1;
}

:where(
  #learning-modules.card,
  .feature-card,
  .feature-card-new,
  .subject-card-new,
  .testimonial-card,
  #topicsAccordion > .accordion-item,
  .accordion-body > .subtopic-panel,
  .model-container,
  .soma-topic-expansion,
  .soma-note-card,
  .soma-model-slot,
  .comparison-item,
  .process-step,
  .model-grid-item
) > * {
  position:relative;
  z-index:1;
}

.soma-topic-expansion {
  margin:1.35rem 0 0;
  padding:1.25rem;
  border:1px solid var(--soma-border);
  border-radius:14px;
  background:linear-gradient(180deg, var(--soma-panel), var(--soma-panel-2));
}

.soma-topic-kicker {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  margin-bottom:.75rem;
  padding:.32rem .65rem;
  border-radius:999px;
  color:var(--soma-teal);
  background:rgba(15,118,110,.12);
  font-size:.78rem;
  font-weight:800;
}

.soma-topic-grid {
  display:grid;
  grid-template-columns:minmax(0, 1.35fr) minmax(280px, .85fr);
  gap:1rem;
  align-items:stretch;
}

.soma-note-card,
.soma-model-slot {
  min-width:0;
  border:1px solid var(--soma-border);
  border-radius:12px;
  background:var(--soma-panel);
}

.soma-note-card {
  padding:1.1rem;
}

.soma-note-card h5,
.soma-model-slot h5 {
  margin:0 0 .75rem;
  color:var(--soma-ink);
  font-weight:850;
}

.soma-note-list {
  display:grid;
  gap:.65rem;
  margin:0;
  padding:0;
  list-style:none;
}

.soma-note-list li {
  position:relative;
  padding-left:1.25rem;
  color:var(--text-color);
}

.soma-note-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:.45rem;
  height:.45rem;
  border-radius:50%;
  background:var(--soma-blue);
  box-shadow:0 0 0 4px rgba(37,99,235,.12);
}

.soma-why {
  margin:.95rem 0 0;
  padding:.85rem;
  border-radius:10px;
  color:var(--muted-text);
  background:rgba(37,99,235,.08);
}

.soma-model-slot {
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.soma-model-slot-header {
  padding:1rem 1rem .75rem;
}

.soma-model-stage {
  display:grid;
  min-height:220px;
  place-items:center;
  margin:0 1rem 1rem;
  padding:1rem;
  border:1px dashed rgba(37,99,235,.38);
  border-radius:12px;
  color:var(--muted-text);
  background:
    linear-gradient(135deg, rgba(37,99,235,.10), rgba(15,118,110,.08));
  text-align:center;
}

.soma-model-stage i {
  display:block;
  margin-bottom:.65rem;
  color:var(--soma-blue);
  font-size:2rem;
}

.soma-model-hint {
  margin:.4rem 0 0;
  color:var(--muted-text);
  font-size:.92rem;
}

.soma-model-code {
  display:block;
  margin-top:.65rem;
  padding:.55rem .65rem;
  border-radius:8px;
  color:var(--soma-ink);
  background:var(--soma-panel-2);
  font-size:.78rem;
  overflow-wrap:anywhere;
}

@media (max-width:991.98px) {
  .soma-topic-grid {
    grid-template-columns:1fr;
  }

  .soma-model-stage {
    min-height:190px;
  }
}

@media (max-width:575.98px) {
  #topicsAccordion {
    padding:.4rem;
  }

  .soma-topic-expansion {
    padding:.9rem;
  }

  .soma-note-card,
  .soma-model-slot {
    border-radius:10px;
  }

  .soma-model-stage {
    margin:0 .75rem .75rem;
  }
}

@media (prefers-reduced-motion:reduce) {
  .card,
  .feature-card,
  .feature-card-new,
  .subject-card-new,
  .testimonial-card,
  #topicsAccordion > .accordion-item,
  .model-container,
  .soma-topic-expansion,
  .soma-note-card,
  .soma-model-slot,
  .soma-account-modal,
  .soma-account-panel,
  .btn {
    transition:none!important;
  }
}

.soma-login-link {
  align-items: center;
  border: 1px solid color-mix(in srgb, var(--soma-blue) 42%, transparent);
  border-radius: 8px;
  color: var(--soma-blue) !important;
  display: inline-flex;
  font-weight: 700;
  justify-content: center;
  min-height: 38px;
  padding: 0.5rem 0.85rem;
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.soma-login-link:hover,
.soma-login-link:focus-visible {
  background: var(--soma-blue);
  color: #fff !important;
  transform: translateY(-1px);
}

.soma-auth-feedback {
  border: 1px solid color-mix(in srgb, var(--soma-blue) 38%, transparent);
  border-radius: 8px;
  color: var(--body-text, #243247);
  font-size: 0.9rem;
  margin-top: 0.85rem;
  padding: 0.7rem 0.85rem;
}

.soma-auth-feedback.is-error {
  border-color: color-mix(in srgb, #dc3545 55%, transparent);
  color: #b42318;
}

body.dark-mode .soma-auth-feedback {
  color: #e7edf7;
}

body.dark-mode .soma-auth-feedback.is-error {
  color: #ff9a9a;
}