/* Smart Product Review Material 3 — isolated from GreenMart's global controls.
   Material 3 outlined fields, surfaces, buttons, menus, chips and review dialog.
   All selectors are confined to the plugin's review UI/dialog. */
.sprw-reviews, .sprw-m3-modal {
  --sprw-m3-primary: #386a20;
  --sprw-m3-on-primary: #fff;
  --sprw-m3-primary-container: #b8f397;
  --sprw-m3-on-primary-container: #102900;
  --sprw-m3-surface: #f9faf4;
  --sprw-m3-surface-container: #f0f2ea;
  --sprw-m3-surface-high: #e7eae0;
  --sprw-m3-on-surface: #191d17;
  --sprw-m3-on-surface-variant: #43483e;
  --sprw-m3-outline: #73796c;
  --sprw-m3-outline-variant: #c3c9bb;
  --sprw-m3-error: #ba1a1a;
  --sprw-m3-radius: 16px;
  font-family: Roboto, 'Arial', system-ui, sans-serif;
  color: var(--sprw-m3-on-surface);
  line-height: 1.5;
  font-size: 14px;
  color-scheme: light;
}
.sprw-reviews *,.sprw-m3-modal * { box-sizing:border-box; }
.sprw-reviews .woocommerce-Reviews-title, .sprw-reviews h2,
.sprw-m3-modal h2 { font-family: inherit; color: var(--sprw-m3-on-surface); font-weight: 600; letter-spacing: 0; }
.sprw-reviews .woocommerce-Reviews-title { font-size:clamp(20px,3vw,26px); margin: 12px 0 24px; }
.sprw-reviews .woocommerce-noreviews { color: var(--sprw-m3-on-surface-variant); font-size: 14px; }
.sprw-reviews .sprw-rating-info-wrap, .sprw-reviews .sprw-review-listing-wrap,
.sprw-reviews .sprw-review-top, .sprw-reviews .sprw-top-bar-wrap {
  border-color: var(--sprw-m3-outline-variant);
}
.sprw-reviews a { color: var(--sprw-m3-primary); }
.sprw-reviews a:focus-visible, .sprw-m3-modal a:focus-visible,
.sprw-reviews button:focus-visible, .sprw-m3-modal button:focus-visible,
.sprw-m3-modal input:focus-visible, .sprw-m3-modal textarea:focus-visible,
.sprw-m3-modal select:focus-visible { outline: 3px solid var(--sprw-m3-primary); outline-offset: 3px; }
/* One call-to-action; GreenMart theme's inline review form never competes with it. */
.woocommerce .sprw-reviews .sprw-m3-open, .sprw-reviews .sprw-m3-open {
  appearance: none !important; display: inline-flex !important; align-items: center;
  justify-content:center; gap: 10px; min-height: 44px; border-radius: 999px !important;
  border: 1px solid var(--sprw-m3-primary) !important; padding: 9px 24px !important;
  background: var(--sprw-m3-primary) !important; color: var(--sprw-m3-on-primary) !important;
  font: 500 14px/1.4 Roboto,Arial,sans-serif !important; letter-spacing:.1px;
  text-transform:none; box-shadow:none !important; cursor:pointer;
  transition: background .15s ease, box-shadow .15s ease;
}
.woocommerce .sprw-reviews .sprw-m3-open:hover,.sprw-reviews .sprw-m3-open:hover { background: #275515 !important; box-shadow:0 2px 6px #0002 !important; }
.sprw-m3-open-icon { font-size: 19px; line-height: 1; }
/* The overlay is moved under <body> at runtime, avoiding transformed theme ancestors. */
.sprw-m3-modal[hidden], .sprw-m3-feedback[hidden] { display:none !important; }
.sprw-m3-modal { position:fixed !important; inset:0 !important; display:grid !important; place-items:center;
  z-index: 2147480000 !important; padding: 12px; isolation:isolate; }
.sprw-m3-modal[hidden] { display:none !important; }
.sprw-m3-backdrop { position:absolute; inset:0; background:rgba(21,27,20,.59); backdrop-filter:blur(4px); }
.sprw-m3-dialog { position:relative; isolation:isolate; width:min(100%,680px); max-height:min(92dvh,900px);
  display:flex; flex-direction:column; overflow:hidden; border-radius:28px; border: 1px solid var(--sprw-m3-outline-variant);
  background:var(--sprw-m3-surface); color:var(--sprw-m3-on-surface);
  box-shadow: 0 18px 65px rgba(0,0,0,.28); outline:none;
}
.sprw-m3-header { display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:24px 28px 16px; flex:0 0 auto; border-bottom:1px solid var(--sprw-m3-outline-variant); }
.sprw-m3-heading-group { min-width:0; }
.sprw-m3-modal .sprw-m3-eyebrow {font:500 12px/1.5 Roboto,Arial,sans-serif; letter-spacing:.7px; text-transform:uppercase;
  color:var(--sprw-m3-primary); margin:0 0 2px; }
.sprw-m3-modal h2 { font-size:24px !important; line-height:1.25 !important; margin:0 !important; padding:0 !important; }
.sprw-m3-modal .sprw-m3-icon-button { flex:0 0 44px; width:44px; height:44px; min-height:44px;
  display:grid; place-items:center; padding:0 !important; background:transparent !important;
  color:var(--sprw-m3-on-surface-variant) !important; border:none !important;
  border-radius:50% !important; box-shadow:none !important; cursor:pointer; font-size:27px !important; }
.sprw-m3-icon-button:hover { background:var(--sprw-m3-surface-high) !important; }
.sprw-m3-dialog-body { overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; padding:22px 28px 26px;
  scrollbar-color:var(--sprw-m3-outline-variant) transparent; }
.sprw-m3-open-body { overflow:hidden !important; }
.sprw-m3-modal .sprw-forms-content { display:block !important; margin:0 !important; }
.sprw-m3-modal #review_form_wrapper, .sprw-m3-modal #review_form,
.sprw-m3-modal #respond {display:block !important; width:100% !important; max-width:100% !important;
  padding:0 !important; margin:0 !important; border:0 !important; background:transparent !important; box-shadow:none !important; }
.sprw-m3-modal #respond .comment-reply-title {display:none !important;}
.sprw-m3-modal #respond form { display:flex !important; flex-direction:column; gap:18px; margin:0 !important; }
.sprw-m3-modal .sprw-input-wrap { position:relative; display:flex; flex-direction:column; gap:0; margin:8px 0 0 !important; padding:0 !important; }
.sprw-m3-modal .sprw-input-wrap > label, .sprw-m3-modal .sprw-review-title > label,
.sprw-m3-modal .comment-form-rating > label, .sprw-m3-modal .comment-form-comment > label {
  display:inline-block !important; width:auto !important; height:auto !important; max-width:calc(100% - 32px);
  position:absolute !important; top:-10px !important; left:13px !important; right:auto !important;
  z-index:2; background:var(--sprw-m3-surface) !important; color:var(--sprw-m3-on-surface-variant) !important;
  font:500 12px/19px Roboto,Arial,sans-serif !important; letter-spacing:.1px;
  padding:0 6px !important; margin:0 !important; transform:none !important; white-space:nowrap;
}
.sprw-m3-modal .sprw-input-wrap:focus-within > label {color:var(--sprw-m3-primary) !important;}
/* Outlined Material text fields. Preserve all original name/data validation attributes. */
.sprw-m3-modal input[type='text']:not(.sprw-uploaded-files):not(.sprw-uploaded-profile),
.sprw-m3-modal input[type='email'], .sprw-m3-modal input[type='url'],
.sprw-m3-modal input[type='number'],.sprw-m3-modal input[type='tel'],
.sprw-m3-modal input[type='password'],.sprw-m3-modal textarea,.sprw-m3-modal select,
.sprw-m3-modal .ui.selection.dropdown {
  font:400 16px/1.5 Roboto,Arial,sans-serif !important; color:var(--sprw-m3-on-surface) !important;
  background:transparent !important; min-height:56px !important; width:100% !important;
  padding:16px !important; border:1px solid var(--sprw-m3-outline) !important;
  border-radius:4px !important; box-shadow:none !important; outline:none;
  letter-spacing:.1px !important; max-width:none !important;
  transition:border-color .12s ease,box-shadow .12s ease;
}
.sprw-m3-modal textarea { resize:vertical; min-height:120px !important; max-height:380px; }
.sprw-m3-modal input:focus:not([type='checkbox']):not([type='radio']),
.sprw-m3-modal textarea:focus,.sprw-m3-modal select:focus,
.sprw-m3-modal .ui.selection.dropdown:focus-within {border:2px solid var(--sprw-m3-primary) !important;
  padding:15px !important; outline:none !important; }
.sprw-m3-modal input::placeholder, .sprw-m3-modal textarea::placeholder {color:var(--sprw-m3-on-surface-variant) !important; opacity:.75; }
.sprw-m3-modal select {appearance:auto; cursor:pointer; padding-inline-end:40px !important; }
.sprw-m3-modal select#rating { opacity:1 !important; }
/* WooCommerce displays star choices separately: preserve native rating input/select for submission. */
.sprw-m3-modal p.stars { display:flex !important; flex-wrap:wrap; align-items:center; min-height:48px; margin:8px 0 !important; }
.sprw-m3-modal p.stars a { border-radius:8px; transition:color .15s ease, background .15s ease; }
.sprw-m3-modal p.stars a:hover, .sprw-m3-modal p.stars a.active { color:var(--sprw-m3-primary) !important; }
/* Checkbox and radio controls (also custom external fields and GDPR). */
.sprw-m3-modal input[type='checkbox'],.sprw-m3-modal input[type='radio'] {
  appearance:none !important; -webkit-appearance:none !important; flex:0 0 19px !important;
  width:19px !important; height:19px !important; min-width:19px !important; min-height:19px !important;
  margin:0 9px 0 0 !important; padding:0 !important; display:inline-grid !important; place-content:center;
  border:2px solid var(--sprw-m3-on-surface-variant) !important; background:transparent !important;
  box-shadow:none !important; cursor:pointer; vertical-align:middle; position:relative;
}
.sprw-m3-modal input[type='checkbox'] {border-radius:3px !important;}
.sprw-m3-modal input[type='radio'] {border-radius:50% !important;}
.sprw-m3-modal input[type='checkbox']:checked,.sprw-m3-modal input[type='radio']:checked {
  border-color:var(--sprw-m3-primary) !important; background:var(--sprw-m3-primary) !important; }
.sprw-m3-modal input[type='checkbox']:checked::after {content:'✓' !important; position:static !important;
  color:#fff !important; display:block !important; background:none !important; border:none !important;
  height:auto !important;width:auto !important;font-size:13px !important;line-height:1 !important;transform:none !important; }
.sprw-m3-modal input[type='radio']:checked::after {content:'' !important; position:static !important;
  background:#fff !important;border:0 !important; border-radius:50% !important; height:7px !important;width:7px !important;transform:none !important; }
.sprw-m3-modal .sprw-gdpr-wrap,.sprw-m3-modal .sprw-review-checkbox,.sprw-m3-modal .sprw-review-radio,
.sprw-m3-modal .sprw-label-wrapper { color:var(--sprw-m3-on-surface); font-size:14px; }
.sprw-m3-modal .sprw-gdpr-wrap label,.sprw-m3-modal .sprw-opt-label {cursor:pointer; font:400 14px/1.6 Roboto,Arial,sans-serif; color:var(--sprw-m3-on-surface) !important; }
.sprw-m3-modal .sprw-forms-content .comment-form label.sprw-opt-label {display:inline-flex; gap:4px; align-items:center;}
.sprw-m3-modal .sprw-review-radio label,.sprw-m3-modal .sprw-review-checkbox label {display:inline-flex;align-items:center;gap:6px;}
/* Material menus and search dropdowns generated by the plugin's own dropdown library. */
.sprw-reviews .ui.dropdown,.sprw-m3-modal .ui.dropdown,
.sprw-reviews .sprw-filter,.sprw-reviews .sprw-sorting,
.sprw-reviews select[name='sprw_filter'],.sprw-reviews select[name='sprw_sorting'] {
  border:1px solid var(--sprw-m3-outline) !important; border-radius:4px !important;
  background:var(--sprw-m3-surface) !important; color:var(--sprw-m3-on-surface) !important;
  font-family:inherit !important; min-height:44px; box-shadow:none !important;
}
.sprw-reviews .ui.dropdown .menu,.sprw-m3-modal .ui.dropdown .menu {background:var(--sprw-m3-surface) !important;
  border:1px solid var(--sprw-m3-outline-variant) !important; border-radius:12px !important;
  box-shadow:0 6px 20px #0002 !important; padding:6px !important; max-height:300px; overflow:auto; }
.sprw-reviews .ui.dropdown .menu>.item,.sprw-m3-modal .ui.dropdown .menu>.item {border:0 !important;
  border-radius:8px !important; padding:11px 14px !important; font:400 14px/1.4 Roboto,Arial,sans-serif !important;
  color:var(--sprw-m3-on-surface) !important; }
.sprw-reviews .ui.dropdown .menu>.item:hover,.sprw-m3-modal .ui.dropdown .menu>.item:hover {
  background:var(--sprw-m3-surface-high) !important; }
.sprw-reviews .ui.dropdown .menu>.item.active,.sprw-m3-modal .ui.dropdown .menu>.item.active {
  background:var(--sprw-m3-primary-container) !important;color:var(--sprw-m3-on-primary-container) !important; }
/* Upload, submit, filters, chips, pagination and secondary/tonal buttons. */
.sprw-m3-modal button:not(.sprw-m3-icon-button), .sprw-m3-modal input[type='submit'],
.sprw-m3-modal .qq-upload-button,.sprw-m3-modal .button,
.sprw-reviews button:not(.sprw-m3-open),.sprw-reviews .button,
.sprw-reviews .sprw-vote-trigger,.sprw-reviews .sprw-load-more-trigger,
.sprw-reviews .sprw-inner-paginate a {
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font:500 14px/1.4 Roboto,Arial,sans-serif !important; text-decoration:none !important;
  min-height:40px; padding:8px 22px !important; border-radius:999px !important;
  border:1px solid var(--sprw-m3-outline) !important; box-shadow:none !important;
  background:transparent !important; color:var(--sprw-m3-primary) !important; cursor:pointer;
  transition:background .15s ease, box-shadow .15s ease;
}
.sprw-m3-modal #submit,.sprw-m3-modal #respond .form-submit input[type='submit'] {
  min-height:44px !important; border-radius:999px !important; border:1px solid var(--sprw-m3-primary) !important;
  color:#fff !important; background:var(--sprw-m3-primary) !important; padding:10px 28px !important;
}
.sprw-m3-modal #respond .form-submit {display:flex;justify-content:flex-end;margin:8px 0 0 !important;}
.sprw-m3-modal .qq-upload-button {border:1px solid var(--sprw-m3-primary) !important;
  color:var(--sprw-m3-primary) !important; border-radius:999px !important; }
.sprw-m3-modal button:hover:not(.sprw-m3-icon-button), .sprw-reviews button:hover:not(.sprw-m3-open),
.sprw-reviews .sprw-inner-paginate a:hover { background:var(--sprw-m3-primary-container) !important; box-shadow:0 2px 5px #0001 !important; }
.sprw-m3-modal #submit:hover {background:#275515 !important; color:#fff !important;}
.sprw-m3-modal .sprw-m3-feedback {padding:12px 16px; margin:0 0 16px; border-radius:12px;
  color:var(--sprw-m3-error);background:#ffdad6; font:400 14px/1.5 Roboto,Arial,sans-serif; }
.sprw-m3-modal label.error,.sprw-m3-modal .sprw-error {color:var(--sprw-m3-error) !important; font-size:12px !important; }
.sprw-m3-modal input.error:not([type='checkbox']):not([type='radio']), .sprw-m3-modal textarea.error,
.sprw-m3-modal select.error {border-color:var(--sprw-m3-error) !important;}
.sprw-reviews .sprw-m3-success {padding:14px 18px;border-radius:12px;
  background:var(--sprw-m3-primary-container);color:var(--sprw-m3-on-primary-container);
  margin-bottom:18px;font-weight:500;}
/* Rich text editor (optional), attachments, captions, review cards. */
.sprw-m3-modal .wp-editor-container { border:1px solid var(--sprw-m3-outline-variant);border-radius:8px;overflow:hidden; }
.sprw-m3-modal .sprw-file-preview,.sprw-m3-modal .sprw-profile-preview {display:flex;flex-wrap:wrap;gap:8px;}
.sprw-m3-modal .sprw-pro-prev-holder,.sprw-m3-modal .sprw-profile-prev-holder {
  border:1px solid var(--sprw-m3-outline-variant);border-radius:12px;overflow:hidden; }
.sprw-reviews .sprw-commentlist>li { border-bottom:1px solid var(--sprw-m3-outline-variant); }
.sprw-reviews .sprw-badge-wrap { border-radius:99px; }
@media(max-width:600px) {
 .sprw-m3-modal {padding:0;align-items:end;}
 .sprw-m3-dialog {border-radius:28px 28px 0 0; width:100%;max-height:96dvh;}
 .sprw-m3-header {padding:18px 20px 14px;}
 .sprw-m3-dialog-body {padding:16px 20px 28px;}
 .sprw-m3-modal h2 {font-size:21px !important;}
 .sprw-reviews .sprw-m3-open {width:100%;}
}
@media(prefers-reduced-motion:reduce) {
 .sprw-m3-modal *, .sprw-reviews * {scroll-behavior:auto !important; transition:none !important;animation-duration:.01ms !important;}
}
@media(forced-colors:active) {
 .sprw-m3-dialog {border:1px solid CanvasText;}
 .sprw-m3-modal input[type='checkbox'],.sprw-m3-modal input[type='radio'] {appearance:auto !important;}
}

/* Harmonize ratings, review summaries and image actions with M3 system colors. */
.woocommerce .sprw-reviews .star-rating span, .sprw-reviews .sprw-star-icon,
.sprw-reviews .sprw-star-icon i,.sprw-reviews .sprw-review-count {
    color:var(--sprw-m3-primary) !important;
}
.sprw-reviews .sprw-rating-bar-wrap .sb_progress .sb_bar {background:var(--sprw-m3-primary) !important;}
.sprw-reviews .sprw-rating-info-wrap,.sprw-reviews .sprw-outer-meta-wrapper {
    border-radius:var(--sprw-m3-radius);
}

/* Multi-choice group headings and option captions. */
.sprw-m3-modal .sprw-review-checkbox.sprw-input-wrap > label,
.sprw-m3-modal .sprw-review-radio.sprw-input-wrap > label {
  position:static !important;background:transparent !important;
  padding:0 !important;margin:0 0 8px !important;max-width:100% !important;
  color:var(--sprw-m3-on-surface-variant) !important;
}
.sprw-m3-modal .sprw-review-checkbox .sprw-label-wrapper,
.sprw-m3-modal .sprw-review-radio .sprw-label-wrapper {display:flex !important;align-items:center;flex-wrap:wrap;gap:12px 20px;}
.sprw-m3-modal .sprw-opt-label {display:inline-flex !important;gap:4px;align-items:center;}
.sprw-m3-modal .sprw-opt-label label {display:inline !important;cursor:pointer;color:var(--sprw-m3-on-surface) !important;}
