/* ==== Opinie w Google (modul v1). Tokeny, klasy i rytm z styles.css apki; tu tylko to, czego tam nie ma. ====
   Bez animacji wejscia wierszy: Start i ta lista sa ogladane dziesiatki razy dziennie (zasada: czesto = bez ruchu).
   Ruch tylko tam, gdzie ma sens: dotkniecie (.press), arkusz i przelacznik (juz w apce). */

/* karta na Starcie i naglowki sekcji */
.rv-card { display: flex; flex-direction: column; padding: 14px 6px 10px; }
.rv-hd { display: flex; align-items: center; gap: 12px; padding: 0 12px 8px; width: 100%; text-align: left; border-radius: 18px; }
button.rv-hd { min-height: 56px; }
.rv-hd .grow, .rv-hd > div { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rv-t { font-size: 20px; line-height: 25px; font-weight: 700; letter-spacing: -.2px; display: block; }
.rv-ic { width: 40px; height: 40px; border-radius: 20px; display: grid; place-items: center; flex: none; background: var(--card); color: var(--fg); box-shadow: var(--rim); }
.rv-setup { gap: 8px; padding-bottom: 14px; }
.rv-setup .btn { margin: 4px 12px 0; width: calc(100% - 24px); }
.rv-link { display: flex; flex-direction: column; gap: 14px; }
.rv-url { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }

/* wiersze: kolko z inicjalami, nazwa, podpis, przycisk po prawej; bez linii miedzy wierszami */
.rv-list { padding: 6px 4px; }
.rv-row { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 8px 12px; width: 100%; text-align: left; border-radius: 16px; }
.rv-row .grow { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.rv-sub { display: block; white-space: normal; overflow-wrap: anywhere; }
.rv-inl { width: auto !important; padding: 0 18px; flex: none; }
.rv-hist .chev { flex: none; }
.rv-attn { flex-wrap: wrap; row-gap: 6px; }
.rv-attn .grow { flex: 1 1 190px; }
.rv-attn .rv-inl { margin-left: 56px; }
.rv-st { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-top: 6px; }
.rv-st .s13 { overflow-wrap: anywhere; }
.rv-more { text-align: center; font-weight: 600; color: var(--fg2); height: 40px; width: 100%; font-size: 15px; }
.rv-cta { padding: 6px 12px 4px; }
.rv-mark { display: flex; align-items: center; gap: 12px; margin: 8px 8px 0; width: calc(100% - 16px); min-height: 58px; padding: 8px 14px; text-align: left; border-radius: 16px; background: var(--card3); }
.rv-mark .grow { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rv-cov { padding: 8px 14px 2px; }
.rv-stats { display: flex; flex-direction: column; gap: 4px; }
.rv-empty { padding: 22px 18px; }
.rv-when-s { flex: none; text-align: right; max-width: 40%; }

/* "Dlaczego nie ma przycisku": rozwijane, bez ukrywania powodu */
.rv-why { padding: 0; overflow: hidden; }
.rv-why > summary { cursor: pointer; list-style: none; min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px; font-size: 15px; font-weight: 600; color: var(--fg2); }
.rv-why > summary::-webkit-details-marker { display: none; }
.rv-why > summary::after { content: "\203A"; font-size: 22px; color: var(--fg4); transition: transform 160ms var(--ease-out); }
.rv-why[open] > summary::after { transform: rotate(90deg); }
.rv-why .rv-list { background: transparent; padding-top: 0; }

/* arkusze: dokladna wiadomosc, komunikaty, pola */
.quote.final.rv-msg { display: flex; flex-direction: column; gap: 12px; padding: 14px 16px; max-height: none; overflow: visible; white-space: normal; }
.rv-subj { display: flex; flex-direction: column; gap: 2px; }
.rv-subj b { font-size: 16px; line-height: 22px; font-weight: 600; color: var(--fg); overflow-wrap: anywhere; }
.rv-body { white-space: pre-line; font-size: 16px; line-height: 23px; color: var(--fg); overflow-wrap: anywhere; }
.rv-foot { white-space: pre-line; overflow-wrap: anywhere; padding-top: 10px; box-shadow: inset 0 .5px 0 var(--sep); color: var(--fg3); }
.rv-when { display: flex; align-items: center; gap: 10px; padding: 0 4px; font-size: 15px; line-height: 20px; color: var(--fg2); }
.rv-when svg { color: var(--fg3); }
.rv-fld { display: flex; flex-direction: column; gap: 6px; min-width: 0; flex: 1; }
.rv-fld > .s13 { padding: 0 4px; }
.rv-input { width: 100%; height: 54px; border-radius: 18px; border: 0; background: var(--field); color: var(--fg); font: 16px/22px var(--font); padding: 0 16px; outline: none; min-width: 0; }
.rv-input::placeholder { color: var(--fg4); }
.rv-input:focus-visible { outline: none; box-shadow: inset 0 0 0 1.5px var(--accent); }
.rv-msgline { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; line-height: 19px; padding: 0 4px; min-height: 19px; color: var(--fg2); }
.rv-msgline svg { margin-top: 1px; flex: none; }
.rv-msgline.ok { color: var(--ok); } .rv-msgline.warn { color: var(--warn); } .rv-msgline.bad { color: var(--bad); }
.rv-off { opacity: .45; pointer-events: none; }
a.btn2.sm { text-decoration: none; }
.rv-steps { padding: 2px 4px 0; }
.rv-steps li { font-size: 15px; line-height: 21px; }
.rv-origins { gap: 8px; }
.chip.ideachip { min-height: 40px; padding: 0 14px; }
.chip.ideachip.on { background: var(--seg-on); color: var(--fg); box-shadow: inset 0 0 0 1.5px var(--accent); }

/* dolny pasek przyciskow arkusza: przy dlugiej tresci zostaje na widoku (przewija sie tylko tresc), przy krotkiej lezy tam, gdzie lezalyby przyciski.
   Arkusz z paskiem nie ma dolnego marginesu (przegladarki licza "przyklejenie" od wnetrza paddingu), a margines gorny -16 px znosi odstep miedzy elementami:
   przycisk stoi 30 px nad krawedzia, a tresc wygasza sie pod paskiem. scroll-padding: pole, w ktore wchodzi fokus, nie chowa sie pod paskiem. */
.sheet:has(> .rv-actions) { padding-bottom: 0; scroll-padding-bottom: 168px; }
.rv-actions { position: sticky; bottom: 0; z-index: 3; display: flex; flex-direction: column; gap: 10px; margin: -16px -16px 0; padding: 16px 16px 30px; background: var(--sheet); background: linear-gradient(180deg, color-mix(in srgb, var(--sheet) 0%, transparent), var(--sheet) 16px); }
.rv-slot:empty { display: none; }
.rv-wrap { overflow-wrap: anywhere; }   /* adres odbiorczyni zawsze widoczny w calosci */
.rv-person { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 0 4px; }
.rv-person .t17 { flex: 1; min-width: 0; }

/* znacznik wizyty */
.rv-mrow { display: flex; flex-direction: column; gap: 10px; padding: 10px 12px 12px; border-radius: 16px; }
.rv-mtop { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rv-mtop .grow { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.rv-mdone { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 0 2px 0 56px; }
.rv-undo { font-size: 15px; font-weight: 600; color: var(--fg2); min-height: 44px; padding: 0 8px; text-decoration: underline; text-underline-offset: 4px; }
.rv-mbtn { padding-left: 56px; }

@media (prefers-reduced-motion: reduce) { .rv-why > summary::after { transition: none; } }
