/* Book-only, inline rating controls. Every color follows the active theme. */
.sg-book-rating-panel { margin-block-end: 24px; padding: 24px; scroll-margin-block-start: 24px; }
.sg-book-rating-panel [hidden], .sg-book-rating-summary [hidden] { display: none !important; }
.sg-book-rating-compact { display: inline-flex; min-block-size: 44px; align-items: center; margin-block-end: 16px; border-radius: 8px; }
.sg-book-rating-compact:focus-visible, .sg-book-rating-option:focus-visible { outline: 2px solid rgb(var(--color-primary)); outline-offset: 2px; }
.sg-book-rating-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: rgb(var(--color-ink)); }
.sg-book-rating-stars { position: relative; display: block; inline-size: 120px; block-size: 24px; flex: 0 0 120px; color: rgb(var(--color-primary)); }
.sg-book-rating-stars-base, .sg-book-rating-stars-fill { position: absolute; inset: 0; display: flex; inline-size: 120px; }
.sg-book-rating-stars-base { color: rgb(var(--color-ink-muted) / .55); }
.sg-book-rating-stars-fill { overflow: hidden; transition: width 240ms ease-out; }
.sg-book-rating-stars svg { inline-size: 24px; block-size: 24px; flex: 0 0 24px; stroke: currentColor; stroke-width: 1.5; fill: transparent; }
.sg-book-rating-stars-fill svg { fill: currentColor; stroke: currentColor; }
.sg-book-rating-average { font-size: 1.125rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.sg-book-rating-count { color: rgb(var(--color-ink-muted)); font-size: .875rem; }
.sg-book-rating-overview { display: flex; flex-direction: column; gap: 8px; }
.sg-book-rating-editor, .sg-book-rating-access { margin-block-start: 24px; }
.sg-book-rating-options { display: flex; inline-size: max-content; max-inline-size: 100%; margin-block-start: 8px; }
.sg-book-rating-option { display: grid; place-items: center; inline-size: 48px; min-inline-size: 48px; block-size: 48px; border: 0; border-radius: 8px; background: transparent; color: rgb(var(--color-ink-muted)); cursor: pointer; transition: color 240ms ease-out, background 240ms ease-out; touch-action: manipulation; }
.sg-book-rating-option svg { inline-size: 32px; block-size: 32px; fill: transparent; stroke: currentColor; stroke-width: 1.5; transition: fill 240ms ease-out, transform 240ms ease-out; }
.sg-book-rating-option.is-filled { color: rgb(var(--color-primary)); }
.sg-book-rating-option.is-filled svg { fill: currentColor; }
.sg-book-rating-option.is-selected svg { animation: sg-book-rating-pop 240ms ease-out; }
.sg-book-rating-option:disabled { cursor: default; }
.sg-book-rating-draft { min-block-size: 24px; margin-block-start: 8px; }
.sg-book-rating-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-block-start: 16px; }
.sg-book-rating-save { min-inline-size: 160px; min-block-size: 48px; }
.sg-book-rating-access a { margin-block-start: 16px; }
.sg-book-rating-spinner { inline-size: 16px; block-size: 16px; flex-shrink: 0; border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: 50%; animation: sg-book-rating-spin 800ms linear infinite; }
.sg-book-rating-feedback { min-block-size: 24px; margin-block-start: 16px; font-size: .875rem; color: rgb(var(--color-ink-muted)); }
.sg-book-rating-success { display: inline-flex; gap: 8px; align-items: center; color: rgb(var(--color-ink)); }
.sg-book-rating-success svg { inline-size: 24px; block-size: 24px; fill: transparent; stroke: rgb(var(--color-primary)); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; animation: sg-book-rating-pop 240ms ease-out; }
.sg-book-rating-retry { margin-block-start: 8px; }
.sg-book-rating-sr-only { position: absolute; inline-size: 1px; block-size: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@keyframes sg-book-rating-pop { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.15); } }
@keyframes sg-book-rating-spin { to { transform: rotate(360deg); } }
@media (hover: hover) { .sg-book-rating-option:not(:disabled):hover { background: rgb(var(--color-primary) / .08); } }
@media (min-width: 768px) { .sg-book-rating-overview { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; } }
@media (max-width: 479px) { .sg-book-rating-panel { padding: 16px; } }
@media (prefers-reduced-motion: reduce) {
    .sg-book-rating-stars-fill, .sg-book-rating-option, .sg-book-rating-option svg { transition: none; }
    .sg-book-rating-option.is-selected svg, .sg-book-rating-success svg, .sg-book-rating-spinner { animation: none; }
}
