/**
 * Schoolstack theme override for school-portal (Sneat / Bootstrap).
 * Ports the teal palette from Schoolstack frontend/src/index.css
 * without editing vendor CSS. Load after theme-default.css.
 */

:root {
  --ss-bg: #f3f7f5;
  --ss-bg-elevated: #ffffff;
  --ss-surface: #e8f2ee;
  --ss-border: #c5d9d0;
  --ss-text: #14352c;
  --ss-text-muted: #5a7268;
  --ss-primary: #0d7a5f;
  --ss-primary-hover: #0a634d;
  --ss-primary-active: #085540;
  --ss-primary-soft: #d8efe6;
  --ss-primary-soft-strong: #c5e8db;
  --ss-accent: #2a9d7a;
  --ss-primary-rgb: 13, 122, 95;
  --ss-on-primary-muted: #d8efe6;
  --ss-on-primary-disabled: #9fcfbf;

  --bs-purple: var(--ss-primary);
  --bs-primary: var(--ss-primary);
  --bs-primary-rgb: var(--ss-primary-rgb);
  --bs-body-bg: var(--ss-bg);
  --bs-body-bg-rgb: 243, 247, 245;
  --bs-body-color: var(--ss-text-muted);
  --bs-link-color: var(--ss-primary);
  --bs-link-hover-color: var(--ss-primary-hover);
}

body {
  background:
    radial-gradient(circle at top left, #d9efe6 0%, transparent 42%),
    linear-gradient(180deg, #f7fbf9 0%, var(--ss-bg) 100%) !important;
  color: var(--ss-text-muted);
}

/* ——— Text / background / border utilities ——— */
.text-primary {
  color: var(--ss-primary) !important;
}

.text-body[href]:hover {
  color: var(--ss-primary-hover) !important;
}

.bg-primary {
  background-color: var(--ss-primary) !important;
}

a.bg-primary:hover,
a.bg-primary:focus {
  background-color: var(--ss-primary-hover) !important;
}

.bg-label-primary {
  background-color: var(--ss-primary-soft) !important;
  color: var(--ss-primary) !important;
}

.border-label-primary {
  border: 3px solid var(--ss-primary-soft-strong) !important;
}

.border-light-primary {
  border: 3px solid rgba(var(--ss-primary-rgb), 0.08);
}

html:not([dir=rtl]) .border-primary,
html[dir=rtl] .border-primary {
  border-color: var(--ss-primary) !important;
}

.fill-primary {
  fill: var(--ss-primary);
}

.svg-illustration svg {
  fill: var(--ss-primary);
}

/* ——— Links ——— */
a {
  color: var(--ss-primary);
}

a:hover {
  color: var(--ss-accent);
}

/* ——— Buttons ——— */
.btn-primary {
  color: #fff;
  background-color: var(--ss-primary);
  border-color: var(--ss-primary);
  box-shadow: 0 0.125rem 0.25rem 0 rgba(var(--ss-primary-rgb), 0.35);
}

.btn-primary:hover {
  color: #fff;
  background-color: var(--ss-primary-hover);
  border-color: var(--ss-primary-hover);
}

.btn-check:focus + .btn-primary,
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: var(--ss-primary-hover);
  border-color: var(--ss-primary-hover);
}

.btn-check:checked + .btn-primary,
.btn-check:active + .btn-primary,
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: var(--ss-primary-active);
  border-color: var(--ss-primary-active);
}

.btn-outline-primary {
  color: var(--ss-primary);
  border-color: var(--ss-primary);
  background: transparent;
}

.btn-outline-primary:hover {
  color: #fff;
  background-color: var(--ss-primary-hover);
  border-color: var(--ss-primary-hover);
  box-shadow: 0 0.125rem 0.25rem 0 rgba(var(--ss-primary-rgb), 0.35);
}

.btn-check:focus + .btn-outline-primary,
.btn-outline-primary:focus {
  color: #fff;
  background-color: var(--ss-primary-hover);
  border-color: var(--ss-primary-hover);
}

.btn-check:checked + .btn-outline-primary,
.btn-check:active + .btn-outline-primary,
.btn-outline-primary:active,
.btn-outline-primary.active,
.btn-outline-primary.dropdown-toggle.show {
  color: #fff;
  background-color: var(--ss-primary-active);
  border-color: var(--ss-primary-active);
}

.btn-outline-primary .badge {
  background: var(--ss-primary);
  border-color: var(--ss-primary);
  color: #fff;
}

.btn-outline-primary:hover .badge,
.btn-outline-primary:focus:hover .badge,
.btn-outline-primary:active .badge,
.btn-outline-primary.active .badge,
.show > .btn-outline-primary.dropdown-toggle .badge {
  background: #fff;
  border-color: #fff;
  color: var(--ss-primary);
}

/* ——— Forms ——— */
.form-control:focus,
.form-select:focus {
  border-color: var(--ss-primary);
}

.input-group:focus-within .form-control,
.input-group:focus-within .input-group-text {
  border-color: var(--ss-primary);
}

.form-check-input:focus {
  border-color: var(--ss-primary);
  box-shadow: 0 2px 4px 0 rgba(var(--ss-primary-rgb), 0.35);
}

.form-check-input:checked,
.form-check-input[type=checkbox]:indeterminate {
  background-color: var(--ss-primary);
  border-color: var(--ss-primary);
  box-shadow: 0 2px 4px 0 rgba(var(--ss-primary-rgb), 0.35);
}

.custom-option.checked {
  border: 1px solid var(--ss-primary);
}

.form-switch .form-check-input:focus {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%230d7a5f'/%3e%3c/svg%3e");
}

.form-control:focus ~ .form-label {
  border-color: var(--ss-primary);
}

.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label,
.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label,
.form-floating > .form-control:-webkit-autofill ~ label {
  color: var(--ss-primary);
}

/* ——— Nav / pagination / progress ——— */
.nav .nav-link:hover,
.nav .nav-link:focus {
  color: var(--ss-primary-hover);
}

.nav-pills .nav-link.active,
.nav-pills .nav-link.active:hover,
.nav-pills .nav-link.active:focus {
  background-color: var(--ss-primary);
  color: #fff;
  box-shadow: 0 2px 4px 0 rgba(var(--ss-primary-rgb), 0.35);
}

.page-item.active .page-link,
.page-item.active .page-link:hover,
.page-item.active .page-link:focus,
.pagination li.active > a:not(.page-link),
.pagination li.active > a:not(.page-link):hover,
.pagination li.active > a:not(.page-link):focus {
  border-color: var(--ss-primary);
  background-color: var(--ss-primary);
  color: #fff;
  box-shadow: 0 0.125rem 0.25rem rgba(var(--ss-primary-rgb), 0.35);
}

.progress-bar {
  background-color: var(--ss-primary);
  color: #fff;
  box-shadow: 0 2px 4px 0 rgba(var(--ss-primary-rgb), 0.35);
}

/* ——— Alerts / lists / tables ——— */
.alert-primary {
  background-color: var(--ss-primary-soft);
  border-color: var(--ss-primary-soft-strong);
  color: var(--ss-primary);
}

.alert-primary .alert-link {
  color: var(--ss-primary);
}

.card .alert-primary hr {
  background-color: var(--ss-primary) !important;
}

.list-group-item-primary {
  background-color: var(--ss-primary-soft);
  color: var(--ss-primary) !important;
}

a.list-group-item-primary,
button.list-group-item-primary {
  color: var(--ss-primary);
}

a.list-group-item-primary:hover,
a.list-group-item-primary:focus,
button.list-group-item-primary:hover,
button.list-group-item-primary:focus {
  background-color: var(--ss-primary-soft-strong);
  color: var(--ss-primary);
}

a.list-group-item-primary.active,
button.list-group-item-primary.active {
  border-color: var(--ss-primary);
  background-color: var(--ss-primary);
  color: #fff;
}

.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  border-color: var(--ss-primary);
  background-color: var(--ss-primary);
}

.table-primary {
  --bs-table-bg: var(--ss-primary-soft);
  --bs-table-striped-bg: #cfe9de;
  --bs-table-active-bg: #c5e8db;
  --bs-table-hover-bg: #d4ebe2;
  --bs-table-border-color: #c5e8db;
  color: var(--ss-text);
  border-color: #c5e8db;
}

/* ——— Dropdowns ——— */
.dropdown-item:not(.disabled).active,
.dropdown-item:not(.disabled):active {
  background-color: rgba(var(--ss-primary-rgb), 0.08);
  color: var(--ss-primary) !important;
}

.dropdown-menu > li:not(.disabled) > a:not(.dropdown-item):active,
.dropdown-menu > li.active:not(.disabled) > a:not(.dropdown-item) {
  background-color: rgba(var(--ss-primary-rgb), 0.08);
  color: var(--ss-primary) !important;
}

.dropdown-notifications-item:not(.mark-as-read) .dropdown-notifications-read span {
  background-color: var(--ss-primary);
}

.divider.divider-primary .divider-text:before,
.divider.divider-primary .divider-text:after {
  border-color: var(--ss-primary);
}

/* ——— Primary-tinted chrome (navbar / menu / footer) ——— */
.navbar.bg-primary {
  background-color: var(--ss-primary) !important;
  color: var(--ss-on-primary-muted);
}

.navbar.bg-primary .search-input-wrapper .search-input,
.navbar.bg-primary .search-input-wrapper .search-toggler {
  background-color: var(--ss-primary) !important;
  color: var(--ss-on-primary-muted);
}

.navbar.bg-primary .navbar-nav > .nav-link,
.navbar.bg-primary .navbar-nav > .nav-item > .nav-link,
.navbar.bg-primary .navbar-nav > .nav > .nav-item > .nav-link,
.navbar.bg-primary .navbar-search-wrapper .navbar-search-icon,
.navbar.bg-primary .navbar-search-wrapper .search-input,
.navbar.bg-primary .navbar-toggler,
.navbar.bg-primary .navbar-text {
  color: var(--ss-on-primary-muted);
}

.navbar.bg-primary .navbar-nav > .nav-link.disabled,
.navbar.bg-primary .navbar-nav > .nav-item > .nav-link.disabled,
.navbar.bg-primary .navbar-nav > .nav > .nav-item > .nav-link.disabled {
  color: var(--ss-on-primary-disabled) !important;
}

.menu.bg-primary {
  background-color: var(--ss-primary) !important;
  color: var(--ss-on-primary-muted);
}

.menu.bg-primary .menu-link,
.menu.bg-primary .menu-horizontal-prev,
.menu.bg-primary .menu-horizontal-next {
  color: var(--ss-on-primary-muted);
}

.menu.bg-primary .menu-item.disabled .menu-link,
.menu.bg-primary .menu-horizontal-prev.disabled,
.menu.bg-primary .menu-horizontal-next.disabled {
  color: var(--ss-on-primary-disabled) !important;
}

.menu.bg-primary .menu-item.active > .menu-link:not(.menu-toggle) {
  background-color: var(--ss-primary-hover);
}

.menu.bg-primary.menu-horizontal .menu-sub > .menu-item.active > .menu-link:not(.menu-toggle),
.menu.bg-primary.menu-horizontal .menu-inner .menu-item:not(.menu-item-closing) > .menu-sub,
.menu.bg-primary.menu-horizontal .menu-inner .menu-item.open > .menu-toggle {
  background-color: var(--ss-primary-hover);
}

.menu.bg-primary .menu-inner-shadow {
  background: linear-gradient(var(--ss-primary) 41%, rgba(var(--ss-primary-rgb), 0.11) 95%, rgba(var(--ss-primary-rgb), 0));
}

.menu.bg-primary .menu-header {
  color: var(--ss-on-primary-muted);
}

.menu.bg-primary .menu-block::before {
  background-color: var(--ss-on-primary-muted);
}

.menu.bg-primary .menu-inner > .menu-item.open .menu-item.open > .menu-toggle::before {
  background-color: var(--ss-accent);
}

.menu.bg-primary .menu-inner > .menu-item.open .menu-item.open > .menu-toggle::before,
.menu.bg-primary .menu-inner > .menu-item.open .menu-item.active > .menu-link::before {
  box-shadow: 0 0 0 2px var(--ss-primary-hover);
}

.footer.bg-primary {
  background-color: var(--ss-primary) !important;
  color: var(--ss-on-primary-muted);
}

.footer.bg-primary .footer-link {
  color: var(--ss-on-primary-muted);
}

.footer.bg-primary .footer-link.disabled {
  color: var(--ss-on-primary-disabled) !important;
}

.bg-primary.toast,
.bg-primary.bs-toast {
  color: #fff;
  background-color: rgba(var(--ss-primary-rgb), 0.85) !important;
  box-shadow: 0 0.25rem 1rem rgba(var(--ss-primary-rgb), 0.35);
}

.bg-primary.toast .toast-header .btn-close,
.bg-primary.bs-toast .toast-header .btn-close {
  background-color: var(--ss-primary) !important;
  box-shadow: 0 0.1875rem 0.375rem 0 rgba(var(--ss-primary-rgb), 0.35) !important;
}

/* ——— Light sidebar (default layout) ——— */
.bg-menu-theme .menu-inner .menu-sub > .menu-item.active .menu-icon {
  color: var(--ss-primary);
}

.bg-menu-theme .menu-inner > .menu-item.active > .menu-link {
  color: var(--ss-primary);
  background-color: rgba(var(--ss-primary-rgb), 0.16) !important;
}

.bg-menu-theme .menu-inner > .menu-item.active:before {
  background: var(--ss-primary);
}

.bg-menu-theme .menu-sub > .menu-item.active > .menu-link:not(.menu-toggle):before {
  background-color: var(--ss-primary) !important;
  border: 3px solid var(--ss-primary-soft) !important;
}

.app-brand .layout-menu-toggle {
  background-color: var(--ss-primary);
  border: 7px solid var(--ss-bg);
}

.bg-footer-theme {
  background-color: var(--ss-bg) !important;
}

.layout-navbar-fixed .layout-page:before {
  background: rgba(243, 247, 245, 0.6);
}

/* Soft surfaces that used purple tints in core.css */
.bg-primary.bg-glow,
.card .bg-primary {
  background-color: var(--ss-primary) !important;
}
