/**
 * Echoholics Reviews.
 *
 * Hardcoded hex, dark by default with light as an explicit override.
 * Every rule competing with the `all: unset` button reset is scoped to a
 * parent so it outranks it — an unscoped rule loses even with
 * !important, which is how a layout silently collapses.
 */

.ech-rev-form, .ech-rev-moderate, .ech-rev-wall, .ech-rev-mine,
.ech-rev-done, .ech-rev-notice {
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
}
.ech-rev-form *, .ech-rev-moderate *, .ech-rev-wall *, .ech-rev-mine * { box-sizing: border-box; }

.ech-rev-form button, .ech-rev-moderate button, .ech-rev-wall button {
  all: unset !important; box-sizing: border-box !important; cursor: pointer !important;
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif !important;
}
.ech-rev-form .ech-rev-btn,
.ech-rev-moderate .ech-rev-btn {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  font-size: 14px !important; font-weight: 600 !important; padding: 13px 26px !important;
  border-radius: 6px !important; border-width: 1px !important; border-style: solid !important;
  line-height: 1.2 !important;
}
.ech-rev-form .ech-rev-btn { width: 100% !important; }
.ech-rev-moderate .ech-rev-btn.is-small,
.ech-rev-form .ech-rev-btn.is-small { padding: 9px 16px !important; font-size: 12.5px !important; }
.ech-rev-form .ech-rev-btn:disabled,
.ech-rev-moderate .ech-rev-btn:disabled { opacity: 0.55 !important; cursor: not-allowed !important; }

/* ---------- Form ---------- */
.ech-rev-form { max-width: 620px; border-radius: 12px; border-width: 1px; border-style: solid; padding: 32px; }
.ech-rev-title { font-family: "Gunterz", Georgia, serif; font-weight: 600; font-size: 24px; margin: 0 0 6px; line-height: 1.25; }
.ech-rev-intro { font-size: 13.5px; line-height: 1.6; margin: 0 0 22px; }
.ech-rev-field { margin-bottom: 18px; }
.ech-rev-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ech-rev-label {
  display: block; margin-bottom: 7px;
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
}
.ech-rev-req { font-weight: 700; }
.ech-rev-input, .ech-rev-textarea {
  width: 100% !important; border-radius: 6px !important; padding: 12px 14px !important;
  font-size: 14px !important; line-height: 1.5 !important;
  border-width: 1px !important; border-style: solid !important; box-shadow: none !important;
  font-family: inherit !important;
}
.ech-rev-textarea { resize: vertical !important; min-height: 120px !important; }
.ech-rev-hint { font-size: 11.5px; line-height: 1.5; margin: 5px 0 0; }

.ech-rev-stars { display: inline-flex; align-items: center; gap: 4px; }
.ech-rev-form .ech-rev-star { display: inline-flex !important; padding: 3px !important; }
.ech-rev-star svg { width: 30px; height: 30px; transition: transform 0.1s ease; }
.ech-rev-form .ech-rev-star:hover svg { transform: scale(1.12) !important; }
.ech-rev-form .ech-rev-star-clear {
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace !important;
  font-size: 10px !important; letter-spacing: 0.08em !important;
  text-decoration: underline !important; margin-left: 8px !important; padding: 4px !important;
}
.ech-rev-detail { margin-bottom: 20px; }
.ech-rev-detail summary { font-size: 13px; cursor: pointer; padding: 10px 0; }
.ech-rev-detail-note { margin-bottom: 14px; }
.ech-rev-cat-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; padding: 9px 0; flex-wrap: wrap;
}
.ech-rev-cat-label { font-size: 13.5px; }
.ech-rev-cat-row .ech-rev-star svg { width: 22px; height: 22px; }
.ech-rev-error { border-radius: 6px; padding: 11px 14px; font-size: 13px; margin-bottom: 14px; }
.ech-rev-foot { margin-top: 14px; text-align: center; }

/* ---------- Done / notice ---------- */
.ech-rev-done, .ech-rev-notice {
  max-width: 520px; border-radius: 12px; border-width: 1px; border-style: solid;
  padding: 34px 28px; text-align: center;
}
.ech-rev-notice { text-align: left; }
.ech-rev-notice strong { display: block; font-size: 15px; margin-bottom: 6px; }
.ech-rev-notice p { font-size: 13.5px; line-height: 1.6; margin: 0; }
.ech-rev-done-mark {
  width: 46px; height: 46px; border-radius: 999px; margin: 0 auto 14px;
  display: flex; align-items: center; justify-content: center;
}
.ech-rev-done-mark svg { width: 22px; height: 22px; stroke: currentColor; }
.ech-rev-done-title { font-family: "Gunterz", Georgia, serif; font-weight: 600; font-size: 21px; margin: 0 0 6px; }
.ech-rev-response, .ech-rev-response-shown, .ech-rev-card-response {
  border-radius: 8px; padding: 14px 16px; margin-top: 16px; text-align: left;
}
.ech-rev-response-label {
  display: block; font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 9.5px; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 5px;
}
.ech-rev-response p, .ech-rev-response-shown p, .ech-rev-card-response p {
  margin: 0; font-size: 13px; line-height: 1.6;
}

/* ---------- Moderation ---------- */
.ech-rev-tabs { display: flex; gap: 4px; margin-bottom: 18px; flex-wrap: wrap; }
.ech-rev-tab {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 9px 15px; border-radius: 999px; font-size: 12.5px;
  text-decoration: none !important;
}
.ech-rev-tab-count {
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 9.5px; padding: 2px 7px; border-radius: 999px;
}
.ech-rev-mod-list { display: flex; flex-direction: column; gap: 10px; }
.ech-rev-mod-item, .ech-rev-mine-card {
  border-radius: 10px; border-width: 1px; border-style: solid; padding: 20px;
}
.ech-rev-mod-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.ech-rev-mod-who { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ech-rev-mod-name { font-size: 14px; font-weight: 600; }
.ech-rev-mod-meta { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 10.5px; }
.ech-rev-score {
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: 999px; flex-shrink: 0;
}
.ech-rev-mod-title { font-size: 15px; font-weight: 600; margin: 0 0 7px; line-height: 1.35; }
.ech-rev-mod-text { font-size: 13.5px; line-height: 1.65; margin: 0 0 12px; }
.ech-rev-mod-cats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.ech-rev-cat-chip {
  font-size: 11.5px; padding: 5px 11px; border-radius: 999px;
  display: inline-flex; align-items: center; gap: 6px;
}
.ech-rev-cat-chip strong { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; }
.ech-rev-respond { margin-bottom: 14px; }
.ech-rev-respond-actions { display: flex; align-items: center; gap: 12px; margin-top: 9px; flex-wrap: wrap; }
.ech-rev-mod-status { font-size: 12px; }
.ech-rev-mod-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.ech-rev-feature { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; cursor: pointer; margin-left: auto; }
.ech-rev-pagination { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 18px; flex-wrap: wrap; }
.ech-rev-page-link { font-size: 13px; text-decoration: none !important; }
.ech-rev-page-status { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 11px; }

/* ---------- Public wall ---------- */
.ech-rev-summary { margin-bottom: 26px; }
.ech-rev-average { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.ech-rev-average-score { font-family: "Gunterz", Georgia, serif; font-weight: 600; font-size: 42px; line-height: 1; }
.ech-rev-average-stars { display: inline-flex; align-items: center; }
.ech-rev-average-label { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 11px; }
.ech-rev-bars { display: flex; flex-direction: column; gap: 9px; max-width: 440px; }
.ech-rev-bar-row { display: grid; grid-template-columns: 130px 1fr 58px; gap: 12px; align-items: center; }
.ech-rev-bar-label { font-size: 12.5px; }
.ech-rev-bar { height: 6px; border-radius: 999px; overflow: hidden; }
.ech-rev-bar-fill { display: block; height: 100%; border-radius: 999px; }
.ech-rev-bar-score { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 12px; text-align: right; }
.ech-rev-bar-score small { font-size: 9.5px; margin-left: 4px; }

.ech-rev-featured { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-bottom: 20px; }
.ech-rev-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.ech-rev-card { border-radius: 10px; border-width: 1px; border-style: solid; padding: 20px; display: flex; flex-direction: column; }
.ech-rev-card.is-featured { padding: 26px; }
.ech-rev-card.is-featured .ech-rev-card-title { font-size: 18px; }
.ech-rev-card.is-featured .ech-rev-card-text { font-size: 14.5px; }
.ech-rev-card-stars { margin-bottom: 10px; }
.ech-rev-card-title { font-size: 15px; font-weight: 600; margin: 0 0 8px; line-height: 1.35; }
.ech-rev-card-text { font-size: 13.5px; line-height: 1.65; margin: 0 0 14px; flex: 1; }
.ech-rev-card-foot { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-top: auto; }
.ech-rev-card-name { font-size: 13px; font-weight: 600; }
.ech-rev-card-meta { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 10px; }
.ech-rev-verified {
  font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
  font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 999px; margin-left: auto;
}
.ech-rev-star-row { display: inline-flex; gap: 2px; }
.ech-rev-star-display svg { width: 15px; height: 15px; }
.ech-rev-mine { display: flex; flex-direction: column; gap: 10px; }

@media (max-width: 560px) {
  .ech-rev-form { padding: 22px; }
  .ech-rev-field-row { grid-template-columns: 1fr; }
  .ech-rev-bar-row { grid-template-columns: 100px 1fr 50px; gap: 9px; }
  .ech-rev-cat-row { justify-content: flex-start; }
}

/* Dark — the default */
html:not(.psk-theme-light) .ech-rev-form,
html:not(.psk-theme-light) .ech-rev-done,
html:not(.psk-theme-light) .ech-rev-notice,
html:not(.psk-theme-light) .ech-rev-mod-item,
html:not(.psk-theme-light) .ech-rev-mine-card,
html:not(.psk-theme-light) .ech-rev-card { background: #161616; border-color: #2A2A2A; color: #9A9A9A; }
html:not(.psk-theme-light) .ech-rev-card.is-featured { background: #12202B; border-color: rgba(75,155,213,0.3); }
html:not(.psk-theme-light) .ech-rev-title,
html:not(.psk-theme-light) .ech-rev-done-title,
html:not(.psk-theme-light) .ech-rev-mod-title,
html:not(.psk-theme-light) .ech-rev-card-title,
html:not(.psk-theme-light) .ech-rev-mod-name,
html:not(.psk-theme-light) .ech-rev-card-name,
html:not(.psk-theme-light) .ech-rev-average-score,
html:not(.psk-theme-light) .ech-rev-notice strong { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-rev-intro,
html:not(.psk-theme-light) .ech-rev-mod-text,
html:not(.psk-theme-light) .ech-rev-card-text { color: #9A9A9A; }
html:not(.psk-theme-light) .ech-rev-label { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-rev-req { color: #F5B93B; }
html:not(.psk-theme-light) .ech-rev-hint,
html:not(.psk-theme-light) .ech-rev-mod-meta,
html:not(.psk-theme-light) .ech-rev-card-meta,
html:not(.psk-theme-light) .ech-rev-average-label,
html:not(.psk-theme-light) .ech-rev-bar-score small { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-rev-input,
html:not(.psk-theme-light) .ech-rev-textarea { background: #1E1E1E !important; border-color: #3A3A3A !important; color: #E3E3E3 !important; }
html:not(.psk-theme-light) .ech-rev-input:focus,
html:not(.psk-theme-light) .ech-rev-textarea:focus { border-color: #4B9BD5 !important; outline: 2px solid #4B9BD5; outline-offset: 2px; }
html:not(.psk-theme-light) .ech-rev-btn { background: #33769F !important; border-color: transparent !important; color: #FFFFFF !important; }
html:not(.psk-theme-light) .ech-rev-btn.is-secondary { background: #1E1E1E !important; border-color: #3A3A3A !important; color: #E3E3E3 !important; }
html:not(.psk-theme-light) .ech-rev-star svg { fill: #2A2A2A; }
html:not(.psk-theme-light) .ech-rev-star.is-on svg { fill: #F5B93B; }
html:not(.psk-theme-light) .ech-rev-star-clear { color: #6B6B6B !important; }
html:not(.psk-theme-light) .ech-rev-star-display svg { fill: #2A2A2A; }
html:not(.psk-theme-light) .ech-rev-star-display.is-full svg,
html:not(.psk-theme-light) .ech-rev-star-display.is-half svg { fill: #F5B93B; }
html:not(.psk-theme-light) .ech-rev-star-display.is-half svg { opacity: 0.55; }
html:not(.psk-theme-light) .ech-rev-error { background: rgba(248,113,113,0.12); color: #F87171; }
html:not(.psk-theme-light) .ech-rev-done-mark { background: rgba(74,222,128,0.14); color: #4ADE80; }
html:not(.psk-theme-light) .ech-rev-response,
html:not(.psk-theme-light) .ech-rev-response-shown,
html:not(.psk-theme-light) .ech-rev-card-response { background: rgba(255,255,255,0.04); }
html:not(.psk-theme-light) .ech-rev-response-label { color: #83BDE7; }
html:not(.psk-theme-light) .ech-rev-detail summary { color: #83BDE7; }
html:not(.psk-theme-light) .ech-rev-cat-label { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-rev-tab { background: #161616; color: #9A9A9A; }
html:not(.psk-theme-light) .ech-rev-tab.is-active { background: #12202B; color: #83BDE7; }
html:not(.psk-theme-light) .ech-rev-tab-count { background: rgba(255,255,255,0.08); }
html:not(.psk-theme-light) .ech-rev-score { background: #1E1E1E; color: #E3E3E3; }
html:not(.psk-theme-light) .ech-rev-score-5,
html:not(.psk-theme-light) .ech-rev-score-4 { background: rgba(74,222,128,0.14); color: #4ADE80; }
html:not(.psk-theme-light) .ech-rev-score-3 { background: rgba(245,185,59,0.14); color: #F5B93B; }
html:not(.psk-theme-light) .ech-rev-score-2,
html:not(.psk-theme-light) .ech-rev-score-1 { background: rgba(248,113,113,0.14); color: #F87171; }
html:not(.psk-theme-light) .ech-rev-cat-chip { background: #1E1E1E; color: #9A9A9A; }
html:not(.psk-theme-light) .ech-rev-cat-chip strong { color: #83BDE7; }
html:not(.psk-theme-light) .ech-rev-mod-status { color: #4ADE80; }
html:not(.psk-theme-light) .ech-rev-mod-status.is-error { color: #F87171; }
html:not(.psk-theme-light) .ech-rev-feature { color: #9A9A9A; }
html:not(.psk-theme-light) .ech-rev-page-link { color: #83BDE7; }
html:not(.psk-theme-light) .ech-rev-page-status { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-rev-bar { background: #1E1E1E; }
html:not(.psk-theme-light) .ech-rev-bar-fill { background: #4B9BD5; }
html:not(.psk-theme-light) .ech-rev-bar-label { color: #9A9A9A; }
html:not(.psk-theme-light) .ech-rev-bar-score { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-rev-verified { background: rgba(74,222,128,0.12); color: #4ADE80; }

/* Light — explicit override */
html.psk-theme-light .ech-rev-form,
html.psk-theme-light .ech-rev-done,
html.psk-theme-light .ech-rev-notice,
html.psk-theme-light .ech-rev-mod-item,
html.psk-theme-light .ech-rev-mine-card,
html.psk-theme-light .ech-rev-card { background: #FFFFFF; border-color: #E3E3E3; color: #4A4A4A; }
html.psk-theme-light .ech-rev-card.is-featured { background: #EAF2F8; border-color: rgba(51,118,159,0.25); }
html.psk-theme-light .ech-rev-title,
html.psk-theme-light .ech-rev-done-title,
html.psk-theme-light .ech-rev-mod-title,
html.psk-theme-light .ech-rev-card-title,
html.psk-theme-light .ech-rev-mod-name,
html.psk-theme-light .ech-rev-card-name,
html.psk-theme-light .ech-rev-average-score,
html.psk-theme-light .ech-rev-notice strong { color: #0E0E0E; }
html.psk-theme-light .ech-rev-label,
html.psk-theme-light .ech-rev-hint,
html.psk-theme-light .ech-rev-mod-meta,
html.psk-theme-light .ech-rev-card-meta,
html.psk-theme-light .ech-rev-average-label { color: #6B6B6B; }
html.psk-theme-light .ech-rev-req { color: #B45309; }
html.psk-theme-light .ech-rev-input,
html.psk-theme-light .ech-rev-textarea { background: #F7F7F5 !important; border-color: #D1D1CE !important; color: #0E0E0E !important; }
html.psk-theme-light .ech-rev-input:focus,
html.psk-theme-light .ech-rev-textarea:focus { border-color: #33769F !important; outline: 2px solid #33769F; outline-offset: 2px; }
html.psk-theme-light .ech-rev-btn { background: #33769F !important; border-color: transparent !important; color: #FFFFFF !important; }
html.psk-theme-light .ech-rev-btn.is-secondary { background: #F7F7F5 !important; border-color: #D1D1CE !important; color: #0E0E0E !important; }
html.psk-theme-light .ech-rev-star svg,
html.psk-theme-light .ech-rev-star-display svg { fill: #D1D1CE; }
html.psk-theme-light .ech-rev-star.is-on svg,
html.psk-theme-light .ech-rev-star-display.is-full svg,
html.psk-theme-light .ech-rev-star-display.is-half svg { fill: #D97706; }
html.psk-theme-light .ech-rev-star-display.is-half svg { opacity: 0.55; }
html.psk-theme-light .ech-rev-star-clear { color: #6B6B6B !important; }
html.psk-theme-light .ech-rev-error { background: rgba(220,38,38,0.08); color: #DC2626; }
html.psk-theme-light .ech-rev-done-mark { background: rgba(22,163,74,0.10); color: #16A34A; }
html.psk-theme-light .ech-rev-response,
html.psk-theme-light .ech-rev-response-shown,
html.psk-theme-light .ech-rev-card-response { background: #F7F7F5; }
html.psk-theme-light .ech-rev-response-label,
html.psk-theme-light .ech-rev-detail summary { color: #33769F; }
html.psk-theme-light .ech-rev-cat-label { color: #0E0E0E; }
html.psk-theme-light .ech-rev-tab { background: #F0F0EE; color: #4A4A4A; }
html.psk-theme-light .ech-rev-tab.is-active { background: #EAF2F8; color: #33769F; }
html.psk-theme-light .ech-rev-tab-count { background: rgba(0,0,0,0.07); }
html.psk-theme-light .ech-rev-score { background: #F0F0EE; color: #0E0E0E; }
html.psk-theme-light .ech-rev-score-5,
html.psk-theme-light .ech-rev-score-4 { background: rgba(22,163,74,0.10); color: #16A34A; }
html.psk-theme-light .ech-rev-score-3 { background: rgba(217,119,6,0.10); color: #B45309; }
html.psk-theme-light .ech-rev-score-2,
html.psk-theme-light .ech-rev-score-1 { background: rgba(220,38,38,0.10); color: #DC2626; }
html.psk-theme-light .ech-rev-cat-chip { background: #F7F7F5; color: #4A4A4A; }
html.psk-theme-light .ech-rev-cat-chip strong { color: #33769F; }
html.psk-theme-light .ech-rev-mod-status { color: #16A34A; }
html.psk-theme-light .ech-rev-mod-status.is-error { color: #DC2626; }
html.psk-theme-light .ech-rev-page-link { color: #33769F; }
html.psk-theme-light .ech-rev-page-status { color: #6B6B6B; }
html.psk-theme-light .ech-rev-bar { background: #F0F0EE; }
html.psk-theme-light .ech-rev-bar-fill { background: #33769F; }
html.psk-theme-light .ech-rev-bar-label { color: #4A4A4A; }
html.psk-theme-light .ech-rev-bar-score { color: #0E0E0E; }
html.psk-theme-light .ech-rev-verified { background: rgba(22,163,74,0.10); color: #16A34A; }

/* ---------- Empty state ---------- */
.ech-rev-empty {
  font-family: "Just Sanz", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  border-radius: 10px; border-width: 1px; border-style: dashed;
  padding: 34px 26px; text-align: center;
}
.ech-rev-empty * { box-sizing: border-box; }
.ech-rev-empty-mark { display: inline-flex; margin-bottom: 12px; }
.ech-rev-empty-mark svg { width: 34px; height: 34px; stroke: currentColor; }
.ech-rev-empty-title { font-size: 15px; font-weight: 600; margin: 0 0 6px; }
.ech-rev-empty-text { font-size: 13px; line-height: 1.6; margin: 0 auto; max-width: 380px; }
.ech-rev-empty-btn {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  margin-top: 16px !important; padding: 11px 22px !important;
  font-size: 13.5px !important; font-weight: 600 !important;
  border-radius: 6px !important; text-decoration: none !important; line-height: 1.2 !important;
}

html:not(.psk-theme-light) .ech-rev-empty { background: #12121200; border-color: #2A2A2A; color: #6B6B6B; }
html:not(.psk-theme-light) .ech-rev-empty-mark { color: #3A3A3A; }
html:not(.psk-theme-light) .ech-rev-empty-title { color: #E3E3E3; }
html:not(.psk-theme-light) .ech-rev-empty-text { color: #6B6B6B; }
html:not(.psk-theme-light) .ech-rev-empty-btn { background: #33769F !important; color: #FFFFFF !important; }

html.psk-theme-light .ech-rev-empty { background: transparent; border-color: #D1D1CE; color: #6B6B6B; }
html.psk-theme-light .ech-rev-empty-mark { color: #D1D1CE; }
html.psk-theme-light .ech-rev-empty-title { color: #0E0E0E; }
html.psk-theme-light .ech-rev-empty-text { color: #6B6B6B; }
html.psk-theme-light .ech-rev-empty-btn { background: #33769F !important; color: #FFFFFF !important; }
