/* Edwiser Store - Base Styles */

/*
 * The declarations below intentionally use `!important` to override styles
 * coming from the active Moodle theme (Boost, RemUI, Classic and downstream
 * forks) and from Bootstrap utility classes. The plugin's host page selectors
 * (`#page-local-edwiserstore-*`, `.path-local-edwiserstore`) already provide
 * high specificity, but theme stylesheets load after this file and frequently
 * target the same shells, so `!important` is the documented escape hatch.
 */
/* stylelint-disable declaration-no-important */

/* Global styles and Moodle container overrides */

/* Apply font family to store pages — includes modals appended to body */
body[id^='page-local-edwiserstore'] .modal,
body[id^='page-local-edwiserstore'] .modal input,
body[id^='page-local-edwiserstore'] .modal select,
body[id^='page-local-edwiserstore'] .modal textarea,
body[id^='page-local-edwiserstore'] .modal button {
    font-family: var(--edw-font-family, inherit);
}

/* Apply font family to store content only (not Moodle chrome) */
.local-edwiserstore-dashboard-layout,
.local-edwiserstore-dashboard,
.local-edwiserstore-shop-page,
.local-edwiserstore-product-view-page,
.local-edwiserstore-cart-page,
.local-edwiserstore-checkout-page,
.local-edwiserstore-thankyou-page,
.local-edwiserstore-myorders-page,
.local-edwiserstore-mysubscriptions-page,
.local-edwiserstore-orders-page,
.local-edwiserstore-subscriptions-page,
.local-edwiserstore-coupons-page,
.local-edwiserstore-general-settings,
.local-edwiserstore-shop-settings,
.local-edwiserstore-payment-settings,
.local-edwiserstore-email-templates {
    font-family: var(--edw-font-family, inherit);
}

/* Force form elements to inherit the store font */
.local-edwiserstore-dashboard-layout input,
.local-edwiserstore-dashboard-layout select,
.local-edwiserstore-dashboard-layout textarea,
.local-edwiserstore-dashboard-layout button,
.local-edwiserstore-cart-page input,
.local-edwiserstore-cart-page select,
.local-edwiserstore-cart-page textarea,
.local-edwiserstore-cart-page button,
.local-edwiserstore-checkout-page input,
.local-edwiserstore-checkout-page select,
.local-edwiserstore-checkout-page textarea,
.local-edwiserstore-checkout-page button,
.local-edwiserstore-shop-page input,
.local-edwiserstore-shop-page select,
.local-edwiserstore-shop-page button,
.local-edwiserstore-product-view-page input,
.local-edwiserstore-product-view-page select,
.local-edwiserstore-product-view-page button,
.local-edwiserstore-myorders-page input,
.local-edwiserstore-myorders-page select,
.local-edwiserstore-myorders-page button,
.local-edwiserstore-mysubscriptions-page input,
.local-edwiserstore-mysubscriptions-page select,
.local-edwiserstore-mysubscriptions-page button {
    font-family: inherit;
}

/* Override Moodle container for full-width layout - MUST BE FIRST */

#page-local-edwiserstore-dashboard #topofscroll,
#page-local-edwiserstore-products #topofscroll,
#page-local-edwiserstore-orders #topofscroll,
#page-local-edwiserstore-subscriptions #topofscroll,
#page-local-edwiserstore-coupons #topofscroll,
#page-local-edwiserstore-reviews #topofscroll,
#page-local-edwiserstore-shopsettings #topofscroll,
#page-local-edwiserstore-paymentsettings #topofscroll,
#page-local-edwiserstore-emailtemplates #topofscroll,
#page-local-edwiserstore-licensesettings #topofscroll,
#page-local-edwiserstore-generalsettings #topofscroll,
#page-local-edwiserstore-shop #topofscroll,
#page-local-edwiserstore-productview #topofscroll,
#page-local-edwiserstore-cart #topofscroll,
#page-local-edwiserstore-checkout #topofscroll,
#page-local-edwiserstore-myorders #topofscroll,
#page-local-edwiserstore-mysubscriptions #topofscroll {
    margin-top: 0 !important;
    padding-top: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

#page-local-edwiserstore-dashboard #topofscroll > .container,
#page-local-edwiserstore-products #topofscroll > .container,
#page-local-edwiserstore-orders #topofscroll > .container,
#page-local-edwiserstore-subscriptions #topofscroll > .container,
#page-local-edwiserstore-coupons #topofscroll > .container,
#page-local-edwiserstore-reviews #topofscroll > .container,
#page-local-edwiserstore-shopsettings #topofscroll > .container,
#page-local-edwiserstore-paymentsettings #topofscroll > .container,
#page-local-edwiserstore-emailtemplates #topofscroll > .container,
#page-local-edwiserstore-licensesettings #topofscroll > .container,
#page-local-edwiserstore-generalsettings #topofscroll > .container {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
}

/* Shop page container - full width with background */
#page-local-edwiserstore-shop #topofscroll > .container,
#page-local-edwiserstore-productview #topofscroll > .container,
#page-local-edwiserstore-cart #topofscroll > .container,
#page-local-edwiserstore-myorders #topofscroll > .container,
#page-local-edwiserstore-mysubscriptions #topofscroll > .container {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    background: #f5f8ff !important;
}

/* Shop page main content area - same background */
#page-local-edwiserstore-shop #topofscroll > .container #page-header {
    margin-left: 32px;
    margin-right: 32px;
}

#page-local-edwiserstore-productview #topofscroll > .container #page-header,
#page-local-edwiserstore-cart #topofscroll > .container #page-header,
#page-local-edwiserstore-myorders #topofscroll > .container #page-header,
#page-local-edwiserstore-mysubscriptions
#topofscroll > .container
#page-header {
    display: none !important;
}

#page-local-edwiserstore-productview #topofscroll > .container #page-content,
#page-local-edwiserstore-cart #topofscroll > .container #page-content,
#page-local-edwiserstore-myorders #topofscroll > .container #page-content,
#page-local-edwiserstore-mysubscriptions
#topofscroll > .container
#page-content {
    padding-bottom: 0 !important;
}

#page-local-edwiserstore-shop #topofscroll > .container div[role='main'],
#page-local-edwiserstore-productview #topofscroll > .container div[role='main'],
#page-local-edwiserstore-cart #topofscroll > .container div[role='main'],
#page-local-edwiserstore-checkout #topofscroll > .container div[role='main'] {
    background: #f5f8ff !important;
}

#page-local-edwiserstore-dashboard #topofscroll > .container .page-content,
#page-local-edwiserstore-products #topofscroll > .container .page-content,
#page-local-edwiserstore-orders #topofscroll > .container .page-content,
#page-local-edwiserstore-subscriptions #topofscroll > .container .page-content,
#page-local-edwiserstore-coupons #topofscroll > .container .page-content,
#page-local-edwiserstore-reviews #topofscroll > .container .page-content,
#page-local-edwiserstore-shopsettings #topofscroll > .container .page-content,
#page-local-edwiserstore-paymentsettings
#topofscroll > .container
.page-content,
#page-local-edwiserstore-emailtemplates #topofscroll > .container .page-content,
#page-local-edwiserstore-licensesettings
#topofscroll > .container
.page-content,
#page-local-edwiserstore-generalsettings
#topofscroll > .container
.page-content {
    padding-bottom: 0 !important;
}

#page-local-edwiserstore-dashboard #topofscroll > .container div[role='main'],
#page-local-edwiserstore-products #topofscroll > .container div[role='main'],
#page-local-edwiserstore-orders #topofscroll > .container div[role='main'],
#page-local-edwiserstore-subscriptions
#topofscroll > .container
div[role='main'],
#page-local-edwiserstore-coupons #topofscroll > .container div[role='main'],
#page-local-edwiserstore-reviews #topofscroll > .container div[role='main'],
#page-local-edwiserstore-shopsettings
#topofscroll > .container
div[role='main'],
#page-local-edwiserstore-paymentsettings
#topofscroll > .container
div[role='main'],
#page-local-edwiserstore-emailtemplates
#topofscroll > .container
div[role='main'],
#page-local-edwiserstore-licensesettings
#topofscroll > .container
div[role='main'],
#page-local-edwiserstore-generalsettings
#topofscroll > .container
div[role='main'] {
    margin-top: 0 !important;
    padding: 0 !important;
}

/* Hide page heading - menu should start directly below header */
#page-local-edwiserstore-dashboard h1,
#page-local-edwiserstore-dashboard h2,
#page-local-edwiserstore-dashboard .page-header-headings,
#page-local-edwiserstore-dashboard #page-header,
#page-local-edwiserstore-products h1,
#page-local-edwiserstore-products h2,
#page-local-edwiserstore-products .page-header-headings,
#page-local-edwiserstore-products #page-header,
#page-local-edwiserstore-orders h1,
#page-local-edwiserstore-orders h2,
#page-local-edwiserstore-orders .page-header-headings,
#page-local-edwiserstore-orders #page-header,
#page-local-edwiserstore-subscriptions h1,
#page-local-edwiserstore-subscriptions h2,
#page-local-edwiserstore-subscriptions .page-header-headings,
#page-local-edwiserstore-subscriptions #page-header,
#page-local-edwiserstore-coupons h1,
#page-local-edwiserstore-coupons .page-header-headings h2,
#page-local-edwiserstore-coupons .page-header-headings,
#page-local-edwiserstore-coupons #page-header,
#page-local-edwiserstore-reviews h1,
#page-local-edwiserstore-reviews h2,
#page-local-edwiserstore-reviews .page-header-headings,
#page-local-edwiserstore-reviews #page-header,
#page-local-edwiserstore-shopsettings h1,
#page-local-edwiserstore-shopsettings h2,
#page-local-edwiserstore-shopsettings .page-header-headings,
#page-local-edwiserstore-shopsettings #page-header,
#page-local-edwiserstore-paymentsettings h1,
#page-local-edwiserstore-paymentsettings h2,
#page-local-edwiserstore-paymentsettings .page-header-headings,
#page-local-edwiserstore-paymentsettings #page-header,
#page-local-edwiserstore-emailtemplates h1,
#page-local-edwiserstore-emailtemplates h2,
#page-local-edwiserstore-emailtemplates .page-header-headings,
#page-local-edwiserstore-emailtemplates #page-header,
#page-local-edwiserstore-licensesettings h1,
#page-local-edwiserstore-licensesettings h2,
#page-local-edwiserstore-licensesettings .page-header-headings,
#page-local-edwiserstore-licensesettings #page-header,
#page-local-edwiserstore-generalsettings h1,
#page-local-edwiserstore-generalsettings h2,
#page-local-edwiserstore-generalsettings .page-header-headings,
#page-local-edwiserstore-generalsettings #page-header,
#page-local-edwiserstore-checkout #page-header {
    display: none !important;
}

/* Global form fixes */
.path-local-edwiserstore .form-group .form-check {
    padding-left: 0 !important;
}

.path-local-edwiserstore .form-check-input[type='radio'] {
    margin-left: 0 !important;
}

/* Fix Bootstrap radio button solid-fill override for all Edwiser Store pages */
[id^='page-local-edwiserstore'] .form-check-input[type='radio'] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    border: 2px solid #c4c4c4 !important;
    border-radius: 50% !important;
    background: #fff !important;
    background-image: none !important;
    box-shadow: none !important;
    outline: none !important;
    cursor: pointer;
    position: relative;
    transition: all 0.2s ease;
    padding: 0 !important;
}

[id^='page-local-edwiserstore'] .form-check-input[type='radio']::before,
[id^='page-local-edwiserstore'] .form-check-input[type='radio']::after {
    content: none !important;
}

[id^='page-local-edwiserstore'] .form-check-input[type='radio']:checked {
    border-color: var(--edw-primary) !important;
    background-color: #fff !important;
    background-image: none !important;
}

[id^='page-local-edwiserstore'] .form-check-input[type='radio']:checked::after {
    content: '' !important;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--edw-primary);
}

/* Fix Bootstrap checkbox override for all Edwiser Store pages */
/* Excludes .form-switch checkboxes (e.g. Moodle Edit mode toggle) */
[id^='page-local-edwiserstore'] .form-check:not(.form-switch) .form-check-input[type='checkbox'] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    border: 2px solid #c4c4c4 !important;
    border-radius: 5px !important;
    background: #fff !important;
    background-image: none !important;
    box-shadow: none !important;
    outline: none !important;
    cursor: pointer;
    position: relative;
    transition: all 0.2s ease;
    padding: 0 !important;
}

[id^='page-local-edwiserstore'] .form-check:not(.form-switch) .form-check-input[type='checkbox']::before,
[id^='page-local-edwiserstore'] .form-check:not(.form-switch) .form-check-input[type='checkbox']::after {
    content: none !important;
}

[id^='page-local-edwiserstore'] .form-check:not(.form-switch) .form-check-input[type='checkbox']:checked {
    border-color: #0051f9 !important;
    background-color: #0051f9 !important;
    background-image: none !important;
}

[id^='page-local-edwiserstore'] .form-check:not(.form-switch) .form-check-input[type='checkbox']:checked::after {
    content: '' !important;
    position: absolute;
    top: 3px;
    left: 7px;
    width: 6px;
    height: 11px;
    border: solid #fff;
    border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg);
}

.path-local-edwiserstore select.form-control {
    appearance: none !important;
    background-image: url("../pix/select-arrow.svg");
    background-repeat: no-repeat;
    background-position: right 12px center;
}

/* ===================================================================
   Button overrides — high specificity to beat theme (e.g. RemUI)
   Scoped to all Edwiser Store pages via body[id^=] + dashboard layout
   =================================================================== */

/* btn-primary */
[id^='page-local-edwiserstore'] .btn-primary:not(:disabled):not(.disabled),
.local-edwiserstore-dashboard-layout
.btn-primary:not(:disabled):not(.disabled) {
    background: var(--edw-primary) !important;
    border-color: var(--edw-primary) !important;
    color: #fff !important;
}

[id^='page-local-edwiserstore']
.btn-primary:not(:disabled):not(.disabled):hover,
[id^='page-local-edwiserstore']
.btn-primary:not(:disabled):not(.disabled):active,
[id^='page-local-edwiserstore']
.btn-primary:not(:disabled):not(.disabled).active,
[id^='page-local-edwiserstore']
.btn-primary:not(:disabled):not(.disabled):focus,
[id^='page-local-edwiserstore']
.btn-primary:not(:disabled):not(.disabled).focus,
.local-edwiserstore-dashboard-layout
.btn-primary:not(:disabled):not(.disabled):hover,
.local-edwiserstore-dashboard-layout
.btn-primary:not(:disabled):not(.disabled):active,
.local-edwiserstore-dashboard-layout
.btn-primary:not(:disabled):not(.disabled).active,
.local-edwiserstore-dashboard-layout
.btn-primary:not(:disabled):not(.disabled):focus,
.local-edwiserstore-dashboard-layout
.btn-primary:not(:disabled):not(.disabled).focus {
    background: var(--edw-primary-hover) !important;
    border-color: var(--edw-primary-hover) !important;
    color: #fff !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--edw-primary) 25%, transparent) !important;
}

[id^='page-local-edwiserstore'] .btn-primary:disabled,
[id^='page-local-edwiserstore'] .btn-primary.disabled,
.local-edwiserstore-dashboard-layout .btn-primary:disabled,
.local-edwiserstore-dashboard-layout .btn-primary.disabled {
    background: #9ca3af !important;
    border-color: #9ca3af !important;
    color: #fff !important;
    opacity: 0.65 !important;
}

/* btn-outline-primary */
[id^='page-local-edwiserstore']
.btn-outline-primary:not(:disabled):not(.disabled),
.local-edwiserstore-dashboard-layout
.btn-outline-primary:not(:disabled):not(.disabled) {
    color: var(--edw-primary) !important;
    border-color: var(--edw-primary) !important;
    background: transparent !important;
}

[id^='page-local-edwiserstore']
.btn-outline-primary:not(:disabled):not(.disabled):hover,
[id^='page-local-edwiserstore']
.btn-outline-primary:not(:disabled):not(.disabled):active,
[id^='page-local-edwiserstore']
.btn-outline-primary:not(:disabled):not(.disabled):focus,
[id^='page-local-edwiserstore']
.btn-outline-primary:not(:disabled):not(.disabled).focus,
.local-edwiserstore-dashboard-layout
.btn-outline-primary:not(:disabled):not(.disabled):hover,
.local-edwiserstore-dashboard-layout
.btn-outline-primary:not(:disabled):not(.disabled):active,
.local-edwiserstore-dashboard-layout
.btn-outline-primary:not(:disabled):not(.disabled):focus,
.local-edwiserstore-dashboard-layout
.btn-outline-primary:not(:disabled):not(.disabled).focus {
    background: var(--edw-primary) !important;
    border-color: var(--edw-primary) !important;
    color: #fff !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--edw-primary) 25%, transparent) !important;
}

[id^='page-local-edwiserstore'] .btn-outline-primary:disabled,
[id^='page-local-edwiserstore'] .btn-outline-primary.disabled,
.local-edwiserstore-dashboard-layout .btn-outline-primary:disabled,
.local-edwiserstore-dashboard-layout .btn-outline-primary.disabled {
    color: #9ca3af !important;
    border-color: #d1d5db !important;
    background: transparent !important;
}

/* btn-secondary */
[id^='page-local-edwiserstore'] .btn-secondary:not(:disabled):not(.disabled),
.local-edwiserstore-dashboard-layout
.btn-secondary:not(:disabled):not(.disabled) {
    background: #fff !important;
    border-color: var(--edw-primary) !important;
    color: var(--edw-primary) !important;
}

[id^='page-local-edwiserstore'] .btn-secondary i,
.local-edwiserstore-dashboard-layout .btn-secondary i {
    color: inherit !important;
}

[id^='page-local-edwiserstore']
.btn-secondary:not(:disabled):not(.disabled):hover,
[id^='page-local-edwiserstore']
.btn-secondary:not(:disabled):not(.disabled):active,
[id^='page-local-edwiserstore']
.btn-secondary:not(:disabled):not(.disabled):focus,
[id^='page-local-edwiserstore']
.btn-secondary:not(:disabled):not(.disabled).focus,
.local-edwiserstore-dashboard-layout
.btn-secondary:not(:disabled):not(.disabled):hover,
.local-edwiserstore-dashboard-layout
.btn-secondary:not(:disabled):not(.disabled):active,
.local-edwiserstore-dashboard-layout
.btn-secondary:not(:disabled):not(.disabled):focus,
.local-edwiserstore-dashboard-layout
.btn-secondary:not(:disabled):not(.disabled).focus {
    background: var(--edw-primary) !important;
    border-color: var(--edw-primary) !important;
    color: #fff !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--edw-primary) 25%, transparent) !important;
}

[id^='page-local-edwiserstore'] .btn-secondary:disabled,
[id^='page-local-edwiserstore'] .btn-secondary.disabled,
.local-edwiserstore-dashboard-layout .btn-secondary:disabled,
.local-edwiserstore-dashboard-layout .btn-secondary.disabled {
    background: #f3f4f6 !important;
    border-color: #d1d5db !important;
    color: #9ca3af !important;
}

/* btn-link */
[id^='page-local-edwiserstore'] .btn-link,
.local-edwiserstore-dashboard-layout .btn-link {
    color: var(--edw-primary) !important;
}

[id^='page-local-edwiserstore'] .btn-link:hover,
.local-edwiserstore-dashboard-layout .btn-link:hover {
    color: var(--edw-primary-hover) !important;
}

/* form-control focus */
[id^='page-local-edwiserstore'] .form-control:focus,
.local-edwiserstore-dashboard-layout .form-control:focus {
    border-color: var(--edw-primary) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--edw-primary) 10%, transparent) !important;
}


#page-local-edwiserstore-orders .refund-confirmation #refund-unenroll-checkbox {
    height: 18px !important;
    right: 2px;
    top: 4px;
}
/* stylelint-enable declaration-no-important */
