/* ============================================================
   DUNESLAND INVESTOR PORTAL — Frontend v5.2
   Premium Native App — All fixes included
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root {
  --dp-gold:       #c9a227;
  --dp-gold-dark:  #a8841e;
  --dp-bg:         #f1f5f9;
  --dp-card:       #ffffff;
  --dp-border:     #e2e8f0;
  --dp-text:       #0f172a;
  --dp-muted:      #64748b;
  --dp-success:    #10b981;
  --dp-accent:     #3b82f6;
  --dp-accent-dk:  #1d4ed8;
  --dp-danger:     #ef4444;
  --dp-radius:     16px;
  --dp-radius-sm:  10px;
  --dp-shadow:     0 1px 8px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.03);
  --dp-shadow-md:  0 4px 24px rgba(0,0,0,.09);
  --dp-sidebar:    #1e293b;
  --dp-nav-icon:   #64748b;
}

/* ── Reset & Wrap ─────────────────────────────────────── */
.dip-portal-wrap,.dip-portal-wrap * { box-sizing:border-box; }
.dip-portal-wrap { background:var(--dp-bg);border-radius:var(--dp-radius);overflow:hidden; }

/* ── Layout ───────────────────────────────────────────── */
.dip-portal {
  display:grid;grid-template-columns:252px minmax(0,1fr);
  min-height:700px;font-family:'Inter',system-ui,sans-serif;color:var(--dp-text);
}

/* ── SIDEBAR ──────────────────────────────────────────── */
.dip-sidebar {
  background:var(--dp-sidebar);
  display:flex;flex-direction:column;padding:18px 10px;
  transition:background .3s;
}
.dip-brand {
  display:flex;align-items:center;gap:10px;padding:4px 8px 18px;
  border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:14px;
}
/* ── Logo: wrapper con color del sidebar para enmascarar fondo negro del PNG */
.dip-brand-logo-wrap {
  width:38px;height:38px;border-radius:9px;flex-shrink:0;overflow:hidden;
  background:var(--dp-sidebar); /* mismo color que sidebar → negro invisible */
  display:flex;align-items:center;justify-content:center;
}
.dip-brand-logo {
  width:38px;height:38px;border-radius:9px;
  object-fit:contain;display:block;
}
/* Móvil: sidebar claro, wrapper también claro */
@media (max-width:960px) {
  .dip-brand-logo-wrap { background:#f8fafc; }
}
.dip-brand-text strong { display:block;color:#fff;font-size:13px;font-weight:700;letter-spacing:-.2px; }
.dip-brand-text small  { color:rgba(255,255,255,.35);font-size:10px;letter-spacing:.02em; }
.dip-nav { display:flex;flex-direction:column;gap:1px;flex:1; }

/* ── NAV GROUPS (nuevo diseño desplegable) ───────────────── */
.dip-nav-group { margin-bottom:4px; }
.dip-nav-group-label {
  font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.25);padding:8px 12px 4px;
}
.dip-nav-item {
  display:flex;align-items:center;gap:9px;padding:9px 12px;
  border-radius:9px;color:rgba(255,255,255,.6);
  text-decoration:none;font-size:12.5px;font-weight:500;
  transition:all .12s;position:relative;
}
.dip-nav-item:hover { background:rgba(255,255,255,.07);color:rgba(255,255,255,.9);text-decoration:none; }
.dip-nav-item.active { background:rgba(59,130,246,.18);color:#93c5fd;font-weight:600; }
.dip-nav-item.active .dip-nav-dot { background:#3b82f6; }
/* Icons — premium monochrome */
.dip-nav-icon {
  width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:0;/* hide emoji */
}
.dip-nav-icon svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round; }
.dip-nav-dot {
  width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.2);
  margin-left:auto;flex-shrink:0;transition:background .12s;
}
.dip-nav-label { font-size:12.5px;flex:1; }
.dip-nav-badge { margin-left:auto;background:var(--dp-danger);color:#fff;border-radius:999px;min-width:18px;height:18px;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px; }
.dip-nav-badge-ai { background:rgba(59,130,246,.6);color:#fff;border-radius:999px;min-width:18px;height:18px;font-size:9px;font-weight:700;display:grid;place-items:center; }

/* Mobile nav dropdown */
.dip-nav-select-wrap { display:none; }
.dip-nav-select {
  width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  border-radius:10px;padding:10px 14px;color:#fff;font-size:13px;font-weight:600;
  cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
  padding-right:32px;
}
.dip-nav-select:focus { outline:none;border-color:rgba(59,130,246,.5); }
.dip-nav-select option { background:#1e293b;color:#fff; }

.dip-sidebar-footer { margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:space-between;gap:8px; }
.dip-user-pill { display:flex;align-items:center;gap:8px;min-width:0;flex:1; }
.dip-user-avatar { width:30px;height:30px;background:var(--dp-accent);color:#fff;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12px;flex-shrink:0; }
.dip-user-pill strong { display:block;color:#fff;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600; }
.dip-user-pill small  { color:rgba(255,255,255,.3);font-size:10px; }
.dip-logout-btn { color:rgba(255,255,255,.3);font-size:14px;text-decoration:none;padding:6px;flex-shrink:0;transition:color .15s;display:flex;align-items:center; }
.dip-logout-btn:hover { color:rgba(255,255,255,.8); }

/* ── MAIN ─────────────────────────────────────────────── */
.dip-main { display:flex;flex-direction:column;gap:16px;padding:22px 28px;min-width:0; }

/* ── TOPBAR ───────────────────────────────────────────── */
.dip-topbar { display:flex;justify-content:space-between;align-items:flex-start;gap:12px; }
.dip-topbar h2 { margin:0 0 3px;font-size:22px;font-weight:800;letter-spacing:-.5px; }
.dip-topbar p  { margin:0;color:var(--dp-muted);font-size:12px; }

.dip-notif-form button,.dip-bell-btn {
  background:var(--dp-card);border:1px solid var(--dp-border);
  border-radius:10px;padding:9px 14px;
  color:var(--dp-text);cursor:pointer;font-weight:600;font-size:12px;
  display:flex;align-items:center;gap:7px;
  box-shadow:var(--dp-shadow);transition:all .15s;
}
.dip-notif-form button:hover,.dip-bell-btn:hover { box-shadow:var(--dp-shadow-md); }
.dip-badge-count { background:var(--dp-danger);color:#fff;border-radius:50%;width:18px;height:18px;font-size:10px;font-weight:700;display:grid;place-items:center; }

.dip-flash-notice { background:#d1fae5;border:1px solid #6ee7b7;color:#065f46;padding:12px 16px;border-radius:var(--dp-radius-sm);font-size:13px; }

/* ── CARD ─────────────────────────────────────────────── */
.dip-card { background:var(--dp-card);border:1px solid var(--dp-border);border-radius:var(--dp-radius);padding:20px 22px;box-shadow:var(--dp-shadow); }
.dip-card-head { display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap; }
.dip-card-head h3 { margin:0;font-size:15px;font-weight:700;letter-spacing:-.2px; }
.dip-type-tag { background:#f1f5f9;color:var(--dp-muted);border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600; }

/* ── KPI ROW ──────────────────────────────────────────── */
.dip-kpi-row { display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px; }
.dip-kpi-item { background:var(--dp-card);border:1px solid var(--dp-border);border-radius:var(--dp-radius);padding:18px 20px;box-shadow:var(--dp-shadow);display:flex;flex-direction:column;gap:6px;transition:box-shadow .2s; }
.dip-kpi-item:hover { box-shadow:var(--dp-shadow-md); }
.dip-kpi-item.success { border-top:3px solid var(--dp-success); }
.dip-kpi-item.primary { border-top:3px solid var(--dp-accent); }
.kpi-icon  { font-size:20px; }
.kpi-label { font-size:11px;color:var(--dp-muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em; }
.kpi-val   { font-size:20px;font-weight:800;letter-spacing:-.5px; }

/* ── ROI CARD ─────────────────────────────────────────── */
.dip-roi-card { border-top:3px solid var(--dp-gold);background:linear-gradient(135deg,#fffbf0,#fef9ec); }
.dip-roi-card-inner { display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px; }
.dip-roi-card-inner h3 { margin:0 0 4px;font-size:14px; }
.dip-roi-card-inner p  { margin:0;color:var(--dp-muted);font-size:12px; }
.dip-roi-big { font-size:38px;font-weight:900;color:var(--dp-gold);white-space:nowrap; }

/* ── PROGRESS ─────────────────────────────────────────── */
.dip-prog-track { height:8px;background:var(--dp-border);border-radius:999px;overflow:hidden; }
.dip-prog-track.large { height:14px; }
.dip-prog-fill  { height:100%;background:linear-gradient(90deg,var(--dp-gold),var(--dp-gold-dark));border-radius:999px;transition:width .6s ease; }

/* ── UNIT CARDS ───────────────────────────────────────── */
.dip-units-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px; }
.dip-unit-card { background:var(--dp-card);border:1px solid var(--dp-border);border-radius:var(--dp-radius);padding:18px 20px;box-shadow:var(--dp-shadow);display:flex;flex-direction:column;gap:12px; }
.dip-unit-card-top { display:flex;justify-content:space-between;align-items:flex-start;gap:8px; }
.dip-unit-card-top h3 { margin:0 0 3px;font-size:14px;font-weight:700; }
.dip-unit-metrics { display:grid;grid-template-columns:1fr 1fr;gap:7px; }
.dip-metric { background:var(--dp-bg);border-radius:var(--dp-radius-sm);padding:10px 12px; }
.dip-metric span   { display:block;font-size:10px;color:var(--dp-muted);margin-bottom:3px;font-weight:500;text-transform:uppercase;letter-spacing:.03em; }
.dip-metric strong { font-size:14px;font-weight:700; }
.val-success { color:var(--dp-success) !important; }
.val-primary { color:var(--dp-accent) !important; }
.dip-last-booking { display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--dp-muted);padding:8px 12px;background:var(--dp-bg);border-radius:var(--dp-radius-sm); }
.dip-unit-roi .dip-roi-row { display:flex;justify-content:space-between;font-size:12px;font-weight:600;margin-bottom:5px; }

/* Season prices cards */
.dip-season-cards { display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:24px; }
.dip-season-card { border-radius:var(--dp-radius-sm);padding:12px 14px;text-align:center; }
.dip-season-card.low    { background:#f0fdf4;border:1px solid #86efac; }
.dip-season-card.mid    { background:#fffbf0;border:1px solid #fde68a; }
.dip-season-card.high   { background:#fef2f2;border:1px solid #fca5a5; }
.dip-season-card span   { display:block;font-size:10px;font-weight:600;color:var(--dp-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em; }
.dip-season-card strong { font-size:18px;font-weight:800; }
.dip-season-card small  { display:block;font-size:11px;color:var(--dp-muted);margin-top:3px; }
.dip-season-card.low strong    { color:#065f46; }
.dip-season-card.mid strong    { color:#92400e; }
.dip-season-card.high strong   { color:#991b1b; }

/* ── STATUS / PLATFORM pills ──────────────────────────── */
.dip-status-pill { display:inline-block;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700; }
.status-available  { background:#d1fae5;color:#065f46; }
.status-occupied   { background:#dbeafe;color:#1d4ed8; }
.status-reserved   { background:#fef3c7;color:#92400e; }
.status-maintenance{ background:#fee2e2;color:#991b1b; }
.status-confirmed  { background:#dbeafe;color:#1d4ed8; }
.status-completed,.status-paid { background:#d1fae5;color:#065f46; }
.status-pending    { background:#fef3c7;color:#92400e; }
.status-cancelled,.status-rejected { background:#fee2e2;color:#991b1b; }
.status-open       { background:#dbeafe;color:#1d4ed8; }
.dip-platform-badge,.bk-platform { display:inline-block;border-radius:6px;padding:2px 7px;font-size:11px;font-weight:700; }
.platform-airbnb  { background:#ff5a5f20;color:#ff5a5f; }
.platform-booking { background:#003b9520;color:#003b95; }
.platform-direct,.platform-web { background:#10b98120;color:#065f46; }
.platform-other,.platform-manual,.platform-vrbo { background:#6366f120;color:#4338ca; }

/* ── NOTIFICATIONS with X dismiss ───────────────────── */
.dip-notif-list { display:flex;flex-direction:column;gap:6px; }
.dip-notif {
  display:flex;gap:10px;align-items:flex-start;padding:11px 12px;
  border-radius:var(--dp-radius-sm);background:var(--dp-bg);
  position:relative;
}
.dip-notif.unread { background:#eff6ff;border-left:3px solid var(--dp-accent); }
.notif-dot { width:7px;height:7px;border-radius:50%;background:var(--dp-accent);margin-top:5px;flex-shrink:0; }
.dip-notif strong { font-size:12px;font-weight:700; }
.dip-notif p { margin:3px 0;font-size:12px;color:var(--dp-muted); }
.dip-notif small { font-size:10px;color:var(--dp-muted); }
.dip-notif-dismiss {
  position:absolute;top:8px;right:8px;
  width:20px;height:20px;border-radius:50%;background:transparent;border:none;
  color:var(--dp-muted);font-size:12px;cursor:pointer;display:grid;place-items:center;
  transition:all .15s;opacity:0;
}
.dip-notif:hover .dip-notif-dismiss { opacity:1; }
.dip-notif-dismiss:hover { background:var(--dp-border);color:var(--dp-text); }

/* ── INVESTMENT meta grid ─────────────────────────────── */
.dip-meta-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px; }
.dip-meta-cell { background:var(--dp-bg);border-radius:var(--dp-radius-sm);padding:11px 12px; }
.dip-meta-cell span   { display:block;font-size:10px;color:var(--dp-muted);margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:.03em; }
.dip-meta-cell strong { font-size:15px;font-weight:800; }
.dip-roi-section { margin-top:24px; }
.dip-roi-section .dip-roi-row { display:flex;justify-content:space-between;font-size:13px;font-weight:700;margin-bottom:6px; }
.dip-roi-sub { font-size:11px;color:var(--dp-muted);margin-top:5px; }
.dip-chart-wrap { margin-top:14px; }
.dip-chart-title { font-size:12px;font-weight:700;color:var(--dp-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em; }
.dip-chart-bars { display:flex;align-items:flex-end;gap:3px;height:110px; }
.chart-col { display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;min-width:0; }
.chart-bar { width:100%;min-height:3px;background:var(--dp-accent);border-radius:3px 3px 1px 1px;cursor:default;opacity:.8; }
.chart-bar.neg { background:var(--dp-danger); }
.chart-col span { font-size:9px;color:var(--dp-muted); }

/* ── RETURNS / BOOKING CARDS ──────────────────────────── */
.dip-returns-summary { display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px; }
.ret-sum-item { background:var(--dp-bg);border-radius:var(--dp-radius-sm);padding:12px;text-align:center; }
.ret-sum-item.success { background:#f0fdf4;border:1px solid #86efac; }
.ret-sum-item.primary { background:#eff6ff;border:1px solid #bfdbfe; }
.ret-sum-item span   { display:block;font-size:10px;color:var(--dp-muted);margin-bottom:4px;font-weight:500;text-transform:uppercase;letter-spacing:.03em; }
.ret-sum-item strong { font-size:16px;font-weight:800; }
.dip-booking-cards { display:flex;flex-direction:column;gap:12px; }
.dip-booking-card { border:1px solid var(--dp-border);border-radius:var(--dp-radius-sm);overflow:hidden; }
.bk-card-top { display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--dp-bg);flex-wrap:wrap; }
.bk-dates { font-size:12px;color:var(--dp-text);font-weight:600; }
.bk-days  { font-size:11px;color:var(--dp-muted); }
.bk-card-nums { display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid var(--dp-border); }
.bk-num { padding:10px 8px;text-align:center;border-right:1px solid var(--dp-border); }
.bk-num:last-child { border-right:none; }
.bk-num span   { display:block;font-size:9px;color:var(--dp-muted);margin-bottom:4px;font-weight:600;text-transform:uppercase; }
.bk-num strong { font-size:13px;font-weight:700; }
.bk-num.net    { background:#f0fdf4; }
.bk-num.net strong { color:var(--dp-success); }
.neg { color:var(--dp-danger) !important; }
.bk-extras-list { padding:6px 14px;background:#fafafa;border-top:1px solid var(--dp-border);display:flex;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--dp-muted); }
.bk-card-footer { padding:8px 14px;background:var(--dp-bg);border-top:1px solid var(--dp-border); }

/* ── HISTORY ──────────────────────────────────────────── */
.dip-year-section { margin-bottom:18px; }
.dip-year-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px; }
.dip-year-header h4 { margin:0;font-size:17px;font-weight:800; }
.dip-year-stats { display:flex;gap:12px;font-size:12px;color:var(--dp-muted);flex-wrap:wrap; }
.dip-year-stats strong { color:var(--dp-text); }
.dip-fiscal-bar { display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f8fafc;border-radius:var(--dp-radius-sm);margin-top:12px;flex-wrap:wrap;font-size:13px; }
.dip-btn-fiscal { background:var(--dp-accent);color:#fff;border-radius:7px;padding:5px 12px;font-size:11px;font-weight:700;text-decoration:none; }
.dip-btn-fiscal:hover { background:var(--dp-accent-dk);text-decoration:none; }

/* ── HEATMAP ──────────────────────────────────────────── */
.dip-hm-nav { display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:12px; }
.dip-hm-nav span { font-size:20px;font-weight:800; }
.dip-hm-legend { display:flex;gap:14px;margin-bottom:14px;font-size:11px;color:var(--dp-muted);flex-wrap:wrap;justify-content:center; }
.hm-l0 { color:#e2e8f0; }.hm-l4 { color:var(--dp-accent); }
.dip-heatmap-wrap { overflow-x:auto; }
.dip-hm-months { display:grid;grid-template-columns:repeat(12,1fr);gap:0;margin-bottom:3px; }
.dip-hm-months span { font-size:9px;color:var(--dp-muted);font-weight:600;text-align:center; }
.dip-hm-grid { display:grid;grid-template-columns:repeat(53,12px);grid-template-rows:repeat(7,12px);gap:2px;min-width:700px; }
.hm-cell { width:12px;height:12px;border-radius:2px;cursor:default;transition:opacity .15s; }
.hm-cell:hover { opacity:.7; }
.hm-cell.empty { background:transparent; }
.hm-cell.hm-l0 { background:#e2e8f0; }
.hm-cell.hm-l4 { background:var(--dp-accent); }

/* ── AI REPORTS — "Asma, IA Dunes" ───────────────────── */
.dip-reports-layout { display:flex;flex-direction:column;gap:16px; }
.dip-ai-badge {
  background:linear-gradient(90deg,#1e293b,#334155);color:#e2e8f0;
  font-size:10px;font-weight:700;padding:4px 11px;border-radius:999px;
  letter-spacing:.04em;
}
.dip-ai-badge-sm {
  background:#f1f5f9;color:var(--dp-muted);font-size:10px;font-weight:700;
  padding:3px 8px;border-radius:999px;border:1px solid var(--dp-border);
}
.dip-report-desc { color:var(--dp-muted);font-size:12px;margin-bottom:14px;line-height:1.6; }
.dip-report-form-grid { display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:14px; }
.dip-report-form-grid label { display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--dp-muted); }
.dip-report-form-grid select,.dip-report-form-grid input { border:1.5px solid var(--dp-border);border-radius:8px;padding:8px 10px;font-size:13px; }
.dip-btn-generate { width:100%;justify-content:center;font-size:14px;padding:13px; }
.dip-report-loading { text-align:center;padding:20px; }
.dip-report-loading p { color:var(--dp-muted);font-size:12px;margin:0; }
.dip-report-result { background:#f8fafc;border:1px solid var(--dp-border);border-radius:var(--dp-radius-sm);padding:18px;margin-top:12px; }
.dip-report-result h3,.dip-report-result h4 { color:var(--dp-text); }
.dip-report-no-ai { text-align:center;padding:18px 0; }
.no-ai-icon { font-size:32px;margin-bottom:10px; }
.dip-report-no-ai h4 { margin:0 0 6px;font-size:15px; }
.dip-report-no-ai p  { color:var(--dp-muted);font-size:12px;line-height:1.6;margin:0 0 6px; }
.dip-report-history  { display:flex;flex-direction:column;gap:6px; }
.dip-report-item { border:1px solid var(--dp-border);border-radius:9px;overflow:hidden; }
.dip-report-item summary { padding:10px 14px;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;background:var(--dp-bg); }
.dip-report-item summary strong { flex:1; }
.dip-report-item summary small { color:var(--dp-muted); }
.dip-report-delete { margin-left:4px;background:none;border:none;cursor:pointer;color:var(--dp-muted);font-size:13px;line-height:1;padding:2px 4px;border-radius:4px;transition:color .15s,background .15s;flex-shrink:0; }
.dip-report-delete:hover { color:#ef4444;background:rgba(239,68,68,.08); }
.dip-report-content { padding:14px;font-size:12px;line-height:1.7;border-top:1px solid var(--dp-border); }

/* ── HEALTH SCORE ─────────────────────────────────────── */
.dip-health-score { display:flex;align-items:center;gap:16px;padding:14px;background:var(--dp-bg);border-radius:var(--dp-radius-sm);margin-bottom:12px;margin-top:20px; }
.dip-score-circle { width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:20px;font-weight:900;flex-shrink:0; }
.score-great { background:#d1fae5;color:#065f46; }
.score-good  { background:#dbeafe;color:#1d4ed8; }
.score-avg   { background:#fef3c7;color:#92400e; }
.score-low   { background:#fee2e2;color:#991b1b; }
.dip-score-details { flex:1; }
.dip-score-details h4 { margin:0 0 3px;font-size:14px; }
.dip-score-details p  { margin:0;font-size:11px;color:var(--dp-muted); }
.dip-score-bar { margin-top:7px;height:6px;background:var(--dp-border);border-radius:999px;overflow:hidden; }
.dip-score-fill { height:100%;border-radius:999px;transition:width .6s; }

/* ── PREDICTION ───────────────────────────────────────── */
.dip-prediction-card { background:#f8fafc;border:1px solid var(--dp-border);border-radius:var(--dp-radius-sm);padding:14px;margin-top:20px; }
.dip-prediction-card h4 { margin:0 0 10px;font-size:13px;color:var(--dp-text); }
.dip-pred-row { display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid var(--dp-border);font-size:12px; }
.dip-pred-row:last-child { border:none;font-weight:700; }
.pred-opt  { color:var(--dp-success); }
.pred-base { color:var(--dp-accent); }
.pred-low  { color:var(--dp-muted); }

/* ── FIX 4: SIMULADOR — colores claros como el resto ─── */
.dip-simulator {
  background:var(--dp-bg);
  border:1px solid var(--dp-border);
  border-top:3px solid var(--dp-gold);
  border-radius:var(--dp-radius);
  padding:18px 20px;
  margin-top:20px;
}
.dip-simulator h4 { margin:0 0 12px;font-size:14px;font-weight:700;color:var(--dp-text); }
.dip-sim-controls { display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:14px;align-items:end; }
.dip-sim-controls label { display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--dp-muted); }
.dip-sim-controls input { border:1.5px solid var(--dp-border);border-radius:8px;padding:8px 10px;font-size:13px;font-weight:600;background:#fff;color:var(--dp-text);transition:border-color .2s; }
.dip-sim-controls input:focus { outline:none;border-color:var(--dp-accent); }
.dip-sim-calc-btn { background:var(--dp-accent);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s;white-space:nowrap;height:fit-content; }
.dip-sim-calc-btn:hover { background:var(--dp-accent-dk); }
.dip-sim-result { display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:7px;margin-top:4px; }
.dip-sim-row { background:#fff;border:1px solid var(--dp-border);border-radius:var(--dp-radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:3px; }
.dip-sim-row span { font-size:10px;color:var(--dp-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em; }
.dip-sim-row strong { font-size:15px;font-weight:800;color:var(--dp-text); }
.dip-sim-row:last-child { border-color:var(--dp-gold);background:linear-gradient(135deg,#fffbf0,#fef9ec); }
.dip-sim-row:last-child strong { color:var(--dp-gold-dark);font-size:17px; }
.dip-sim-row.neg strong { color:var(--dp-danger); }

/* ── EMAILS toggle ────────────────────────────────────── */
.dip-toggle-row { display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--dp-border); }
.dip-toggle-row:last-child { border:none; }
.dip-toggle-row span { font-size:13px;font-weight:600; }
.dip-toggle { position:relative;width:40px;height:22px; }
.dip-toggle input { opacity:0;width:0;height:0; }
.dip-toggle-slider { position:absolute;inset:0;background:#e2e8f0;border-radius:999px;cursor:pointer;transition:.3s; }
.dip-toggle-slider::before { content:'';position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;left:3px;top:3px;transition:.3s; }
.dip-toggle input:checked + .dip-toggle-slider { background:var(--dp-accent); }
.dip-toggle input:checked + .dip-toggle-slider::before { left:21px; }

/* ── CALENDAR ─────────────────────────────────────────── */
.dip-cal-nav-bar { display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:10px; }
.dip-cal-month-label { font-size:18px;font-weight:800; }
.dip-btn-nav { background:var(--dp-card);border:1.5px solid var(--dp-border);border-radius:8px;padding:5px 12px;font-size:12px;font-weight:600;text-decoration:none;color:var(--dp-text);cursor:pointer; }
.dip-btn-nav:hover { background:var(--dp-bg); }
.dip-cal-legend-bar { display:flex;gap:14px;margin-bottom:12px;font-size:11px;color:var(--dp-muted);justify-content:center;flex-wrap:wrap; }
.cl-booked::before  { content:'■ ';color:var(--dp-accent); }
.cl-free::before    { content:'■ ';color:var(--dp-success); }
.cl-maint::before   { content:'■ ';color:var(--dp-danger); }
.dip-cal-unit-card  { margin-bottom:14px; }
.dip-cal-occ-chip   { background:#eff6ff;color:var(--dp-accent-dk);border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700; }
.dip-cal-grid { display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-top:4px; }
.cal-header { text-align:center;font-size:9px;font-weight:700;color:var(--dp-muted);padding:3px 0;text-transform:uppercase; }
.cal-cell { aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;font-size:11px;font-weight:500;cursor:default;position:relative; }
.cal-cell.empty   { background:transparent; }
.cal-cell.free    { background:#d1fae5;color:#065f46; }
.cal-cell.booked  { background:var(--dp-accent);color:#fff;font-weight:700; }
.cal-cell.maint   { background:#fee2e2;color:#991b1b; }
.cal-cell.today   { outline:2px solid var(--dp-gold);outline-offset:-2px; }
.cal-dot { width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.7);position:absolute;bottom:2px; }

/* ── WITHDRAWALS ──────────────────────────────────────── */
.dip-two-col { display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start; }
.dip-form,.dip-admin-form { display:flex;flex-direction:column;gap:12px; }
.dip-label { display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--dp-muted); }
.dip-input { border:1.5px solid var(--dp-border);border-radius:var(--dp-radius-sm);padding:9px 12px;font-size:13px;color:var(--dp-text);background:#fff;font-family:inherit;width:100%;transition:border-color .15s; }
.dip-input:focus { outline:none;border-color:var(--dp-accent);box-shadow:0 0 0 3px rgba(59,130,246,.08); }
.dip-table-wrap { overflow-x:auto; }
.dip-table { width:100%;border-collapse:collapse;font-size:12px; }
.dip-table th,.dip-table td { padding:10px 8px;border-bottom:1px solid var(--dp-border);text-align:left;vertical-align:middle; }
.dip-table th { font-size:10px;font-weight:700;color:var(--dp-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--dp-bg); }

/* ── DOCUMENTS ────────────────────────────────────────── */
.dip-doc-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px; }
.dip-doc-card { background:var(--dp-bg);border-radius:var(--dp-radius-sm);padding:12px;display:flex;align-items:center;gap:10px;border:1px solid var(--dp-border); }
.dip-doc-icon { font-size:24px;flex-shrink:0; }
.dip-doc-card strong { display:block;font-size:12px;font-weight:700;margin-bottom:2px; }
.dip-doc-card span   { display:block;font-size:10px;color:var(--dp-muted); }
.dip-doc-card small  { display:block;font-size:10px;color:var(--dp-muted); }
.dip-doc-dl { margin-left:auto;background:var(--dp-accent);color:#fff;border-radius:7px;padding:5px 9px;font-size:11px;font-weight:700;text-decoration:none;flex-shrink:0; }
.dip-doc-dl:hover { background:var(--dp-accent-dk);text-decoration:none; }

/* ── TICKETS — FIX overflow móvil ────────────────────── */
.dip-tickets-col { display:flex;flex-direction:column;gap:12px;min-width:0; }
.dip-ticket-list { display:flex;flex-direction:column;gap:5px; }
.dip-ticket-item {
  display:flex;justify-content:space-between;align-items:center;
  padding:9px 12px;border:1px solid var(--dp-border);border-radius:var(--dp-radius-sm);
  text-decoration:none;color:var(--dp-text);font-size:12px;background:var(--dp-bg);
  transition:background .12s;gap:8px;min-width:0;
}
.dip-ticket-item:hover { background:#dbeafe;text-decoration:none; }
.dip-ticket-item.active { background:var(--dp-accent);color:#fff;border-color:var(--dp-accent); }
.dip-ticket-item-left { flex:1;min-width:0; }
.dip-ticket-item-left strong { display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.dip-ticket-close-btn {
  flex-shrink:0;background:transparent;border:none;cursor:pointer;
  width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  color:var(--dp-muted);font-size:14px;transition:all .15s;opacity:0;
}
.dip-ticket-item:hover .dip-ticket-close-btn { opacity:1; }
.dip-ticket-close-btn:hover { background:rgba(239,68,68,.15);color:var(--dp-danger); }
@media (max-width:960px) {
  .dip-ticket-close-btn { opacity:.6; }
}
.dip-chat { display:flex;flex-direction:column;gap:10px;max-height:340px;overflow-y:auto;margin-bottom:14px;padding:2px; }
.dip-bubble { padding:10px 14px;border-radius:10px;max-width:88%;font-size:12px; }
.dip-bubble.mine  { background:#eff6ff;margin-left:auto;border-bottom-right-radius:2px; }
.dip-bubble.admin { background:#f1f5f9;margin-right:auto;border-bottom-left-radius:2px; }
.bubble-meta { display:flex;align-items:center;justify-content:space-between;margin-bottom:5px; }
.bubble-meta strong { font-size:11px;font-weight:700; }
.bubble-meta small  { font-size:9px;color:var(--dp-muted); }
.dip-bubble p { margin:0 0 3px; }
.dip-link { color:var(--dp-accent);text-decoration:none;font-weight:600;font-size:11px; }

/* ── ANNOUNCEMENTS with X dismiss ─────────────────────── */
.dip-announcements { display:flex;flex-direction:column;gap:12px; }
.dip-ann { padding:14px 16px;border-radius:var(--dp-radius-sm);background:var(--dp-bg);border-left:4px solid var(--dp-border);position:relative; }
.dip-ann.level-urgent    { border-left-color:var(--dp-danger);background:#fff5f5; }
.dip-ann.level-important { border-left-color:var(--dp-accent);background:#eff6ff; }
.dip-ann.level-info      { border-left-color:var(--dp-success);background:#f0fdf4; }
.ann-header { display:flex;justify-content:space-between;margin-bottom:6px;font-size:12px;font-weight:700;padding-right:24px; }
.ann-header span { font-size:10px;color:var(--dp-muted);font-weight:400; }
.dip-ann p { margin:0;font-size:12px;color:var(--dp-text);line-height:1.6; }
.dip-pin { font-size:11px; }
.dip-ann-dismiss {
  position:absolute;top:10px;right:10px;
  width:20px;height:20px;border-radius:50%;background:transparent;border:none;
  color:var(--dp-muted);font-size:12px;cursor:pointer;display:grid;place-items:center;
  transition:all .15s;
}
.dip-ann-dismiss:hover { background:rgba(239,68,68,.12);color:var(--dp-danger); }

/* ── PROFILE ──────────────────────────────────────────── */
.dip-profile-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px; }

/* ── BUTTONS ──────────────────────────────────────────── */
.dip-btn-primary { background:var(--dp-accent);color:#fff;border:none;border-radius:var(--dp-radius-sm);padding:10px 18px;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s;display:inline-flex;align-items:center;gap:7px;text-decoration:none; }
.dip-btn-primary:hover { background:var(--dp-accent-dk);color:#fff;text-decoration:none; }
.dip-btn-secondary { background:var(--dp-card);color:var(--dp-text);border:1.5px solid var(--dp-border);border-radius:var(--dp-radius-sm);padding:9px 16px;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block; }

/* ── EMPTY STATE ──────────────────────────────────────── */
.dip-empty-state { text-align:center;padding:50px 20px; }
.dip-empty-icon  { font-size:42px;margin-bottom:14px; }
.dip-empty-state h3 { margin:0 0 6px;font-size:18px; }
.dip-empty-state p  { color:var(--dp-muted);margin:0; }
.dip-empty-msg { color:var(--dp-muted);font-size:12px;text-align:center;padding:18px; }

/* ── ONBOARDING ───────────────────────────────────────── */
.dip-onboarding-overlay { position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px; }
.dip-onboarding-card { background:#fff;border-radius:20px;max-width:460px;width:100%;box-shadow:0 24px 80px rgba(0,0,0,.3);overflow:hidden; }
.dip-onboarding-header { background:linear-gradient(135deg,#1e293b,#334155);padding:24px 24px 18px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center; }
.dip-onboarding-header img { width:46px;height:46px;border-radius:12px;background:transparent;padding:4px;object-fit:contain; }
.dip-onboarding-header h2 { color:#fff;font-size:17px;font-weight:800;margin:0; }
.dip-onboarding-steps { display:flex;justify-content:center;gap:7px;padding:16px;background:#f8fafc;border-bottom:1px solid var(--dp-border); }
.ob-step { width:28px;height:28px;border-radius:50%;background:var(--dp-border);color:var(--dp-muted);font-size:11px;font-weight:700;display:grid;place-items:center;transition:all .3s; }
.ob-step.active { background:var(--dp-accent);color:#fff; }
.ob-step.done   { background:var(--dp-success);color:#fff; }
.dip-onboarding-body { padding:22px 24px;text-align:center;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px; }
.dip-onboarding-icon { font-size:36px; }
.dip-onboarding-text { font-size:14px;line-height:1.7;color:var(--dp-text);margin:0; }
.dip-ob-ai-badge { background:linear-gradient(90deg,var(--dp-accent),var(--dp-accent-dk));color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px; }
.dip-onboarding-footer { padding:14px 22px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--dp-border);background:#f8fafc; }
.dip-btn-skip { background:none;border:none;color:var(--dp-muted);font-size:12px;cursor:pointer; }
.dip-ob-progress { height:3px;background:var(--dp-border); }
.dip-ob-progress-bar { height:100%;background:var(--dp-accent);transition:width .4s ease; }

/* ── LOGIN PAGE ───────────────────────────────────────── */
.dip-login-page { display:flex;align-items:center;justify-content:center;min-height:80vh;padding:20px;background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f2340 100%);border-radius:var(--dp-radius); }
.dip-login-card { display:grid;grid-template-columns:1fr 1fr;max-width:800px;width:100%;border-radius:20px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.4); }
.dip-login-left { background:linear-gradient(160deg,#0f172a,#1a2d4a);padding:40px 32px;display:flex;flex-direction:column;gap:18px; }
.dip-login-logo-big { width:60px;height:60px;border-radius:14px;background:transparent;padding:6px;object-fit:contain; }
.dip-login-left h2 { color:#fff;font-size:24px;font-weight:900;margin:0;line-height:1.2; }
.dip-login-left h2 span { color:var(--dp-accent); }
.dip-login-left p { color:rgba(255,255,255,.5);font-size:13px;margin:0;line-height:1.7; }
.dip-login-features { display:flex;flex-direction:column;gap:8px;margin-top:auto; }
.dip-login-features div { color:rgba(255,255,255,.65);font-size:12px; }
.dip-login-right { background:#fff;padding:40px 32px;display:flex;flex-direction:column;gap:12px; }
.dip-login-right h3 { font-size:20px;font-weight:800;margin:0 0 3px; }
.dip-login-right > p { color:var(--dp-muted);font-size:12px;margin:0 0 10px; }
.dip-login-right .login-submit .button-primary { background:var(--dp-accent);border:none;border-radius:9px;padding:11px 22px;font-size:13px;font-weight:700;color:#fff;cursor:pointer;width:100%; }
.dip-login-right label { font-size:12px;font-weight:600;display:block;margin-bottom:5px; }
.dip-login-right input[type=text],.dip-login-right input[type=password] { width:100%;border:1.5px solid var(--dp-border);border-radius:9px;padding:9px 11px;font-size:13px;margin-bottom:10px; }
.dip-login-footer { font-size:11px;color:var(--dp-muted);text-align:center;margin-top:auto; }

/* ── LOADER ───────────────────────────────────────────── */
.dip-loader { width:30px;height:30px;border:3px solid var(--dp-border);border-top-color:var(--dp-accent);border-radius:50%;animation:dip-spin .8s linear infinite;margin:0 auto 10px; }
@keyframes dip-spin { to{transform:rotate(360deg)} }

/* ── ROI EN VIVO (bloomberg light) ───────────────────── */
.dip-roi-live { display:flex;flex-direction:column;gap:14px; }
.dip-roi-live-header {
  display:flex;justify-content:space-between;align-items:center;
  padding-bottom:12px;border-bottom:1px solid var(--dp-border);flex-wrap:wrap;gap:8px;
}
.dip-roi-live-header h3 { margin:0;font-size:15px;font-weight:700; }
.dip-roi-live-badge {
  display:flex;align-items:center;gap:5px;font-size:10px;font-weight:700;
  color:var(--dp-success);background:#f0fdf4;border:1px solid #86efac;
  border-radius:999px;padding:3px 9px;
}
.dip-roi-live-badge::before {
  content:'';width:5px;height:5px;background:var(--dp-success);border-radius:50%;
  animation:live-pulse 2s infinite;
}
@keyframes live-pulse { 0%,100%{opacity:1}50%{opacity:.3} }
.dip-roi-kpis { display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px; }
.dip-roi-kpi {
  background:var(--dp-bg);border:1px solid var(--dp-border);
  border-radius:var(--dp-radius-sm);padding:14px 16px;
}
.dip-roi-kpi.accent { border-top:2px solid var(--dp-accent); }
.dip-roi-kpi.success { border-top:2px solid var(--dp-success); }
.dip-roi-kpi.gold { border-top:2px solid var(--dp-gold); }
.dip-roi-kpi-label { font-size:10px;color:var(--dp-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px; }
.dip-roi-kpi-val { font-size:20px;font-weight:800;letter-spacing:-.5px; }
.dip-roi-kpi-sub { font-size:11px;margin-top:3px; }
.up   { color:var(--dp-success); }
.down { color:var(--dp-danger); }
.flat { color:var(--dp-muted); }
.dip-roi-chart-wrap { background:var(--dp-bg);border-radius:var(--dp-radius-sm);padding:14px; }
.dip-roi-chart-label { font-size:11px;font-weight:700;color:var(--dp-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px; }
.dip-roi-bars { display:flex;align-items:flex-end;gap:4px;height:90px; }
.dip-roi-bar-col { display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;min-width:0; }
.dip-roi-bar { width:100%;min-height:3px;background:var(--dp-accent);border-radius:3px 3px 1px 1px;cursor:default;transition:opacity .15s; }
.dip-roi-bar:hover { opacity:.75; }
.dip-roi-bar.pos { background:var(--dp-success); }
.dip-roi-bar.neg { background:var(--dp-danger); }
.dip-roi-bar-lbl { font-size:9px;color:var(--dp-muted); }

/* FX / Noticias */
.dip-fx-row { display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px; }
.dip-fx-item { background:var(--dp-bg);border:1px solid var(--dp-border);border-radius:var(--dp-radius-sm);padding:12px;display:flex;flex-direction:column;gap:4px; }
.dip-fx-label { font-size:10px;color:var(--dp-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em; }
.dip-fx-rate { font-size:18px;font-weight:800; }
.dip-fx-sub  { font-size:10px; }
/* ── NOTICIAS PREMIUM — solo titular, línea fina ─── */
.dip-news-premium { display:flex;flex-direction:column; }
.dip-news-prem-item {
  display:flex;align-items:center;gap:14px;
  padding:13px 0;
  border-bottom:1px solid var(--dp-border);
  text-decoration:none;color:var(--dp-text);
  transition:all .15s;cursor:pointer;
  position:relative;
}
.dip-news-prem-item:last-child { border-bottom:none; }
.dip-news-prem-item:hover { text-decoration:none; }
.dip-news-prem-item:hover .dip-news-prem-title { color:var(--dp-accent); }
/* Número indexado */
.dip-news-prem-num {
  font-size:11px;font-weight:800;color:var(--dp-border);
  width:18px;flex-shrink:0;text-align:right;
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;
  transition:color .15s;
}
.dip-news-prem-item:hover .dip-news-prem-num { color:var(--dp-accent); }
.dip-news-prem-body { flex:1;min-width:0;display:flex;flex-direction:column;gap:3px; }
.dip-news-prem-tag {
  font-size:9px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--dp-accent);
}
.dip-news-prem-title {
  font-size:13px;font-weight:600;line-height:1.45;color:var(--dp-text);
  transition:color .15s;margin:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dip-news-prem-date {
  font-size:10px;color:var(--dp-muted);font-weight:400;
}
/* Flecha sutil al hover */
.dip-news-prem-arrow {
  flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .15s;color:var(--dp-accent);
}
.dip-news-prem-item:hover .dip-news-prem-arrow { opacity:1; }
@media (max-width:640px) {
  .dip-news-prem-title { font-size:12px; }
}

/* ── GUEST PORTAL ─────────────────────────────────────── */
.dip-guest-portal-section { display:flex;flex-direction:column;gap:14px; }
.dip-guest-portal-card { background:#fff;border:1px solid var(--dp-border);border-radius:var(--dp-radius);padding:18px 20px;box-shadow:var(--dp-shadow); }
.dip-guest-portal-card.featured { border-color:var(--dp-accent);background:#fafcff; }
.dip-guest-header { display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px; }
.dip-guest-header h3 { margin:0 0 3px;font-size:14px;font-weight:700; }
.dip-guest-header p  { margin:0;font-size:12px;color:var(--dp-muted); }
.dip-guest-badge { background:var(--dp-accent);color:#fff;font-size:10px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;flex-shrink:0; }
.dip-guest-badge.readonly { background:#6366f1; }
.dip-guest-link-box { display:flex;align-items:center;gap:7px;background:var(--dp-bg);border:1px solid var(--dp-border);border-radius:var(--dp-radius-sm);padding:9px 12px;margin-bottom:10px; }
.dip-guest-link-url { flex:1;font-size:11px;color:var(--dp-accent);font-family:monospace;word-break:break-all; }
.dip-guest-copy-btn { background:var(--dp-accent);color:#fff;border:none;border-radius:6px;padding:5px 10px;font-size:10px;font-weight:700;cursor:pointer;flex-shrink:0;transition:background .15s; }
.dip-guest-copy-btn:hover { background:var(--dp-accent-dk); }
.dip-guest-copy-btn.copied { background:var(--dp-success); }
.dip-guest-features { display:flex;gap:6px;flex-wrap:wrap; }
.dip-guest-feature-tag { background:#f1f5f9;color:var(--dp-muted);border-radius:999px;padding:3px 9px;font-size:10px;font-weight:600; }
.dip-guest-generate-btn { background:var(--dp-accent);color:#fff;border:none;border-radius:var(--dp-radius-sm);padding:10px 18px;font-size:12px;font-weight:700;cursor:pointer;width:100%;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:7px; }
.dip-guest-generate-btn:hover { background:var(--dp-accent-dk); }
.dip-guest-info-row { display:flex;align-items:center;gap:7px;font-size:11px;color:var(--dp-muted);margin-top:8px;padding:7px 10px;background:var(--dp-bg);border-radius:var(--dp-radius-sm); }

/* ── REALTIME CARD ────────────────────────────────────── */
.dip-realtime-card { background:#fff;border:1px solid var(--dp-border);border-radius:var(--dp-radius);overflow:hidden;box-shadow:var(--dp-shadow); }
.dip-rt-header { background:var(--dp-text);padding:12px 16px;display:flex;justify-content:space-between;align-items:center; }
.dip-rt-header h3 { margin:0;font-size:13px;font-weight:700;color:#fff; }
.dip-rt-live-badge { display:flex;align-items:center;gap:4px;font-size:9px;font-weight:700;color:var(--dp-success);background:rgba(16,185,129,.15);border:1px solid rgba(16,185,129,.3);border-radius:999px;padding:2px 7px; }
.dip-rt-live-badge::before { content:'';width:4px;height:4px;background:var(--dp-success);border-radius:50%;animation:live-pulse 1.5s infinite; }
.dip-rt-body { padding:14px 16px; }
.dip-rt-status-row { display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--dp-border);font-size:12px; }
.dip-rt-status-row:last-child { border-bottom:none; }
.dip-rt-label { color:var(--dp-muted);font-weight:500; }
.dip-rt-value { font-weight:700;color:var(--dp-text); }
.dip-rt-occupancy-bar { margin-top:12px; }
.dip-rt-occ-label { display:flex;justify-content:space-between;font-size:11px;font-weight:600;margin-bottom:5px;color:var(--dp-muted); }
.dip-rt-occ-label strong { color:var(--dp-text); }
.dip-rt-track { height:10px;background:var(--dp-border);border-radius:999px;overflow:hidden; }
.dip-rt-fill { height:100%;border-radius:999px;background:linear-gradient(90deg,var(--dp-accent),#6366f1);transition:width .8s ease; }
.dip-rt-next-booking { margin-top:10px;padding:9px 10px;background:var(--dp-bg);border-radius:var(--dp-radius-sm);font-size:11px; }
.dip-rt-next-label { color:var(--dp-muted);font-weight:700;margin-bottom:3px;text-transform:uppercase;letter-spacing:.04em;font-size:9px; }
.dip-rt-next-val { font-size:13px;font-weight:700;color:var(--dp-text); }

/* ── RESPONSIVE ───────────────────────────────────────── */
@media (max-width:960px) {
  .dip-portal { grid-template-columns:1fr; }
  .dip-sidebar {
    flex-direction:row;flex-wrap:wrap;padding:12px 14px;height:auto;
    background:#f8fafc !important;
    border-bottom:1px solid #e2e8f0;
    box-shadow:0 1px 8px rgba(0,0,0,.06);
    gap:10px;
  }
  .dip-brand { padding:0;border:none;margin:0;width:100%;margin-bottom:0; }
  .dip-brand-text strong { color:#0f172a !important; }
  .dip-brand-text small  { color:#64748b !important; }
  /* Mobile: hide desktop nav, show dropdown */
  .dip-nav { display:none; }
  .dip-nav-select-wrap { display:block;width:100%; }
  .dip-nav-select { background-color:#f1f5f9;color:#0f172a;border-color:#e2e8f0; }
  .dip-sidebar-footer { width:100%;padding-top:10px;border-top:1px solid #e2e8f0; }
  .dip-user-pill strong { color:#0f172a !important; }
  .dip-user-pill small  { color:#64748b !important; }
  .dip-logout-btn { color:#64748b !important; }
  .dip-user-avatar { background:var(--dp-accent); }
}
@media (max-width:640px) {
  .dip-main { padding:14px 12px;gap:12px; }
  .dip-two-col { grid-template-columns:1fr; }
  /* Investment tarjetas full width */
  .dip-meta-grid { grid-template-columns:1fr 1fr; }
  .dip-units-grid { grid-template-columns:1fr; }
  .dip-kpi-row { grid-template-columns:1fr 1fr; }
  .bk-card-nums { grid-template-columns:repeat(3,1fr); }
  .dip-returns-summary { grid-template-columns:1fr 1fr; }
  .dip-season-cards { grid-template-columns:1fr; }
  .dip-login-card { grid-template-columns:1fr; }
  .dip-login-left { display:none; }
  .dip-login-right { padding:28px 20px; }
  .dip-profile-grid { grid-template-columns:1fr; }
  .dip-report-form-grid { grid-template-columns:1fr; }
  .dip-sim-controls { grid-template-columns:1fr 1fr; }
  .dip-sim-result { grid-template-columns:1fr 1fr; }
  /* FIX: Tickets — todo en columna, nada se escapa a la derecha */
  .dip-two-col { overflow:hidden; }
  .dip-two-col .dip-card { min-width:0;width:100%;overflow:hidden;word-break:break-word; }
  .dip-chat { max-height:260px; }
  .bk-card-nums { grid-template-columns:repeat(2,1fr); }
  .dip-bloomberg-grid { grid-template-columns:1fr 1fr; }
  .dip-roi-kpis { grid-template-columns:1fr 1fr; }
  .dip-fx-row { grid-template-columns:1fr 1fr; }
  /* FIX: tickets overflow */
  .dip-ticket-item { overflow:hidden;max-width:100%; }
  .dip-ticket-item-left { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 80px); }
  .dip-bubble { max-width:95%; }
  /* Wide investment cards */
  .dip-unit-card { padding:16px; }
  .dip-card { padding:16px 14px; }
}

/* ============================================================
   v5.3.0 — NUEVAS FUNCIONALIDADES PREMIUM
   ============================================================ */

/* ── ANIMACIONES FADE-IN — solo overview, no interfiere con resto ── */
@keyframes dipFadeUp {
  from { opacity:0; transform:translateY(8px); }
  to   { opacity:1; transform:translateY(0); }
}
.dip-kpi-item:nth-child(1) { animation:dipFadeUp .3s .05s ease both; }
.dip-kpi-item:nth-child(2) { animation:dipFadeUp .3s .10s ease both; }
.dip-kpi-item:nth-child(3) { animation:dipFadeUp .3s .15s ease both; }
.dip-kpi-item:nth-child(4) { animation:dipFadeUp .3s .20s ease both; }
.dip-quick-actions { animation:dipFadeUp .25s ease both; }
/* NO aplicar .dip-card ni .dip-unit-card globalmente — rompe otras secciones */
.dip-kpi-item.dip-fade-in,.dip-animate.dip-fade-in { opacity:1;transform:translateY(0); }

/* ── QUICK ACTIONS ───────────────────────────────────────── */
.dip-quick-actions {
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px;
}
.dip-qa-btn {
  display:flex;align-items:center;gap:10px;
  background:var(--dp-card);border:1.5px solid var(--dp-border);border-radius:14px;
  padding:14px 14px;text-decoration:none;color:var(--dp-text);
  transition:all .18s;cursor:pointer;position:relative;overflow:hidden;
  box-shadow:var(--dp-shadow);
}
.dip-qa-btn:hover {
  border-color:var(--dp-gold);transform:translateY(-2px);box-shadow:var(--dp-shadow-md);
  text-decoration:none;color:var(--dp-text);
}
.dip-qa-icon {
  width:36px;height:36px;border-radius:10px;background:var(--dp-bg);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.dip-qa-icon svg { width:18px;height:18px;stroke:var(--dp-muted); }
.dip-qa-icon.ai  { background:#f0fdf4; }
.dip-qa-icon.ai svg { stroke:var(--dp-success); }
.dip-qa-icon.cal { background:#eff6ff; }
.dip-qa-icon.cal svg { stroke:var(--dp-accent); }
.dip-qa-icon.doc { background:#fff7ed; }
.dip-qa-icon.doc svg { stroke:var(--dp-gold); }
.dip-qa-body { flex:1;min-width:0; }
.dip-qa-body strong { display:block;font-size:12px;font-weight:700;color:var(--dp-text); }
.dip-qa-body span   { display:block;font-size:11px;color:var(--dp-muted);margin-top:1px; }
.dip-qa-arrow { font-size:14px;color:var(--dp-muted);transition:transform .18s; }
.dip-qa-btn:hover .dip-qa-arrow { transform:translateX(3px);color:var(--dp-gold); }
@media (max-width:760px) {
  .dip-quick-actions { grid-template-columns:1fr 1fr; }
}
@media (max-width:480px) {
  .dip-quick-actions { grid-template-columns:1fr; }
}

/* ── CENTRO DE NOTIFICACIONES ────────────────────────────── */
.dip-notif-center .dip-card-head { margin-bottom:0;border-bottom:1px solid var(--dp-border); }
.dip-notif-count-badge {
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--dp-danger);color:#fff;font-size:10px;font-weight:800;
  width:18px;height:18px;border-radius:50%;margin-left:4px;
}
.dip-notif-mark-all-btn {
  margin-left:auto;font-size:11px;color:var(--dp-accent);background:none;
  border:none;cursor:pointer;font-weight:600;padding:4px 0;
}
.dip-notif-mark-all-btn:hover { text-decoration:underline; }
.dip-notif-feed { display:flex;flex-direction:column; }
.dip-notif-item {
  display:flex;align-items:flex-start;gap:12px;padding:13px 0;
  border-bottom:1px solid var(--dp-border);cursor:pointer;
  transition:background .1s;position:relative;
}
.dip-notif-item:last-child { border-bottom:none; }
.dip-notif-item:hover { background:#f8fafc; }
.dip-notif-item.unread { background:#fffbf0; }
.dip-notif-item.unread:hover { background:#fef9ed; }
.dip-notif-icon-wrap {
  width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;background:var(--dp-bg);
}
.dip-notif-icon-wrap.type-booking { background:#eff6ff; }
.dip-notif-icon-wrap.type-payment { background:#f0fdf4; }
.dip-notif-icon-wrap.type-report  { background:#faf5ff; }
.dip-notif-content { flex:1;min-width:0; }
.dip-notif-content strong { display:block;font-size:12.5px;font-weight:700;color:var(--dp-text);margin-bottom:2px; }
.dip-notif-content p { margin:0;font-size:11.5px;color:var(--dp-muted);line-height:1.5; }
.dip-notif-content time { display:block;font-size:10px;color:var(--dp-muted);margin-top:3px; }
.dip-notif-unread-dot {
  width:7px;height:7px;border-radius:50%;background:var(--dp-gold);flex-shrink:0;margin-top:4px;
}

/* ── VALORACIÓN PROPIEDAD ────────────────────────────────── */
.dip-valuation-card {
  background:linear-gradient(135deg,#f8fafc 0%,#fffbf0 100%);
  border:1.5px solid #fde68a;border-radius:14px;padding:18px;margin:24px 0 0;
}
.dip-val-header { display:flex;align-items:center;gap:10px;margin-bottom:14px; }
.dip-val-header h4 { margin:0;font-size:13px;font-weight:700; }
.dip-val-badge {
  color:#fff;font-size:11px;font-weight:800;padding:3px 9px;border-radius:20px;margin-left:auto;
}
.dip-val-row {
  display:flex;align-items:center;gap:12px;
  background:var(--dp-card);border-radius:10px;padding:14px;
}
.dip-val-item { flex:1;text-align:center; }
.dip-val-item span { display:block;font-size:10px;color:var(--dp-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px; }
.dip-val-item strong { display:block;font-size:16px;font-weight:800; }
.dip-val-item.featured strong { font-size:18px; }
.dip-val-arrow { font-size:18px;color:var(--dp-muted);flex-shrink:0; }
.dip-val-diff { flex-shrink:0;font-size:13px;font-weight:800;padding:6px 12px;background:var(--dp-bg);border-radius:8px; }

/* ── PROYECCIÓN ROI ──────────────────────────────────────── */
.dip-roi-proj-card {
  background:var(--dp-card);border:1.5px solid var(--dp-border);border-radius:var(--dp-radius-sm);
  padding:18px;margin:24px 0 0;
}
.dip-proj-timeline {
  display:flex;align-items:flex-end;gap:12px;padding:16px 0 0;
  height:140px;
}
.dip-proj-col {
  display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;
}
.dip-proj-col.base .dip-proj-bar { opacity:.4; }
.dip-proj-val { font-size:9px;font-weight:700;color:var(--dp-text);text-align:center;white-space:nowrap; }
.dip-proj-bar { width:32px;border-radius:6px 6px 0 0;transition:height .6s ease;min-height:10px; }
.dip-proj-label { font-size:10px;color:var(--dp-muted);font-weight:600; }
.dip-proj-pct { font-size:9px;color:var(--dp-gold);font-weight:800; }

/* ── DOCUMENTOS CON CARPETAS ─────────────────────────────── */
.dip-docs-layout {
  display:grid;grid-template-columns:200px 1fr;gap:14px;align-items:start;
}
.dip-docs-sidebar {
  background:var(--dp-card);border:1.5px solid var(--dp-border);border-radius:var(--dp-radius-sm);
  padding:10px;display:flex;flex-direction:column;gap:3px;position:sticky;top:80px;
}
.dip-docs-sidebar-title {
  font-size:10px;font-weight:700;color:var(--dp-muted);text-transform:uppercase;letter-spacing:.07em;
  padding:4px 8px 10px;border-bottom:1px solid var(--dp-border);margin-bottom:4px;
}
.dip-folder-btn {
  display:flex;align-items:center;gap:8px;padding:9px 10px;border:none;background:none;
  border-radius:8px;cursor:pointer;text-align:left;font-size:12px;font-weight:500;
  color:var(--dp-muted);transition:all .12s;width:100%;
}
.dip-folder-btn:hover { background:var(--dp-bg);color:var(--dp-text); }
.dip-folder-btn.active { background:#fffbf0;color:var(--dp-gold);font-weight:700; }
.dip-folder-icon { flex:1; }
.dip-folder-count {
  background:var(--dp-bg);color:var(--dp-muted);font-size:10px;font-weight:700;
  padding:2px 6px;border-radius:20px;
}
.dip-folder-btn.active .dip-folder-count { background:var(--dp-gold);color:#fff; }
.dip-docs-content { min-width:0; }
.dip-folder-content { display:none; }
.dip-folder-content.active { display:block; }
.dip-docs-folder-header { display:flex;align-items:center;gap:10px;margin-bottom:14px; }
.dip-docs-folder-header h3 { margin:0;font-size:14px;font-weight:800; }
.dip-doc-grid-v2 {
  display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;
}
.dip-doc-card-v2 {
  background:var(--dp-card);border:1.5px solid var(--dp-border);border-radius:12px;
  overflow:hidden;transition:box-shadow .18s,border-color .18s;
}
.dip-doc-card-v2:hover { box-shadow:var(--dp-shadow-md);border-color:var(--dp-gold); }
.dip-doc-preview {
  height:100px;background:var(--dp-bg);display:flex;align-items:center;justify-content:center;
  cursor:pointer;position:relative;
}
.dip-pdf-thumb { position:relative;cursor:pointer; }
.dip-pdf-thumb svg { width:60px;height:60px; }
.dip-pdf-overlay {
  position:absolute;inset:0;background:rgba(0,0,0,.5);color:#fff;font-size:12px;font-weight:700;
  display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;border-radius:10px;
}
.dip-pdf-thumb:hover .dip-pdf-overlay { opacity:1; }
.dip-doc-icon-big { font-size:40px; }
.dip-doc-info { padding:10px 12px 6px;border-top:1px solid var(--dp-border); }
.dip-doc-info strong { display:block;font-size:12px;font-weight:700;margin-bottom:2px; }
.dip-doc-info small { font-size:10px;color:var(--dp-muted); }
.dip-doc-actions { display:flex;gap:6px;padding:8px 12px 10px; }
.dip-doc-btn {
  flex:1;text-align:center;font-size:11px;font-weight:600;padding:6px;border-radius:7px;
  border:none;cursor:pointer;text-decoration:none;transition:background .12s;
}
.dip-doc-btn.preview { background:#f0fdf4;color:#10b981; }
.dip-doc-btn.preview:hover { background:#d1fae5; }
.dip-doc-btn.download { background:var(--dp-bg);color:var(--dp-text); }
.dip-doc-btn.download:hover { background:var(--dp-border); }
.dip-empty-folder { text-align:center;padding:40px 20px;color:var(--dp-muted); }
@media (max-width:640px) {
  .dip-docs-layout { grid-template-columns:1fr; }
  .dip-docs-sidebar { flex-direction:row;flex-wrap:wrap;position:static; }
}

/* ── PDF MODAL ───────────────────────────────────────────── */
.dip-pdf-modal {
  position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;
}
.dip-pdf-modal-backdrop {
  position:absolute;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);
}
.dip-pdf-modal-inner {
  position:relative;z-index:1;width:90vw;height:90vh;max-width:1000px;
  background:#fff;border-radius:var(--dp-radius);overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.4);
}
.dip-pdf-modal-header {
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;border-bottom:1px solid var(--dp-border);background:var(--dp-bg);
}
.dip-pdf-modal-header span { font-size:13px;font-weight:700; }
.dip-pdf-modal-close {
  background:none;border:none;cursor:pointer;font-size:18px;color:var(--dp-muted);
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;
}
.dip-pdf-modal-close:hover { background:var(--dp-border); }
.dip-pdf-iframe { flex:1;width:100%;border:none; }
body.dip-modal-open { overflow:hidden; }

/* ── CLIMA ZAGORA ────────────────────────────────────────── */
.dip-weather-card .dip-card-head { border-bottom:none; }
.dip-weather-main {
  display:flex;align-items:center;gap:16px;padding:18px 0 12px;border-bottom:1px solid var(--dp-border);
}
.dip-weather-icon { font-size:40px;line-height:1; }
.dip-weather-temp { font-size:32px;font-weight:900;color:var(--dp-text); }
.dip-weather-desc { font-size:13px;color:var(--dp-muted);font-weight:500; }
.dip-weather-stats {
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:12px 0 4px;
}
.dip-wx-stat { text-align:center;padding:8px; }
.dip-wx-stat span { display:block;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--dp-muted);margin-bottom:3px; }
.dip-wx-stat strong { display:block;font-size:13px;font-weight:700;color:var(--dp-text); }
.dip-wx-footer { font-size:10px;color:var(--dp-muted);padding-top:8px;border-top:1px solid var(--dp-border);text-align:center; }

/* ── POOL ADMIN CSS ──────────────────────────────────────── */
.dip-pool-info-box {
  background:#fffbf0;border:1.5px solid #fde68a;border-radius:12px;padding:14px 18px;margin-bottom:18px;
}
.dip-pool-info-box p { margin:0;font-size:13px; }
.dip-pool-card { margin-bottom:24px; }
.dip-pool-recs { margin-top:14px;border-top:1px solid var(--da-border);padding-top:12px; }
.dip-pool-recs h4 { font-size:13px;font-weight:700;margin-bottom:10px; }
.dip-pool-rec-item {
  padding:10px 14px;border-radius:8px;margin-bottom:6px;border-left:4px solid;
}
.dip-pool-rec-item.priority-alta { border-color:#ef4444;background:#fff1f1; }
.dip-pool-rec-item.priority-media { border-color:#f59e0b;background:#fffbf0; }
.dip-pool-rec-item.priority-baja { border-color:#10b981;background:#f0fdf4; }
.pool-rec-title { font-weight:700;font-size:13px;margin-bottom:3px; }
.pool-rec-detail { font-size:12px;color:var(--da-muted); }
.dip-pool-projection { margin-top:14px; }
.dip-pool-projection h4 { font-size:13px;font-weight:700;margin-bottom:10px; }
.dip-pool-action { margin-top:14px;padding-top:12px;border-top:1px solid var(--da-border); }
.dip-admin-notice.success {
  background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:8px;padding:12px 16px;
  font-size:13px;color:#166534;margin-bottom:16px;
}

/* ── ONBOARDING HIGHLIGHT ────────────────────────────────── */
.dip-ob-tooltip-highlight {
  box-shadow:0 0 0 3px var(--dp-gold),0 0 0 6px rgba(201,162,39,.2) !important;
  border-radius:var(--dp-radius-sm);
}
