body {
    font-size: 14px;
    background: var(--sj-bg-page, silver);
}

.site > .container {
    border-left: 1px solid var(--sj-border, silver);
    border-right: 1px solid var(--sj-border, silver);
}

body:not(.pwa) .site > * {
    box-shadow: var(--sj-shadow, 0 4px 8px rgba(0, 0, 0, 0.2));
}

body.public-v2 {
    background: var(--sj-bg-surface, white);
}

body.public-v2 .site > .container {
    border-left: 0;
    border-right: 0;
}

body.public-v2 .site > .container:not(.content) {
    max-width: unset;
}

body.public-v2 .site > * {
    box-shadow: none;
}

.site > nav {
    border-top: 1px solid var(--sj-border, silver);
    border-bottom: 1px solid var(--sj-border, silver);
    background-color: var(--sj-navbar-bg, #fef7e6);
}

.navbar-light .navbar-nav .nav-link {
    color: var(--sj-text-primary, rgba(0, 0, 0, 0.75));
}

.main-navbar {
    background: var(--sj-navbar-bg, #fef7e6);
    border-color: var(--sj-bg-surface, white);
}

.navbar-brand {
    overflow-x: hidden;
    max-width: 70%;
    text-overflow: ellipsis;
}

.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:hover, .navbar-default .navbar-nav>.active>a:focus,
.navbar-default .navbar-nav>.open>a, .navbar-default .navbar-nav>.open>a:hover, .navbar-default .navbar-nav>.open>a:focus{
    background-color: transparent;
    border-bottom: 1px solid var(--sj-accent, #ffcf99);
}

.user-welcome, .user-welcome:hover, .navbar-brand  {
    color: var(--sj-accent-text, #ad7e05)!important;
}

.user-welcome {
    font-weight: 600;
    margin-left: 10px;
    font-size: 14px;
}

.user-welcome:hover {
    text-decoration: none;
    font-weight: bold;
}

footer {
    padding: 10px 10px;
    border-top: 1px solid var(--sj-border, #e6e6e6);
    background-color: var(--sj-bg-subtle, #f5f5f5);
}

.content {
    min-height: 70vh;
    padding-bottom: 20px;
    padding-top: 20px;
}

.content, .pre-content {
    background: var(--sj-bg-surface, white);
}

.navbar-brand .logo {
    max-height: 30px;
}

.errorlist {
    color: var(--sj-danger, firebrick);
}

.navbar-mini {
  background-color: var(--sj-toolbar-bg, #f7f7f7);
  color: var(--sj-text-muted, #7b7b7b);
  font-size: 12px;
  display: flex;
}

.navbar-mini .container .nav {
  padding-left: 0;
  list-style: none;
}
.navbar-mini .container .navbar-left {
  padding-top: 7px;
  padding-bottom: 5px;
}
.navbar-mini .container .navbar-left i {
  margin-right: 7px;
}
.navbar-mini .container span {
  padding: 0 7px;
  font-weight: 400;
  letter-spacing: 0.5px;
  opacity: 0.9;
}
.navbar-mini .container span:first-child {
  padding-left: 0;
}
.navbar-mini .container hr {
  border-top: 3px solid var(--sj-border, #d6d6d6);
  width: 1px;
  background-color: var(--sj-border, #bebebe);
  margin: 0 0 -2px 0;
  display: inline-block;
  height: 12px;
  padding: 0;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
    margin-top: 20px;
    margin-bottom: 10px;
}

.banner .maula {
    border-radius: 100px;
    height: 100px;
}

.btn-default {
    background-color: var(--sj-accent, #f3b007);
    color: var(--sj-accent-contrast, white);
}

.btn-default:hover {
    background-color: var(--sj-accent-hover, #dfa107);
    color: var(--sj-accent-contrast, white);
}

h1 {
    font-size: 2rem;
}

h2 {
    font-size: 1.8rem;
}

h3 {
    font-size: 1.5rem;
}

h4 {
    font-size: 1.3rem;
}

h5 {
    font-size: 1.1rem;
}

h6 {
    font-size: 0.9rem;
}

.alexa-btn-container {
    display: flex;
    align-items: center;
}

.alexa-btn img {
    height: 2.5rem;
    filter: var(--sj-alexa-badge-filter, none);
    border-radius: 0.7rem;
    box-shadow: var(--sj-badge-shadow, 0 2px 6px rgba(0, 0, 0, 0.2));
}

.salaat-times table {
    font-size: 1em;
}

.salaat-times .use-location {
    background: var(--sj-bg-input, white);
    border: 1px solid var(--sj-border, silver);
    border-radius: 2px;
    padding: 2px 4px;
}

.custom-message {
    width: 100%;
    overflow-x: auto;
    max-width: 100%;
}

.custom-message img {
    max-width: 100%;
}

iframe[data-sj-themed-content] {
    display: block;
    min-height: 0;
    padding: 0;
    border: 0;
}

.sj-faq-back-to-top {
    position: fixed;
    right: 2rem;
    bottom: 2rem;
    z-index: 1000;
    display: none;
    align-items: center;
    justify-content: center;
    width: 55px;
    height: 55px;
    border: 0;
    border-radius: 50%;
    background: var(--sj-button-primary, #667eea);
    color: var(--sj-button-primary-text, #ffffff);
    box-shadow: var(--sj-shadow, 0 6px 20px rgba(0, 0, 0, 0.2));
    font-size: 1.8rem;
    cursor: pointer;
}

.sj-faq-back-to-top.visible {
    display: flex;
}

.invalid-feedback {
    display: block;
}

.field-error {
    border-color: var(--sj-danger, firebrick);
}

.links-grid > div {
    margin-bottom: 10px;
}

.wall .item {
    background: rgb(135, 199, 135);
    width: 200px;
    height: 200px;
    display: flex;
    align-items: center;
    padding: 5px;
    box-shadow: var(--sj-shadow, 0 4px 8px rgba(0, 0, 0, 0.2));
    color: white;
    font-size: 12pt;
    justify-content: center;
    border-radius: 10px;
    flex-direction: column;
    line-height: 1.2;
    position: relative;
    transition: transform 160ms ease, filter 160ms ease, box-shadow 160ms ease;
}

.wall .item:hover {
    text-decoration: none;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.7);
}

.wall .item:focus-visible {
    outline: 2px solid var(--sj-focus, #007bff);
    outline-offset: 3px;
    filter: brightness(1.1);
    transform: translateY(-3px);
}

@media (hover: hover) {
    .wall .item:hover {
        filter: brightness(1.1);
        transform: translateY(-3px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .wall .item {
        transition: none;
    }

    .wall .item:hover,
    .wall .item:focus-visible {
        transform: none;
    }
}

.wall .item .text {
    position: absolute;
    top: 7px;
    padding: 0 7px;
}

.wall .item .icon {
    font-size: 40pt;
    margin: 10px 0;
}

.wall .item .sub-text {
    font-size: 8pt;
    position: absolute;
    bottom: 0;
    padding: 5px;
    /*background: darkblue;*/
    /*border-radius: 0 0 5px 5px;*/
    /*width: 100%;*/
    /*height: 35px;*/
    /*overflow: hidden;*/
    /*display: flex;*/
    /*flex-direction: column;*/
    /*align-items: center;*/
    /*justify-content: center;*/
}

.card.sj-card {
    width: 400px;
    margin-top: 50px;
}

@media only screen and (max-width: 767px) {
    .card.sj-card {
        width: 98%
    }
}

/* Login: scoped independently of the full-page portal forms. */
.sj-login {
    --sj-login-focus: #a77b16;
    --sj-focus: var(--sj-login-focus);
    --sj-input-border: var(--sj-login-input-border, #8b98a4);
    --sj-button-success: #218838;
    width: min(100%, 28rem);
    margin: clamp(1.5rem, 5vw, 3.5rem) auto;
    background: var(--sj-bg-surface, #fff);
    color: var(--sj-text-primary, #212529);
    border: 1px solid var(--sj-border, #dee2e6);
    border-top: 3px solid var(--sj-accent, #f3b007);
    border-radius: 14px;
    box-shadow: 0 2px 4px rgba(20, 30, 38, .05), 0 28px 65px -24px rgba(20, 30, 38, .3);
    animation: sj-login-enter 320ms ease-out both;
}
.sj-login__header { padding: 1.8rem 2rem 1.1rem; text-align: center; }
.sj-login__header h1 { margin: 0; font-size: 1.9rem; font-weight: 650; letter-spacing: -.035em; }
.sj-login__form { padding: .5rem 2rem 1.8rem; }
.sj-login .form-group { margin-bottom: 1.25rem; }
.sj-login label { font-size: .9rem; font-weight: 600; margin-bottom: .5rem; }
html .sj-login .form-control {
    min-height: 46px;
    border: 1px solid var(--sj-login-input-border, #8b98a4);
    border-radius: 7px;
    background-color: var(--sj-bg-input, #fff);
    color: var(--sj-text-primary, #212529);
    box-shadow: inset 0 1px 3px rgba(20, 30, 38, .05), 0 2px 3px rgba(20, 30, 38, .025);
    transition: border-color 150ms ease, box-shadow 150ms ease;
}
html .sj-login .form-control:hover { --sj-input-border: var(--sj-text-muted, #6c757d); border-color: var(--sj-input-border); }
html .sj-login .form-control:focus {
    outline: 0;
    border-color: var(--sj-login-focus);
    box-shadow: 0 0 0 3px var(--sj-login-focus-ring, rgba(167, 123, 22, .2));
}
html .sj-login .form-control.is-invalid { --sj-input-border: var(--sj-danger, #b22222); border-color: var(--sj-input-border); }
html .sj-login .sj-login__submit {
    width: 100%;
    min-height: 46px;
    margin-top: .25rem;
    border-radius: 7px;
    font-weight: 600;
    background: #218838;
    border-color: #218838;
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 8px 18px -8px rgba(24, 105, 48, .6);
    transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}
html .sj-login .sj-login__submit:hover {
    --sj-button-success: #196f2e;
    background: #196f2e;
    border-color: #196f2e;
    transform: translateY(-1px);
    box-shadow: 0 12px 22px -9px rgba(24, 105, 48, .65);
}
html .sj-login .sj-login__submit:active { transform: translateY(0); box-shadow: inset 0 2px 4px rgba(0, 0, 0, .18); }
.sj-login :is(a, button):focus-visible { outline: 3px solid var(--sj-login-focus); outline-offset: 4px; }
.sj-login .sj-login__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .75rem 1rem;
    padding: 1.1rem 2rem;
    font-size: .875rem;
    color: var(--sj-text-muted, #6c757d);
    background: var(--sj-bg-subtle, #f5f5f5);
    border-top: 1px solid var(--sj-border, #dee2e6);
    border-radius: 0 0 13px 13px;
}
html .sj-login__footer a { color: var(--sj-login-link, #246a3c); font-weight: 600; text-underline-offset: 3px; }
.sj-login__footer a:hover { text-decoration: underline; }
html[data-bs-theme="dark"] .sj-login {
    --sj-login-input-border: #697084;
    --sj-login-focus: #f2be4b;
    --sj-login-focus-ring: rgba(242, 190, 75, .2);
    --sj-login-link: #86d7a0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, .2), 0 28px 65px -24px rgba(0, 0, 0, .6);
}
@keyframes sj-login-enter {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 480px) {
    .sj-login__header { padding: 1.5rem 1.25rem 1rem; }
    .sj-login__form { padding: .5rem 1.25rem 1.5rem; }
    .sj-login .sj-login__footer { padding: 1rem 1.25rem; }
    .sj-login .form-control { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
    .sj-login { animation: none; }
    html .sj-login :is(.form-control, .sj-login__submit) { transition: none; transform: none; }
}

.welcome-header {
    color: var(--sj-accent-text, #ad7e05);
    font-family: 'Amita', cursive;
}

.loader-overlay {
    position: fixed;
    z-index: 10000;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100vw;
    background-color: var(--sj-overlay, rgba(0, 0, 0, 0.4));
    display: flex;
    align-items: center;
    justify-content: center;
}

.table-container .pagination {
    margin: 0;
    float: right;
}

.table-container .pagination .next {
    margin-left: 5px;
}

.table-container .pagination .previous {
    margin-right: 5px;
}

.sortable-tree > div {
    height: auto!important;
}

.select2-selection, .select2-search__field {
    height: 38px!important;
}

.select2-selection .select2-selection__rendered {
    line-height: 38px!important;
}

.select2-selection .select2-selection__arrow {
    height: 38px!important;
}

.event-cell {
    white-space: initial;
}

.event-cell .fc-event-main-frame {
    display: block;
}

.event-cell .fc-list-event-time {
    white-space: initial;
}
body.pwa {
    background: var(--sj-bg-surface, white);
}

body.pwa .navbar,
body.pwa header,
body.pwa footer,
body.pwa .breadcrumb,
body.pwa .login-panel .card-footer {
    display: none;
}

.hide-in-pwa {
    display: none;
}

.pwa-notification-message img {
    max-width: 100% !important;
}

.pwa-notification-message .main-content {
    padding: 0 !important;
}

.pwa-notification-message .content-wrapper {
    max-width: unset !important;
    margin: unset !important;
    border-radius: unset !important;
    overflow: unset !important;
    box-shadow: unset !important;
}

/* Shared presentation for opted-in, non-admin portal forms. */
.sj-portal-form {
    --sj-form-border: #e4e7e9;
    --sj-form-text: #26313a;
    --sj-input-border: #7f8b97;
    --sj-form-content-width: 56rem;
    container-type: inline-size;
    width: 100%;
    max-width: 100%;
    margin: 1.25rem 0 2rem;
    overflow: visible;
}

.sj-portal-form--compact { --sj-form-content-width: 36rem; }

.sj-portal-form__header {
    margin-bottom: 1.25rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--sj-form-border);
    text-align: center;
}

.sj-portal-form__header h1,
.sj-portal-form__header h2,
.sj-portal-form__header h3 {
    margin: 0;
    color: var(--sj-form-text);
    font-size: clamp(1.35rem, 1.9vw, 1.7rem);
    font-weight: 650;
    line-height: 1.25;
}

.sj-portal-form__body,
.sj-portal-form__content { padding: 0; margin: 0; }
.sj-portal-form__body {
    width: 100%;
    max-width: var(--sj-form-content-width);
    margin-inline: auto;
}
.sj-portal-form form { min-width: 0; }
.sj-portal-form__header h5 { margin: 0.35rem 0 0; font-size: 0.95rem; font-weight: 500; }
.sj-portal-form__context { margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--sj-form-border); }

/* Embedded forms can retain a surface when surrounded by other page content. */
.sj-portal-form--embedded {
    border: 1px solid var(--sj-form-border);
    border-radius: 0.5rem;
    background: #fff;
}
.sj-portal-form--embedded > .card-body { padding: 1.25rem; }

.sj-portal-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 1.25rem;
}

.sj-portal-form__grid--short-long { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.sj-portal-form__grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.sj-portal-form__grid > *,
.sj-portal-form__grid .form-group { min-width: 0; }
.sj-portal-form__full { grid-column: 1 / -1; }

.sj-portal-form .form-group { margin-bottom: 0.9rem; }
.sj-portal-form label { margin-bottom: 0.3rem; font-weight: 600; }
.sj-portal-form .form-control,
.sj-portal-form .select2-container { max-width: 100%; }
.sj-portal-form .select2-container { width: 100% !important; }
.sj-portal-form .form-control:not(:focus):not(.is-invalid):not(.is-valid),
.sj-portal-form .custom-select:not(:focus):not(.is-invalid):not(.is-valid),
.sj-portal-form .select2-selection {
    border-color: var(--sj-input-border);
}
.sj-portal-form .select2-container--focus .select2-selection,
.sj-portal-form .select2-container--open .select2-selection {
    border-color: var(--sj-focus, #9a7011);
}
.sj-portal-form textarea.form-control { min-height: 6.5rem; }
.sj-portal-form .form-text,
.sj-portal-form .help-block,
.sj-portal-form .helptext { font-size: 0.875rem; line-height: 1.45; }
.sj-portal-form .invalid-feedback,
.sj-portal-form .errorlist { margin-top: 0.35rem; }

.sj-portal-form__section {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--sj-form-border);
}

.sj-portal-form__section > h4,
.sj-portal-form__section > h5 { margin: 0 0 1rem; font-weight: 650; }

.sj-portal-form__actions {
    position: relative;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1rem;
    padding-top: 0.85rem;
}

.sj-portal-form__actions::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    /* Span the page container without widening the form or its buttons. */
    width: 100cqw;
    transform: translateX(-50%);
    border-top: 1px solid var(--sj-form-border);
    pointer-events: none;
}

.sj-portal-form__actions .btn { min-width: 7rem; }

.sj-portal-form .dynamic-form-row {
    margin: 0 0 0.85rem;
    padding: 0 0 0.5rem;
    /* The formset renderer supplies Bootstrap's !important border utility. */
    border: 0 !important;
    border-bottom: 1px solid var(--sj-form-border) !important;
}

.sj-portal-form .dynamic-form-row > .col-12 {
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1.25rem;
}

.sj-portal-form .dynamic-form-row > .col-12 > .clearfix,
.sj-portal-form .dynamic-form-row > .col-12 > .errorlist { grid-column: 1 / -1; }

.sj-portal-form__family {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1.25rem;
}

.sj-portal-form__family > h6,
.sj-portal-form__family > .errorlist { grid-column: 1 / -1; }

.sj-portal-form .table-responsive { max-width: 100%; }
.sj-portal-form .table-responsive td { overflow-wrap: anywhere; }

.sj-portal-form .dynamic-form-row .remove-form-row { margin-bottom: 0.5rem; }

.sj-portal-form :is(input, select, textarea, button, a):not(.form-control):not(.custom-select):focus-visible {
    outline: 2px solid #9a7011;
    outline-offset: 2px;
}

/* These controls use a focus shadow instead of a second, solid outline. */
.sj-portal-form :is(.form-control, .custom-select):focus {
    outline: 0;
}

/* Light-mode depth belongs to the controls, keeping the page itself open. */
html:not([data-bs-theme="dark"]) .sj-portal-form {
    --sj-focus: #9a7011;
    --sj-form-control-shadow: inset 0 1px 2px rgba(38, 49, 58, 0.05),
        0 2px 4px rgba(38, 49, 58, 0.07);
    --sj-form-control-hover-shadow: inset 0 1px 2px rgba(38, 49, 58, 0.04),
        0 3px 7px rgba(38, 49, 58, 0.12);
    --sj-form-focus-shadow: 0 0 0 3px rgba(154, 112, 17, 0.16),
        0 3px 8px rgba(38, 49, 58, 0.08);
}

html:not([data-bs-theme="dark"]) .sj-portal-form :is(.form-control, .custom-select),
html:not([data-bs-theme="dark"]) .sj-portal-form .select2-container--default .select2-selection {
    border-radius: 0.4rem;
    box-shadow: var(--sj-form-control-shadow);
    transition: box-shadow 160ms ease, border-color 160ms ease;
}

/* Keep Bootstrap's background-image caret on custom native selects. */
html:not([data-bs-theme="dark"]) .sj-portal-form .form-control:not(.custom-select),
html:not([data-bs-theme="dark"]) .sj-portal-form .select2-container--default .select2-selection {
    background-image: linear-gradient(180deg, #f6f8fa 0%, #ffffff 60%);
}

@media (hover: hover) {
    html:not([data-bs-theme="dark"]) .sj-portal-form :is(.form-control, .custom-select):hover:not(:disabled):not([readonly]):not(:focus),
    html:not([data-bs-theme="dark"]) .sj-portal-form .select2-container--default:not(.select2-container--disabled):not(.select2-container--focus):not(.select2-container--open) .select2-selection:hover {
        box-shadow: var(--sj-form-control-hover-shadow);
    }
}

html:not([data-bs-theme="dark"]) .sj-portal-form :is(.form-control, .custom-select):focus,
html:not([data-bs-theme="dark"]) .sj-portal-form .select2-container--default:is(.select2-container--focus, .select2-container--open) .select2-selection {
    border-color: var(--sj-focus);
    box-shadow: var(--sj-form-focus-shadow);
}

html:not([data-bs-theme="dark"]) .sj-portal-form :is(.form-control, .custom-select):is(:disabled, [readonly]),
html:not([data-bs-theme="dark"]) .sj-portal-form .select2-container--disabled .select2-selection {
    box-shadow: none;
}

html:not([data-bs-theme="dark"]) .sj-portal-form .form-control:not(.custom-select):is(:focus, :disabled, [readonly]),
html:not([data-bs-theme="dark"]) .sj-portal-form .select2-container--default:is(.select2-container--focus, .select2-container--open, .select2-container--disabled) .select2-selection {
    background-image: none;
}

html:not([data-bs-theme="dark"]) .sj-portal-form__actions .btn {
    border-radius: 0.4rem;
    font-weight: 600;
    background-image: linear-gradient(rgba(255, 255, 255, 0.1), rgba(0, 0, 0, 0.04));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 3px 6px rgba(38, 49, 58, 0.14);
    transition: box-shadow 160ms ease, transform 160ms ease;
}

@media (hover: hover) {
    html:not([data-bs-theme="dark"]) .sj-portal-form__actions .btn:hover:not(:disabled):not(.disabled) {
        transform: translateY(-1px);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 5px 10px rgba(38, 49, 58, 0.18);
    }
}

html:not([data-bs-theme="dark"]) .sj-portal-form__actions .btn:active:not(:disabled):not(.disabled) {
    transform: translateY(0);
    box-shadow: inset 0 2px 3px rgba(38, 49, 58, 0.15);
}

@media (prefers-reduced-motion: reduce) {
    html:not([data-bs-theme="dark"]) .sj-portal-form :is(.form-control, .custom-select, .select2-selection),
    html:not([data-bs-theme="dark"]) .sj-portal-form__actions .btn {
        transition: none;
        transform: none !important;
    }
}

@media (max-width: 767px) {
    .sj-portal-form {
        width: 100%;
        margin: 0.75rem 0 1.5rem;
    }

    .sj-portal-form__header { margin-bottom: 1rem; }
    .sj-portal-form--embedded > .card-body { padding: 1rem; }
    .sj-portal-form__grid { grid-template-columns: minmax(0, 1fr); }
    .sj-portal-form__full { grid-column: auto; }
    .sj-portal-form__family,
    .sj-portal-form .dynamic-form-row > .col-12 { grid-template-columns: minmax(0, 1fr); }
    .sj-portal-form__actions { justify-content: flex-end; }
    .sj-portal-form__actions .btn { width: auto; min-width: 6rem; }
}
