:root {
  --bg-primary: #0a0e1a;
  --bg-secondary: #111827;
  --bg-card: #1a1f2e;
  --bg-card-hover: #222838;
  --accent: #dc143c;
  --accent-light: #e84057;
  --text-primary: #f1f5f9;
  --text-secondary: #94a3b8;
  --text-muted: #64748b;
  --green: #22c55e;
  --green-bg: rgba(34,197,94,0.1);
  --yellow: #eab308;
  --yellow-bg: rgba(234,179,8,0.1);
  --blue: #3b82f6;
  --blue-bg: rgba(59,130,246,0.1);
  --border: #2a3040;
  --radius: 12px;
}

* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Inter',sans-serif; background:var(--bg-primary); color:var(--text-primary); min-height:100vh; }

/* Selects con menu desplegable oscuro (Chrome/Firefox/Edge) */
select { color-scheme: dark; }
select option { background-color: var(--bg-card); color: var(--text-primary); padding: 8px; }
select option:checked { background-color: var(--accent); color: #fff; }

/* ========== LOGIN ========== */
.login-page { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:20px; }
.login-box { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); padding:40px; width:100%; max-width:400px; text-align:center; }
.logo-text { font-size:24px; font-weight:700; margin-bottom:4px; }
.logo-text span { color:var(--accent); }
.login-subtitle { color:var(--text-secondary); font-size:14px; margin-bottom:24px; }
.login-error { background:rgba(220,20,60,0.15); border:1px solid rgba(220,20,60,0.3); color:var(--accent); padding:10px; border-radius:8px; font-size:13px; margin-bottom:16px; }
.form-group { margin-bottom:16px; text-align:left; }
.form-group label { display:block; font-size:13px; color:var(--text-secondary); margin-bottom:6px; font-weight:500; }
.form-group input { width:100%; padding:12px 14px; background:var(--bg-secondary); border:1px solid var(--border); border-radius:8px; color:var(--text-primary); font-size:14px; font-family:inherit; transition:border-color .2s; }
.form-group input:focus { outline:none; border-color:var(--accent); }
.btn-primary { width:100%; padding:12px; background:var(--accent); color:#fff; border:none; border-radius:8px; font-size:15px; font-weight:600; font-family:inherit; cursor:pointer; transition:background .2s; margin-top:8px; }
.btn-primary:hover { background:var(--accent-light); }

/* ========== TOPBAR ========== */
.topbar { background:var(--bg-secondary); border-bottom:1px solid var(--border); padding:0 24px; height:60px; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:100; }
.topbar-left { display:flex; align-items:center; gap:12px; }
.topbar-logo { font-size:18px; font-weight:700; }
.topbar-logo span { color:var(--accent); }
.topbar-badge { background:var(--accent); color:#fff; font-size:11px; font-weight:600; padding:3px 8px; border-radius:20px; }
.topbar-right { display:flex; align-items:center; gap:16px; }
.topbar-user { display:flex; align-items:center; gap:8px; }
.topbar-avatar { width:34px; height:34px; border-radius:50%; background:var(--accent); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; }
.topbar-name { font-size:14px; font-weight:500; }
.topbar-role { font-size:11px; color:var(--text-muted); }
.btn-logout { background:transparent; border:1px solid var(--border); color:var(--text-secondary); padding:6px 14px; border-radius:6px; font-size:13px; cursor:pointer; font-family:inherit; transition:all .2s; }
.btn-logout:hover { border-color:var(--accent); color:var(--accent); }

/* ========== DASHBOARD ========== */
.dashboard-content { max-width:1200px; margin:0 auto; padding:24px; }
.welcome-bar { margin-bottom:24px; }
.welcome-bar h1 { font-size:22px; font-weight:600; }
.welcome-bar h1 span { color:var(--accent); }
.welcome-bar p { color:var(--text-secondary); font-size:14px; margin-top:4px; }

/* Summary Cards */
.summary-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:28px; }
.summary-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); padding:20px; position:relative; overflow:hidden; }
.summary-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; }
.summary-card.green::before { background:var(--green); }
.summary-card.blue::before { background:var(--blue); }
.summary-card.yellow::before { background:var(--yellow); }
.summary-card.red::before { background:var(--accent); }
.sc-icon { width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:18px; margin-bottom:12px; }
.summary-card.green .sc-icon { background:var(--green-bg); }
.summary-card.blue .sc-icon { background:var(--blue-bg); }
.summary-card.yellow .sc-icon { background:var(--yellow-bg); }
.summary-card.red .sc-icon { background:rgba(220,20,60,0.1); }
.sc-label { font-size:13px; color:var(--text-secondary); margin-bottom:6px; font-weight:500; }
.sc-value { font-size:20px; font-weight:700; }
.sc-sub { font-size:12px; color:var(--text-muted); margin-top:4px; }
.sc-sub .positive { color:var(--green); }

/* Highlighted cards: Capital Total & Ganancia */
.summary-card.highlight { border-width:2px; background:linear-gradient(135deg, var(--bg-card) 60%, var(--highlight-tint, rgba(34,197,94,0.06))); }
.summary-card.highlight .sc-value { font-size:26px; }
.summary-card.highlight .sc-icon { width:46px; height:46px; font-size:20px; }
.summary-card.green.highlight { border-color:rgba(34,197,94,0.5); --highlight-tint:rgba(34,197,94,0.08); }
.summary-card.red.highlight { border-color:rgba(220,20,60,0.5); --highlight-tint:rgba(220,20,60,0.08); }
.summary-card.highlight .sc-value { color:var(--green); animation:pulse-glow 2.5s ease-in-out infinite; }
@keyframes pulse-glow { 0%,100%{ opacity:1; } 50%{ opacity:.55; } }

/* Section Header */
.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.section-header h2 { font-size:17px; font-weight:600; }
.section-header h2 .count { background:var(--bg-secondary); color:var(--text-secondary); font-size:12px; padding:2px 8px; border-radius:10px; margin-left:8px; font-weight:500; }
.empty-text { color:var(--text-muted); font-size:14px; }

/* Vehicle Cards */
.vehicles-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:16px; margin-bottom:16px; }
.vehicle-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; transition:border-color .2s; }
.vehicle-card:hover { border-color:var(--text-muted); }
.vehicle-card.sold { border-color:rgba(34,197,94,0.3); }

.vc-image { height:170px; background-size:cover; background-position:center; background-color:var(--bg-secondary); position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.vc-image .vc-placeholder { font-size:48px; opacity:0.3; }
.vc-status { position:absolute; top:10px; right:10px; padding:4px 10px; border-radius:20px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }
.vc-status.activo { background:var(--blue-bg); color:var(--blue); border:1px solid rgba(59,130,246,0.3); }
.vc-status.vendido { position:absolute; top:0; right:0; left:0; bottom:0; background:none; border:none; border-radius:0; padding:0; font-size:0; color:transparent; pointer-events:none; overflow:hidden; }
.vc-status.vendido::after { content:'VENDIDO'; position:absolute; top:28px; right:-35px; width:160px; text-align:center; padding:6px 0; background:linear-gradient(135deg,#d97706,#b45309); color:#fff; font-size:13px; font-weight:800; letter-spacing:2px; transform:rotate(45deg); box-shadow:0 2px 8px rgba(0,0,0,0.4); }
.vc-status.cancelado { background:rgba(100,116,139,0.1); color:#94a3b8; border:1px solid rgba(100,116,139,0.3); }

.vc-body { padding:16px; }
.vc-title { font-size:16px; font-weight:600; margin-bottom:4px; }
.vc-year { color:var(--text-secondary); font-size:13px; margin-bottom:12px; }
.vc-row { display:flex; justify-content:space-between; padding:8px 0; border-top:1px solid var(--border); font-size:13px; }
.vc-row-label { color:var(--text-secondary); }
.vc-row-value { font-weight:600; }
.vc-row-value.profit { color:var(--green); }
.vc-row-value.accent { color:var(--accent); }
.vc-row.vc-alist { padding:4px 0 4px 12px; border-top:none; font-size:12px; opacity:0.8; }
.vc-row.vc-alist .vc-row-label { color:var(--yellow); }

.vc-profit-box { margin:0 16px 12px; padding:12px; background:var(--green-bg); border:1px solid rgba(34,197,94,0.2); border-radius:8px; }
.vc-profit-title { font-size:12px; color:var(--green); font-weight:600; margin-bottom:8px; text-transform:uppercase; letter-spacing:.5px; }
.vc-profit-row { display:flex; justify-content:space-between; font-size:13px; padding:3px 0; }
.vc-profit-row span:first-child { color:var(--text-secondary); }
.vc-profit-row span:last-child { font-weight:600; }
.vc-profit-row.total span { color:var(--green); font-weight:700; font-size:14px; }

.vc-footer { padding:12px 16px; background:var(--bg-secondary); border-top:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; font-size:12px; }
.vc-footer-left { color:var(--text-muted); }
.vc-roi { font-size:13px; font-weight:700; }
.vc-roi.positive { color:var(--green); }
.vc-roi.waiting { color:var(--yellow); }

/* Movements Table */
.movs-table { width:100%; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; border-collapse:collapse; }
.movs-table th { background:var(--bg-secondary); padding:12px 16px; text-align:left; font-size:12px; font-weight:600; color:var(--text-secondary); text-transform:uppercase; letter-spacing:.5px; border-bottom:1px solid var(--border); }
.movs-table td { padding:12px 16px; font-size:13px; border-bottom:1px solid var(--border); }
.movs-table tr:last-child td { border-bottom:none; }
.movs-table tr:hover td { background:var(--bg-card-hover); }

.mov-type { display:inline-flex; padding:3px 10px; border-radius:20px; font-size:12px; font-weight:600; }
.mov-type.deposito { background:var(--green-bg); color:var(--green); }
.mov-type.inversion { background:var(--blue-bg); color:var(--blue); }
.mov-type.ganancia { background:rgba(168,85,247,0.1); color:#a855f7; }
.mov-type.retorno_capital { background:rgba(59,130,246,0.1); color:var(--blue); }
.mov-type.retiro { background:var(--yellow-bg); color:var(--yellow); }
.mov-type.retiro_ganancia { background:rgba(168,85,247,0.1); color:#a855f7; }

.amount-positive { color:var(--green); font-weight:600; }
.amount-negative { color:var(--accent); font-weight:600; }

/* Mobile Cards for Movements */
.mov-card { background:var(--bg-card); border:1px solid var(--border); border-radius:10px; padding:14px; margin-bottom:8px; }
.mov-card-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.mov-card-desc { font-size:13px; color:var(--text-secondary); margin-bottom:4px; }
.mov-card-bottom { display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--text-muted); }

/* ========== RESPONSIVE ========== */
@media(max-width:768px) {
  .topbar { padding:0 16px; height:56px; }
  .topbar-logo { font-size:16px; }
  .topbar-user { display:none; }
  .dashboard-content { padding:16px; }
  .welcome-bar h1 { font-size:18px; }
  .summary-cards { grid-template-columns:1fr 1fr; gap:10px; }
  .sc-value { font-size:16px; }
  .summary-card.highlight .sc-value { font-size:20px; }
  .sc-icon { width:32px; height:32px; font-size:14px; margin-bottom:8px; }
  .summary-card.highlight .sc-icon { width:36px; height:36px; font-size:16px; }
  .summary-card { padding:14px; }
  .vehicles-grid { grid-template-columns:1fr; }
  .vc-image { height:140px; }
}

@media(max-width:400px) {
  .summary-cards { grid-template-columns:1fr; }
  .sc-value { font-size:18px; }
}

/* ========== MAIN TABS (Portafolio / Oportunidades) ========== */
.main-tabs { background:var(--bg-secondary); border-bottom:1px solid var(--border); position:sticky; top:60px; z-index:90; }
.main-tabs-inner { max-width:1200px; margin:0 auto; padding:0 24px; display:flex; gap:4px; }
.main-tab { position:relative; background:none; border:none; padding:14px 20px; color:var(--text-secondary); font-family:inherit; font-size:14px; font-weight:600; cursor:pointer; display:flex; align-items:center; gap:8px; border-bottom:3px solid transparent; transition:all .2s; }
.main-tab:hover { color:var(--text-primary); }
.main-tab.active { color:var(--accent); border-bottom-color:var(--accent); }
.main-tab-icon { font-size:16px; }
.main-tab-badge { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; background:#ef4444; color:#fff; border-radius:10px; font-size:11px; font-weight:700; margin-left:2px; box-shadow:0 0 0 0 rgba(239,68,68,0.7); animation:pulse-dot 1.8s ease-out infinite; }
@keyframes pulse-dot {
  0% { box-shadow:0 0 0 0 rgba(239,68,68,0.7); transform:scale(1); }
  70% { box-shadow:0 0 0 10px rgba(239,68,68,0); transform:scale(1.05); }
  100% { box-shadow:0 0 0 0 rgba(239,68,68,0); transform:scale(1); }
}

/* Empty state para oportunidades */
.empty-big { text-align:center; padding:60px 20px; color:var(--text-secondary); }
.empty-big-icon { font-size:48px; margin-bottom:16px; opacity:0.5; }
.empty-big h3 { font-size:18px; color:var(--text-primary); margin-bottom:8px; }
.empty-big p { font-size:14px; max-width:400px; margin:0 auto; line-height:1.5; }

@media(max-width:768px) {
  .main-tabs-inner { padding:0 12px; }
  .main-tab { padding:12px 14px; font-size:13px; }
}

/* ========== OPORTUNIDADES DE INVERSION ========== */

.capital-banner { background:linear-gradient(135deg, rgba(34,197,94,0.08), rgba(34,197,94,0.02)); border:1px solid rgba(34,197,94,0.25); border-radius:var(--radius); padding:16px 20px; display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.capital-banner-left { display:flex; align-items:center; gap:12px; }
.capital-banner-icon { width:42px; height:42px; border-radius:10px; background:var(--green-bg); display:flex; align-items:center; justify-content:center; font-size:20px; }
.capital-banner-label { font-size:13px; color:var(--text-secondary); }
.capital-banner-value { font-size:22px; font-weight:700; color:var(--green); }
.capital-banner-right { font-size:12px; color:var(--text-muted); text-align:right; line-height:1.6; }

.section-header h2 .fire { font-size:22px; }

.opp-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(360px, 1fr)); gap:20px; margin-bottom:24px; }

.opp-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; transition:all .3s; position:relative; }
.opp-card:hover { border-color:rgba(34,197,94,0.4); transform:translateY(-2px); box-shadow:0 8px 32px rgba(0,0,0,0.3); }

.opp-image { height:180px; background:var(--bg-secondary); background-size:cover; background-position:center; position:relative; display:flex; align-items:center; justify-content:center; }
.opp-image .placeholder { font-size:56px; opacity:0.2; }
.opp-badge { position:absolute; top:12px; left:12px; padding:5px 12px; border-radius:20px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; }
.opp-badge.hot { background:linear-gradient(135deg,#ef4444,#dc2626); color:#fff; animation:pulse-badge 2s ease-in-out infinite; }
.opp-badge.new { background:linear-gradient(135deg,var(--blue),#2563eb); color:#fff; }
.opp-time { position:absolute; top:12px; right:12px; padding:5px 12px; border-radius:20px; font-size:11px; font-weight:600; background:rgba(0,0,0,0.6); color:#fff; backdrop-filter:blur(4px); }
.opp-cupos { position:absolute; bottom:12px; right:12px; padding:5px 12px; border-radius:20px; font-size:11px; font-weight:600; background:rgba(0,0,0,0.6); color:var(--yellow); backdrop-filter:blur(4px); }

@keyframes pulse-badge { 0%,100%{opacity:1;} 50%{opacity:0.7;} }

.opp-body { padding:18px; }
.opp-title { font-size:17px; font-weight:700; margin-bottom:12px; }

.opp-finance { margin-bottom:16px; }
.opp-fin-row { display:flex; justify-content:space-between; padding:5px 0; font-size:13px; }
.opp-fin-row .label { color:var(--text-secondary); }
.opp-fin-row .value { font-weight:600; }
.opp-fin-row .value.strike { text-decoration:line-through; color:var(--text-muted); font-weight:400; font-size:12px; }
.opp-fin-row .value.green { color:var(--green); }
.opp-fin-row .value.accent { color:var(--accent); }
.opp-fin-row.sep { border-top:1px solid var(--border); margin-top:4px; padding-top:8px; }
.opp-fin-row .discount-tag { display:inline-block; background:rgba(34,197,94,0.15); color:var(--green); font-size:11px; font-weight:700; padding:2px 8px; border-radius:20px; margin-left:8px; }

.opp-profit-box { background:linear-gradient(135deg, rgba(34,197,94,0.12), rgba(34,197,94,0.04)); border:1px solid rgba(34,197,94,0.3); border-radius:10px; padding:14px; margin:16px 0; text-align:center; }
.opp-profit-label { font-size:11px; color:var(--green); font-weight:700; text-transform:uppercase; letter-spacing:1px; margin-bottom:6px; }
.opp-profit-value { font-size:24px; font-weight:800; color:var(--green); animation:glow-profit 2.5s ease-in-out infinite; }
.opp-profit-roi { font-size:14px; color:var(--green); font-weight:600; margin-top:2px; }
.opp-profit-note { font-size:11px; color:var(--text-muted); margin-top:6px; }
@keyframes glow-profit { 0%,100%{opacity:1;text-shadow:0 0 0 transparent;} 50%{opacity:.8;text-shadow:0 0 20px rgba(34,197,94,0.3);} }

.opp-progress { margin:16px 0; }
.opp-progress-header { display:flex; justify-content:space-between; font-size:12px; margin-bottom:6px; }
.opp-progress-header .label { color:var(--text-muted); }
.opp-progress-header .value { color:var(--text-secondary); font-weight:600; }
.opp-progress-bar { height:8px; background:var(--bg-primary); border-radius:4px; overflow:hidden; }
.opp-progress-fill { height:100%; border-radius:4px; background:linear-gradient(90deg, var(--accent), var(--green)); transition:width .5s; }

.opp-criteria { display:flex; flex-wrap:wrap; gap:6px; margin:14px 0; }
.opp-chip { padding:5px 12px; border-radius:20px; font-size:11px; font-weight:600; background:var(--bg-primary); border:1px solid var(--border); color:var(--text-secondary); display:flex; align-items:center; gap:4px; }
.opp-chip .icon { font-size:13px; }

.opp-note { background:var(--bg-primary); border-radius:8px; padding:10px 14px; font-size:12px; color:var(--text-secondary); line-height:1.5; margin-bottom:14px; border-left:3px solid var(--yellow); }

.opp-cta { width:100%; padding:14px; border:none; border-radius:10px; font-size:15px; font-weight:700; font-family:inherit; cursor:pointer; transition:all .2s; letter-spacing:.3px; }
.opp-cta.available { background:linear-gradient(135deg, var(--accent), #b91c1c); color:#fff; box-shadow:0 4px 16px rgba(220,20,60,0.3); }
.opp-cta.available:hover { transform:scale(1.02); box-shadow:0 6px 24px rgba(220,20,60,0.4); }
.opp-cta.disabled { background:var(--bg-secondary); color:var(--text-muted); cursor:not-allowed; border:1px solid var(--border); }
.opp-cta-sub { text-align:center; font-size:11px; color:var(--text-muted); margin-top:8px; }

.opp-footer { padding:12px 18px; background:var(--bg-secondary); border-top:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; font-size:11px; color:var(--text-muted); }

/* Modal de inversion */
.invest-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.7); display:flex; align-items:center; justify-content:center; z-index:200; backdrop-filter:blur(4px); padding:20px; }
.invest-modal { background:var(--bg-card); border:1px solid var(--border); border-radius:16px; width:100%; max-width:440px; overflow:hidden; max-height:90vh; display:flex; flex-direction:column; }
.invest-modal-header { padding:20px 24px; border-bottom:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; }
.invest-modal-header h3 { font-size:17px; font-weight:700; }
.invest-modal-close { background:none; border:none; color:var(--text-muted); font-size:24px; cursor:pointer; line-height:1; }
.invest-modal-body { padding:24px; overflow-y:auto; }
.invest-vehicle { display:flex; align-items:center; gap:12px; background:var(--bg-primary); border-radius:10px; padding:12px; margin-bottom:20px; }
.invest-vehicle-thumb { width:60px; height:45px; border-radius:8px; background:var(--bg-secondary); display:flex; align-items:center; justify-content:center; font-size:24px; flex-shrink:0; }
.invest-vehicle-info { flex:1; min-width:0; }
.invest-vehicle-name { font-size:14px; font-weight:600; }
.invest-vehicle-price { font-size:12px; color:var(--text-muted); }
.invest-balance { background:linear-gradient(135deg, rgba(34,197,94,0.1), rgba(34,197,94,0.03)); border:1px solid rgba(34,197,94,0.2); border-radius:10px; padding:14px; margin-bottom:20px; text-align:center; }
.invest-balance-label { font-size:12px; color:var(--text-secondary); margin-bottom:4px; }
.invest-balance-value { font-size:24px; font-weight:700; color:var(--green); }
.invest-input-group { margin-bottom:16px; }
.invest-input-group label { display:block; font-size:12px; color:var(--text-secondary); margin-bottom:6px; font-weight:600; }
.invest-input-group input { width:100%; padding:14px 16px; background:var(--bg-primary); border:1px solid var(--border); border-radius:10px; color:var(--text-primary); font-size:18px; font-weight:700; font-family:inherit; text-align:center; }
.invest-input-group input:focus { outline:none; border-color:var(--green); }
.invest-input-group .hint { font-size:11px; color:var(--text-muted); margin-top:6px; text-align:center; }
.invest-summary { background:var(--bg-primary); border-radius:10px; padding:14px; margin:16px 0; }
.invest-summary-row { display:flex; justify-content:space-between; font-size:13px; padding:4px 0; }
.invest-summary-row .label { color:var(--text-secondary); }
.invest-summary-row .value { font-weight:600; }
.invest-summary-row.total { border-top:1px solid var(--border); margin-top:6px; padding-top:8px; }
.invest-summary-row.total .label { color:var(--green); font-weight:600; }
.invest-summary-row.total .value { color:var(--green); font-size:14px; }
.invest-confirm-btn { width:100%; padding:14px; background:linear-gradient(135deg, var(--green), #16a34a); color:#fff; border:none; border-radius:10px; font-size:16px; font-weight:700; font-family:inherit; cursor:pointer; transition:all .2s; margin-top:8px; }
.invest-confirm-btn:hover:not(:disabled) { box-shadow:0 4px 20px rgba(34,197,94,0.4); transform:scale(1.01); }
.invest-cancel-btn { width:100%; padding:12px; background:none; border:1px solid var(--border); color:var(--text-secondary); border-radius:10px; font-size:14px; font-family:inherit; cursor:pointer; margin-top:8px; }

/* Toast */
.invest-toast { position:fixed; bottom:24px; right:24px; background:linear-gradient(135deg, var(--green), #16a34a); color:#fff; padding:14px 20px; border-radius:10px; font-size:14px; font-weight:600; box-shadow:0 8px 32px rgba(34,197,94,0.4); z-index:300; transition:opacity .3s; }

/* Botones Ver Fotos / Documentos */
.opp-files-buttons { display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.opp-files-btn { flex:1; min-width:130px; padding:10px 12px; background:var(--bg-primary); border:1px solid var(--border); color:var(--text-secondary); border-radius:8px; font-size:12px; font-weight:600; font-family:inherit; cursor:pointer; transition:all .2s; }
.opp-files-btn:hover { border-color:var(--blue); color:var(--blue); }

/* Galeria de fotos (lightbox) */
.galeria-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.92); display:flex; align-items:center; justify-content:center; z-index:300; padding:20px; }
.galeria-close { position:absolute; top:16px; right:20px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.1); color:#fff; border:none; font-size:24px; cursor:pointer; line-height:1; }
.galeria-close:hover { background:rgba(255,255,255,0.2); }
.galeria-nav { position:absolute; top:50%; transform:translateY(-50%); width:50px; height:50px; border-radius:50%; background:rgba(255,255,255,0.1); color:#fff; border:none; font-size:18px; cursor:pointer; }
.galeria-nav:hover { background:rgba(255,255,255,0.2); }
.galeria-nav.prev { left:20px; }
.galeria-nav.next { right:20px; }
.galeria-stage { max-width:90vw; max-height:85vh; display:flex; flex-direction:column; align-items:center; }
.galeria-stage img { max-width:100%; max-height:80vh; border-radius:8px; box-shadow:0 16px 48px rgba(0,0,0,0.5); }
.galeria-counter { color:#fff; font-size:13px; margin-top:12px; opacity:0.7; }

/* Documentos */
.docs-list { display:flex; flex-direction:column; gap:8px; }
.docs-item { display:flex; align-items:center; gap:10px; padding:10px 12px; background:var(--bg-primary); border:1px solid var(--border); border-radius:8px; flex-wrap:wrap; }
.docs-icon { font-size:22px; }
.docs-info { flex:1; min-width:120px; }
.docs-tipo { font-size:13px; font-weight:600; color:var(--text-primary); }
.docs-name { font-size:11px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:240px; }
.docs-action { padding:6px 10px; background:var(--bg-secondary); border:1px solid var(--border); color:var(--text-secondary); border-radius:6px; font-size:11px; font-weight:600; text-decoration:none; transition:all .2s; }
.docs-action:hover { color:var(--blue); border-color:var(--blue); }
.docs-action.download:hover { color:var(--green); border-color:var(--green); }

@media(max-width:768px) {
  .galeria-nav { width:40px; height:40px; font-size:14px; }
  .galeria-nav.prev { left:8px; }
  .galeria-nav.next { right:8px; }
}

@media(max-width:768px) {
  .opp-grid { grid-template-columns:1fr; }
  .capital-banner { flex-direction:column; gap:12px; text-align:center; }
  .capital-banner-right { text-align:center; }
  .invest-toast { bottom:12px; right:12px; left:12px; text-align:center; }
}
