.rv-section { --rv-bg:#0f1724; --rv-text:#f1f4f8; --rv-muted:#c3ccd8; --rv-faint:#b2bdce; --rv-line:#354052; --rv-accent:#ffc7ac; --rv-star:#ffd174; --rv-star-empty:#748095; padding:12px 0 18px; background:var(--rv-bg); color:var(--rv-text); font-family:inherit; font-size:13px; line-height:1.6; color-scheme:dark; scroll-margin-top:24px; }
.rv-section *, .rv-section *:before, .rv-section *:after { box-sizing:border-box; }
.rv-section [hidden] { display:none !important; }
.rv-container { width:calc(100% - 80px); max-width:880px; margin:0 auto; padding:0; }
.rv-main, .rv-content, .rv-author-copy { min-width:0; }
.rv-section h2, .rv-section h3 { margin:0; color:var(--rv-text); font-family:inherit; font-weight:600; font-size:18px; line-height:1.4; text-transform:none; letter-spacing:0; }
.rv-section h3 { font-size:18px; }
.rv-section button, .rv-section input, .rv-section textarea { font-family:inherit; }
.rv-section button, .rv-section a { -webkit-tap-highlight-color:transparent; }
.rv-section button { cursor:pointer; }
.rv-section button:disabled { cursor:wait; opacity:.65; }
.rv-section :is(a,button,input,textarea):focus-visible, .rv-heading:focus-visible { outline:2px solid var(--rv-accent); outline-offset:3px; }
.rv-list-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding-bottom:6px; border-bottom:1px dashed var(--rv-line); }
.rv-total { display:inline-block; margin-left:8px; color:var(--rv-accent); }
.rv-list { margin:0; padding:0; list-style:none; }
.rv-item { margin:0; padding:0; border-bottom:1px dashed var(--rv-line); }
.rv-row { display:grid; grid-template-columns:160px minmax(0,1fr); gap:16px; padding:10px 0; }
.rv-author { display:flex; align-items:flex-start; gap:10px; }
.rv-avatar { position:relative; display:inline-flex; justify-content:center; align-items:center; width:30px; height:30px; flex:0 0 30px; border-radius:50%; overflow:hidden; background:#443128; color:#ffc7ac; font-size:13px; font-weight:500; }
.rv-avatar img { position:absolute; inset:0; width:30px; height:30px; object-fit:cover; }
.rv-author strong { display:block; margin:0 0 4px; color:var(--rv-text); font-size:13px; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
.rv-author-copy>span { display:block; line-height:1; }
.rv-stars { display:inline-flex; align-items:center; gap:2px; vertical-align:middle; }
.rv-stars svg { display:block; width:12px; height:12px; flex:0 0 12px; overflow:hidden; }
.rv-star-empty { fill:var(--rv-star-empty); }
.rv-star-fill { fill:var(--rv-star); }
.rv-body { margin:0; color:var(--rv-muted); font-size:13px; line-height:1.55; overflow-wrap:anywhere; white-space:normal; }
.rv-enhanced .rv-body.is-collapsed { display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.rv-text-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:4px 6px; border:0; background:transparent; color:var(--rv-accent); font-size:12px; font-weight:500; text-decoration:underline; text-underline-offset:3px; }
.rv-expand { margin:2px 0 0 -6px; }
.rv-meta { display:flex; align-items:center; flex-wrap:wrap; gap:4px 16px; margin-top:4px; }
.rv-meta time { margin-left:auto; color:var(--rv-faint); font-size:11px; white-space:nowrap; }
.rv-add, .rv-submit { display:inline-flex; justify-content:center; align-items:center; min-height:44px; border:0; border-radius:8px; padding:8px 14px; background:#a8421c; color:#fff; font-size:13px; font-weight:600; line-height:1.6; text-align:center; }
.rv-add { flex:0 0 auto; margin:0; box-shadow:none; }
.rv-add:hover, .rv-add:focus, .rv-submit:hover, .rv-submit:focus { color:#fff; background:#923914; text-decoration:none; }
.rv-add:active, .rv-submit:active { transform:scale(.98); }
.rv-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:12px; }
.rv-load, .rv-cancel { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:44px; border:1px solid var(--rv-line); border-radius:999px; padding:10px 20px; background:#172232; color:var(--rv-text); font-size:12px; font-weight:500; }
.rv-load-icon { display:inline-flex; justify-content:center; align-items:center; width:14px; height:14px; border-radius:50%; background:var(--rv-accent); color:#152030; font:12px/1 Arial,sans-serif; }
.rv-load[aria-busy=true] .rv-load-icon { animation:rv-spin 1s linear infinite; }
@keyframes rv-spin { to { transform:rotate(360deg); } }
.rv-pagination { display:flex; align-items:center; flex-wrap:wrap; gap:2px; margin-left:auto; }
.rv-pagination button { display:inline-flex; justify-content:center; align-items:center; min-width:44px; min-height:44px; border:0; padding:4px; background:transparent; color:var(--rv-text); font-size:12px; }
.rv-pagination button[aria-current=page] { color:var(--rv-accent); font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.rv-pagination span { min-width:20px; text-align:center; }
.rv-empty { margin:24px 0; color:var(--rv-muted); }
.rv-load-error, .rv-field-error { color:#ffb8b8; }
.rv-load-error { margin:12px 0; }
.rv-announcement { position:absolute; }
.rv-results { position:relative; }
.rv-skeleton { position:absolute; inset:0; overflow:hidden; background:var(--rv-bg); }
.rv-skeleton>div { display:grid; grid-template-columns:160px 1fr; gap:20px; height:80px; padding:10px 0; border-bottom:1px dashed var(--rv-line); }
.rv-skeleton span { display:block; height:50px; border-radius:4px; background:#263143; }
.rv-flash { padding:10px 14px; margin:0 0 16px; border-radius:8px; }
.rv-success { background:#e2f5e8; color:#226034; }
.rv-error { background:#fce9e9; color:#a42624; }
.rv-composer { margin:30px 0 0; max-width:520px; padding:20px 0; border-top:1px dashed var(--rv-line); }
.rv-dialog { box-sizing:border-box; width:calc(100% - 32px); max-width:520px; max-height:calc(100% - 32px); overflow:auto; margin:auto; padding:20px; border:1px solid var(--rv-line); border-radius:14px; background:var(--rv-bg); color:var(--rv-text); box-shadow:0 18px 60px #0004; }
.rv-dialog::backdrop { background:rgba(10,15,25,.6); }
.rv-dialog .rv-composer { margin:0; padding:0; border:0; }
.rv-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.rv-close { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; margin:-10px -10px -10px 0; padding:0; border:0; background:transparent; color:var(--rv-text); font:26px Arial,sans-serif; }
.rv-composer p { margin:8px 0 12px; }
.rv-login { display:inline-flex; align-items:center; justify-content:center; min-height:44px; gap:8px; padding:10px 16px; border:1px solid var(--rv-line); border-radius:999px; background:#172232; color:var(--rv-text); font-size:13px; font-weight:500; }
.rv-login:hover { color:var(--rv-accent); }
.rv-login span { color:var(--rv-accent); font-weight:600; }
.rv-account { display:flex; align-items:end; gap:12px; }
.rv-account label { flex:1; min-width:0; }
.rv-form label, .rv-form legend { font-size:13px; font-weight:500; color:var(--rv-text); }
.rv-form input[readonly], .rv-form textarea { display:block; width:100%; border:1px solid #9696a1; border-radius:8px; padding:8px 10px; background:#101824; color:var(--rv-text); font-size:16px; line-height:1.5; }
.rv-form input[readonly] { margin-top:6px; background:#1c2635; }
.rv-logout { display:inline-flex; align-items:center; min-height:44px; padding:0 4px; color:var(--rv-accent); font-size:12px; }
.rv-form textarea { min-height:96px; resize:vertical; }
.rv-form textarea::placeholder { color:var(--rv-faint); }
.rv-composer .rv-hint { margin:6px 0 12px; color:var(--rv-muted); font-size:11px; line-height:1.6; }
.rv-rating-field { margin:0 0 12px; padding:0; border:0; min-width:0; }
.rv-rating-field legend { width:auto; margin:0; padding:0; border:0; line-height:1.5; }
.rv-rating-input { display:flex; flex-direction:row-reverse; justify-content:flex-end; }
.rv-rating-input input { position:absolute; width:1px; height:1px; margin:-1px; padding:0; clip:rect(0,0,0,0); overflow:hidden; }
.rv-rating-input label { display:flex; align-items:center; justify-content:center; width:44px; height:44px; margin:0; color:#9aa8ba; font-size:28px; cursor:pointer; }
.rv-rating-input input:checked~label, .rv-rating-input label:hover, .rv-rating-input label:hover~label { color:#ffd174; }
.rv-rating-input input:focus-visible+label { outline:2px solid var(--rv-accent); outline-offset:1px; border-radius:4px; }
.rv-text-label { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:6px; }
.rv-counter { color:var(--rv-muted); font-size:11px; font-weight:400; }
.rv-form-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:16px; }
.rv-form .rv-field-error { font-size:12px; }
@media(prefers-reduced-motion:reduce) { .rv-load[aria-busy=true] .rv-load-icon { animation:none; } .rv-add:active, .rv-submit:active { transform:none; } }
@media(max-width:640px) { .rv-container { width:calc(100% - 80px); } .rv-row { grid-template-columns:minmax(0,1fr); gap:8px; padding:10px 0; } .rv-author { align-items:center; } .rv-author-copy { display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; } .rv-author strong { margin:0; } .rv-list-heading { gap:6px; } .rv-section h2 { font-size:17px; } .rv-add { font-size:12px; padding:8px 10px; } .rv-bottom { gap:6px; } .rv-pagination { gap:0; } .rv-load { padding:8px 12px; } .rv-skeleton>div { grid-template-columns:minmax(0,1fr); gap:8px; height:105px; padding:10px 0; } .rv-skeleton span { height:28px; } .rv-dialog { padding:16px; } }
