:root{--rvc-navy:#1F3864;--rvc-blue:#2E75B6;--rvc-blue-light:#BDD7EE;--rvc-blue-alt:#DCE6F1;--rvc-green:#1a7f4b;--rvc-green-bg:#d4edda;--rvc-red:#b91c1c;--rvc-red-bg:#fee2e2;--rvc-yellow-bg:#fef9c3;--rvc-yellow:#854d0e;--rvc-text:#1a1a2e;--rvc-muted:#64748b;--rvc-border:#e2e8f0;--rvc-bg:#f8fafc;--rvc-white:#fff;--rvc-radius:14px;--rvc-shadow:0 4px 28px rgba(31,56,100,.10);--rvc-shadow-lg:0 8px 40px rgba(31,56,100,.16)}
.rvc-wrap{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;max-width:960px;margin:0 auto;padding:0 16px 60px;color:var(--rvc-text);-webkit-font-smoothing:antialiased}
.rvc-header{display:flex;align-items:center;gap:20px;padding:32px 0 24px}
.rvc-header-icon{font-size:3.2rem;line-height:1;filter:drop-shadow(0 4px 10px rgba(31,56,100,.18))}
.rvc-header-text h2{margin:0 0 6px;font-size:1.65rem;font-weight:700;color:var(--rvc-navy);letter-spacing:-.025em;line-height:1.2}
.rvc-header-text p{margin:0;font-size:.95rem;color:var(--rvc-muted);line-height:1.5}
.rvc-card{background:var(--rvc-white);border:1px solid var(--rvc-border);border-radius:var(--rvc-radius);padding:28px;box-shadow:var(--rvc-shadow)}
.rvc-dropzone{border:2.5px dashed var(--rvc-blue-light);border-radius:10px;background:var(--rvc-bg);cursor:pointer;transition:border-color .2s,background .2s}
.rvc-dropzone:hover,.rvc-dropzone.drag-over{border-color:var(--rvc-blue);background:#EDF4FB}
.rvc-dropzone-inner{display:flex;flex-direction:column;align-items:center;padding:40px 24px;text-align:center;pointer-events:none}
.rvc-dropzone label{pointer-events:all}
.rvc-drop-icon{font-size:3.4rem;margin-bottom:12px;transition:transform .2s}
.rvc-dropzone.drag-over .rvc-drop-icon{transform:scale(1.15) translateY(-4px)}
.rvc-drop-text{font-size:1.05rem;font-weight:600;color:var(--rvc-navy);margin:0 0 4px}
.rvc-drop-sub{font-size:.85rem;color:var(--rvc-muted);margin:0 0 14px}
.rvc-drop-hint{font-size:.78rem;color:var(--rvc-muted);margin:12px 0 0}
.rvc-file-selected{display:flex;align-items:center;gap:10px;margin-top:16px;padding:12px 16px;background:var(--rvc-blue-alt);border-radius:8px;border:1px solid var(--rvc-blue-light)}
.rvc-file-icon{font-size:1.2rem}
.rvc-file-name{flex:1;font-size:.9rem;font-weight:500;color:var(--rvc-navy);word-break:break-all}
.rvc-btn-clear{background:none;border:none;cursor:pointer;color:var(--rvc-muted);font-size:1rem;padding:4px 8px;border-radius:50%;transition:background .15s,color .15s;line-height:1}
.rvc-btn-clear:hover{background:rgba(185,28,28,.1);color:var(--rvc-red)}
.rvc-actions{margin-top:24px;display:flex;justify-content:center}
.rvc-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;text-decoration:none!important;border:2px solid transparent;transition:all .2s;white-space:nowrap;line-height:1.4}
.rvc-btn-primary{background:var(--rvc-navy);color:#fff!important;border-color:var(--rvc-navy)}
.rvc-btn-primary:hover:not(:disabled){background:var(--rvc-blue);border-color:var(--rvc-blue);transform:translateY(-1px);box-shadow:0 6px 20px rgba(31,56,100,.28)}
.rvc-btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
.rvc-btn-outline{background:transparent;color:var(--rvc-blue)!important;border-color:var(--rvc-blue)}
.rvc-btn-outline:hover{background:var(--rvc-blue-alt)}
.rvc-btn-download{background:var(--rvc-green);color:#fff!important;border-color:var(--rvc-green);font-size:1.05rem;padding:15px 40px;box-shadow:0 4px 16px rgba(26,127,75,.28)}
.rvc-btn-download:hover{background:#155d38;transform:translateY(-2px);box-shadow:0 8px 28px rgba(26,127,75,.38)}
.rvc-progress-wrap{margin-top:24px;background:var(--rvc-white);border:1px solid var(--rvc-border);border-radius:var(--rvc-radius);padding:36px;box-shadow:var(--rvc-shadow);text-align:center}
.rvc-progress-bar{height:8px;background:var(--rvc-blue-alt);border-radius:99px;overflow:hidden;margin-bottom:18px}
.rvc-progress-fill{height:100%;background:linear-gradient(90deg,var(--rvc-navy),var(--rvc-blue));border-radius:99px;animation:rvc-slide 1.8s ease-in-out infinite}
@keyframes rvc-slide{0%{width:5%;margin-left:0}50%{width:55%;margin-left:25%}100%{width:5%;margin-left:100%}}
.rvc-progress-label{font-size:.95rem;color:var(--rvc-navy);margin:0 0 8px;font-weight:600}
.rvc-progress-sub{font-size:.82rem;color:var(--rvc-muted);margin:0}
.rvc-alert{display:flex;align-items:flex-start;gap:12px;margin-top:20px;padding:14px 18px;border-radius:10px;font-size:.9rem;line-height:1.5}
.rvc-alert-error{background:var(--rvc-red-bg);color:var(--rvc-red);border:1px solid #fca5a5}
.rvc-alert-warning{background:var(--rvc-yellow-bg);color:var(--rvc-yellow);border:1px solid #fde047}
.rvc-alert-icon{font-size:1.2rem;flex-shrink:0;margin-top:1px}
.rvc-results{margin-top:24px}
.rvc-results-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.rvc-success-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;background:var(--rvc-green-bg);color:var(--rvc-green);border-radius:99px;font-weight:700;font-size:.95rem}
.rvc-results-meta{font-size:.85rem;color:var(--rvc-muted)}
.rvc-preview{background:var(--rvc-white);border:1px solid var(--rvc-border);border-radius:var(--rvc-radius);overflow:hidden;box-shadow:var(--rvc-shadow);margin-bottom:24px}
.rvc-preview-meta{display:flex;flex-wrap:wrap;gap:18px;padding:13px 20px;background:var(--rvc-blue-alt);border-bottom:1px solid var(--rvc-border);font-size:.875rem}
.rvc-preview-meta strong{color:var(--rvc-navy)}
.rvc-table-wrap{overflow-x:auto}
.rvc-table{width:100%;border-collapse:collapse;font-size:.875rem}
.rvc-table thead tr{background:var(--rvc-navy)}
.rvc-table thead th{padding:11px 12px;text-align:center;font-weight:600;font-size:.8rem;color:#fff;letter-spacing:.03em;border-right:1px solid rgba(255,255,255,.12);white-space:nowrap}
.rvc-table thead th:last-child{border-right:none}
.rvc-table tbody tr.even{background:var(--rvc-white)}
.rvc-table tbody tr.odd{background:var(--rvc-blue-alt)}
.rvc-table tbody tr:hover{background:#e1edf7}
.rvc-table tbody td{padding:9px 12px;border-right:1px solid var(--rvc-border);border-bottom:1px solid var(--rvc-border);vertical-align:middle;text-align:center}
.rvc-table tbody td.td-left{text-align:left}
.rvc-table tbody td code{background:rgba(31,56,100,.08);color:var(--rvc-navy);padding:2px 7px;border-radius:4px;font-size:.8rem;font-family:'Courier New',monospace;white-space:nowrap}
.rvc-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap}
.rvc-table tfoot tr{background:var(--rvc-blue-light)}
.rvc-table tfoot td{padding:10px 12px;border-top:2px solid var(--rvc-blue);font-weight:700;text-align:center}
.rvc-table tfoot td.num{text-align:right}
.rvc-download-zone{display:flex;flex-direction:column;align-items:center;gap:12px;padding:30px;background:var(--rvc-white);border:1px solid var(--rvc-border);border-radius:var(--rvc-radius);box-shadow:var(--rvc-shadow-lg);margin-bottom:20px}
.rvc-download-note{font-size:.8rem;color:var(--rvc-muted);margin:0}
.rvc-new-analysis{text-align:center}
.rvc-locked{text-align:center;padding:64px 24px;background:var(--rvc-white);border:1px solid var(--rvc-border);border-radius:var(--rvc-radius);box-shadow:var(--rvc-shadow)}
.rvc-lock-icon{font-size:3.8rem;margin-bottom:18px;opacity:.65}
.rvc-locked h3{color:var(--rvc-navy);font-size:1.4rem;margin:0 0 10px}
.rvc-locked p{color:var(--rvc-muted);margin:0 0 24px}
@media(max-width:660px){
  .rvc-header{flex-direction:column;text-align:center}
  .rvc-table{font-size:.78rem}
  .rvc-table thead th,.rvc-table tbody td,.rvc-table tfoot td{padding:7px 8px}
  .rvc-btn-download{width:100%;justify-content:center}
  .rvc-results-header{flex-direction:column;align-items:flex-start}
  .rvc-preview-meta{flex-direction:column;gap:6px}
  .rvc-card{padding:18px}
}

/* ---- Balance bar ---- */
.rvc-balance-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 20px;background:var(--rvc-white);border:1px solid var(--rvc-border);border-radius:10px;margin-bottom:16px;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.rvc-balance-info{display:flex;align-items:center;gap:14px}
.rvc-balance-label{font-size:.9rem;color:var(--rvc-muted);font-weight:500}
.rvc-balance-amount{font-size:1.4rem;font-weight:700;color:var(--rvc-green)}
.rvc-balance-amount.low{color:var(--rvc-red)}
.rvc-balance-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:.82rem;color:var(--rvc-muted)}
.rvc-balance-cost{background:var(--rvc-blue-alt);color:var(--rvc-navy);padding:3px 10px;border-radius:99px;font-weight:500}
.rvc-new-balance-msg{padding:10px 16px;background:var(--rvc-blue-alt);border-radius:8px;font-size:.88rem;color:var(--rvc-navy);text-align:center;margin-top:8px}
