/* ═══════════════════════════════════════════════════════
   Tier 1 · Review Comments System
   Shared across all pages — drop-in via a single <link>.
   Palette: Direction 00 (charcoal + #2E6EA5 blue)
   Font stack: Montserrat head / Roboto body
   ═══════════════════════════════════════════════════════ */

:root{
  --rv-blue:#2E6EA5;
  --rv-blue-d:#245A87;
  --rv-blue-soft:#e7eff7;
  --rv-blue-border:#bcd4e8;
  --rv-ink:#262626;
  --rv-muted:#6B7280;
  --rv-mute2:#9CA3AF;
  --rv-border:#DDE1E6;
  --rv-card:#FFFFFF;
  --rv-danger:#dc2626;
  --rv-danger-soft:#fee2e2;
  --rv-font-head:'Montserrat','Gotham',sans-serif;
  --rv-font-body:'Roboto','Segoe UI',sans-serif;
}

/* ── Floating action bar (bottom-right) ── */
.rv-fab{
  position:fixed; bottom:24px; right:24px; z-index:500;
  display:flex; gap:8px; align-items:center;
}
.rv-fab button{
  border:none; cursor:pointer;
  font-family:var(--rv-font-head); font-size:11px; font-weight:700;
  letter-spacing:0.08em; text-transform:uppercase;
  padding:13px 20px; border-radius:999px;
  box-shadow:0 8px 24px rgba(0,0,0,0.18);
  transition:all 0.2s;
  display:inline-flex; align-items:center; gap:8px;
}
.rv-fab .rv-btn-add{ background:var(--rv-blue); color:#fff; border:1px solid var(--rv-blue-d) }
.rv-fab .rv-btn-add:hover{ background:var(--rv-blue-d); transform:translateY(-1px); box-shadow:0 12px 32px rgba(46,110,165,0.4) }
.rv-fab .rv-btn-all{ background:var(--rv-card); color:var(--rv-ink); border:1px solid var(--rv-border) }
.rv-fab .rv-btn-all:hover{ background:#fafbfc; border-color:var(--rv-mute2) }
.rv-fab .rv-count{
  background:#fff; color:var(--rv-blue);
  font-size:10px; font-weight:800; padding:2px 8px; border-radius:999px;
  min-width:18px; text-align:center; letter-spacing:0;
}

/* ── Modal ── */
.rv-backdrop{
  position:fixed; inset:0; z-index:600;
  background:rgba(15,23,32,0.55); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  animation:rv-fade 0.15s ease-out;
}
@keyframes rv-fade{ from{opacity:0} to{opacity:1} }
.rv-modal{
  background:var(--rv-card); border-radius:12px; padding:32px;
  width:100%; max-width:540px;
  box-shadow:0 24px 80px rgba(0,0,0,0.3);
  max-height:85vh; overflow-y:auto;
  font-family:var(--rv-font-body); color:var(--rv-ink); font-size:15px; font-weight:300; line-height:1.6;
}
.rv-modal h3{
  font-family:var(--rv-font-head); font-size:18px; font-weight:700;
  letter-spacing:-0.005em; text-transform:uppercase;
  margin-bottom:8px; color:var(--rv-ink);
}
.rv-modal .rv-sub{
  font-size:13px; color:var(--rv-muted); margin-bottom:20px;
}
.rv-modal .rv-section-tag{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--rv-font-head); font-size:10px; font-weight:700;
  letter-spacing:0.15em; text-transform:uppercase;
  background:var(--rv-blue-soft); color:var(--rv-blue);
  border:1px solid var(--rv-blue-border);
  padding:6px 12px; border-radius:3px; margin-bottom:16px;
}
.rv-modal .rv-section-tag::before{
  content:""; width:6px; height:6px; border-radius:50%; background:var(--rv-blue);
}
.rv-modal label{
  display:block;
  font-family:var(--rv-font-head); font-size:10px; font-weight:700;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--rv-muted); margin-bottom:6px; margin-top:4px;
}
.rv-modal input,
.rv-modal textarea{
  width:100%; padding:11px 14px;
  border:1px solid var(--rv-border); border-radius:6px;
  font-size:14px; font-family:var(--rv-font-body); color:var(--rv-ink);
  background:#fff;
  transition:border-color 0.15s, box-shadow 0.15s;
  margin-bottom:14px;
}
.rv-modal input:focus,
.rv-modal textarea:focus{
  outline:none; border-color:var(--rv-blue);
  box-shadow:0 0 0 3px rgba(46,110,165,0.12);
}
.rv-modal textarea{
  min-height:110px; resize:vertical; line-height:1.6;
}

.rv-modal-actions{
  display:flex; gap:8px; justify-content:flex-end;
  padding-top:8px; border-top:1px solid var(--rv-border); margin-top:8px;
}
.rv-btn-modal{
  display:inline-flex; align-items:center; gap:6px;
  padding:10px 18px; border-radius:6px;
  font-family:var(--rv-font-head); font-size:11px; font-weight:700;
  letter-spacing:0.08em; text-transform:uppercase;
  border:1px solid var(--rv-border); background:var(--rv-card); color:var(--rv-ink);
  cursor:pointer; transition:all 0.15s;
}
.rv-btn-modal:hover{ background:#fafbfc; border-color:var(--rv-mute2) }
.rv-btn-modal-primary{
  background:var(--rv-ink); color:#fff; border-color:var(--rv-ink);
}
.rv-btn-modal-primary:hover{ background:#000 }
.rv-btn-modal-blue{
  background:var(--rv-blue); color:#fff; border-color:var(--rv-blue);
}
.rv-btn-modal-blue:hover{ background:var(--rv-blue-d); border-color:var(--rv-blue-d) }
.rv-btn-modal-danger{
  color:var(--rv-danger); border-color:var(--rv-danger-soft);
}
.rv-btn-modal-danger:hover{ background:var(--rv-danger-soft); border-color:var(--rv-danger) }

/* ── All-comments list ── */
.rv-list-bar{
  display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px;
  padding-bottom:16px; border-bottom:1px solid var(--rv-border);
}
.rv-group-head{
  font-family:var(--rv-font-head); font-size:10px; font-weight:700;
  letter-spacing:0.15em; text-transform:uppercase;
  color:var(--rv-blue); margin:18px 0 8px;
  display:flex; align-items:center; gap:10px;
}
.rv-group-head::after{
  content:""; flex:1; height:1px; background:var(--rv-border);
}
.rv-item{
  position:relative; padding:14px 16px;
  background:#fafbfc; border:1px solid var(--rv-border); border-radius:8px;
  margin-bottom:8px;
}
.rv-item-text{
  font-size:14px; color:var(--rv-ink); line-height:1.65;
  white-space:pre-wrap; font-weight:300;
}
.rv-item-meta{
  font-family:var(--rv-font-head); font-size:10px; font-weight:600;
  letter-spacing:0.05em; color:var(--rv-mute2); margin-top:8px;
}
.rv-item-delete{
  position:absolute; top:10px; right:10px;
  background:none; border:none; color:var(--rv-mute2);
  font-size:11px; font-family:var(--rv-font-head); font-weight:600;
  letter-spacing:0.05em; text-transform:uppercase;
  padding:4px 8px; border-radius:4px; cursor:pointer;
  transition:all 0.15s;
}
.rv-item-delete:hover{ background:var(--rv-danger-soft); color:var(--rv-danger) }

.rv-empty{
  text-align:center; padding:32px 16px;
  font-size:14px; color:var(--rv-muted); font-weight:300;
}
.rv-empty strong{
  display:block; font-family:var(--rv-font-head); font-weight:700;
  text-transform:uppercase; letter-spacing:0.05em; color:var(--rv-ink);
  font-size:13px; margin-bottom:6px;
}

/* ── Toast ── */
.rv-toast{
  position:fixed; bottom:90px; right:24px; z-index:700;
  background:var(--rv-ink); color:#fff;
  font-family:var(--rv-font-head); font-size:12px; font-weight:600;
  letter-spacing:0.05em;
  padding:12px 18px; border-radius:8px;
  box-shadow:0 12px 32px rgba(0,0,0,0.3);
  animation:rv-toast-in 0.25s ease-out;
}
@keyframes rv-toast-in{ from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

/* ── Responsive ── */
@media (max-width:640px){
  .rv-fab{ bottom:16px; right:16px; }
  .rv-fab button{ padding:11px 16px; font-size:10px }
  .rv-fab .rv-btn-all span.rv-count-wrap{ display:none }
  .rv-modal{ padding:24px }
}
