:root{--rvp-light-blue: #9ad4e9;--rvp-cream: #f1e7e2;--rvp-orange: #ff6a39;--rvp-slate: #506d85;--rvp-indigo: #333579;--rvp-black: #2d2926;--bg: #f4f1ee;--surface: #ffffff;--surface-2: #f1e7e2;--ink: #2d2926;--ink-soft: #4c443f;--muted: #8a7e76;--hair: #e6ddd6;--hair-strong: #d6c9bf;--primary: #333579;--primary-ink: #333579;--accent: #ff6a39;--accent-hover: #ea5525;--danger: #c0392b;--success: #1e8f63;--radius: 12px;--radius-lg: 18px;--shadow: 0 1px 2px rgba(45,41,38,.06), 0 8px 24px rgba(45,41,38,.06);--shadow-lg: 0 12px 40px rgba(51,53,121,.18);--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--primary)}h1,h2,h3{letter-spacing:-.01em;margin:0}.logo{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:18px;letter-spacing:-.02em}.logo .mark{width:30px;height:30px;border-radius:8px;flex:none;background:linear-gradient(135deg,var(--rvp-indigo),var(--rvp-orange));display:grid;place-items:center;color:#fff;font-weight:900;font-size:15px}.logo .rp{color:inherit}.logo .up{color:var(--rvp-orange)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;font:inherit;font-weight:700;padding:11px 20px;border-radius:10px;background:var(--accent);color:#fff;transition:background .15s ease,transform .05s ease}.btn:hover{background:var(--accent-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:transparent;color:var(--primary);border:1px solid var(--hair-strong)}.btn.secondary:hover{background:var(--surface-2)}.btn.ghost{background:transparent;color:var(--ink-soft);padding:6px 10px}.btn.ghost:hover{color:var(--ink);background:var(--surface-2)}.btn.sm{padding:7px 12px;font-size:13px;border-radius:8px}.btn.danger{background:var(--danger)}label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}.field{margin-bottom:16px}input,select{width:100%;font:inherit;padding:11px 13px;border-radius:10px;border:1px solid var(--hair-strong);background:var(--surface);color:var(--ink)}input:focus,select:focus{outline:2px solid var(--rvp-light-blue);outline-offset:1px;border-color:var(--primary)}.card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.stack{display:flex;flex-direction:column}.auth-wrap{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(120% 80% at 100% 0%,rgba(51,53,121,.1),transparent 60%),radial-gradient(90% 70% at 0% 100%,rgba(154,212,233,.16),transparent 60%),var(--bg)}.auth-card{width:100%;max-width:400px;padding:34px 32px}.auth-card h1{font-size:22px;margin-bottom:4px}.auth-card .sub{color:var(--muted);font-size:14px;margin-bottom:24px}.auth-foot{margin-top:18px;font-size:13px;color:var(--muted);text-align:center}.alert{padding:11px 14px;border-radius:10px;font-size:14px;margin-bottom:16px}.alert.error{background:#fbeae7;color:#a5341f;border:1px solid #f2c3ba}.alert.ok{background:#e3f4ec;color:#12744d;border:1px solid #b9e2cd}.alert.info{background:#eaf6fb;color:#1c5f78;border:1px solid #c3e5f1}.appbar{background:var(--rvp-indigo);color:var(--rvp-cream);display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:3px solid var(--accent)}.appbar .logo{color:var(--rvp-cream)}.appbar .who{display:flex;align-items:center;gap:14px;font-size:14px}.appbar .who .name{color:var(--rvp-cream);font-weight:600}.appbar .btn.ghost{color:var(--rvp-cream)}.appbar .btn.ghost:hover{background:#ffffff1f}.appbar nav{display:flex;gap:6px}.appbar nav a{color:var(--rvp-cream);text-decoration:none;font-size:14px;font-weight:600;padding:7px 12px;border-radius:8px;opacity:.8}.appbar nav a.active,.appbar nav a:hover{opacity:1;background:#ffffff1f}.page{max-width:900px;margin:0 auto;padding:32px 22px 60px}.page.wide{max-width:1080px}.page h2{font-size:24px;margin-bottom:4px}.page .lead{color:var(--muted);margin-bottom:26px}.dropzone{border:2px dashed var(--hair-strong);border-radius:var(--radius-lg);padding:46px 24px;text-align:center;background:var(--surface);transition:border-color .15s,background .15s;cursor:pointer}.dropzone.drag{border-color:var(--accent);background:#fff7f3}.dropzone .big{font-size:17px;font-weight:700;margin-bottom:4px}.dropzone .hint{color:var(--muted);font-size:13px}.dz-icon{width:46px;height:46px;margin:0 auto 14px;color:var(--primary)}.filelist{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:8px}.filerow{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--hair);border-radius:10px;padding:10px 14px;font-size:14px}.filerow .fname{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filerow .fsize{color:var(--muted);font-size:12px;margin-left:auto;font-variant-numeric:tabular-nums}.filerow .status{font-size:12px;font-weight:700}.filerow .status.ok{color:var(--success)}.filerow .status.err{color:var(--danger)}.tablecard{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:14px}table.data th,table.data td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--hair);vertical-align:middle}table.data thead th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--surface-2)}table.data tbody tr:hover{background:#faf7f4}.pill{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;letter-spacing:.02em}.pill.active{background:#e3f4ec;color:#12744d}.pill.invited{background:#eaf6fb;color:#1c5f78}.pill.disabled{background:#efe7e2;color:#8a7e76}.pill.admin{background:#ecedf7;color:var(--primary)}.pill.stored{background:#e3f4ec;color:#12744d}.pill.rejected,.pill.failed{background:#fbeae7;color:#a5341f}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.toolbar .spacer{flex:1}.muted{color:var(--muted)}.tabs{display:flex;gap:4px;margin-bottom:22px;border-bottom:1px solid var(--hair)}.tabs button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;font:inherit;font-weight:700;cursor:pointer;padding:10px 14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.active{color:var(--primary);border-bottom-color:var(--accent)}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;display:inline-block;animation:spin .7s linear infinite;vertical-align:-3px}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation:none}.btn:active{transform:none}}
