* { box-sizing: border-box; margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
body { background: var(--bg-primary, #08080a); color: var(--text-primary, #e1e7ec); min-height: 100vh; padding: 20px; display: flex; justify-content: center; align-items: center; background-size: cover; background-position: center; background-attachment: fixed; }
.container { width: 100%; max-width: 640px; margin: 0 auto; }
.logo-box { text-align: center; margin-bottom: 20px; }
.logo-text { font-weight: 800; font-size: 1.2rem; letter-spacing: 2px; color: var(--text-accent, #10B981); }
.card { background: var(--bg-card, rgba(18, 22, 31, 0.95)); border: 1px solid var(--border-color, rgba(255, 255, 255, 0.08)); border-radius: 12px; padding: 24px; position: relative; }
.step-panel { display: none !important; }
.step-panel.active { display: block !important; }
.steps { display: flex; gap: 8px; justify-content: center; margin-bottom: 20px; }
.step-dot { width: 40px; height: 4px; background: rgba(255, 255, 255, 0.1); border-radius: 2px; transition: all 0.3s ease; }
.step-dot.active { background: var(--text-accent, #10B981); box-shadow: 0 0 8px rgba(16, 185, 129, 0.4); }
.btn-row { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; width: 100%; }
button { width: 100% !important; padding: 12px 18px; background: var(--button-bg, #10B981); color: var(--button-text, #000); border: none; border-radius: 6px; font-weight: 700; cursor: pointer; font-size: 0.85rem; text-align: center; }
button.sec { background: var(--button-secondary-bg, rgba(255,255,255,0.06)); color: var(--button-secondary-text, #fff); border: 1px solid rgba(255,255,255,0.1); }
.pdf-mock { padding: 8px; background: rgba(0,0,0,0.4); border: 1px dashed rgba(255,255,255,0.1); border-radius: 6px; font-size: 0.65rem; color: #666; margin: 8px 0; text-align: center; }
.portal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 12px 0; }
.portal-card { padding: 10px; background: rgba(255,255,255,0.02); border: 1px solid var(--border-color, rgba(255,255,255,0.08)); border-radius: 8px; text-align: center; font-size: 0.7rem; color: #666; }
.portal-card.active-portal { border-color: var(--text-accent, #10B981); background: rgba(16,185,129,0.08); color: #fff; }
.portal-card.active-portal strong { color: var(--text-accent, #10B981); }
.diag-box { display: none; padding: 8px; background: rgba(16,185,129,0.08); border: 1px solid var(--text-accent, #10B981); border-radius: 6px; font-size: 0.72rem; color: var(--text-accent, #10B981); margin-top: 8px; }
.rep-bar { display: flex; flex-direction: column; gap: 6px; background: rgba(255,255,255,0.03); padding: 10px 14px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.06); margin-bottom: 16px; font-size: 0.72rem; }
.rep-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rep-row span { color: #888; font-weight: 600; white-space: nowrap; }
.rep-row input, .rep-row select { background: transparent !important; border: none !important; color: var(--text-accent, #10B981) !important; font-weight: bold; width: auto !important; margin: 0 !important; padding: 0 !important; text-align: right; }