.svc-rating { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:16px 0; border-top:1px solid var(--border, #3a414b); }
.svc-rating-summary { display:inline-flex; align-items:center; flex-wrap:wrap; gap:4px 10px; color:var(--text, #edf0f5); font-size:14px; }
/* Sternreihe: graue Spur + goldene Füllung, per Breite anteilig abgeschnitten */
.svc-stars { position:relative; display:inline-block; line-height:0; }
.svc-stars-track, .svc-stars-fill { display:inline-flex; white-space:nowrap; } /* ohne gap: Füllbreite = exakter Anteil */
.svc-stars svg { width:20px; height:20px; flex:none; }
.svc-stars-track svg { fill:rgba(255,255,255,.12); stroke:rgba(255,255,255,.22); stroke-width:1; }
.svc-stars-fill { position:absolute; inset:0 auto 0 0; overflow:hidden; }
.svc-stars-fill svg { fill:#ffb547; filter:drop-shadow(0 0 4px rgba(255,170,60,.55)); }
.svc-rating-score { font-weight:700; font-variant-numeric:tabular-nums; color:#ffc46b; }
.svc-rating-count { color:var(--text-soft, #a89b8b); font-size:13px; }
.svc-rating-dialog { color:var(--text, #edf0f5); background:var(--bg-card, #1b222c); border:1px solid var(--border, #495464); border-radius:14px; padding:24px; width:min(480px, calc(100% - 32px)); max-height:90dvh; overflow:auto; }
.svc-rating-dialog::backdrop { background:#000b; }
.svc-rating-dialog h2 { margin:0 0 16px; }
.svc-rating-dialog fieldset { border:0; padding:0; margin:20px 0; }
.svc-rating-options { display:flex; justify-content:center; gap:6px; margin-top:12px; }
.svc-rating-options label { position:relative; flex:0 1 56px; min-width:44px; cursor:pointer; }
.svc-rating-options input { position:absolute; opacity:0; }
.svc-rating-options label > span:first-of-type { display:grid; place-items:center; min-height:56px; border-radius:12px; transition:transform .15s cubic-bezier(.34,1.56,.64,1), background .15s; }
.svc-rating-options svg { width:44px; height:44px; fill:rgba(255,255,255,.08); stroke:rgba(255,255,255,.3); stroke-width:1.2; stroke-linejoin:round; transition:fill .15s, stroke .15s, filter .15s; }
.svc-rating-options label:hover > span:first-of-type { transform:scale(1.12); }
.svc-rating-options label > span.is-filled svg { fill:#ffb547; stroke:#ffcf85; filter:drop-shadow(0 0 8px rgba(255,170,60,.6)); }
.svc-rating-options input:checked + span { animation:svc-star-pop .35s cubic-bezier(.34,1.56,.64,1); }
@keyframes svc-star-pop { 50% { transform:scale(1.3); } }
.svc-rating-options input:focus-visible + span { outline:3px solid var(--accent-bright,#ee7e2c); outline-offset:2px; }
.svc-rating-options input:disabled + span { opacity:.5; cursor:wait; }
.svc-rating-choice { margin:10px 0 0; text-align:center; font-weight:700; color:#ffc46b; min-height:1.4em; }
@media (prefers-reduced-motion: reduce) {
  .svc-rating-options label > span:first-of-type, .svc-rating-options svg { transition:none; }
  .svc-rating-options input:checked + span { animation:none; }
}
.svc-rating-options .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.svc-rating-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; }
.svc-rating-actions button { min-height:44px; }
.svc-rating-actions .svc-rating-remove { margin-right:auto; background:transparent; color:#ff8a8a; border:1px solid rgba(255,90,90,.45); }
.svc-rating-actions .svc-rating-remove:hover:not(:disabled) { background:rgba(255,90,90,.12); color:#ffb5b5; }
.svc-rating-actions .svc-rating-remove[data-armed],
.svc-rating-actions .svc-rating-remove[data-armed]:hover:not(:disabled) { background:#c93434; border-color:#c93434; color:#fff; }
.svc-rating-error { color:#ffb5b5; }
.svc-admin-controls { display:flex; gap:12px; flex-wrap:wrap; align-items:end; margin:16px 0; }
.svc-admin-controls label { display:grid; gap:6px; }
.svc-admin-controls input,.svc-admin-controls select { padding:10px; max-width:100%; background:var(--bg-card,#1b222c); color:var(--text,#edf0f5); border:1px solid var(--border,#495464); border-radius:6px; }
.svc-admin-list { display:grid; gap:14px; }
.svc-admin-item { border:1px solid var(--border,#495464); border-radius:10px; padding:18px; overflow-wrap:anywhere; }
.svc-admin-item h3 { margin:0 0 8px; }
.svc-admin-item img { width:120px; height:75px; object-fit:cover; border-radius:6px; margin-bottom:10px; }
.svc-admin-item details { margin:12px 0; }
.svc-admin-item summary { cursor:pointer; }
.svc-admin-item p { white-space:pre-wrap; }
